Application Development 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: 

Badi FAGL_MIG_ADJ_ACCIT

Former Member
0 Kudos

Hi expert,

i have issue in new implementation FAGL_MIG_ADJ_ACCIT.

in this badi i want to change segment according to Bukrs and gsber .

in IT_ACCIT_EX table this are available but i am getting error to read this table.

i want to read ACCIT str filed of this table.

1 ACCEPTED SOLUTION

former_member188827
Active Contributor
0 Kudos

Please share your code along with error you are getting.

Regards

Mehwish

7 REPLIES 7

former_member188827
Active Contributor
0 Kudos

Please share your code along with error you are getting.

Regards

Mehwish

0 Kudos

method IF_EX_FAGL_MIG_ADJ_ACCIT~ADJUST_ACCIT.

     BREAK-POINT.

   data: lv_segment type zsub_pcseg-segment.

    DATA: wa_accit_asgmt TYPE FAGL_S_MIG_BADI_ASGMT.

     data : wa_ACCIT_EX  type IT_ACCIT_EX.

 

loop at IT_ACCIT_EX into wa_ACCIT_EX.

    select single segment

           from ZSUB_PCSEG into lv_segment

   where bukrs = wa_ACCIT_EX-BUKRS and gsber = wa_ACCIT_EX-gsber.


READ TABLE CT_ACCIT_ASGMT INTO wa_accit_asgmt with key posnr = wa_ACCIT_EX-posnr

                                                                                                           gsber = wa_ACCIT_EX-gsber.  

if sy-subrc = 0.

    wa_accit_asgmt-SEGMENT = lv_segment.

     clear lv_segment.

    MODIFY CT_ACCIT_ASGMT FROM wa_accit_asgmt.

    ENDLOOP.

0 Kudos

hi Suresh,

Try with below code :-


method IF_EX_FAGL_MIG_ADJ_ACCIT~ADJUST_ACCIT.

     BREAK-POINT.

   data: lv_segment type zsub_pcseg-segment.

    DATA: wa_accit_asgmt TYPE FAGL_S_MIG_BADI_ASGMT.

     data : wa_ACCIT_EX  type IT_ACCIT_EX.

loop at IT_ACCIT_EX into wa_ACCIT_EX.

    select single segment

           from ZSUB_PCSEG into lv_segment

   where bukrs = wa_ACCIT_EX-accit-BUKRS and gsber = wa_ACCIT_EX-accit-gsber.


READ TABLE CT_ACCIT_ASGMT INTO wa_accit_asgmt with key

                       posnr = wa_ACCIT_EX-accit-posnr

                        gsber = wa_ACCIT_EX-accit-gsber.  

if sy-subrc = 0.

    wa_accit_asgmt-SEGMENT = lv_segment.

     clear lv_segment.

    MODIFY CT_ACCIT_ASGMT FROM wa_accit_asgmt.

endif.

    ENDLOOP.

endmethod.

thanks

-Learner

0 Kudos

i have already try this code but there is error

0 Kudos

Hi,

Try,

FIELD-SYMBOLS:

                <fs_accit> TYPE ANY,

                <fval>     TYPE ANY,

                <fs_ct_accit> LIKE LINE OF CT_ACCIT_ASGMT.

loop at it_accit_ex ASSIGNING <fs_accit>.

ASSIGN COMPONENT 'GSBER'  OF STRUCTURE <fs_Accit> to <fval>.

IF <fval> IS ASSIGNED.

     select single segment

            from ZSUB_PCSEG into lv_segment

    where bukrs = wa_ACCIT_EX-BUKRS and gsber = <fval>.

READ TABLE CT_ACCIT_ASGMT ASSIGNING <fs_ct_accit> with key gsber = <fval>.

                                                           

IF  sy-subrc IS INITIAL.

     <fs_ct_accit>-SEGMENT = lv_segment

  

ENDIF

ENDIF.

ENDLOOP.


Hope it helpful,


Regards,

Venkat.

0 Kudos

Hi Suresh,


Comment Below :

*data : wa_ACCIT_EX  type IT_ACCIT_EX.


Replace with

data : wa_ACCIT_EX  like line of IT_ACCIT_EX.


Thanks

-Learner

Former Member
0 Kudos

Hi

The import paramter IT_ACCIT_EX is defined like GLT0_ACCIT_EX_TAB: it's a type table based on structure glt0_accit_ex

so your workarea has to be defined like glt0_accit_ex

GLT0_ACCIT_EX_TAB and glt0_accit_ex belong to type pool GLT0, so



data : wa_ACCIT_EX  type glt0_accit_ex.



Max