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

BAPI_PO_CREATE

phil_moh
Participant
0 Likes
904

I am trying to create the PO via BAPI manually, but not successful. Following are the steps:

1) In SE38, click on Function Module ->Test ->Test Sequences.

2) Enter BAPI_PO_CREATE and BAPI_TRANSACTION_COMMIT in the pop-up window. Click Execute.

3) Under Input Parameters, click on the PO Header icon.

4) Specify all the parameters and click the Green Arrow back to the BAPI screen.

5) Click Execute.

6) I got the Test Function Module: Result Screen. But I donu2019t get to see the PO is actually created and store in EKKO table

7) I checked the Return table now and it says:

A ME159 Function modules invoked in wrong sequence

What is wrong?

4 REPLIES 4
Read only

LucianoBentiveg
Active Contributor
0 Likes
715

You need to add some items en PO_ITEMS table until step 5. Your PO need at least one item.

Regards.

Read only

saranwin
Contributor
0 Likes
715

Hey,

Check the PO Creation Program Using BAPI : BAPI_PO_CREATE

Part 1:

TABLES: EKKO,    "Purchasing Document Header
        EKPO,    "Purchasing Document Item
        EKET,    "Scheduling Agreement Schedule Lines
        RLGRAP,  "Program Fields/Screen Fields for SAPLGRAP
        T685A,   "Conditions: Types: Additional Price Element Data
        MARA,    "General Material Data
        LFM1.    "Vendor master record purchasing organization data

DATA: BEGIN OF ITAB_PO OCCURS 0,
      DOC_TYPE(4)  type c,   
      VENDOR(10)   type c,   
      PURCH_ORG(4) type c,   
      PUR_GROUP(3) type c,  
      COMP_CODE(4) type c,  
      DOC_DATE(8)  type c,   
      VPER_START(8) type c,  
      VPER_END(8)  type c,   
      COLLECT_NO(12)  type c,   
      ACCTASSCAT  type c,   
      ITEM_CAT  type c,   
      SHORT_TEXT(40)  type c,  
      PLANT(4)  type c,   
      MAT_GRP(9)  type c,   
      TAX_CODE(2)  type c,   
      DELIV_DATE(8)  type c,   
      PREQ_NAME(12)  type c,   
      SERVICE(18)  type c,   
      SHORT_TEXT1(40)  type c,   
      QUANTITY(16)  type c,   
      BASE_UOM(3)  type c,  
      GR_PRICE(27)  type c,  
      G_L_ACCT(10)  type c,   
      COST_CTR(10)  type c,   
      ORDER_NO(12)  type c,  
      WBS_ELEM_E(24)  type c,  
      END OF ITAB_PO.
DATA: BEGIN OF ITAB_POE OCCURS 0,
      DOC_TYPE(4)  type c,   
      VENDOR(10)   type c,   
      PURCH_ORG(4) type c,   
      PUR_GROUP(3) type c,  
      COMP_CODE(4) type c,  
      DOC_DATE(8)  type c,  
      VPER_START(8) type c,  
      VPER_END(8)  type c,   
      COLLECT_NO(12)  type c,   
      ACCTASSCAT  type c,   
      ITEM_CAT  type c,   
      SHORT_TEXT(40)  type c,  
      PLANT(4)  type c,   
      MAT_GRP(9)  type c,   
      TAX_CODE(2)  type c,   
      DELIV_DATE(8)  type c,   
      PREQ_NAME(12)  type c,   
      SERVICE(18)  type c,   
      SHORT_TEXT1(40)  type c,   
      QUANTITY(16)  type c,  
      BASE_UOM(3)  type c,   
      GR_PRICE(27)  type c,   
      G_L_ACCT(10)  type c,   
      COST_CTR(10)  type c,   
      ORDERID(12)  type c,   
      PO_NUMBER(10)  type c,   
      WBS_ELEM_E(24)  type c.   

         INCLUDE STRUCTURE BAPIRET2.
DATA: END OF ITAB_POE.

DATA: BEGIN OF ITAB_PO_HEAD OCCURS 0.
        INCLUDE STRUCTURE BAPIEKKOC.
DATA: END OF ITAB_PO_HEAD.

