on 05-20-2011 9:01 PM
Hi,
I need to transposing row into columns, means 1row into 20 column i created generic data source and WO DSO and map the field. for Key Figure i'm using the formula IF( /BIC/ZATNAM = 'Z_COB', /BIC/ZATF, 0 ).
formula works fine but transformation creates multiple records instead of 1 records.
Please help me to fix this problem.
Thanks,
Pria.
Hi Pria,
Can you please elaborate? You have a datasource and you have one WO DSO.
You want 1 row into 20 columns? Do you mean Derive 20 Key figure values from 1 Characteristic value?
Also, WO DSO will have same number of records as in underlying datasource. (as Record number, Request number are keys). Maybe that is issue. Try Standard DSO.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Understood.
1. Use a standard DSO. With 'Mat_Doc_No' as key. So that you will have one line.
2. Merely writing if condition will suffice. This is peculiar case but we cant do NO UPDATE (RETURNCODE = 4) in the ABAP routine in BI 7.
whats happens, from source you get first record of Z_COB, you populate 123 while all others are blank.
in second record, Z_CAB will be populated but all other blank, even Z_COB will be overwritten.
So on.
Mat_Doc_num Z_COB Z_CAB Z_CAT Z-CAD
0111 # # # 765
Always last one will be loaded overwriting previous values.
So you will have to take all records in an internal table in Start Routine and read them in the update routine or end routine.
Also, if this is delta update, then you will have to append the previously loaded records for the Mat_Doc in DSO.
We had a similar requirement, but we used Rule Groups.. Its a good option, but needs some patience to work on creating mutliple rule groups for the same infoobject.. I'd would also suggest you to check use of ABAP for such backjobs, you can populate the feilds into an itab in an end-routine using the loop.... endloop statements & assign each element in column this to one particular tuple using append statement. Prior to this you must create a cube with fields >= # of rows for each line item
Hi Priya,
Will you please paste the logic or expert routine you had used for this requirement.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Simply use an end routine:
LOOP AT RESULT_PACKAGE ASSIGNING <RESULT_FIELDS>.
COLLECT <RESULT_FIELDS> INTO l_t_result.
ENDLOOP.
RESULT_PACKAGE[] = l_t_result[].
Edit: An expert routine only is easier if you don't need to do any error handling.
Edited by: Dirk Herzog on May 24, 2011 10:01 AM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
95 | |
11 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.