<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: BAPI_PO_CREATE in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/5254359#M1213833</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You need to add some items en PO_ITEMS table until step 5. Your PO need at least one item.&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 25 Feb 2009 18:34:03 GMT</pubDate>
    <dc:creator>LucianoBentiveg</dc:creator>
    <dc:date>2009-02-25T18:34:03Z</dc:date>
    <item>
      <title>BAPI_PO_CREATE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/5254358#M1213832</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am trying to create the PO via BAPI manually, but not successful. Following are the steps:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) In SE38, click on Function Module -&amp;gt;Test -&amp;gt;Test Sequences.&lt;/P&gt;&lt;P&gt;2) Enter BAPI_PO_CREATE and BAPI_TRANSACTION_COMMIT in the pop-up window. Click Execute.&lt;/P&gt;&lt;P&gt;3) Under Input Parameters, click on the PO Header icon.&lt;/P&gt;&lt;P&gt;4) Specify all the parameters and click the Green Arrow back to the BAPI screen.&lt;/P&gt;&lt;P&gt;5) Click Execute.&lt;/P&gt;&lt;P&gt;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&lt;/P&gt;&lt;P&gt;7) I checked the Return table now and it says:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A ME159 Function modules invoked in wrong sequence&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What is wrong?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Feb 2009 23:20:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/5254358#M1213832</guid>
      <dc:creator>phil_moh</dc:creator>
      <dc:date>2009-02-24T23:20:40Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CREATE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/5254359#M1213833</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You need to add some items en PO_ITEMS table until step 5. Your PO need at least one item.&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Feb 2009 18:34:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/5254359#M1213833</guid>
      <dc:creator>LucianoBentiveg</dc:creator>
      <dc:date>2009-02-25T18:34:03Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CREATE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/5254360#M1213834</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  Check the PO Creation Program Using BAPI : &lt;EM&gt;&lt;STRONG&gt;BAPI_PO_CREATE&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Part 1:&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;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.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Saravanan M&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 26 Feb 2009 07:26:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/5254360#M1213834</guid>
      <dc:creator>saranwin</dc:creator>
      <dc:date>2009-02-26T07:26:46Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CREATE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/5254361#M1213835</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;Part:  2&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;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 &amp;lt;&amp;gt; 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 &amp;lt;&amp;gt; 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

ENDFORM.                    " data_transfer&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Saravanan M&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 26 Feb 2009 07:27:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/5254361#M1213835</guid>
      <dc:creator>saranwin</dc:creator>
      <dc:date>2009-02-26T07:27:45Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CREATE</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/5254362#M1213836</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;saravana,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the info, but what does it mean?&lt;/P&gt;&lt;P&gt;Are you able to create the PO using the BAPI_PO_CREATE manually via SE37?&lt;/P&gt;&lt;P&gt;Pls advice, thank you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 27 Feb 2009 00:05:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create/m-p/5254362#M1213836</guid>
      <dc:creator>phil_moh</dc:creator>
      <dc:date>2009-02-27T00:05:40Z</dc:date>
    </item>
  </channel>
</rss>

