Split data into different fields in TR
I have a flat file with space (multiple spaces between different fields) as a delimiter. The problem is, file is coming from 3rd party and they don't want to change the separator as comma or tab delimited CSV file. I have to load data in ODS (BW 3x).
Now I am thinking to load line by line and then split data into different objects in Transfer rules.
The Records looks like:
*009785499 ssss BC sssss 2988 ssss 244 sss 772 sss 200
*000000033 ssss AB ssss 0 ssss 0 ssss 0 ssss 0
*000004533 ssss EE ssss 8 ssss 3 ssss 2 ssss 4
s = space
Now I want data to split like:
Field1 = 009785499
Field2 = BC
Field3 = 2988
Field4 = 244
Field5 = 772
Field6 = 200
After 1st line load, go to 2nd line and split the data as above and so on. Could you help me with the code pleaseu2026?
Is it a good design to load data? Any other idea?
I appreciate your helps..
Hi,
Not sure how efficient this is, but you can try an approach on the lines of this link /people/sap.user72/blog/2006/05/27/long-texts-in-sap-bw-modeling
Make your transfer structure in this format. Say the length of each line is 200 characters. Make the first field of the structure of length 200. That is, the length of Field1 in the Trans Struc will be 200.
The second field can be the length of Field2 as you need in your ODS, and similarly for Field3 to Field6. Load it as a CSV file. Since there are no commas, the entire line will enter into the first field of the Trans Structure. This can be broken up into individual fields in the Transfer Rules.
Now, in your Start Routine of transfer rules, write code like this (similar to the ex in the blog):
Field-symbols <fs> type transfer-structure.
Loop at Datapak assigning <fs>.
split <fs>-Field1 at 'ssss' into <fs>-field1 <fs>-field2 <fs>-field3....
modify datapak from <fs>
endloop.
Now you can assign Field1 of Trans Struc to Field1 of Comm Struc, Field2 of Trans Struc to Field2 of Comm Struc and so on.
Hope it helps!
Edited by: Suhas Karnik on Jun 17, 2008 10:28 PM
Similar Messages
-
Split dates into different shifts.
Hello all,
I'm trying to setup a query to get my date ranges into 8 hour shifts which start at 23:00, 07:00, and 15:00.
create table t (start_date, end_date)
insert into t values (to_date('11-21-12 21:02:15', 'MM-dd-yy HH24:MI:ss'), to_date('11-21-12 21:02:51', 'MM-dd-yy HH24:MI:ss'));
insert into t values (to_date('11-21-12 21:09:06', 'MM-dd-yy HH24:MI:ss'), to_date('11-24-12 23:30:18', 'MM-dd-yy HH24:MI:ss'));
insert into t values (to_date('11-24-12 23:35:28', 'MM-dd-yy HH24:MI:ss'), to_date('11-24-12 23:49:34', 'MM-dd-yy HH24:MI:ss'));Desired output:
START_DATE | END_DATE
11-24-12 23:35:28 | 11-24-12 23:49:34
11-24-12 23:00:00 | 11-24-12 23:30:18
11-24-12 15:00:00 | 11-24-12 23:00:00
11-24-12 07:00:00 | 11-24-12 15:00:00
11-23-12 23:00:00 | 11-24-12 07:00:00
11-23-12 15:00:00 | 11-23-12 23:00:00
11-23-12 07:00:00 | 11-23-12 15:00:00
11-22-12 23:00:00 | 11-23-12 07:00:00
11-22-12 15:00:00 | 11-22-12 23:00:00
11-22-12 07:00:00 | 11-22-12 15:00:00
11-21-12 23:00:00 | 11-22-12 07:00:00
11-21-12 21:09:06 | 11-21-12 23:00:00
11-21-12 21:02:15 | 11-21-12 21:02:51Version:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
Is this possible?
Thanks in advance!Hi,
Tarianz wrote:
... How would I go about adding another column into this?
I've been messing around with the query trying to add it myself but have been unsuccessful.
Similar to:
*ID is the order the dates were inserted into the table.
ID| START_DATE | END_DATE
3| 11-24-12 23:35:28 | 11-24-12 23:49:34
2| 11-24-12 23:00:00 | 11-24-12 23:30:18
2| 11-24-12 15:00:00 | 11-24-12 23:00:00 ...
That sounds like a job for the analytic ROW_NUMBER function.
ROW_NUMBER () OVER (ORDER BY x, y, z) AS t_id -- id is an Oracle keywordwhere x, y and z are the columns or expressions that indicate the order you want. You can have any number of such expressions (1 or more), and you can use <b>DESC</b>ending order if you want to.
If the combination (x, y, z) is not unique, that is, if 2 or more rows were added at the same time, then ROW_NUMBER will give them distinct numbers, but there's no telling which number will be lower.
You need to do this when first using table t, before the rows are split into shifts. In the query I suggested, you could add the expression above in sub-query got_shift_num.
So if the rows were INSERTed into the table in the same order as start_date, then you could do this:
WITH got_base_date AS
SELECT TRUNC (SYSDATE) + (7 / 24) AS base_date
FROM dual
, got_shift_num AS
SELECT t.start_date, t.end_date
, b.base_date
, FLOOR ( (t.start_date - b.base_date)
* 3
) AS start_shift_num
, FLOOR ( (t.end_date - b.base_date)
* 3
) AS end_shift_num
, ROW_NUMBER () OVER (ORDER BY t.start_date) -- ***** NEW *****
AS t_id -- ***** NEW *****
FROM got_base_date b
CROSS JOIN t
, cntr AS
SELECT LEVEL - 1 AS n
FROM (
SELECT MAX ( end_shift_num
- start_shift_num
) AS max_shift_cnt
FROM got_shift_num
CONNECT BY LEVEL <= 1 + max_shift_cnt
SELECT s.t_id -- ***** NEW *****
, GREATEST ( s.start_date
, s.base_date + ( ( s.start_shift_num
+ c.n
/ 3
) AS shift_start_date
, LEAST ( s.end_date
, s.base_date + ( ( s.start_shift_num
+ c.n
+ 1
/ 3
) AS end_start_date
, start_date, end_date -- For debugging
FROM got_shift_num s
JOIN cntr c ON c.n <= s.end_shift_num - s.start_shift_num
ORDER BY shift_start_date DESC
;This is exactly what I posted yesterday, only with 3 lines, marked "***** NEW *****", added.
You could modify Solomon's suggestion, using ROW_NUMBER in sub-query a. -
Read line and split into different fields
I have a flat file with space (multiple spaces between different fields) as a delimiter. The problem is, file is coming from 3rd party and they don't want to change the separator as comma or tab delimited CSV file. I have to load data in ODS (BW 3x).
Now I am thinking to load line by line and then split data into different objects in Transfer rules.
The Records looks like:
*009785499 BC 2988 244 772 200
*000000033 AB 0 0 0 0
*000004533 EE 8 3 2 4
Now I want data to split like:
Field1 = 009785499
Field2 = BC
Field3 = 2988
Field4 = 244
Field5 = 772
Field6 = 200
After 1st line load, go to 2nd line and split the data as above and so on. Could you help me with the code pleaseu2026?
Is it a good design to load data? Any other idea?
Thanks.Hi Mau,
First capture the data into the internal table (say itab).
Loop at itab.
it_final-field1 = itab+1(9).
it_final-field2 = itab+12(2).
it_final-field1 = itab+16(4).
it_final-field1 = itab+21(3).
it_final-field1 = itab+25(3).
it_final-field1 = itab+29(3).
Append it_final.
Endloop.
&*********** Reward Point if helpful**********& -
How do I insert multiple values into different fields in a stored procedure
I am writing a Stored Procedure where I select data from various queries, insert the results into a variable and then I insert the variables into final target table. This works fine when the queries return only one row. However I have some queries that return multiple rows and I am trying to insert them into different fields in the target table. My query is like
SELECT DESCRIPTION, SUM(AMOUNT)
INTO v_description, v_amount
FROM SOURCE_TABLE
GROUP BY DESCRIPTION;
This returns values like
Value A , 100
Value B, 200
Value C, 300
The Target Table has fields for each of the above types e.g.
VALUE_A, VALUE_B, VALUE_C
I am inserting the data from a query like
INSERT INTO TARGET_TABLE (VALUE_A, VALUE_B, VALUE_C)
VALUES (...)
How do I split out the values returned by the first query to insert into the Insert Statement? Or do I need to split the data in the statement that inserts into the variables?
Thanks
GB"Some of the amounts returned are negative so the MAX in the select statement returns 0 instead of the negative value. If I use MIN instead of MAX it returns the correct negative value. However I might not know when the amount is going to be positive or negative. Do you have any suggestions on how I can resolve this?"
Perhaps something like this could be done in combination with the pivot queries above, although it seems cumbersome.
SQL> with data as (
2 select 0 a, 0 b, 0 c from dual -- So column a has values {0, 1, 4},
3 union select 1 a, 2 b, -3 c from dual -- column b has values {0, 2, 5},
4 union select 4 a, 5 b, -6 c from dual ) -- column c has values {0, -3, -6}.
5 --
6 select ( case when max.a > 0 then max.a else min.a end) abs_max_a
7 , ( case when max.b > 0 then max.b else min.b end) abs_max_b
8 , ( case when max.c > 0 then max.c else min.c end) abs_max_c
9 from ( select ( select max(a) from data ) a
10 , ( select max(b) from data ) b
11 , ( select max(c) from data ) c
12 from dual ) max
13 , ( select ( select min(a) from data ) a
14 , ( select min(b) from data ) b
15 , ( select min(c) from data ) c
16 from dual ) min
17 /
ABS_MAX_A ABS_MAX_B ABS_MAX_C
4 5 -6
SQL> -
Error by inserting data into a field of datatype LONG
Hi,
When inserting data into a field of datatype long in oracle8 database via SQL Plus or SQL worksheet there occurs the following error message: "field in data file exceeds the maximum length".
If I access to the database from a selve written program via odbc there is no problem when inserting the data by the same sql statement.
So what can I do?
Thanks in advance!
JuergenWhat does your SQL statement look like?
-
Export transnational data into different client
Dear All Expertise's,
For our Management Audit purpose we have needed urgently copy all FI transnational data into different client in particular year.
As an example:
Source Client: 888
Target client: 700
Company: 1000
Year: 2013
FI Documents type: All
Please help me to get the solution use form your great advice.
SCC8/SCC7 can give us copy all records client to client. But we need only specific company/periods.
Thanks and Best regards
Bishnu
05.05I post the VI. Thanks!
Attachments:
j k thermocouple.vi 151 KB -
SegregatingTable data into different bucket with equal numebr of
Hi Guys,
I wanted to process table data in chunks not all the rows at a time. How can we achieve this in oracle.
Example :
I have one table EMP which has ten thousands rows(10,000) rows. Now these ten thousands rows are joined with other tables to process data and it takes time. So I wanted to pass one thousands rows at a time as an input to the procedures so that processing should happen only with 1 thousands rows at a time. This table does not have any primary key. So it there any method in oracle using that I can segregating the tables data into different buckets with equal number of rows.
I have used DBMS_PARALLEL_EXECUTE but its taking lots of time. Any help will be appreciated.I have one table EMP which has ten thousands rows(10,000) rows. Now these ten thousands rows are joined with other tables to process data and it takes time.
OK... So this is your actual problem. And the solution you are trying to come up with does not sound promising. So lets take a step back and re-think our strategy here. First thing would be how about we see some code? Show us your code that you say is running slow. And we can take it from there. The number 10,000 is a very small number. And if that is causing performance issue then you are in some big trouble.
And also it wouldn't hurt if you could read this Re: 3. How to improve the performance of my query? / My query is running slow. -
I'm running on Mac OS X 10.7.4, Firefox 14.0.1. This issue didn't exist until this most recent Firefox update. Basically, a preference pane opens every time data is being entered into a field. It doesn't seem to be the same preference pane that you see when you open the preferences through the normal Firefox access ie. Firefox > Preferences. All of the choices listed in this particular preference pane are specific to Firefox though. I have a screen capture that I could include if wanted. When using 1Password the pane appears, when entering a search in the search bar near the address bar the pane pops up, when entering data into any field as I am now filling in this detail report the pane also pops up. It's quite annoying. Any advice? I'm going to systematically attempt to quit any add-ons and see if that makes a difference. I ave already tried doing a reinstall to no avail.
I think a screen shot would be helpful. There is a box below the compose area of a reply to upload files.
-
Populating data into a field on selection screen
hi alll..........
my query is how to populate data into a field in a selection screen which has help on value request....
suppose .. there is a field in the standard selection screen with name kunnr which has help on value request option and is done as a list box. now i want to populate data from kna1-kunnr to this field....
how can i do it....
urs friendly...
prashanthYou have to call the FM F4IF_INT_TABLE_VALUE_REQUEST to show the F4
F4IF_INT_TABLE_VALUE_REQUEST
https://forums.sdn.sap.com/click.jspa?searchID=6971766&messageID=3699312
F4IF_INT_TABLE_VALUE_REQUEST -
How to display rows of data into different columns?
I'm new to SQL and currently this is what I'm trying to do:
Display multiple rows of data into different columns within the same row
I have a table like this:
CREATE TABLE TRIPLEG(
T# NUMBER(10) NOT NULL,
LEG# NUMBER(2) NOT NULL,
DEPARTURE VARCHAR(30) NOT NULL,
DESTINATION VARCHAR(30) NOT NULL,
CONSTRAINT TRIPLEG_PKEY PRIMARY KEY (T#, LEG#),
CONSTRAINT TRIPLEG_UNIQUE UNIQUE(T#, DEPARTURE, DESTINATION),
CONSTRAINT TRIPLEG_FKEY1 FOREIGN KEY (T#) REFERENCES TRIP(T#) );
INSERT INTO TRIPLEG VALUES( 1, 1, 'Sydney', 'Melbourne');
INSERT INTO TRIPLEG VALUES( 1, 2, 'Melbourne', 'Adelaide');
The result should be something like this:
> T# | ORIGIN | DESTINATION1 | DESTINATION2
> 1 | SYDNEY | MELBORUNE | ADELAIDE
The query should include the `COUNT(T#) < 3` since I only need to display the records less than 3. How can I achieve the results that I want using relational views???
Thanks!!!T#
LEG#
DEPARTURE
DESTINATION
1
1
Sydney
Melbourne
1
2
Melbourne
Adelaide
1
3
Adelaide
India
1
4
India
Dubai
2
1
India
UAE
2
2
UAE
Germany
2
3
Germany
USA
On 11gr2, you may use this :
SELECT t#,
REGEXP_REPLACE (
LISTAGG (departure || '->' || destination, ' ')
WITHIN GROUP (ORDER BY t#, leg#),
'([^ ]+) \1+',
'\1')
FROM tripleg
where leg#<=3
GROUP BY t#;
Output:
1 Sydney->Melbourne->Adelaide->India
2 India->UAE->Germany->USA
Cheers,
Manik. -
I am looking for a way to enter multiple dates into a field without the form becoming too long.
This will be used by an old school bookeeper who needs the form to fit on one page.
Any ideas?Hi,
If you don't need the field to provide a date picker, verify it's a date, or don't need to sort the dates in the table, you can just use a text area field, and have your form filler enter the dates comma separated. Otherwise you'd have to add multiple fields. However, you can lessen the space each field takes up veritically, by using the "Labels Left" option (in the toolbar).
Thanks,
Todd -
Can we send the data into different data target from single datasource how
Hai
can we send the data into different data target from single datasource how ?Hi,
Create the transformation for each target and connect through DTP if you are in BI 7.0
If it is BW 3.5 create transfer rules and load it Info source and then different update rules for different targets then load it using IP.
If you are speaking about loading data from R3 data source to multiple data sources in BI
Then follow the below step.
1)create init IP's and run the IP's with different selection to different DSO(With same selection it is not possible).
2)Then you will have different delta queues for the same data source in RSA7
3)Your delta loads will run fine to different data sources from same DS in R3.
Hope this helps
Regards,
Venkatesh -
How to do Cost Cenetr Translation into Different fields
Hi Gurus,
I have a requirement wherein we need to translate Cost Centers and Cost element combinations to some specific values. And these values might chnage over a period of time for eg. CC-CE XYZ-123 goes to Process name ABC in 2011 but in 2012 the smae combination goes to Process DEF. How can I achieve it.
Important point- We cannot change the old data so in 2012 if someone wnats to run the report for this combination it should show process ABC only and not Process DEF?
Can anyone please suggest something.
Regards!You mean the user enters comma separated data into a single APEX item (let's say PXX_COLOR) and your report is built on a SQl statement like
SELECT ....
FROM MYTABLE
WHERE ((COLOUR1 = :PXXX_COLOR1)
AND (COLOUR2 = :PXX_COLOR2)
AND (COLOUR3 = :PXX_COLOR3)
AND ...)
where XX is your APEX page number?
If so, you need a PL/SQL procedure that splits the PXX_COLOR item at the commas into separate pieces and sets each of the PXX_COLOR fields in turn. I have a standard procedure I use for getting the nth delimited item from a string (get_token) - code can be found here, but it's easy to write your own.
Using the get_token function you'd have a PL/SQL process like:
DECLARE
l_color VARCHAR2(50);
l_index INTEGER := 1;
BEGIN
l_color := get_token(:PXX_COLOR,l_index);
WHILE (l_color IS NOT NULL)
LOOP
apex_util.set_session_state('PXX_COLOR' || TO_CHAR(l_index),l_color);
l_index := l_index + 1;
l_color := get_token(:PXX_COLOR,l_index);
END LOOP;
END;This sets each of the separate hidden APEX items which should then be available in the SQL WHERE clause when the page reloads.
Roger -
Facing problem in getting data in different field
hi,
i have made a report in ALV format. n the whole code is this..
TABLES: VBAK,vbap.
type-pools: slis. "ALV Declarations
SELECT-OPTIONS:
s_sales for vbak-kunnr obligatory,
s_date for VBAK-audat obligatory.
*Data Declaration
types: begin of s_sales,
kunnr like vbak-kunnr,
ernam like VBRP-ernam,
audat like VBAK-audat,
aufnr like VBAK-aufnr,
KBMENG like vbap-KWMENG,
matnr like vbap-matnr,
matwa like vbap-matkl,
end of s_sales.
DATA: IT_VBAKUK TYPE STANDARD TABLE OF s_sales INITIAL SIZE 0,
WA_sales TYPE s_sales.
*ALV data declarations.
data: fieldcatalog type slis_t_fieldcat_alv with header line,
gd_tab_group type slis_t_sp_group_alv,
gd_layout type slis_layout_alv,
gd_repid like sy-repid.
*start-of-selection.
START-OF-SELECTION.
perform data_retrieval.
perform build_fieldcatalog.
perform build_layout.
perform display_alv_report.
*& Form build_fieldcatalog
text
form build_fieldcatalog.
fieldcatalog-fieldname = 'KUNNR'.
fieldcatalog-seltext_m = 'Customer Code'.
fieldcatalog-col_pos = 1.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'ernam'.
fieldcatalog-seltext_m = 'Customer Name'.
fieldcatalog-col_pos = 2.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'stadat'.
fieldcatalog-seltext_m = 'Order Date'.
fieldcatalog-col_pos = 3.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'aufnr'.
fieldcatalog-seltext_m = 'Order No'.
fieldcatalog-col_pos = 4.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'KWMENG'.
fieldcatalog-seltext_m = 'Quantity'.
fieldcatalog-col_pos = 5.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'matnr'.
fieldcatalog-seltext_m = 'Material Code'.
fieldcatalog-col_pos = 6.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'matkl'.
fieldcatalog-seltext_m = 'Material Description'.
fieldcatalog-col_pos = 7.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
endform. "build_fieldcatalog
*& Form build_layout
text
form build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
endform. "build_layout
*& Form display_alv_report
text
form display_alv_report.
gd_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = gd_repid
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
i_save = 'X'
TABLES
t_outtab = IT_VBAKUK
EXCEPTIONS
program_error = 1
others = 2.
if sy-subrc <> 0.
endif.
endform. " DISPLAY_ALV_REPORT
*& Form data_retrieval
text
form data_retrieval.
select vbakkunnr VBakernam VBAkaudat vbakaufnr vbapKWMENG vbapmatnr vbap~matkl
up to 10 rows
from vbak inner join vbap on vbakvbeln = vbapvbeln
into table IT_VBAKUK.
endform. "data_retrieval
When a execute this query it get this result:
Customer code Customer No. Order Date *Order No. * *Quantity * Material code Material Description
0000001390 0000001390 0000001390 0000001390 0000001390 0000001390 0000001390
0000001175 0000001175 0000001175 0000001175 0000001175 0000001175 0000001175
0000001175 0000001175 0000001175 0000001175 0000001175 0000001175 0000001175
0000001175 0000001175 0000001175 0000001175 0000001175 0000001175 0000001175
0000001175 0000001175 0000001175 0000001175 0000001175 0000001175 0000001175
0000001001 0000001001 0000001001 0000001001 0000001001 0000001001 0000001001
0000002200 0000002200 0000002200 0000002200 0000002200 0000002200 0000002200
0000002200 0000002200 0000002200 0000002200 0000002200 0000002200 0000002200
0000002200 0000002200 0000002200 0000002200 0000002200 0000002200 0000002200
0000002200 0000002200 0000002200 0000002200 0000002200 0000002200 0000002200
You can see in all column data is repeating even tough i have given different field name...
Kindly give me solution of this problem.
Thanks n Regards.hi,
i have these field:
*select VBAK~KUNNR VBAK~ERNAM VBAK~AUDAT VBAK~AUFNR VBAP~KWMENG VBAP~MATNR VBAP~MATKL
up to 10 rows
from VBAK inner join VBAP on VBAK~VBELN = VBAP~VBELN
into table IT_VBAKUK.
endform.*
I want to add these field in my parameter by using WHERE clause but don't know how to restrict these field using where clause.
Kindly give me some example related to this.
Regards -
Splitting date into year and month
Hi,
I am getting it_final-bedat (dd.mm.yyyy).I need to split month as well as year in separate fields
in the internal table.tell some ideas.hi badri , try this program , hope this is u r requirement
data : BEGIN OF itab OCCURS 0 ,
pernr like pa0001-pernr,
begda like pa0002-begda,
END OF itab .
data : BEGIN OF itab2 OCCURS 0 ,
pernr like pa0001-pernr,
d_date type c LENGTH 2 ,
d_month type c length 2,
d_year type c length 4 ,
END OF itab2 .
select pernr begda from pa0001 into CORRESPONDING FIELDS OF TABLE itab WHERE pernr eq 1000.
loop at itab WHERE pernr eq 1000 .
clear itab2[].
itab2-pernr = itab-pernr.
itab2-d_year = itab-begda+0(4).
itab2-d_month = itab-begda+4(2).
itab2-d_date = itab-begda+6(2).
append itab2.
write :/ itab2-pernr,
itab2-d_date,
itab2-d_month,
itab2-d_year.
endloop .
regards
chinnaiya
Maybe you are looking for
-
Does anyone can tell me how to program Javacard Step-by-step....and what tools we can use to program it. thanks...
-
Photo quality horrible due to dissolve transition
Hi, I am making a slideshow in Imovie for my son's baseball team. The pics I've shot are all super high resolution, but I inserted dissolve transitions between them and now the pictures are no longer sharp and have digitized edges. They looked great
-
Exchange / ActiveSync - Works for a day or so, then stops
I've had my iPhone 3G since launch and have configured it to work with my Exchange 2003 server utilizing activesync at work. It will connect and sync fine for a day or so, however then it will start giving me a "cannot get mail" "cannot connect to se
-
List component with suboptions
Is it possile to have a List component in Flash CS5-AS3 that has options and suboptions (and even sub-suboptions)-sort of like a vertical menu? I've searched here in the fourm but have not found any info on this. Any sample site or tutorial? Thanx
-
How to get music from someone else's itunes library onto your
How to get music from someone else's itunes library onto your