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

ML81N error message 'Buffer table not up to date'

Former Member
0 Likes
5,921

Hi,

I have used the BAPI(BAPI_ENTRYSHEET_CREATE) to create Service Entry Sheet (SES). The BAPI is working as well and creating SES successfully.

Also SES tables got updated.

When I click the SES in ML81N, I get message 'Buffer table not up to date'. By searching the forum, I got to know that the issue is with populating the below parameters.

BAPI_ESLL-PLN_PCKG  = poservices-PCKG_NO.

BAPI_ESLL-PLN_LINE = poservices-LINE_NO.

poservices you get from BAPI_PO_GETDETAIL.

My question is poservices internal table has many records, out of that, which record I need to pick to populate to BAPI_ESLL ?

Resolution will be highly appreciated.

Thanks

Jay

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
3,078

I have fixed the issue. Instead of getting PO Service detail from FM 'BAPI_PO_GETDETAIL', I have got them from table like shown below. The issue is resolved now.

  • Fill in the Service Entry Sheet Line Item

    CLEAR T_ENYSHEET_SERVICES.    T_ENYSHEET_SERVICES-PCKG_NO     = 1.    T_ENYSHEET_SERVICES-LINE_NO     = 1.

  •    T_ENYSHEET_SERVICES-EXT_LINE    = '0000000000'.

    T_ENYSHEET_SERVICES-OUTL_LEVEL  = '0'.    T_ENYSHEET_SERVICES-OUTL_IND    = 'X'.    T_ENYSHEET_SERVICES-SUBPCKG_NO  = 2.    APPEND T_ENYSHEET_SERVICES.     CLEAR T_ENYSHEET_SERVICES.    T_ENYSHEET_SERVICES-PCKG_NO   = 2.    T_ENYSHEET_SERVICES-LINE_NO   = 2.

  • Get the service information from table ESLL.

    CLEAR : EKPO, W_ESLL.    SELECT SINGLE * FROM EKPO WHERE EBELN = IT_PROCESS-EBELN                                AND EBELP = IT_PROCESS-EBELP.    IF SY-SUBRC = 0.      CLEAR ESLL.      SELECT SINGLE * FROM ESLL WHERE PACKNO = EKPO-PACKNO.      IF SY-SUBRC = 0.        CLEAR W_ESLL.        MOVE ESLL-SUB_PACKNO TO W_PACKNO.        SELECT SINGLE * FROM ESLL INTO W_ESLL WHERE PACKNO = W_PACKNO.        if sy-subrc = 0.         endif.      ENDIF.

  • Fill in the Service Entry Sheet Account Assignment Line.

      T_ENYSHEET_SERVICES-PLN_PCKG     = W_ESLL-PACKNO.

  •      T_ENYSHEET_SERVICES-EXT_LINE     = W_ESLL-EXTROW.

      T_ENYSHEET_SERVICES-PLN_LINE     = W_ESLL-INTROW.      T_ENYSHEET_SERVICES-SERVICE      = W_ESLL-SRVPOS.      T_ENYSHEET_SERVICES-SHORT_TEXT   = W_ESLL-KTEXT1.      T_ENYSHEET_SERVICES-QUANTITY     = IT_PROCESS-MENGE.      T_ENYSHEET_SERVICES-GR_PRICE     = W_ESLL-TBTWR.

  •      T_ENYSHEET_SERVICES-MATL_GROUP   = W_ESLL-MATKL.

      IF W_ESLL-TBTWR IS INITIAL.

        IF  NOT W_ESLL-MENGE IS INITIAL.

          T_ENYSHEET_SERVICES-GR_PRICE = W_ESLL-BRTWR  / W_ESLL-MENGE.

        ENDIF.

      ENDIF.

      APPEND T_ENYSHEET_SERVICES.

