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: 

overwriting of GRIR Clearing account in ML8N

0 Kudos

Dear Friends

Greetings...

We are implementing EXIT_SAPLFMR4_002 in ML81N T-Code  to overwrite GRIR Clearing account while saving service entry sheet.

I am facing the below issue

1. While posting Serive Entry Sheet in ML81N, program is skipping few of service lines without updating GRIR. As per our parameters used, program is

not able consider all the service lines for GRIR update while posting accounting document in background. Here is the example

1. Service entry sheet is having   8 lines in the document

2. While saving service entry sheet, program will overwrite the GRIR clearing account as per our logic and post the accounting document correctly for 6 lines . But it will skip 2 lines. for these two lines there are no any GRIR clearing account entry in accounting document.

Strange issue is that system is completely ignoring these two lines. Sometimes 3 lines and sometime 4 lines are skipping .

If anyone of you have gone through the same requirement please let me know , how it has been achieved.

Thanks

Mahendra.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi Mahendar,

Plz check the corrected code for diz.

IF sy-tcode EQ 'ML81N'.

  data gv_lblni1 type essr-LBLNI.

*    EXIT. " Commented by Mahendra Kumar Pawar Bcone

   IMPORT gv_lblni to gv_lblni1 FROM  MEMORY ID 'SNO'.

   TYPES : BEGIN OF ty_ekbe,

       belnr TYPE ekbe-belnr,

       END OF ty_ekbe.

   TYPES : BEGIN OF ty_esll,

           srvpos TYPE esll-srvpos,

           END OF ty_esll.

   DATA: lt_ekbe TYPE STANDARD TABLE OF ty_ekbe,

         ls_ekbe TYPE ty_ekbe,

         lv_packno TYPE essr-packno,

         lv_sub_packno TYPE esll-sub_packno,

         lt_esll TYPE STANDARD TABLE OF ty_esll,

         ls_esll TYPE ty_esll,

         lv_bklas TYPE asmd-bklas,

         lv_konth TYPE t030-konth,

         lv_tabix TYPE sy-tabix,

         lv_lifnr TYPE ekko-lifnr,

         lv_ktokk TYPE lfa1-ktokk,

         lv_land1 TYPE lfa1-land1,

         lv_zzabacus TYPE lfa1-zzabacus,

         lv_spart TYPE zcogl_dept-spart,

         lv_spart1 TYPE zcogl_dept-spart,

         lv_gsber TYPE zcogl_dept-gsber,

         lv_gsber1 TYPE zcogl_dept-gsber,

         lv_zzprctr TYPE t001w-zzprctr,

         lv_werks TYPE ekpo-werks,

         lv_abtei TYPE cepc-abtei,

         lv_bukrs TYPE ekpo-bukrs,

         lv_index TYPE i VALUE '0',

         lv_belnr TYPE ekbe-belnr.

   LOOP AT t_accit INTO gs_accit WHERE ktosl = 'WRX'.

     IF  gs_accit-bukrs CP 'MY*'.

       lv_index = lv_index + 1.

       lv_tabix = sy-tabix.

       SELECT SINGLE lifnr FROM ekko INTO lv_lifnr WHERE ebeln EQ gs_accit-ebeln.

       SELECT SINGLE werks bukrs FROM ekpo INTO (lv_werks , lv_bukrs) WHERE ebeln EQ gs_accit-ebeln AND

                   ebelp EQ gs_accit-ebelp.

       SELECT SINGLE ktokk FROM lfa1 INTO lv_ktokk WHERE lifnr EQ lv_lifnr.

*      SELECT SINGLE belnr  FROM ekbe INTO  lv_belnr  WHERE

*          belnr EQ gv_lblni1.

*          AND vgabe EQ '9'.

*      IF lt_ekbe[] IS NOT INITIAL.