DATA: BEGIN OF ITAB_PO_HEAD_ADD OCCURS 0.
        INCLUDE STRUCTURE BAPIEKKOA.
DATA: END OF ITAB_PO_HEAD_ADD.

DATA: BEGIN OF ITAB_PO_HEADX OCCURS 0.
        INCLUDE STRUCTURE BAPIMEPOHEADERX.
DATA: END OF ITAB_PO_HEADX.

DATA: BEGIN OF ITAB_PO_ITEM OCCURS 0.
        INCLUDE STRUCTURE BAPIEKPOC.
DATA: END OF ITAB_PO_ITEM.

DATA: BEGIN OF ITAB_PO_ITEMX OCCURS 0.
        INCLUDE STRUCTURE BAPIMEPOITEMX.
DATA: END OF ITAB_PO_ITEMX.
DATA: BEGIN OF ITAB_PO_ITEM_DATE OCCURS 0.
        INCLUDE STRUCTURE BAPIEKET.
DATA: END OF ITAB_PO_ITEM_DATE.
DATA: BEGIN OF ITAB_PO_ITEM_DATEX OCCURS 0.
        INCLUDE STRUCTURE BAPIMEPOSCHEDULX.
DATA: END OF ITAB_PO_ITEM_DATEX.

DATA: BEGIN OF ITAB_PO_ITEM_COND OCCURS 0.
        INCLUDE STRUCTURE BAPIMEPOCOND.
DATA: END OF ITAB_PO_ITEM_COND.
DATA: BEGIN OF ITAB_PO_ITEM_CONDX OCCURS 0.
        INCLUDE STRUCTURE BAPIMEPOCONDX.
DATA: END OF ITAB_PO_ITEM_CONDX.

DATA: BEGIN OF ITAB_PO_SERVICE OCCURS 0.
        INCLUDE STRUCTURE BAPIESLLC.
DATA: END OF ITAB_PO_SERVICE.

DATA : BEGIN OF ITAB_PO_SERV_ACC_VAL OCCURS 0.
        INCLUDE STRUCTURE BAPIESKLC.
DATA: END OF ITAB_PO_SERV_ACC_VAL.
DATA: BEGIN OF ITAB_PO_ACCOUNT OCCURS 0.
        INCLUDE STRUCTURE BAPIEKKN.
DATA: END OF ITAB_PO_ACCOUNT.
DATA: BEGIN OF ITAB_PO_ACCOUNTX OCCURS 0.
        INCLUDE STRUCTURE BAPIMEPOACCOUNTX.
DATA: END OF ITAB_PO_ACCOUNTX.
DATA: BEGIN OF ITAB_PO_MESSAGES OCCURS 0,
        COLLECT_NO LIKE BAPIEKKOA-OUR_REF,
        PO_NUMBER LIKE BAPIMEPOHEADER-PO_NUMBER.
        INCLUDE STRUCTURE BAPIRETURN.
DATA: END OF ITAB_PO_MESSAGES.
DATA: BEGIN OF ITAB_PO_MESSAGE OCCURS 0.
        INCLUDE STRUCTURE BAPIRETURN.
DATA: END OF ITAB_PO_MESSAGE.
DATA: BEGIN OF ITAB_PO_HEADE OCCURS 0.
        INCLUDE STRUCTURE BAPIMEPOHEADER.
DATA: END OF ITAB_PO_HEADE.

DATA: BEGIN OF ITAB_PO_ITEME OCCURS 0.
        INCLUDE STRUCTURE BAPIMEPOITEM.
DATA: END OF ITAB_PO_ITEME.

DATA: BEGIN OF ITAB_PO_ITEM_DATEE OCCURS 0.
        INCLUDE STRUCTURE BAPIMEPOSCHEDULE.
DATA: END OF ITAB_PO_ITEM_DATEE.

DATA: BEGIN OF ITAB_PO_ITEM_CONDE OCCURS 0.
        INCLUDE STRUCTURE BAPIMEPOCOND.
DATA: END OF ITAB_PO_ITEM_CONDE.

DATA: BEGIN OF ITAB_POE1 OCCURS 0,
        PO_NUMBER LIKE BAPIMEPOHEADER-PO_NUMBER,
        COLLECT_NO LIKE BAPIEKKOA-OUR_REF,
        MESSAGE LIKE BAPIRET2-MESSAGE,
      END OF ITAB_POE1.
