‎2013 Mar 05 12:08 PM
Hi gurus,
my gt_codb_final table having 10 fields my <ft_account> having 10 fields + my dynamic fields like 13 or 14 whatvr when i tried to using MOVE-CORRESPONDING GS_COSB_FINAL TO <FS_ACCOUNT>. i am getting runtime errr can anyone pls sudgest me any logics.thx in advance...
* LOOP AT GT_COSB_FINAL INTO GS_COSB_FINAL.
* MOVE-CORRESPONDING GS_COSB_FINAL TO <FS_ACCOUNT>.
* APPEND <FS_ACCOUNT> TO <FT_ACCOUNT>.
* ENDLOOP.
‎2013 Mar 05 2:04 PM
HI srithar,
you can try the below code .
* MOVE-CORRESPONDING GS_COSB_FINAL TO GS_COSB_FINAL_1.
* ASSIGN GS_COSB_FINAL_1 TO <FS_ACCOUNT>.
Thanks.
Srilatha.
‎2013 Mar 05 12:42 PM
Hi,
You cannot use Move-corresponding with FIELD-SYMBOLS but you can assign the whole structure by ASSIGN wa_struct TO <fs_struct>
OR
you can assign component wise ASSIGN COMPONENT sy-index OF STRUCTURE <fs_struct> TO <fs_comp>.
Hope this helps.
Thanks,
Tooshar Bendale
‎2013 Mar 05 1:14 PM
‎2013 Mar 05 1:17 PM
Hi Srithar,
It looks like field symbol <FS_ACCOUNT> is not assigned when you are trying to do MOVE-CORRESPONDING inside the loop. The possible solution is to assign the field symbol before entering the loop. The code may look something like,
CLEAR work_area.
ASSIGN [work_area] TO <FS_ACCOUNT>
Where work_area contains all the fields (some 14 fields you mentioned).
Hope this helps,
~Athreya
‎2013 Mar 05 2:04 PM
HI srithar,
you can try the below code .
* MOVE-CORRESPONDING GS_COSB_FINAL TO GS_COSB_FINAL_1.
* ASSIGN GS_COSB_FINAL_1 TO <FS_ACCOUNT>.
Thanks.
Srilatha.
‎2013 Mar 05 2:50 PM
thx latha i tried ur way bt when i try to append
APPEND <FS_ACCOUNT> TO <FT_ACCOUNT> i got runtime err:(
Runtime Errors UC_OBJECTS_NOT_CONVERTIBLE
error anlysis :Use only convertible operands "dst" and "src" for the statement
"MOVE src TO dst"
let me come to the point...
1 so my <ft_account>is having ,typ_cosp_final fielsds(10 fields constand) + dynamic fields(infinity) ..
so my <ft_account> it could be 20 ,30, 40 fields ....infinity
2, my gt_cosb_final table is here my final table my idea is here i want to move gt_cosb_final to my field symbol table <ft_account> i mean i wanna fill it up first 10 fields after once i fill the <ft_account>
3,after that i can play with dynamic fields.
DATA : GS_COSB_FINAL_1 TYPE TYP_COSB_FINAL.
Loop at GT_COSB_FINAL into GS_COSB_FINAL.
MOVE-CORRESPONDING GS_COSB_FINAL TO GS_COSB_FINAL_1.
ASSIGN GS_COSB_FINAL_1 TO <FS_ACCOUNT>.
APPEND <FS_ACCOUNT> TO <FT_ACCOUNT>.------> UC_OBJECTS_NOT_CONVERTIBLE
ENDLOOP.
pls sudgest some logic
‎2013 Mar 06 4:22 AM
Check if your field symbol is assigned. It should work fine then, you can use move corresponding with field symbols.
Thank You
‎2013 Mar 06 4:35 AM
Hi,
Instead of using move-corresponding, try with directly field to field assignment.move corresponding will kills the performance.
Thanks
Pavan.
‎2013 Mar 06 7:38 AM
Loop at GT_COSB_FINAL into GS_COSB_FINAL.
MOVE-CORRESPONDING GS_COSB_FINAL TO GS_COSB_FINAL_1.
ASSIGN GS_COSB_FINAL_1-OBJNR TO <fS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-GJAHR TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT51 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT51 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT52 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT53 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT54 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT55 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT56 TO <FS_ACCOUNT>.
APPEND <FS_ACCOUNT> TO <FT_ACCOUNT>.
when i tried with only passing objct number it was working when itried to append with objnr and other fields i am getting dumb..UC_OBJECTS_NOT_CONVERTIBLE
‎2013 Mar 06 7:50 AM
Hi Srithar,
Please check it whether you had declared both the internal table and work area with the same structure or not..else please post the code here ..
Thanks.
Pavan
‎2013 Mar 06 7:50 AM
Hi Srithar,
How have you declared <FS_ACCOUNT> correctly? It seems like the fields are getting over-written. Please check your code and declaration
‎2013 Mar 06 8:05 AM
*field symbol declaration
FIELD-SYMBOLS: <FT_ACCOUNT> TYPE STANDARD TABLE,
<FS_ACCOUNT>, "type TYP_COSB_FINAL,
<FD_ACCOUNT>,
GT_COSB_FINAL TYPE STANDARD TABLE OF TYP_COSB_FINAL,
GT_COEP TYPE STANDARD TABLE OF TYP_COEP,
*Making fcat dynamicaly.
REF_TABLE_DES ?=
CL_ABAP_TYPEDESCR=>DESCRIBE_BY_NAME('TYP_COSB_FINAL').
I_ACCOUNT_DETAILS[] = REF_TABLE_DES->COMPONENTS[].
LOOP AT I_ACCOUNT_DETAILS INTO W_ACCOUNT_DETAILS.
IF SY-SUBRC = 0.
GS_FCAT_ACCOUNT-FIELDNAME = W_ACCOUNT_DETAILS-NAME.
GS_FCAT_ACCOUNT-DATATYPE = W_ACCOUNT_DETAILS-TYPE_KIND.
CASE W_ACCOUNT_DETAILS-TYPE_KIND.
WHEN 'C'.
GS_FCAT_ACCOUNT-DATATYPE = 'CHAR'.
WHEN 'N'.
GS_FCAT_ACCOUNT-DATATYPE = 'NUMC'.
WHEN 'D'.
GS_FCAT_ACCOUNT-DATATYPE = 'DATE'.
WHEN 'P'.
GS_FCAT_ACCOUNT-DATATYPE = 'PACK'.
WHEN OTHERS.
GS_FCAT_ACCOUNT-DATATYPE = W_ACCOUNT_DETAILS-TYPE_KIND.
ENDCASE.
GS_FCAT_ACCOUNT-INTTYPE = W_ACCOUNT_DETAILS-TYPE_KIND.
GS_FCAT_ACCOUNT-INTLEN = W_ACCOUNT_DETAILS-LENGTH.
GS_FCAT_ACCOUNT-DECIMALS = W_ACCOUNT_DETAILS-DECIMALS.
GS_FCAT_ACCOUNT-SCRTEXT_M = W_ACCOUNT_DETAILS-NAME.
GS_FCAT_ACCOUNT-EDIT = 'X'.
APPEND GS_FCAT_ACCOUNT TO GT_FCAT_ACCOUNT .
CLEAR :GS_FCAT_ACCOUNT.
ENDIF.
ENDLOOP.
Loop at GT_COSB_FINAL into GS_COSB_FINAL.
MOVE-CORRESPONDING GS_COSB_FINAL TO GS_COSB_FINAL_1.
ASSIGN GS_COSB_FINAL_1-OBJNR TO <fS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-GJAHR TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT51 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT51 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT52 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT53 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT54 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT55 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT56 TO <FS_ACCOUNT>.
APPEND <FS_ACCOUNT> TO <FT_ACCOUNT>.
LOOP AT T_FCAT INTO FS_FCAT.
IF SY-SUBRC = 0.
GS_FCAT_ACCOUNT-FIELDNAME = FS_FCAT-FIELDNAME.
GS_FCAT_ACCOUNT-DATATYPE = FS_FCAT-DATATYPE.
CASE GS_FCAT_ACCOUNT-DATATYPE.
WHEN 'C'.
GS_FCAT_ACCOUNT-DATATYPE = 'CHAR'.
WHEN 'N'.
GS_FCAT_ACCOUNT-DATATYPE = 'NUMC'.
WHEN 'D'.
GS_FCAT_ACCOUNT-DATATYPE = 'DATE'.
WHEN 'P'.
GS_FCAT_ACCOUNT-DATATYPE = 'PACK'.
WHEN OTHERS.
GS_FCAT_ACCOUNT-DATATYPE = FS_FCAT-DATATYPE.
ENDCASE.
GS_FCAT_ACCOUNT-INTTYPE = FS_FCAT-INTTYPE.
GS_FCAT_ACCOUNT-INTLEN = FS_FCAT-INTLEN.
GS_FCAT_ACCOUNT-DECIMALS = FS_FCAT-DECIMALS.
GS_FCAT_ACCOUNT-SCRTEXT_M = FS_FCAT-SCRTEXT_M.
APPEND GS_FCAT_ACCOUNT TO GT_FCAT_ACCOUNT.
ENDIF.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM GT_FCAT_ACCOUNT COMPARING ALL FIELDS.
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = GT_FCAT_ACCOUNT
IMPORTING
EP_TABLE = T_ITAB
EXCEPTIONS
GENERATE_SUBPOOL_DIR_FULL = 1
OTHERS = 2.
ASSIGN T_ITAB->* TO <FT_ACCOUNT>.
CREATE DATA T_ITAB LIKE LINE OF <FT_ACCOUNT>.
ASSIGN T_ITAB->* TO <FS_LINE>.
Loop at GT_COSB_FINAL into GS_COSB_FINAL.
MOVE-CORRESPONDING GS_COSB_FINAL TO GS_COSB_FINAL_1.
ASSIGN GS_COSB_FINAL_1-OBJNR TO <fS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-GJAHR TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT51 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT51 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT52 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT53 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT54 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT55 TO <FS_ACCOUNT>.
ASSIGN GS_COSB_FINAL_1-ABKAT56 TO <FS_ACCOUNT>.
APPEND <FS_ACCOUNT> TO <FT_ACCOUNT>.