*        LOOP AT lt_ekbe INTO ls_ekbe.

           SELECT SINGLE packno FROM essr INTO lv_packno WHERE

             lblni EQ gv_lblni1.

           IF lv_packno NE ''.

             SELECT SINGLE sub_packno FROM esll INTO lv_sub_packno WHERE

               packno EQ lv_packno.

             IF lv_sub_packno NE ''.

               SELECT srvpos FROM esll INTO TABLE lt_esll WHERE

                 packno EQ lv_sub_packno.

               DELETE ADJACENT DUPLICATES FROM lt_esll COMPARING srvpos.

*              delete lt_esll WHERE srvpos EQ ''.

               IF lt_esll[] IS NOT INITIAL.

*                   LOOP AT lt_esll into ls_esll WHERE sy-index EQ lv_index.

                 READ TABLE lt_esll INDEX lv_index INTO ls_esll.

                 "------------------------------------------------------------------------------------------------------

*                "Begin of change by uday on 6.02.2014.

*                if ls_esll-srvpos is INITIAL.

*                  IF lv_ktokk NE '1500' And lv_ktokk NE '1600' and lv_ktokk NE '1800'.

*                    SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

*                      bklas EQ lv_bklas AND ktopl EQ 'SAS1'

*                      AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ '' and bklas EQ ''.

*                      gs_accit-hkont = lv_konth.

*                      MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                 ""------------------------------------------------------------------------------------------------------

                 SELECT SINGLE bklas FROM asmd INTO lv_bklas

                  WHERE asnum EQ ls_esll-srvpos.

                 IF lv_bklas EQ '7004' OR lv_bklas EQ '7009' OR lv_bklas EQ '7010' OR lv_bklas EQ '7011' OR

                   lv_bklas EQ '7013' OR lv_bklas EQ '7014' OR lv_bklas EQ '7038' OR lv_bklas EQ '7039' OR lv_bklas EQ '7057'

                   OR lv_bklas EQ '7065' OR lv_bklas EQ '7102' OR lv_bklas EQ '7061' OR lv_bklas EQ ' '.

                   IF lv_ktokk NE '1500' And lv_ktokk NE '1600' and lv_ktokk NE '1800'.

                     SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                       bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                       AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ ''.

                     IF lv_konth NE ''.

                       gs_accit-hkont = lv_konth.

                       MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                       CLEAR : lv_konth , lv_bklas,lv_tabix.

*                      EXIT.

                     ENDIF.

                   ELSEIF lv_ktokk EQ '1500'  OR lv_ktokk EQ '1800'.

                     SELECT SINGLE land1 zzabacus FROM lfa1 INTO (lv_land1  , lv_zzabacus) WHERE

                       lifnr EQ lv_lifnr.

                       ""---------------------------------------------------------------------------------------------

                       SELECT SINGLE gsber FROM zcogl_dept INTO  lv_gsber

                         WHERE abtei EQ lv_zzabacus.

                       SELECT SINGLE zzprctr FROM t001w INTO lv_zzprctr WHERE werks EQ lv_werks.

                       SELECT SINGLE abtei FROM cepc INTO lv_abtei WHERE prctr EQ lv_zzprctr.

                       CLEAR lv_zzprctr.

                       SELECT SINGLE gsber FROM zcogl_dept INTO lv_gsber1

                         WHERE abtei EQ lv_abtei.

                     IF lv_zzabacus NE'' AND lv_land1 EQ 'MY'.

*                      SELECT SINGLE gsber FROM zcogl_dept INTO  lv_gsber

*                        WHERE abtei EQ lv_zzabacus.

*

*                      SELECT SINGLE zzprctr FROM t001w INTO lv_zzprctr WHERE werks EQ lv_werks.

*

*                      SELECT SINGLE abtei FROM cepc INTO lv_abtei WHERE prctr EQ lv_zzprctr.

*                      CLEAR lv_zzprctr.

*                      SELECT SINGLE gsber FROM zcogl_dept INTO lv_gsber1