DATA: FILENAME1 LIKE RLGRAP-FILENAME,
      POHEADER LIKE BAPIMEPOHEADER,
      WF_PO_NUMBER LIKE BAPIMEPOHEADER-PO_NUMBER,
      RETURN LIKE BAPIRET2 OCCURS 0,
      POITEM LIKE BAPIMEPOITEM OCCURS 0,
      VAR(5) TYPE N,
      VAR1 TYPE I,
      VAR_S1(10) TYPE N,
      VAR_S2(10) TYPE N,
      FILE1 TYPE STRING,
      TRACKINGNO LIKE BAPIMEPOITEM-TRACKINGNO.
SELECTION-SCREEN: skip 2.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001 .
SELECTION-SCREEN: skip 1.
PARAMETERS: p_file LIKE IBIPPARMS-PATH OBLIGATORY.
PARAMETERS: p_file1 LIKE IBIPPARMS-PATH OBLIGATORY.
SELECTION-SCREEN: skip 1.
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN: skip 2.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

  CALL FUNCTION 'F4_FILENAME'
   EXPORTING
     PROGRAM_NAME        = SYST-CPROG
     DYNPRO_NUMBER       = SYST-DYNNR
*   FIELD_NAME          = ' '
   IMPORTING
     FILE_NAME           = p_file
            .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file1.

  CALL FUNCTION 'F4_FILENAME'
   EXPORTING
     PROGRAM_NAME        = SYST-CPROG
     DYNPRO_NUMBER       = SYST-DYNNR
   IMPORTING
     FILE_NAME           = p_file1
            .
TOP-OF-PAGE.

  PERFORM HEADER.

START-OF-SELECTION.
  PERFORM UPLOAD_DATA.
  PERFORM PO_UPLOAD.
  PERFORM WRITE_DATA.
  PERFORM DATA_TRANSFER.

AT LINE-SELECTION.

  IF NOT ITAB_PO_MESSAGES-PO_NUMBER IS INITIAL .
    SET PARAMETER ID 'BES' FIELD ITAB_PO_MESSAGES-PO_NUMBER.
    CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
    CLEAR: ITAB_PO_MESSAGES-PO_NUMBER.
  ELSE.
    MESSAGE S000(ZM) WITH 'Please choose a valid line'.
  ENDIF.

END-OF-SELECTION.

Regards,

Saravanan M

Read only

0 Likes
715

Hey,

Part: 2

FORM UPLOAD_DATA .

  MOVE p_file TO FILENAME1.
  CALL FUNCTION 'WS_UPLOAD'
   EXPORTING
     FILENAME                      = FILENAME1
     FILETYPE                      = 'DAT'
    TABLES
      DATA_TAB                      = ITAB_PO
   EXCEPTIONS
     CONVERSION_ERROR              = 1
     FILE_OPEN_ERROR               = 2
     FILE_READ_ERROR               = 3
     INVALID_TYPE                  = 4
     NO_BATCH                      = 5
     UNKNOWN_ERROR                 = 6
     INVALID_TABLE_WIDTH           = 7
     GUI_REFUSE_FILETRANSFER       = 8
     CUSTOMER_ERROR                = 9
     NO_AUTHORITY                  = 10
     OTHERS                        = 11
            .

  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  LOOP AT ITAB_PO.
    UNPACK ITAB_PO-VENDOR TO ITAB_PO-VENDOR.
    if not ITAB_PO-SERVICE is initial.
      UNPACK ITAB_PO-SERVICE TO ITAB_PO-SERVICE.
    endif.
    if not ITAB_PO-COST_CTR is initial.
      UNPACK ITAB_PO-COST_CTR TO ITAB_PO-COST_CTR.
    endif.

    MODIFY ITAB_PO INDEX SY-TABIX TRANSPORTING VENDOR.
    MODIFY ITAB_PO INDEX SY-TABIX TRANSPORTING SERVICE.
    MODIFY ITAB_PO INDEX SY-TABIX TRANSPORTING COST_CTR.

  ENDLOOP.

ENDFORM.                    " upload_data

