Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Move-corresponding not working runtime error: object not suporeted

Former Member
0 Likes
2,192


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.


1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,796

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.

11 REPLIES 11
Read only

Former Member
0 Likes
1,796

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

Read only

RaymondGiuseppi
Active Contributor
0 Likes
1,796

With dynamic definition, I fear that you cannot always use MOVE-CORRESPONDING, try to ASSIGN COMPONENTs of either structure and MOVE them one by one.

Regards,

Raymond

Read only

Former Member
0 Likes
1,796

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

Read only

Former Member
0 Likes
1,797

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.

Read only

0 Likes
1,796

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

Read only

Former Member
0 Likes
1,796

Check if your field symbol is assigned. It should work fine then, you can use move corresponding with field symbols.

Thank You

Read only

Former Member
0 Likes
1,796

Hi,

Instead of using move-corresponding, try with directly field to field assignment.move corresponding will kills the performance.

Thanks

Pavan.

Read only

0 Likes
1,796

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

Data objects in Unicode programs cannot be converted

Read only

0 Likes
1,796

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

Read only

0 Likes
1,796

Hi Srithar,

How have you declared <FS_ACCOUNT> correctly? It seems like the fields are getting over-written. Please check your code and declaration

Read only

0 Likes
1,796

*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>.