*                        WHERE abtei EQ lv_abtei.

                       IF lv_gsber EQ lv_gsber1.

                         SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                             bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                             AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ 'ZHS'.

                         IF lv_konth NE ''.

                           gs_accit-hkont = lv_konth.

                           MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                           CLEAR : lv_konth , lv_bklas,lv_tabix.

*                          EXIT.

                         ENDIF.

                       ELSEIF lv_gsber NE lv_gsber1.

                         SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                             bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                             AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ 'ZHO'.

                         IF lv_konth NE ''.

                           gs_accit-hkont = lv_konth.

                           MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                           CLEAR : lv_konth , lv_bklas,lv_tabix.

*                          EXIT.

                         ENDIF.

                       ENDIF.

                     ELSEIF lv_land1 NE 'MY'.

                       IF lv_gsber EQ lv_gsber1.

                         SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                             bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                             AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ 'ZFS'.

                         IF lv_konth NE ''.

                           gs_accit-hkont = lv_konth.

                           MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                           CLEAR : lv_konth , lv_bklas,lv_tabix.

*                          EXIT.

                         ENDIF.

                       ELSEIF lv_gsber NE lv_gsber1.

                         SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                             bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                             AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ 'ZFO'.

                         IF lv_konth NE ''.

                           gs_accit-hkont = lv_konth.

                           MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                           CLEAR : lv_konth , lv_bklas,lv_tabix.

*                          EXIT.

                         ENDIF.

                       ENDIF.

                     ENDIF.

                   ELSEIF lv_ktokk EQ '1600'.

                     CLEAR : lv_abtei , lv_zzprctr ,lv_zzabacus .

                     SELECT SINGLE zzabacus FROM lfa1 INTO  lv_zzabacus WHERE

                    lifnr EQ lv_lifnr.

                     IF lv_zzabacus NE''.

                       SELECT SINGLE spart gsber FROM zcogl_dept INTO  (lv_spart , lv_gsber)

                         WHERE abtei EQ lv_zzabacus.

                     ENDIF.

                     SELECT SINGLE zzprctr FROM t001w INTO lv_zzprctr WHERE werks EQ lv_werks.

                     SELECT SINGLE abtei FROM cepc INTO lv_abtei WHERE prctr EQ lv_zzprctr.

                     CLEAR lv_zzprctr.

                     SELECT SINGLE spart gsber FROM zcogl_dept INTO (lv_spart1 , lv_gsber1)

                 WHERE abtei EQ lv_abtei.

                     IF lv_spart NE lv_spart1.

                       SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                              bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                              AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ 'ZID'.

                       IF lv_konth NE ''.

                         gs_accit-hkont = lv_konth.

                         MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                         CLEAR : lv_konth , lv_bklas,lv_tabix.

*                        EXIT.

                       ENDIF.

                     ELSE.

                       IF lv_gsber EQ lv_gsber1.

                         SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                              bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                              AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ 'ZIS'.

                         IF lv_konth NE ''.

                           gs_accit-hkont = lv_konth.

                           MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                           CLEAR : lv_konth , lv_bklas,lv_tabix.

*                          EXIT.

                         ENDIF.

                       ELSE.

                         SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                               bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                               AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ 'ZIO'.

                         IF lv_konth NE ''.

                           gs_accit-hkont = lv_konth.

                           MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                           CLEAR : lv_konth , lv_bklas,lv_tabix.

*                          EXIT.

                         ENDIF.

                       ENDIF.

                     ENDIF.

                   ENDIF. " addition of logic further to ktokk

                 ENDIF.

                 if ls_esll-srvpos is INITIAL.

                    DELETE lt_esll where srvpos = ' '.

                    else .

                 DELETE lt_esll FROM ls_esll.

                 endif.

                 CLEAR ls_esll.

               ENDIF.

*                   ENDLOOP. "lt_esll loop

             ENDIF.

           ENDIF.

           CLEAR : lv_sub_packno.

*       ENDIF.

           CLEAR : lv_packno.

*          CLEAR: ls_ekbe.