FORM PO_UPLOAD .
  CLEAR: VAR, VAR_S1, VAR_S2.
  LOOP AT ITAB_PO.
    AT NEW COLLECT_NO.
      SELECT SINGLE * FROM EKKO WHERE UNSEZ = ITAB_PO-COLLECT_NO.
      IF SY-SUBRC = 0.
        ITAB_PO_MESSAGES-MESSAGE =
        'PO with Collective Number already exists'.
        ITAB_PO_MESSAGES-COLLECT_NO = ITAB_PO-COLLECT_NO.
        APPEND ITAB_PO_MESSAGES.
        CONTINUE.
      ELSE.
        CLEAR: VAR, TRACKINGNO, VAR_S1, VAR_S2.
        MOVE-CORRESPONDING ITAB_PO TO ITAB_PO_HEAD.
        APPEND ITAB_PO_HEAD.
        ITAB_PO_HEADX-DOC_TYPE = 'X'.
        ITAB_PO_HEADX-VENDOR = 'X'.
        ITAB_PO_HEADX-PURCH_ORG = 'X'.
        ITAB_PO_HEADX-PUR_GROUP = 'X'.
        ITAB_PO_HEADX-COMP_CODE = 'X'.
        ITAB_PO_HEADX-DOC_DATE = 'X'.
        ITAB_PO_HEADX-VPER_START = 'X'.
        ITAB_PO_HEADX-VPER_END = 'X'.
        ITAB_PO_HEADX-COLLECT_NO = 'X'.
        APPEND ITAB_PO_HEADX.


        SELECT SINGLE * FROM LFM1 WHERE LIFNR = ITAB_PO_HEAD-VENDOR.

        ITAB_PO_HEAD_ADD-CURRENCY = LFM1-WAERS.
        ITAB_PO_HEAD_ADD-PMNTTRMS = LFM1-ZTERM.
        ITAB_PO_HEAD_ADD-INCOTERMS1 = LFM1-INCO1.
        ITAB_PO_HEAD_ADD-INCOTERMS2 = LFM1-INCO2.
        ITAB_PO_HEAD_ADD-OUR_REF  = ITAB_PO-COLLECT_NO.

        APPEND ITAB_PO_HEAD_ADD.
      ENDIF.
    ENDAT.

    IF NOT VAR = 10.
      VAR = VAR + 10.
      MOVE-CORRESPONDING ITAB_PO TO ITAB_PO_ITEM.
      MOVE-CORRESPONDING ITAB_PO TO ITAB_PO_ITEM_DATE.
      ITAB_PO_ITEM-PO_ITEM = VAR.
      ITAB_PO_ITEM-PCKG_NO = '0000000001'.
      ITAB_PO_ITEM_DATE-PO_ITEM = VAR.

      ITAB_PO_ITEM_DATE-SERIAL_NO = '0001'.

      APPEND ITAB_PO_ITEM.
      APPEND ITAB_PO_ITEM_DATE.
      ITAB_PO_ITEMX-PO_ITEM = VAR.
      ITAB_PO_ITEMX-PO_ITEMX = 'X'.
      ITAB_PO_ITEMX-ACCTASSCAT = 'X'.
      ITAB_PO_ITEMX-ITEM_CAT = 'X'.
      ITAB_PO_ITEMX-SHORT_TEXT = 'X'.
      ITAB_PO_ITEMX-PLANT = 'X'.
      ITAB_PO_ITEMX-MATL_GROUP = 'X'.
      ITAB_PO_ITEMX-TAX_CODE = 'X'.
      APPEND ITAB_PO_ITEMX.
      ITAB_PO_ITEM_DATEX-PO_ITEM = VAR.
      ITAB_PO_ITEM_DATEX-PO_ITEMX = 'X'.
      ITAB_PO_ITEM_DATEX-DELIVERY_DATE = 'X'.
      APPEND ITAB_PO_ITEM_DATEX.
    ENDIF.

    AT NEW GR_PRICE.
      MOVE-CORRESPONDING ITAB_PO TO ITAB_PO_SERVICE.
      ITAB_PO_SERVICE-SHORT_TEXT = ITAB_PO-SHORT_TEXT1.
      VAR_S1 = VAR_S1 + 1.
      IF VAR_S1 = '0000000001'.
        ITAB_PO_SERVICE-PCKG_NO      = '0000000001'.
        ITAB_PO_SERV_ACC_VAL-PCKG_NO = '0000000001'.
        ITAB_PO_SERVICE-SUBPCKG_NO   = '0000000002'.
      ELSE.
        ITAB_PO_SERVICE-PCKG_NO      = '0000000002'.
        ITAB_PO_SERV_ACC_VAL-PCKG_NO = '0000000002'.
        ITAB_PO_SERVICE-SUBPCKG_NO   = '0000000000'.
      ENDIF.
      ITAB_PO_SERVICE-LINE_NO        = VAR_S1.
      ITAB_PO_SERV_ACC_VAL-LINE_NO   = VAR_S1.

      ITAB_PO_SERVICE-EXT_LINE       = VAR_S2.
      VAR_S2 = VAR_S2 + 10.
      APPEND ITAB_PO_SERVICE.
      ITAB_PO_SERV_ACC_VAL-SERNO_LINE = 00.
      ITAB_PO_SERV_ACC_VAL-PERCENTAGE = 100.
      ITAB_PO_SERV_ACC_VAL-SERIAL_NO  = 01.
      APPEND ITAB_PO_SERV_ACC_VAL.

    ENDAT.

    AT NEW WBS_ELEM_E.
      MOVE-CORRESPONDING ITAB_PO TO ITAB_PO_ACCOUNT.
      ITAB_PO_ACCOUNT-PO_ITEM = VAR.
      ITAB_PO_ACCOUNT-SERIAL_NO = 01.

      APPEND ITAB_PO_ACCOUNT.
      ITAB_PO_ACCOUNTX-PO_ITEM = VAR.
      ITAB_PO_ACCOUNTX-PO_ITEMX = 'X'.
      ITAB_PO_ACCOUNTX-GL_ACCOUNT = 'X'.
      ITAB_PO_ACCOUNTX-COSTCENTER = 'X'.
      ITAB_PO_ACCOUNTX-ORDERID = 'X'.
      ITAB_PO_ACCOUNTX-WBS_ELEMENT = 'X'.
      APPEND ITAB_PO_ACCOUNTX.
    ENDAT.


    AT END OF COLLECT_NO.
      CLEAR ITAB_PO_MESSAGE[].

      CALL FUNCTION 'BAPI_PO_CREATE'
        EXPORTING
          PO_HEADER                        = ITAB_PO_HEAD
          PO_HEADER_ADD_DATA               = ITAB_PO_HEAD_ADD
         HEADER_ADD_DATA_RELEVANT         = 'X'
       IMPORTING
         PURCHASEORDER                    =  WF_PO_NUMBER
        TABLES
          PO_ITEMS                         = ITAB_PO_ITEM
          PO_ITEM_SCHEDULES                = ITAB_PO_ITEM_DATE
          PO_ITEM_ACCOUNT_ASSIGNMENT       = ITAB_PO_ACCOUNT
          RETURN                           = ITAB_PO_MESSAGE
          PO_SERVICES                      = ITAB_PO_SERVICE
          PO_SRV_ACCASS_VALUES             = ITAB_PO_SERV_ACC_VAL
                .
      READ TABLE ITAB_PO_MESSAGE WITH KEY TYPE = 'S'.

      IF SY-SUBRC EQ 0.
        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
        MOVE-CORRESPONDING ITAB_PO_MESSAGE TO ITAB_PO_MESSAGES.
        ITAB_PO_MESSAGES-PO_NUMBER  = WF_PO_NUMBER.
        ITAB_PO_MESSAGES-COLLECT_NO = ITAB_PO-COLLECT_NO.
        APPEND ITAB_PO_MESSAGES.
      ELSE.
        LOOP AT ITAB_PO_MESSAGE WHERE TYPE EQ 'E'.
          MOVE-CORRESPONDING ITAB_PO_MESSAGE TO ITAB_POE.
          MOVE-CORRESPONDING ITAB_PO TO ITAB_POE.
          ITAB_POE-PO_NUMBER = WF_PO_NUMBER.
          ITAB_PO_MESSAGES-COLLECT_NO = ITAB_PO-COLLECT_NO.
          APPEND ITAB_POE.
        ENDLOOP.
      ENDIF.
      CLEAR: ITAB_PO_HEAD, ITAB_PO_ITEM, ITAB_PO_ITEM_DATE,
             ITAB_PO_ITEM_COND, ITAB_PO_MESSAGE,ITAB_PO_HEADX,
             ITAB_PO_ITEMX, ITAB_PO_ITEM_DATEX, ITAB_PO_ITEM_CONDX,
             ITAB_PO_SERVICE,ITAB_PO_SERV_ACC_VAL, ITAB_PO_ACCOUNT,
             ITAB_PO_ACCOUNTX, WF_PO_NUMBER.
      REFRESH: ITAB_PO_HEAD, ITAB_PO_ITEM, ITAB_PO_ITEM_DATE,
               ITAB_PO_ITEM_COND, ITAB_PO_MESSAGE,ITAB_PO_HEADX,
              ITAB_PO_ITEMX, ITAB_PO_ITEM_DATEX, ITAB_PO_ITEM_CONDX,
             ITAB_PO_SERVICE, ITAB_PO_SERV_ACC_VAL, ITAB_PO_ACCOUNT,
               ITAB_PO_ACCOUNTX.
    ENDAT.
  ENDLOOP.