I have fixed the issue. Instead of getting PO Service detail from FM 'BAPI_PO_GETDETAIL', I have got them from table like shown below. The issue is resolved now.

  • Fill in the Service Entry Sheet Line Item

    CLEAR T_ENYSHEET_SERVICES.    T_ENYSHEET_SERVICES-PCKG_NO     = 1.    T_ENYSHEET_SERVICES-LINE_NO     = 1.

  •    T_ENYSHEET_SERVICES-EXT_LINE    = '0000000000'.

    T_ENYSHEET_SERVICES-OUTL_LEVEL  = '0'.    T_ENYSHEET_SERVICES-OUTL_IND    = 'X'.    T_ENYSHEET_SERVICES-SUBPCKG_NO  = 2.    APPEND T_ENYSHEET_SERVICES.     CLEAR T_ENYSHEET_SERVICES.    T_ENYSHEET_SERVICES-PCKG_NO   = 2.    T_ENYSHEET_SERVICES-LINE_NO   = 2.

  • Get the service information from table ESLL.

    CLEAR : EKPO, W_ESLL.    SELECT SINGLE * FROM EKPO WHERE EBELN = IT_PROCESS-EBELN                                AND EBELP = IT_PROCESS-EBELP.    IF SY-SUBRC = 0.      CLEAR ESLL.      SELECT SINGLE * FROM ESLL WHERE PACKNO = EKPO-PACKNO.      IF SY-SUBRC = 0.        CLEAR W_ESLL.        MOVE ESLL-SUB_PACKNO TO W_PACKNO.        SELECT SINGLE * FROM ESLL INTO W_ESLL WHERE PACKNO = W_PACKNO.        if sy-subrc = 0.         endif.      ENDIF.

  • Fill in the Service Entry Sheet Account Assignment Line.

      T_ENYSHEET_SERVICES-PLN_PCKG     = W_ESLL-PACKNO.

  •      T_ENYSHEET_SERVICES-EXT_LINE     = W_ESLL-EXTROW.

      T_ENYSHEET_SERVICES-PLN_LINE     = W_ESLL-INTROW.      T_ENYSHEET_SERVICES-SERVICE      = W_ESLL-SRVPOS.      T_ENYSHEET_SERVICES-SHORT_TEXT   = W_ESLL-KTEXT1.      T_ENYSHEET_SERVICES-QUANTITY     = IT_PROCESS-MENGE.      T_ENYSHEET_SERVICES-GR_PRICE     = W_ESLL-TBTWR.

  •      T_ENYSHEET_SERVICES-MATL_GROUP   = W_ESLL-MATKL.

      IF W_ESLL-TBTWR IS INITIAL.

        IF  NOT W_ESLL-MENGE IS INITIAL.

          T_ENYSHEET_SERVICES-GR_PRICE = W_ESLL-BRTWR  / W_ESLL-MENGE.

        ENDIF.

      ENDIF.

      APPEND T_ENYSHEET_SERVICES.

1 REPLY 1
Read only

Former Member
0 Likes
3,079

I have fixed the issue. Instead of getting PO Service detail from FM 'BAPI_PO_GETDETAIL', I have got them from table like shown below. The issue is resolved now.

  • Fill in the Service Entry Sheet Line Item

    CLEAR T_ENYSHEET_SERVICES.    T_ENYSHEET_SERVICES-PCKG_NO     = 1.    T_ENYSHEET_SERVICES-LINE_NO     = 1.

  •    T_ENYSHEET_SERVICES-EXT_LINE    = '0000000000'.

    T_ENYSHEET_SERVICES-OUTL_LEVEL  = '0'.    T_ENYSHEET_SERVICES-OUTL_IND    = 'X'.    T_ENYSHEET_SERVICES-SUBPCKG_NO  = 2.    APPEND T_ENYSHEET_SERVICES.     CLEAR T_ENYSHEET_SERVICES.    T_ENYSHEET_SERVICES-PCKG_NO   = 2.    T_ENYSHEET_SERVICES-LINE_NO   = 2.

  • Get the service information from table ESLL.

    CLEAR : EKPO, W_ESLL.    SELECT SINGLE * FROM EKPO WHERE EBELN = IT_PROCESS-EBELN                                AND EBELP = IT_PROCESS-EBELP.    IF SY-SUBRC = 0.      CLEAR ESLL.      SELECT SINGLE * FROM ESLL WHERE PACKNO = EKPO-PACKNO.      IF SY-SUBRC = 0.        CLEAR W_ESLL.        MOVE ESLL-SUB_PACKNO TO W_PACKNO.        SELECT SINGLE * FROM ESLL INTO W_ESLL WHERE PACKNO = W_PACKNO.        if sy-subrc = 0.         endif.      ENDIF.

  • Fill in the Service Entry Sheet Account Assignment Line.

      T_ENYSHEET_SERVICES-PLN_PCKG     = W_ESLL-PACKNO.

  •      T_ENYSHEET_SERVICES-EXT_LINE     = W_ESLL-EXTROW.

      T_ENYSHEET_SERVICES-PLN_LINE     = W_ESLL-INTROW.      T_ENYSHEET_SERVICES-SERVICE      = W_ESLL-SRVPOS.      T_ENYSHEET_SERVICES-SHORT_TEXT   = W_ESLL-KTEXT1.      T_ENYSHEET_SERVICES-QUANTITY     = IT_PROCESS-MENGE.      T_ENYSHEET_SERVICES-GR_PRICE     = W_ESLL-TBTWR.

  •      T_ENYSHEET_SERVICES-MATL_GROUP   = W_ESLL-MATKL.

      IF W_ESLL-TBTWR IS INITIAL.

        IF  NOT W_ESLL-MENGE IS INITIAL.

          T_ENYSHEET_SERVICES-GR_PRICE = W_ESLL-BRTWR  / W_ESLL-MENGE.

        ENDIF.

      ENDIF.

      APPEND T_ENYSHEET_SERVICES.