*        ENDLOOP. Commented ekbe loop

*      ENDIF. " Commented ekbe loop

     ENDIF.

   ENDLOOP.

   CLEAR lv_index.

   REFRESH : lt_ekbe , lt_esll.

ENDIF.

Cheers ,

Uday.

1 REPLY 1

Former Member
0 Kudos

Hi Mahendar,

Plz check the corrected code for diz.

IF sy-tcode EQ 'ML81N'.

  data gv_lblni1 type essr-LBLNI.

*    EXIT. " Commented by Mahendra Kumar Pawar Bcone

   IMPORT gv_lblni to gv_lblni1 FROM  MEMORY ID 'SNO'.

   TYPES : BEGIN OF ty_ekbe,

       belnr TYPE ekbe-belnr,

       END OF ty_ekbe.

   TYPES : BEGIN OF ty_esll,

           srvpos TYPE esll-srvpos,

           END OF ty_esll.

   DATA: lt_ekbe TYPE STANDARD TABLE OF ty_ekbe,

         ls_ekbe TYPE ty_ekbe,

         lv_packno TYPE essr-packno,

         lv_sub_packno TYPE esll-sub_packno,

         lt_esll TYPE STANDARD TABLE OF ty_esll,

         ls_esll TYPE ty_esll,

         lv_bklas TYPE asmd-bklas,

         lv_konth TYPE t030-konth,

         lv_tabix TYPE sy-tabix,

         lv_lifnr TYPE ekko-lifnr,

         lv_ktokk TYPE lfa1-ktokk,

         lv_land1 TYPE lfa1-land1,

         lv_zzabacus TYPE lfa1-zzabacus,

         lv_spart TYPE zcogl_dept-spart,

         lv_spart1 TYPE zcogl_dept-spart,

         lv_gsber TYPE zcogl_dept-gsber,

         lv_gsber1 TYPE zcogl_dept-gsber,

         lv_zzprctr TYPE t001w-zzprctr,

         lv_werks TYPE ekpo-werks,

         lv_abtei TYPE cepc-abtei,

         lv_bukrs TYPE ekpo-bukrs,

         lv_index TYPE i VALUE '0',

         lv_belnr TYPE ekbe-belnr.

   LOOP AT t_accit INTO gs_accit WHERE ktosl = 'WRX'.

     IF  gs_accit-bukrs CP 'MY*'.

       lv_index = lv_index + 1.

       lv_tabix = sy-tabix.

       SELECT SINGLE lifnr FROM ekko INTO lv_lifnr WHERE ebeln EQ gs_accit-ebeln.

       SELECT SINGLE werks bukrs FROM ekpo INTO (lv_werks , lv_bukrs) WHERE ebeln EQ gs_accit-ebeln AND

                   ebelp EQ gs_accit-ebelp.

       SELECT SINGLE ktokk FROM lfa1 INTO lv_ktokk WHERE lifnr EQ lv_lifnr.

*      SELECT SINGLE belnr  FROM ekbe INTO  lv_belnr  WHERE

*          belnr EQ gv_lblni1.

*          AND vgabe EQ '9'.

*      IF lt_ekbe[] IS NOT INITIAL.

*        LOOP AT lt_ekbe INTO ls_ekbe.

           SELECT SINGLE packno FROM essr INTO lv_packno WHERE

             lblni EQ gv_lblni1.

           IF lv_packno NE ''.

             SELECT SINGLE sub_packno FROM esll INTO lv_sub_packno WHERE

               packno EQ lv_packno.

             IF lv_sub_packno NE ''.

               SELECT srvpos FROM esll INTO TABLE lt_esll WHERE

                 packno EQ lv_sub_packno.

               DELETE ADJACENT DUPLICATES FROM lt_esll COMPARING srvpos.

*              delete lt_esll WHERE srvpos EQ ''.

               IF lt_esll[] IS NOT INITIAL.