ENDFORM.                    " PO_UPLOAD

FORM WRITE_DATA .
  WRITE:/10 'PO Numbers that have been posted are:'.
  CLEAR VAR1.
  LOOP AT ITAB_PO_MESSAGES.
    VAR1 = VAR1 + 1.
    FORMAT COLOR COL_KEY INTENSIFIED OFF.
    WRITE:/10 ITAB_PO_MESSAGES-MESSAGE,70 'against',
              ITAB_PO_MESSAGES-COLLECT_NO.

    HIDE:ITAB_PO_MESSAGES-COLLECT_NO, ITAB_PO_MESSAGES-PO_NUMBER.

    FORMAT RESET.
    AT LAST.
      ULINE.
      FORMAT COLOR COL_GROUP INTENSIFIED OFF.
      WRITE:/10 'Total POs posted are:', VAR1.
      FORMAT RESET.
    ENDAT.
  ENDLOOP.

ENDFORM.                    " write_data
FORM HEADER .
  WRITE:/30 'PO Upload Report',70 SY-DATUM, 90 'Page:',100 SY-PAGNO.
  SKIP.
  ULINE.

ENDFORM.                    " header

FORM DATA_TRANSFER .

  LOOP AT ITAB_POE.
    MOVE-CORRESPONDING ITAB_POE TO ITAB_POE1.
    APPEND ITAB_POE1.
  ENDLOOP.

  SORT ITAB_POE1.

  DELETE ADJACENT DUPLICATES FROM ITAB_POE1.
  move p_file to file1.

  CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
      FILENAME                      = FILE1
      FILETYPE                      = 'ASC'
      WRITE_FIELD_SEPARATOR         = 'X'
    TABLES
      DATA_TAB                      = ITAB_POE1
   EXCEPTIONS
     FILE_WRITE_ERROR              = 1
     NO_BATCH                      = 2
     GUI_REFUSE_FILETRANSFER       = 3
     INVALID_TYPE                  = 4
     NO_AUTHORITY                  = 5
     UNKNOWN_ERROR                 = 6
     HEADER_NOT_ALLOWED            = 7
     SEPARATOR_NOT_ALLOWED         = 8
     FILESIZE_NOT_ALLOWED          = 9
     HEADER_TOO_LONG               = 10
     DP_ERROR_CREATE               = 11
     DP_ERROR_SEND                 = 12
     DP_ERROR_WRITE                = 13
     UNKNOWN_DP_ERROR              = 14
     ACCESS_DENIED                 = 15
     DP_OUT_OF_MEMORY              = 16
     DISK_FULL                     = 17
     DP_TIMEOUT                    = 18
     FILE_NOT_FOUND                = 19
     DATAPROVIDER_EXCEPTION        = 20
     CONTROL_FLUSH_ERROR           = 21
     OTHERS                        = 22
            .
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    " data_transfer

Regards,

Saravanan M

Read only

0 Likes
715

saravana,

Thanks for the info, but what does it mean?

Are you able to create the PO using the BAPI_PO_CREATE manually via SE37?

Pls advice, thank you.