*                   LOOP AT lt_esll into ls_esll WHERE sy-index EQ lv_index.

                 READ TABLE lt_esll INDEX lv_index INTO ls_esll.

                 "------------------------------------------------------------------------------------------------------

*                "Begin of change by uday on 6.02.2014.

*                if ls_esll-srvpos is INITIAL.

*                  IF lv_ktokk NE '1500' And lv_ktokk NE '1600' and lv_ktokk NE '1800'.

*                    SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

*                      bklas EQ lv_bklas AND ktopl EQ 'SAS1'

*                      AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ '' and bklas EQ ''.

*                      gs_accit-hkont = lv_konth.

*                      MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                 ""------------------------------------------------------------------------------------------------------

                 SELECT SINGLE bklas FROM asmd INTO lv_bklas

                  WHERE asnum EQ ls_esll-srvpos.

                 IF lv_bklas EQ '7004' OR lv_bklas EQ '7009' OR lv_bklas EQ '7010' OR lv_bklas EQ '7011' OR

                   lv_bklas EQ '7013' OR lv_bklas EQ '7014' OR lv_bklas EQ '7038' OR lv_bklas EQ '7039' OR lv_bklas EQ '7057'

                   OR lv_bklas EQ '7065' OR lv_bklas EQ '7102' OR lv_bklas EQ '7061' OR lv_bklas EQ ' '.

                   IF lv_ktokk NE '1500' And lv_ktokk NE '1600' and lv_ktokk NE '1800'.

                     SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                       bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                       AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ ''.

                     IF lv_konth NE ''.

                       gs_accit-hkont = lv_konth.

                       MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                       CLEAR : lv_konth , lv_bklas,lv_tabix.

*                      EXIT.

                     ENDIF.

                   ELSEIF lv_ktokk EQ '1500'  OR lv_ktokk EQ '1800'.

                     SELECT SINGLE land1 zzabacus FROM lfa1 INTO (lv_land1  , lv_zzabacus) WHERE

                       lifnr EQ lv_lifnr.

                       ""---------------------------------------------------------------------------------------------

                       SELECT SINGLE gsber FROM zcogl_dept INTO  lv_gsber

                         WHERE abtei EQ lv_zzabacus.

                       SELECT SINGLE zzprctr FROM t001w INTO lv_zzprctr WHERE werks EQ lv_werks.

                       SELECT SINGLE abtei FROM cepc INTO lv_abtei WHERE prctr EQ lv_zzprctr.

                       CLEAR lv_zzprctr.

                       SELECT SINGLE gsber FROM zcogl_dept INTO lv_gsber1

                         WHERE abtei EQ lv_abtei.

                     IF lv_zzabacus NE'' AND lv_land1 EQ 'MY'.

*                      SELECT SINGLE gsber FROM zcogl_dept INTO  lv_gsber

*                        WHERE abtei EQ lv_zzabacus.

*

*                      SELECT SINGLE zzprctr FROM t001w INTO lv_zzprctr WHERE werks EQ lv_werks.

*

*                      SELECT SINGLE abtei FROM cepc INTO lv_abtei WHERE prctr EQ lv_zzprctr.

*                      CLEAR lv_zzprctr.

*                      SELECT SINGLE gsber FROM zcogl_dept INTO lv_gsber1

*                        WHERE abtei EQ lv_abtei.

                       IF lv_gsber EQ lv_gsber1.

                         SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                             bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                             AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ 'ZHS'.

                         IF lv_konth NE ''.

                           gs_accit-hkont = lv_konth.

                           MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                           CLEAR : lv_konth , lv_bklas,lv_tabix.

*                          EXIT.

                         ENDIF.

                       ELSEIF lv_gsber NE lv_gsber1.

                         SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                             bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                             AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ 'ZHO'.

                         IF lv_konth NE ''.

                           gs_accit-hkont = lv_konth.

                           MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                           CLEAR : lv_konth , lv_bklas,lv_tabix.

*                          EXIT.

                         ENDIF.

                       ENDIF.

                     ELSEIF lv_land1 NE 'MY'.

                       IF lv_gsber EQ lv_gsber1.

                         SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                             bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                             AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ 'ZFS'.

                         IF lv_konth NE ''.

                           gs_accit-hkont = lv_konth.

                           MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                           CLEAR : lv_konth , lv_bklas,lv_tabix.

*                          EXIT.

                         ENDIF.

                       ELSEIF lv_gsber NE lv_gsber1.

                         SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                             bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                             AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ 'ZFO'.

                         IF lv_konth NE ''.

                           gs_accit-hkont = lv_konth.

                           MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                           CLEAR : lv_konth , lv_bklas,lv_tabix.

*                          EXIT.

                         ENDIF.

                       ENDIF.

                     ENDIF.

                   ELSEIF lv_ktokk EQ '1600'.

                     CLEAR : lv_abtei , lv_zzprctr ,lv_zzabacus .

                     SELECT SINGLE zzabacus FROM lfa1 INTO  lv_zzabacus WHERE

                    lifnr EQ lv_lifnr.

                     IF lv_zzabacus NE''.

                       SELECT SINGLE spart gsber FROM zcogl_dept INTO  (lv_spart , lv_gsber)

                         WHERE abtei EQ lv_zzabacus.

                     ENDIF.

                     SELECT SINGLE zzprctr FROM t001w INTO lv_zzprctr WHERE werks EQ lv_werks.

                     SELECT SINGLE abtei FROM cepc INTO lv_abtei WHERE prctr EQ lv_zzprctr.

                     CLEAR lv_zzprctr.

                     SELECT SINGLE spart gsber FROM zcogl_dept INTO (lv_spart1 , lv_gsber1)

                 WHERE abtei EQ lv_abtei.

                     IF lv_spart NE lv_spart1.

                       SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                              bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                              AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ 'ZID'.

                       IF lv_konth NE ''.

                         gs_accit-hkont = lv_konth.

                         MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                         CLEAR : lv_konth , lv_bklas,lv_tabix.

*                        EXIT.

                       ENDIF.

                     ELSE.

                       IF lv_gsber EQ lv_gsber1.

                         SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                              bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                              AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ 'ZIS'.

                         IF lv_konth NE ''.

                           gs_accit-hkont = lv_konth.

                           MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                           CLEAR : lv_konth , lv_bklas,lv_tabix.

*                          EXIT.

                         ENDIF.

                       ELSE.

                         SELECT SINGLE konth FROM t030 INTO lv_konth WHERE

                               bklas EQ lv_bklas AND ktopl EQ 'SAS1'

                               AND ktosl EQ 'WRX' AND bwmod EQ '100' AND komok EQ 'ZIO'.

                         IF lv_konth NE ''.

                           gs_accit-hkont = lv_konth.

                           MODIFY t_accit INDEX lv_tabix FROM gs_accit TRANSPORTING hkont.

                           CLEAR : lv_konth , lv_bklas,lv_tabix.

*                          EXIT.

                         ENDIF.

                       ENDIF.

                     ENDIF.

                   ENDIF. " addition of logic further to ktokk

                 ENDIF.

                 if ls_esll-srvpos is INITIAL.

                    DELETE lt_esll where srvpos = ' '.

                    else .

                 DELETE lt_esll FROM ls_esll.

                 endif.

                 CLEAR ls_esll.

               ENDIF.

*                   ENDLOOP. "lt_esll loop

             ENDIF.

           ENDIF.

           CLEAR : lv_sub_packno.

*       ENDIF.

           CLEAR : lv_packno.

*          CLEAR: ls_ekbe.

*        ENDLOOP. Commented ekbe loop

*      ENDIF. " Commented ekbe loop

     ENDIF.

   ENDLOOP.

   CLEAR lv_index.

   REFRESH : lt_ekbe , lt_esll.

ENDIF.

Cheers ,

Uday.