BAPI_PO_CREATE1 assign po_number

Hi, i use the BAPI_PO_CREATE1 function for creating po documents from legacy data.
When i try the bapi in test mode, the function assigns the po_number (for example 100), when i run the function in effective mode the function assigns the number 101, so the number 100 appears to be lost.
If i try to force the po_number field in poheader structure choosing a free number in the ekko-ebeln the function returns an error "invalid number range".
Is anyone here who haves an idea ?
Thanks in advance.

Hi,
"Invalid number range" error is because the current number range for PO doesn't accept what you are specifying. To get a number acceptable to the system, check in txn SNUM (object EINK/BELEG). Display the number ranges specified, and choose a valid no from any of the range. Please check that the checkbox for 'External' is checked for such range.
To your original problem: When you say running the BAPI in test mode, where do you run it?
With number ranges used by the system (to auto-generate next no), it could happen that certain numbers are 'lost' because these were generated and subsequently not written to the DB for whatever reason. This is a normal thing (if system is assigning numbers, it shall not matter whether it is '100' or '101', if the user accepts that system may have gaps in the numbers).
cheers,
cheers,

Similar Messages

  • BAPI_PO_CREATE1 (Assign Sch Ln Level Price)

    I am using BAPI_PO_CREATE1 to convert CCSTR to CCSTO and new price and quantity may be assigned to every schedule line item. The qty in PO always follow PR I just have no idea how to solve this.
    Following is part of codes. Flag table and loops are omitted
          item-po_item    = l_item.
          item-material   = w_report-matnr.
          item-plant      = w_report-req_werks.
          item-preq_no    = w_report-ccstr_no.
          item-preq_item  = w_report-ccstr_line.
          item-stge_loc    = '0001'.
          item-tax_code   = 'J0'.
          item-qual_insp  = l_qual_insp.
          item-acctasscat = 'M'.
          item-quantity   = 3.
          APPEND item.
        pocond-itm_number                    = l_item.
        pocond-cond_st_no                    = l_step.
        pocond-cond_count                    = l_sch_ln.
        pocond-cond_type                     = 'J3AX'.
        pocond-cond_value                    = w_konv-kbetr.
        pocond-currency                      = w_konv-waers.
        pocond-cond_p_unt                   = w_konv-kpein.
        pocond-change_id                     = 'I'.
        APPEND pocond.
        afs_pocond-itm_number               = l_item.
        afs_pocond-sched_line               = l_sch_ln.
        afs_pocond-cond_st_no               = l_step.
        afs_pocond-cond_count               = l_sch_ln.
        APPEND afs_pocond.
        afs_poschedule-po_item          = l_item.
        afs_poschedule-sched_line       = l_sch_ln.
        afs_poschedule-ordered_qty      = w_report-iss_qty.
        afs_poschedule-quantity_s       = w_report-iss_qty.
        afs_poschedule-afs_ref_doc      = w_report-sc_no.
        afs_poschedule-afs_ref_pos      = w_report-sc_line.
        APPEND afs_poschedule.
        afs_poschedulex-po_item         = l_item.
        afs_poschedulex-sched_line      = l_sch_ln.
        afs_poschedulex-po_itemx        = c_x.
        afs_poschedulex-sched_linex     = c_x.
        afs_poschedulex-quantity_s      = c_x.
        afs_poschedulex-afs_ref_doc     = c_x.
        afs_poschedulex-afs_ref_pos     = c_x.
        APPEND afs_poschedulex.

    Second part
    CALL FUNCTION 'BAPI_PO_CREATE1'
        EXPORTING
          poheader                     = header
          poheaderx                    = headerx
          no_authority               = 'X'
       IMPORTING
         exppurchaseorder            = g_purchaseorder
         expheader                   = expheader
         exppoexpimpheader           = exppoexpimpheader
       TABLES
         return                      = return
         poitem                      = item
         poitemx                     = itemx
        pocond                       = pocond
        pocondx                      = pocondx
        afs_poitem                   = afs_poitem
        afs_poitemx                  = afs_poitemx
        afs_poschedule               = afs_poschedule
        afs_poschedulex              = afs_poschedulex
        afs_pocond                   = afs_pocond
        afs_pocondx                  = afs_pocondx

  • BAPI_PO_CREATE1 - In case of account assignment, please enter acc. assignment data for item

    Hi,
    Currently I'm facing an error "In case of account assignment, please enter acc. assignment data for item" when create a Purchase Order using BAPI_PO_CREATE1. The condition of the data that need to pump into the system is that this PO is an open item PO where does not require a metarial code for input, but it will pump in Short Text and Material Group. Other than that, the account assignment category is "K" and the item category is "9".
    Below is the coding that I have implemented.
    IF wa_temp_upr1-waers IS NOT INITIAL.
           MOVE wa_temp_upr1-waers TO wa_header-currency.
           wa_headerx-currency = abap_true.
         ENDIF.
         MOVE: wa_temp_upr1-lifnr TO wa_header-vendor,
               wa_temp_upr1-unsez TO wa_header-collect_no,
               wa_temp_upr1-bukrs TO wa_header-comp_code,
               sy-datum      TO wa_header-doc_date,
               sy-langu      TO wa_header-langu,
               'KTN1'        TO wa_header-purch_org,
               wa_temp_upr1-bkgrp TO wa_header-pur_group,
               wa_temp_upr1-zterm TO wa_header-pmnttrms.
         wa_headerx-collect_no = abap_true.
         wa_headerx-po_number = abap_true.
         wa_headerx-comp_code = abap_true.
         wa_headerx-vendor = abap_true.
         wa_headerx-doc_date = abap_true.
         wa_headerx-langu = abap_true.
         wa_headerx-purch_org = abap_true.
         wa_headerx-pur_group = abap_true.
         wa_headerx-pmnttrms = abap_true.
         IF wa_temp_upr1-meins IS NOT INITIAL.
           MOVE wa_temp_upr1-meins TO zunit_e.
           CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
             EXPORTING
               INPUT                =  zunit_e
               LANGUAGE             = 'E'
             IMPORTING
               OUTPUT               = zunit_e.
           IF SY-SUBRC <> 0.
    * Implement suitable error handling here
           ELSE.
             MOVE zunit_e TO wa_temp_upr1-meins.
           ENDIF.
           MODIFY it_upr1 FROM wa_temp_upr1.
         ENDIF.
         ADD 10 TO line_item.
         CALL FUNCTION 'NUMBER_GET_NEXT'
           EXPORTING
             NR_RANGE_NR = '01'
             OBJECT      = 'SERVICE'
           IMPORTING
             NUMBER      = pckg_no.
         IF SY-SUBRC <> 0.
    * Implement suitable error handling here
         ENDIF.
         CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
           EXPORTING
             INPUT  = wa_temp_upr1-matnr
           IMPORTING
             OUTPUT = wa_po_item-material.
         MOVE: line_item TO wa_po_item-po_item,
               wa_temp_upr1-ewerks TO wa_po_item-plant,
               wa_temp_upr1-lgort TO wa_po_item-stge_loc,
               wa_temp_upr1-matnr TO wa_po_item-material,
               wa_temp_upr1-menge TO wa_po_item-quantity,
               wa_temp_upr1-peinh TO wa_po_item-price_unit,
               wa_temp_upr1-netpr TO wa_po_item-net_price,
               wa_temp_upr1-meins TO wa_po_item-po_unit,
               wa_temp_upr1-afnam TO wa_po_item-preq_name,
               wa_temp_upr1-eeind TO wa_po_item-price_date,
               ' ' TO wa_po_item-gr_ind,
               'X' TO wa_po_item-ir_ind,
               'X' TO wa_po_item-prnt_price,
               ' ' TO wa_po_item-distrib.
         wa_po_item-acctasscat = 'K'.
         MOVE pckg_no TO wa_po_item-pckg_no.
         wa_po_itemx-pckg_no = abap_true.
         IF wa_temp_upr1-bismt IS INITIAL.
           MOVE: wa_temp_upr1-short_text TO wa_po_item-short_text,
                 wa_temp_upr1-matl_group TO wa_po_item-matl_group,
                  '9' TO wa_po_item-item_cat.
           wa_po_itemx-short_text = abap_true.
           wa_po_itemx-matl_group = abap_true.
           wa_po_itemx-item_cat = abap_true.
           wa_potext-po_item = wa_po_item-po_item.
           wa_potext-text_id = 'F01'.
           APPEND wa_potext TO it_potext.
         ENDIF.
         MOVE wa_po_item-po_item TO wa_po_itemx-po_item.
         wa_po_itemx-plant = abap_true.
         wa_po_itemx-po_itemx = abap_true.
         wa_po_itemx-stge_loc = abap_true.
         IF wa_po_item-material IS NOT INITIAL.
           wa_po_itemx-material = abap_true.
         ENDIF.
         wa_po_itemx-quantity = abap_true.
         wa_po_itemx-price_unit = abap_true.
         wa_po_itemx-net_price = abap_true.
         wa_po_itemx-po_unit = abap_true.
         wa_po_itemx-preq_name = abap_true.
         wa_po_itemx-price_date = abap_true.
         wa_po_itemx-acctasscat = abap_true.
         wa_po_itemx-gr_ind = abap_true.
         wa_po_itemx-distrib = abap_true.
         wa_po_itemx-part_inv = abap_true.
         APPEND wa_po_item TO it_item.
         APPEND wa_po_itemx TO it_itemx.
         CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
             EXPORTING
               INPUT  = wa_temp_upr1-kostl
             IMPORTING
               OUTPUT = wa_temp_upr1-kostl.
           wa_account-costcenter = wa_temp_upr1-kostl.
           ADD 1 TO l_acc.
           ADD 10 TO v_po_item.
           MOVE v_po_item TO wa_account-po_item.
           MOVE '01' TO wa_account-serial_no.
           APPEND wa_account TO it_account.
           wa_accountx-costcenter = abap_true.
           MOVE v_po_item TO wa_accountx-po_item.
           MOVE '01' TO wa_accountx-serial_no.
           wa_accountx-SERIAL_NOX = abap_true.
           wa_accountx-po_itemx = abap_true.
           APPEND wa_accountx TO it_accountx.
    *********** services
           wa_services-pckg_no = pckg_no.
           wa_services-line_no = '0000000001'.
           wa_services-outl_ind = 'X'.
           wa_services-subpckg_no = pckg_no + 1.
           wa_services-quantity = wa_temp_upr1-menge.
           wa_services-base_uom = wa_temp_upr1-meins.
           wa_services-price_unit = wa_temp_upr1-peinh.
           wa_services-gr_price = wa_temp_upr1-netpr.
           IF wa_temp_upr1-short_text IS NOT INITIAL.
             wa_services-short_text = wa_temp_upr1-short_text.
           ENDIF.
           APPEND wa_services TO it_services.
           CLEAR:  wa_services,
                   val_lin.
           wa_services-pckg_no = pckg_no + 1.
           wa_services-line_no = '0000000002'.
           wa_services-quantity = wa_temp_upr1-menge.
           wa_services-base_uom = wa_temp_upr1-meins.
           wa_services-price_unit = wa_temp_upr1-peinh.
           wa_services-gr_price = wa_temp_upr1-netpr.
           IF wa_temp_upr1-short_text IS NOT INITIAL.
             wa_services-short_text = 'SERVICE 1'.
           ENDIF.
           IF NOT wa_temp_upr1-matl_group IS INITIAL.
             wa_services-matl_group = wa_temp_upr1-matl_group.
           ENDIF.
           APPEND wa_services TO it_services.
    ************* service account assignment
           wa_services_acc-pckg_no = pckg_no + 1.
           wa_services_acc-line_no = '0000000002'.
           wa_services_acc-serno_line = '01'.
           wa_services_acc-quantity = wa_temp_upr1-menge.
           wa_services_acc-serial_no = '01'.
           wa_services_acc-net_value = wa_temp_upr1-netpr.
           APPEND wa_services_acc TO it_services_acc.
           CALL FUNCTION 'BAPI_PO_CREATE1'
             EXPORTING
               POHEADER          = wa_header
               POHEADERX         = wa_headerx
               TESTRUN           = pa_test
               NO_PRICE_FROM_PO  = 'X'
             IMPORTING
               EXPPURCHASEORDER  = va_ebeln
               EXPHEADER         = wa_expheader
             TABLES
               RETURN            = it_return
               POITEM            = it_item
               POITEMX           = it_itemx
               POACCOUNT         = it_account
               POACCOUNTX        = it_accountx
               POSERVICES        = it_services
               POSRVACCESSVALUES = it_services_acc
               POTEXTITEM        = it_potext.
    I have done some search regarding this error and try to implemented it, but still does not working.
    example website that i found for this error is:
    David Klein's Corner: SAP Purchase Order Creation Error via BAPI - &quot;In case of account assignment, please enter acc…
    PO Upload through BAPI_PO_CREATE1 - Problem in Service Item
    Currently my system is using: SAP_APPL SAPKH60604
    I am really stuck on this error. Hope you all can help me on this matter.
    Thanks.

    Hi,
    Filling the service line have the problem,
    while filling the services we must follow correct order,
    Here You entering the new services, first manually create purchase order after that observe the table
    'ESLL' and use the FM;-' MS_FETCH_SPEC_FOR_LIST' how the services are inserting after that you also follow the same order.
    if service entries are created before the creation of the PO.
    then follow as bellow....
    SELECT * FROM esll INTO TABLE lt_esll WHERE packno = wa_tmp_spec-packno.
       IF sy-subrc = '0'.
         LOOP AT lt_esll.
           CLEAR :  lt_poservices.
           lt_poservices-pckg_no    = lt_esll-packno .
           lt_poservices-line_no    = lt_esll-introw .
           lt_poservices-ext_line   = lt_esll-extrow .
           lt_poservices-outl_level = lt_esll-rang .
           lt_poservices-outl_no    = lt_esll-extgroup .
           lt_poservices-outl_ind   = lt_esll-del .
           lt_poservices-subpckg_no = lt_esll-sub_packno .
           lt_poservices-service    = lt_esll-srvpos .
           lt_poservices-edition    = lt_esll-ausgb .
           lt_poservices-ssc_item   = lt_esll-stlvpos .
           lt_poservices-ext_serv   = lt_esll-extsrvno.
           lt_poservices-quantity   = lt_esll-menge .
           lt_poservices-base_uom   = lt_esll-meins .
           lt_poservices-ovf_tol    = lt_esll-uebto .
           lt_poservices-ovf_unlim  = lt_esll-uebtk .
           lt_poservices-gr_price   = lt_esll-tbtwr .
           lt_poservices-from_line  = lt_esll-frompos .
           lt_poservices-to_line    = lt_esll-knt_introw.
           lt_poservices-short_text = lt_esll-ktext1 .
           lt_poservices-distrib    = lt_esll-vrtkz .
           lt_poservices-pers_no    = lt_esll-pernr .
           lt_poservices-wagetype   = lt_esll-lgart .
           lt_poservices-con_pckg   = lt_esll-knt_packno.
           lt_poservices-con_line   = lt_esll-knt_introw .
           lt_poservices-matl_group = lt_esll-matkl .
           lt_poservices-taxjurcode = lt_esll-txjcd.
           lt_poservices-tax_code   = lt_esll-mwskz .
           lt_poservices-date       = lt_esll-sdate .
           APPEND  lt_poservices TO lt_poservices[].
           CLEAR lt_esll.
         ENDLOOP.
       ENDIF.
       CALL FUNCTION 'MS_FETCH_SPEC_FOR_LIST'
         EXPORTING
           spec_packno            = wa_tmp_spec-packno
    *     ONLINE_DATA            = ' '
    * IMPORTING
    *     LIMIT                  =
         TABLES
           servicetab             = lt_ml_esll1
    *     LIMITTAB               =
         EXCEPTIONS
           no_specification_exist = 1
           OTHERS                 = 2.
       IF sy-subrc <> 0.
    * Implement suitable error handling here
       ENDIF.
       LOOP AT lt_ml_esll1 INTO DATA(ls_ml_esll1).
         CLEAR :  lt_poservices.
         lt_poservices-pckg_no    = ls_ml_esll1-packno .
         lt_poservices-line_no    = ls_ml_esll1-introw .
         lt_poservices-ext_line   = ls_ml_esll1-extrow .
         lt_poservices-outl_level = ls_ml_esll1-rang .
         lt_poservices-outl_no    = ls_ml_esll1-extgroup .
         lt_poservices-outl_ind   = ls_ml_esll1-del .
         lt_poservices-subpckg_no = ls_ml_esll1-sub_packno .
         lt_poservices-service    = ls_ml_esll1-srvpos .
         lt_poservices-edition    = ls_ml_esll1-ausgb .
         lt_poservices-ssc_item   = ls_ml_esll1-stlvpos .
         lt_poservices-ext_serv   = ls_ml_esll1-extsrvno.
         lt_poservices-quantity   = ls_ml_esll1-menge .
         lt_poservices-base_uom   = ls_ml_esll1-meins .
         lt_poservices-ovf_tol    = ls_ml_esll1-uebto .
         lt_poservices-ovf_unlim  = ls_ml_esll1-uebtk .
         lt_poservices-gr_price   = ls_ml_esll1-tbtwr .
         lt_poservices-from_line  = ls_ml_esll1-frompos .
         lt_poservices-to_line    = ls_ml_esll1-knt_introw.
         lt_poservices-short_text = ls_ml_esll1-ktext1 .
         lt_poservices-distrib    = ls_ml_esll1-vrtkz .
         lt_poservices-pers_no    = ls_ml_esll1-pernr .
         lt_poservices-wagetype   = ls_ml_esll1-lgart .
         lt_poservices-con_pckg   = ls_ml_esll1-knt_packno.
         lt_poservices-con_line   = ls_ml_esll1-knt_introw .
         lt_poservices-matl_group = ls_ml_esll1-matkl .
         lt_poservices-taxjurcode = ls_ml_esll1-txjcd.
         lt_poservices-tax_code   = ls_ml_esll1-mwskz .
         lt_poservices-date       = ls_ml_esll1-sdate .
         APPEND  lt_poservices TO lt_poservices[].
         CLEAR ls_ml_esll1.
       ENDLOOP.
       CLEAR : lt_poservices.
    *& Filling the po service values internal table from service internal table
       LOOP AT lt_poservices[]  INTO lt_poservices WHERE gr_price GT 0.
    READ TABLE lt_ml_esll1 INTO wa_msll WITH KEY  packno = lt_poservices-pckg_no
                                               introw = lt_poservices-line_no
                                            extrow = lt_poservices-ext_line..
         IF sy-subrc EQ 0.
           CLEAR lt_posvalues.
           lt_posvalues-pckg_no    = wa_msll-packno.
           lt_posvalues-line_no    = wa_msll-introw.
           lt_posvalues-quantity   = wa_msll-menge.
    *      lt_posvalues-net_value  = wa_msll-netwr.
           lt_posvalues-serno_line = '01'.
           lt_posvalues-serial_no  = '01'.
    *      lt_posvalues-percentage = '100'.
           APPEND lt_posvalues TO lt_posvalues[].
           CLEAR : wa_msll.
         ENDIF.
       ENDLOOP.
    note:- if  it is correct give points

  • Bapi_po_create1 ,No account assignment exist for service line 0000000000'. for po limits,how to create multiple service items in service po

    hi,
    Hello all, please help!! I used function BAPI_PO_CREATE1 to create PO with limit item but function returned message error '518 No account assignment exist for service line 0000000000'. Can anyone give me an idea to slove this problem?
    i am passing po header, po headerx, po item , po itemx, po account, po accountx, po limits, po services, po service values, to bapi. if i comment package number in po limits structure , po was creating but limits data not updating in po., if i pass package number i am getting above error.
    Thanks In Advance,
    regards

    hi Dinesh,
    am also having same error for bap po create1 . did it get resolved for you? please help its urgently needed for me here

  • 'BAPI_PO_CREATE1'  Multiple account assignment is not possible for AFS item

    'BAPI_PO_CREATE1'  -> This BAPI works perfectly without the  'account assignment' option . But  for purchase requisitions which have account assignments  BAPI returns the error  - E|8W |185   |Multiple account assignment is not possible for AFS items.
    Can somebody please help me to get this error resoleve .
    My coding I have done like below.
    DATA: pohead  TYPE bapimepoheader.
    DATA: poheadx TYPE bapimepoheaderx.
    CONSTANTS : c_x VALUE 'X'.
    DATA: exp_head TYPE bapimepoheader.
    DATA: return  TYPE TABLE OF bapiret2 WITH HEADER LINE.
    DATA: poitem  TYPE TABLE OF bapimepoitem WITH HEADER LINE.
    DATA: poitemx TYPE TABLE OF bapimepoitemx WITH HEADER LINE.
    DATA: posched  TYPE TABLE OF bapimeposchedule WITH HEADER LINE.
    DATA: poschedx TYPE TABLE OF bapimeposchedulx WITH HEADER LINE.
    DATA: POACCOUNT  TYPE TABLE OF BAPIMEPOACCOUNT WITH HEADER LINE.
    DATA: POACCOUNTX TYPE TABLE OF BAPIMEPOACCOUNTx WITH HEADER LINE.
      pohead-comp_code = '1000'.   "IEQ1 plant. "'1000'.
      pohead-doc_type   = 'NB'     .
      pohead-creat_date = sy-datum   .
      pohead-vendor = EKKO-LIFNR. "'0000500004'.
      pohead-purch_org = purch_org.
      pohead-pur_group = purch_grp.
      pohead-langu      = sy-langu   .
      pohead-doc_date   = sy-datum.
      poheadx-comp_code  = c_x.
      poheadx-doc_type   = c_x.
      poheadx-creat_date = c_x.
      poheadx-vendor     = c_x.
      poheadx-langu      = c_x.
      poheadx-purch_org  = c_x.
      poheadx-pur_group  = c_x.
      poheadx-doc_date   = c_x.
      poitem-po_item    = iLineItem.      "1.
      poitem-material   = req_item-MATERIAL.   " '000000000040000234'.
      poitem-plant      = req_item-PLANT.
      poitem-quantity   = req_item-QUANTITY.
      poitem-net_price  = NET_PRICE.
      poitem-price_unit = PRICE_UNIT.
      poitem-shipping   = 'Z1'.
      poitem-preq_no    = req_item-PREQ_NO.
      poitem-preq_item  = req_item-PREQ_ITEM.
      poitem-acctasscat = 'K'.
      APPEND poitem.
      poitemx-po_item    = iLineItem. "1.
      poitemx-po_itemx   = c_x.
      poitemx-material   = c_x.
      poitemx-plant      = c_x .
      poitemx-quantity   = c_x .
      poitemx-tax_code   = c_x .
      poitemx-item_cat   = c_x .
      poitemx-acctasscat = c_x .
      poitemx-net_price  = c_x.
      poitemx-price_unit = c_x.
      poitemx-shipping   = c_x.
      poitemx-preq_no    = c_x.
      poitemx-preq_item  = c_x.
      poitemx-acctasscat = c_x.
      APPEND poitemx.
      POACCOUNT-PO_ITEM = iLineItem.
      POACCOUNT-SERIAL_NO = iLineItem.
      POACCOUNT-GL_ACCOUNT = '0000211010'.
      POACCOUNT-SD_DOC = '0001001056'.       
      POACCOUNT-ITM_NUMBER = '000100'.       
      POACCOUNT-CO_AREA = '1000'.
      APPEND POACCOUNT.
      POACCOUNTX-PO_ITEM = '00001'.
      POACCOUNTX-SERIAL_NO = '01'." '01'.
      POACCOUNTX-PO_ITEMX = 'X'.
      POACCOUNTX-SERIAL_NOX = 'X'.
      POACCOUNTX-GL_ACCOUNT = 'X'.
      POACCOUNTX-SD_DOC = 'X'.
      POACCOUNTX-ITM_NUMBER = 'X'.
      APPEND POACCOUNTX.
      CALL FUNCTION 'BAPI_PO_CREATE1'
        EXPORTING
          poheader  = pohead
          poheaderx = poheadx
        IMPORTING
        exppurchaseorder = ex_po_number
        expheader        = exp_head
        TABLES
          return    = return
          poitem    = poitem
          poitemx   = poitemx
          POACCOUNT = POACCOUNT
          POACCOUNTX = POACCOUNTX.

    I  found the answer

  • Using BAPI_PO_CREATE1 : Linking service, and account assignment

    Hello,
    I have trouble when using BAPI_PO_CREATE1. When creating PO using BAPI_PO_CREATE1, I need to input service for each po item and the service itself need to have account assignment. I simplify the code below.
    **PO item
    t_poitem-po_item        = '10'. "for item 10
    t_poitem-PCKG_NO        = '20'. "link with service
    t_poitemx-po_item        = 'X'.
    t_poitemx-PCKG_NO       = 'X'.
    **Account Assignment
    t_poaccount-po_item    = '10'. "link with PO Item
    t_poaccount-SERIAL_NO  = '01'.
    t_poaccount-DISTR_PERC = 1.
    t_poaccountx-po_item    = '10'.
    t_poaccountx-SERIAL_NO  =  '01'.
    t_poaccountx-po_itemx    = 'X'.
    t_poaccountx-SERIAL_NOx  = 'X'.
    t_poaccountx-DISTR_PERC = 'X'.
    **PO Services
    **1st row
    t_poservices-PCKG_NO = '20'.
    t_poservices-LINE_NO = '0000000001'.
    t_poservices-SUBPCKG_NO  = '21'.
    APPEND t_poservices.
    clear t_poservices.
    **2nd row
    t_poservices-PCKG_NO = '21'.
    t_poservices-LINE_NO = '0000000002'.
    t_poservices-EXT_LINE = '0000000010'.
    **fill account assignment for services
    t_POSRVACCESSVALUES-pckg_no = '21'.
    t_POSRVACCESSVALUES-LINE_NO = '0000000002'.
    T_POSRVACCESSVALUES-SERNO_LINE = '01'.
    t_POSRVACCESSVALUES-SERIAL_NO = '01'. "acct. assign. link
    t_POSRVACCESSVALUES-PERCENTAGE = '100'.
    Every time i execute BAPI_PO_CREATE1 using entry similar like above, i always found error message in t_return like this:
    No account assignment exists for service line 0000000010
    I feel sure that i have fill every field needed to link services and account assignment which is using serial_no, but somehow it does not link correctly. Can anyone advise me if there is some thing missing or incorrect with my ABAP code above? Thank you in advance for your help. For sure, first helpful answer will receive my rewards point.
    Regards,
    Abraham

    Thank you for the code. Actually i have fill the required field as you told but i did not put it in my code here to focus the problem on service and account assignment. After checking out your code, i found that the different between your code and mine is in services table.
    <u><b>your code :</b></u>
    <b>POSERVICES:structure</b>
    PCKG_NO : 0000000001
    LINE_NO :0000000001
    SUBPCKG_NO : 0000000002
    SERVICE :3000000000017
    QUANTITY :5
    BASE_UOM :AU
    GR_PRICE :20000
    <b>POSRVACCESSVALUES: structure name</b>
    PCKG_NO :0000000002
    LINE_NO :0000000002
    <u><b>my code are:</b></u>
    <b>POSERVICES:structure</b>
    PCKG_NO : 0000000001
    LINE_NO :0000000001
    SUBPCKG_NO : 0000000002
    PCKG_NO : 0000000002
    LINE_NO :0000000002
    SERVICE :3000000000017
    QUANTITY :5
    BASE_UOM :AU
    GR_PRICE :20000
    <b>POSRVACCESSVALUES: structure name</b>
    PCKG_NO :0000000002
    LINE_NO :0000000002
    SERIAL_NO :0000000001
    The other difference are in account assignment table, you didn't fill SERIAL_NO field.
    my code will be like below:
    <b>POACCOUNT: structure name</b>
    PO_ITEM :10
    SERIAL_NO : 0000000001
    If using your version, the error message will be:
    <i>In case of account assignment, please enter acc. assignment data for item</i>
    If using my version, the error message will be:
    <i>No account assignment exists for service line 0000000010</i>
    Please advise what was wrong with my code. Thank you.
    Regards,
    Abraham

  • Multiple Account Assignment issue with BAPI_PO_CREATE1 for service POs

    Whle creating service PO through BAPI_PO_CREATE1, The account assignments at the service line items were not being added correctly at the item level, instead they are getting split further wrt tax jurisdiction. This is occuring when an item have multiple service line items with mutltiple account assignments.
    The sample code is below, and the all the internal tables and structure were related to BAPI_PO_CREATE1. Tried with BADI ME_TAX_FROM_ADDRESS and User Exit enhancement SAPL2012, which were not helpful for this particular scenario.
    Item Details
    W_BAPI_ITEM-PO_ITEM = 1.
    W_BAPI_ITEMX-PO_ITEM = 1.
    W_BAPI_ITEM-ITEM_CAT = D.
    W_BAPI_ITEMX-ITEM_CAT = 'X'.
    W_BAPI_ITEM-ACCTASSCAT = K.
    W_BAPI_ITEMX-ACCTASSCAT = 'X'.
    W_BAPI_ITEM-PLANT = USMP. Tax Jurisdiction code 3604931001
    W_BAPI_ITEMX-PLANT = 'X'.
    W_BAPI_ITEM-MATL_GROUP = IT37.
    W_BAPI_ITEMX-MATL_GROUP = 'X'.
    W_BAPI_ITEM-QUANTITY = 1.
    W_BAPI_ITEMX-QUANTITY = 'X'.
    W_BAPI_ITEM-PRICE_UNIT = 1.
    W_BAPI_ITEMX-PRICE_UNIT = 'X'.
    W_BAPI_ITEM-PO_UNIT = LE.
    W_BAPI_ITEMX-PO_UNIT = 'X'.
    W_BAPI_ITEM-NET_PRICE = 100.
    W_BAPI_ITEMX-NET_PRICE = 'X'.
    W_BAPI_ITEM-PCKG_NO = 3456.
    W_BAPI_ITEMX-PCKG_NO = 'X'.
    W_BAPI_ITEM-PREQ_NAME = RTPTS02.
    W_BAPI_ITEMX-PREQ_NAME = 'X'.
    APPEND W_BAPI_ITEM TO IT_BAPI_ITEM.
    APPEND W_BAPI_ITEMX TO IT_BAPI_ITEMX.
    Delivery address details - Tax Jurisdiction 3305923401
    W_BAPI_ADDRDEL-PO_ITEM = 1.
    W_BAPI_ADDRDEL-NAME = COR.
    W_BAPI_ADDRDEL-NAME_2 = Chairman.
    W_BAPI_ADDRDEL-BUILD_LONG = 1001R
    W_BAPI_ADDRDEL-CITY = plainview.
    W_BAPI_ADDRDEL-STREET = old country road.
    W_BAPI_ADDRDEL-POSTL_COD1 = 11803.
    W_BAPI_ADDRDEL-COUNTRY = US.
    W_BAPI_ADDRDEL-REGION = NY.
    APPEND W_BAPI_ADDRDEL TO IT_BAPI_ADDRDEL.
    First Account Assignment - 3310300441
    W_BAPI_POACNT-SERIAL_NO = 1.
    W_BAPI_POACNTX-SERIAL_NO = 1.
    W_BAPI_POACNTX-SERIAL_NOX = 'X'.
    W_BAPI_POACNT-CREAT_DATE  = 11/03/2010.
    W_BAPI_POACNTX-CREAT_DATE  = 'X'.
    W_BAPI_POACNT-QUANTITY = 0.75.
    W_BAPI_POACNTX-QUANTITY  = 'X'.
    W_BAPI_POACNT-DISTR_PERC = 75.
    W_BAPI_POACNTX-DISTR_PERC  = 'X'.
    W_BAPI_POACNT-NET_VALUE = 75 .
    W_BAPI_POACNTX-NET_VALUE  = 'X'.
    W_BAPI_POACNT-PO_ITEM = 1.
    W_BAPI_POACNTX-PO_ITEM = 1.
    W_BAPI_POACNTX-PO_ITEMX = 'X'.
    W_BAPI_POACNT-GL_ACCOUNT = 641099.
    W_BAPI_POACNTX-GL_ACCOUNT  = 'X'.
    W_BAPI_POACNT-COSTCENTER =  10010394.
    W_BAPI_POACNTX-COSTCENTER = 'X'.
    W_BAPI_POACNT-CO_AREA = 1234.
    W_BAPI_POACNTX-CO_AREA = 'X'.
    APPEND W_BAPI_POACNT TO IT_BAPI_POACNT.
    APPEND W_BAPI_POACNTX TO IT_BAPI_POACNTX.
    Second Account Assignment
    W_BAPI_POACNT-SERIAL_NO = 2.
    W_BAPI_POACNTX-SERIAL_NO = 2.
    W_BAPI_POACNTX-SERIAL_NOX = 'X'.
    W_BAPI_POACNT-CREAT_DATE  = 11/03/2010.
    W_BAPI_POACNTX-CREAT_DATE  = 'X'.
    W_BAPI_POACNT-QUANTITY = 0.25.
    W_BAPI_POACNTX-QUANTITY  = 'X'.
    W_BAPI_POACNT-DISTR_PERC = 25.
    W_BAPI_POACNTX-DISTR_PERC  = 'X'.
    W_BAPI_POACNT-NET_VALUE = 25 .
    W_BAPI_POACNTX-NET_VALUE  = 'X'.
    W_BAPI_POACNT-PO_ITEM = 1.
    W_BAPI_POACNTX-PO_ITEM = 1.
    W_BAPI_POACNTX-PO_ITEMX = 'X'.
    W_BAPI_POACNT-GL_ACCOUNT = 641099.
    W_BAPI_POACNTX-GL_ACCOUNT  = 'X'.
    W_BAPI_POACNT-COSTCENTER =  10010393.
    W_BAPI_POACNTX-COSTCENTER = 'X'.
    W_BAPI_POACNT-CO_AREA = 1234.
    W_BAPI_POACNTX-CO_AREA = 'X'.
    APPEND W_BAPI_POACNT TO IT_BAPI_POACNT.
    APPEND W_BAPI_POACNTX TO IT_BAPI_POACNTX.
    Service Item detials
    W_BAPI_SERVICE-OUTL_IND = 'X'.
    W_BAPI_SERVICE-SUBPCKG_NO =  3457.
    W_BAPI_SERVICE-LINE_NO = 1.
    W_BAPI_SERVICE-PCKG_NO = 3456.
    W_BAPI_SERVICE-EXT_LINE = 0000000000.
    W_BAPI_SERVICE-QUANTITY = 0.
    W_BAPI_SERVICE-BASE_UOM = 0.
    W_BAPI_SERVICE-PRICE_UNIT = 0.
    W_BAPI_SERVICE-GR_PRICE = 0.
    W_BAPI_SERVICE-SHORT_TEXT = 0.
    W_BAPI_SERVICE-MATL_GROUP = 0.
    W_BAPI_SERVICE-DISTRIB = 0.
    APPEND W_BAPI_SERVICE TO IT_BAPI_SERVICE.
    W_BAPI_SERVICE-OUTL_IND = 'X'.
    W_BAPI_SERVICE-LINE_NO = 2.
    W_BAPI_SERVICE-PCKG_NO = 3457.
    W_BAPI_SERVICE-EXT_LINE = 0000000010.
    W_BAPI_SERVICE-QUANTITY = 10.
    W_BAPI_SERVICE-BASE_UOM = STD.
    W_BAPI_SERVICE-PRICE_UNIT = 0.
    W_BAPI_SERVICE-GR_PRICE = 5.
    W_BAPI_SERVICE-SHORT_TEXT = Cabling Services1.
    W_BAPI_SERVICE-MATL_GROUP = IT37.
    W_BAPI_SERVICE-DISTRIB = 2.
    APPEND W_BAPI_SERVICE TO IT_BAPI_SERVICE.
    W_BAPI_SERVICE-OUTL_IND = 'X'.
    W_BAPI_SERVICE-LINE_NO = 3.
    W_BAPI_SERVICE-PCKG_NO = 3457.
    W_BAPI_SERVICE-EXT_LINE = 0000000020.
    W_BAPI_SERVICE-QUANTITY = 10.
    W_BAPI_SERVICE-BASE_UOM = STD.
    W_BAPI_SERVICE-PRICE_UNIT = 0.
    W_BAPI_SERVICE-GR_PRICE = 5.
    W_BAPI_SERVICE-SHORT_TEXT = Cabling Services2.
    W_BAPI_SERVICE-MATL_GROUP = IT37.
    W_BAPI_SERVICE-DISTRIB = 2.
    APPEND W_BAPI_SERVICE TO IT_BAPI_SERVICE.
    Service Account assignment details
    W_ACC_SERVICE-PCKG_NO = 3457.
    W_ACC_SERVICE-LINE_NO = 2.
    W_ACC_SERVICE-SERNO_LINE = 1.
    W_ACC_SERVICE-SERIAL_NO = 1.   "Account Assignment Link
    W_ACC_SERVICE-NET_VALUE = .
    W_ACC_SERVICE-QUANTITY = 50 .
    W_ACC_SERVICE-PERCENTAGE = 100 .
    APPEND W_ACC_SERVICE TO IT_ACC_SERVICE.
    W_ACC_SERVICE-PCKG_NO = 3457.
    W_ACC_SERVICE-LINE_NO = 3.
    W_ACC_SERVICE-SERNO_LINE = 1.
    W_ACC_SERVICE-SERIAL_NO = 1.   "Account Assignment Link
    W_ACC_SERVICE-NET_VALUE = .
    W_ACC_SERVICE-QUANTITY = 50 .
    W_ACC_SERVICE-PERCENTAGE = 50 .
    APPEND W_ACC_SERVICE TO IT_ACC_SERVICE.
    W_ACC_SERVICE-PCKG_NO = 3457.
    W_ACC_SERVICE-LINE_NO = 3.
    W_ACC_SERVICE-SERNO_LINE = 1.
    W_ACC_SERVICE-SERIAL_NO = 2.   "Account Assignment Link
    W_ACC_SERVICE-NET_VALUE = .
    W_ACC_SERVICE-QUANTITY = 50 .
    W_ACC_SERVICE-PERCENTAGE = 50 .
    APPEND W_ACC_SERVICE TO IT_ACC_SERVICE.
    EKKN table entries:
    When created thru ME21N with the same set of data,which is expected
    ZEKKN            MENGE            NETWR  SAKTO        KOSTL
    01               0.750            75.00  0000641099   0010010394
    02               0.250            25.00  0000641099   0010010393
    But through BAPI_PO_CREATE1, the below split is being done with respect to Tax Jurisdiction code.
    01               0.500            50.00  0000641099   0010010394
    02               0.250            25.00  0000641099   0010010394
    03               0.250            25.00  0000641099   0010010393
    Please advice the solution.
    PS: there were different tax jurisdiction codes were being determined.
    Plant, Cost Center and Delivery Address.

    Hi,
    To commit BAPI or to run it properly , you need to fulfill all required data for BAPI.
    You can go to BAPI documentation to check for mandetory parameters and also check with Function consultant for more data and confifuration/
    Reward if useful!

  • BAPI_PO_CREATE1 -  E 06 436 In case of account assignment

    Please, I need your help...
    I am trying to create the PO´s since last week, but is imposible. I try to search posts about this same case but, nothing good to me.
    Well, I am creating a Service PO using an agreement and buying to cost center.
    When I execute the BAPI generate this messege:
    E 06 436 In case of account assignment, please enter acc. assignment data for item .
    I put the agreement and item in POITEM and checked in POITEMX. The system bring to me all fields of agreement, but don´t bring the account. In PO ITEM bring the ACCTASSCAT = K.
    What I must to do to bring the Account Itens that are inside of my agreement?
    Please, help me. I am with problems because I can´t do it.
    Thanks a lot ,
    Victoria.

    Hi,
    When we create Purchase Order using "BAPI_PO_CREATE1", it works for all cases but we can have problems when we create Service Items in PO. Either we get an error u201CPlease maintain services or limitsu201D or u201CIn case of Account assignment, please enter acc. assignment data for itemu201D.
    Service PO occurs when we enter item category u2018Du2019 (Service) and Account category u2018Ku2019 (Cost Center).
    When we use BAPI_PO_CREATE1 to create service PO, following tables are populated at item level:
    a) POITEM
    b) POITEMX
    c) POACCOUNT
    d) POACCOUNTX
    e) POSERVICES
    f) POSRVACCESSVALUES
    For service items: POITEM-PCKG_NO = u20180000000001u2019. (assign package no as a dummy number)
    Set PCKG_NO flag in POITEMX table as u2018Xu2019.
    Package No is the link that connect POITEM table to POACCOUNT table through tables POSERVICES and POSRVACCESSVALUES.
    Set POACCOUNT-SERIAL_NO to u201801u2019.
    Set same PCKG_NO to u20180000000001u2019 in POSERVICES table. Maintain two entries in POSERVICES table like this:
    WA_POSERVICES-PCKG_NO = u20180000000001u2019.
    WA_POSERVICES-LINE_NO = u20180000000001u2019.
    WA_POSERVICES-OUTL_IND = u2018Xu2019.
    WA_POSERVICES-SUBPCKG_NO = u20180000000003u2019. (Dummy No.)
    WA_POSERVICES-QUANTITY = u2018100.000u2019.
    WA_POSERVICES-BASE_UOM = u2018EAu2019.
    WA_POSERVICES-PRICE_UNIT = u20181u2019.
    WA_POSERVICES-GR_PRICE = u2018100.000u2019.
    WA_POSERVICES-SHORT_TEXT = u2018SERVICE TESTu2019.
    APPEND WA_POSERVICES TO IT_POSERVICES.
    WA_POSERVICES- PCKG_NO = u20180000000003u2019.
    WA_POSERVICES- LINE_NO = u20180000000002u2019.
    WA_POSERVICES-QUANTITY = u201810.000u2019.
    WA_POSERVICES- BASE_UOM = u2018EAu2019.
    WA_POSERVICES--PRICE_UNIT = u20181u2019.
    WA_POSERVICES-GR_PRICE = u2018100.000u2019.
    WA_POSERVICES-SHORT_TEXT = u2018SERVICE 1u2019.
    WA_POSERVICES-MATL_GROUP = u20180012u2019.
    APPEND WA_POSERVICES TO IT_POSERVICES.
    Set PCKG_NO as SUB_PCKG_NO in table POSRVACCESSVALUES this:
    WA_POSRVACCESSVALUES-PCKG_NO = u20180000000003u2019.
    WA_POSRVACCESSVALUES-LINE_NO = u20180000000002u2019.
    WA_POSRVACCESSVALUES-SERNO_LINE = u201801u2019.
    WA_POSRVACCESSVALUES-SERIAL_NO = u201801u2019.
    WA_POSRVACCESSVALUES-QUANTITY = u201910.000u2019.
    APPEND WA_POSRVACCESSVALUES TO IT_ POSRVACCESSVALUES.
    This logic will work definitely and PO Service Items will be created.

  • BAPI_PO_CREATE1 -  In case of account assignment, please enter acc. assignm

    Please, I need your help...
    I am trying to create the PO´s since last week, but is imposible. I try to search posts about this same case but, nothing good to me.
    Well, I am creating a Service PO using an agreement and buying to cost center.
    When I execute the BAPI generate this messege:
    E 06 436 In case of account assignment, please enter acc. assignment data for item  .
    I put the agreement and item in POITEM and checked in POITEMX. The system bring to me all fields of agreement, but don´t bring the account. In PO ITEM bring the ACCTASSCAT = K.
    What I must to do to bring the Account Itens that are inside of my agreement.
    Please, help me. I am with problems because I can´t do it.
    Thanks a lot ,
    Victoria.

    Hi,
    When we create Purchase Order using "BAPI_PO_CREATE1", it works for all cases but we can have problems when we create Service Items in PO. Either we get an error u201CPlease maintain services or limitsu201D or u201CIn case of Account assignment, please enter acc. assignment data for itemu201D.
    Service PO occurs when we enter item category u2018Du2019 (Service) and Account category u2018Ku2019 (Cost Center).
    When we use BAPI_PO_CREATE1 to create service PO, following tables are populated at item level:
    a) POITEM
    b) POITEMX
    c) POACCOUNT
    d) POACCOUNTX
    e) POSERVICES
    f) POSRVACCESSVALUES
    For service items: POITEM-PCKG_NO = u20180000000001u2019. (assign package no as a dummy number)
    Set PCKG_NO flag in POITEMX table as u2018Xu2019.
    Package No is the link that connect POITEM table to POACCOUNT table through tables POSERVICES and POSRVACCESSVALUES.
    Set POACCOUNT-SERIAL_NO to u201801u2019.
    Set same PCKG_NO to u20180000000001u2019 in POSERVICES table. Maintain two entries in POSERVICES table like this:
    WA_POSERVICES-PCKG_NO = u20180000000001u2019.
    WA_POSERVICES-LINE_NO = u20180000000001u2019.
    WA_POSERVICES-OUTL_IND = u2018Xu2019.
    WA_POSERVICES-SUBPCKG_NO = u20180000000003u2019. (Dummy No.)
    WA_POSERVICES-QUANTITY = u2018100.000u2019.
    WA_POSERVICES-BASE_UOM = u2018EAu2019.
    WA_POSERVICES-PRICE_UNIT = u20181u2019.
    WA_POSERVICES-GR_PRICE = u2018100.000u2019.
    WA_POSERVICES-SHORT_TEXT = u2018SERVICE TESTu2019.
    APPEND WA_POSERVICES TO IT_POSERVICES.
    WA_POSERVICES- PCKG_NO = u20180000000003u2019.
    WA_POSERVICES- LINE_NO = u20180000000002u2019.
    WA_POSERVICES-QUANTITY = u201810.000u2019.
    WA_POSERVICES- BASE_UOM = u2018EAu2019.
    WA_POSERVICES--PRICE_UNIT = u20181u2019.
    WA_POSERVICES-GR_PRICE = u2018100.000u2019.
    WA_POSERVICES-SHORT_TEXT = u2018SERVICE 1u2019.
    WA_POSERVICES-MATL_GROUP = u20180012u2019.
    APPEND WA_POSERVICES TO IT_POSERVICES.
    Set PCKG_NO as SUB_PCKG_NO in table POSRVACCESSVALUES this:
    WA_POSRVACCESSVALUES-PCKG_NO = u20180000000003u2019.
    WA_POSRVACCESSVALUES-LINE_NO = u20180000000002u2019.
    WA_POSRVACCESSVALUES-SERNO_LINE = u201801u2019.
    WA_POSRVACCESSVALUES-SERIAL_NO = u201801u2019.
    WA_POSRVACCESSVALUES-QUANTITY = u201910.000u2019.
    APPEND WA_POSRVACCESSVALUES TO IT_ POSRVACCESSVALUES.
    This logic will work definitely and PO Service Items will be created.

  • BAPI_PO_CREATE1 - In case of account assignment, please enter acc. assignme

    Hello!
    While using bapi_po_create1 and making it account assignment in services case
    i get an error
    E 06 436 In case of account assignment, please enter acc. assignment data for item
    Thanks!

    Hello,
    When we create Purchase Order using "BAPI_PO_CREATE1", it works for all cases but we can have problems when we create Service Items in PO. Either we get an error u201CPlease maintain services or limitsu201D or u201CIn case of Account assignment, please enter acc. assignment data for itemu201D.
    Service PO occurs when we enter item category u2018Du2019 (Service) and Account category u2018Ku2019 (Cost Center).
    When we use BAPI_PO_CREATE1 to create service PO, following tables are populated at item level:
    a) POITEM
    b) POITEMX
    c) POACCOUNT
    d) POACCOUNTX
    e) POSERVICES
    f) POSRVACCESSVALUES
    For service items: POITEM-PCKG_NO = u20180000000001u2019. (assign package no as a dummy number)
    Set PCKG_NO flag in POITEMX table as u2018Xu2019.
    Package No is the link that connect POITEM table to POACCOUNT table through tables POSERVICES and POSRVACCESSVALUES.
    Set POACCOUNT-SERIAL_NO to u201801u2019.
    Set same PCKG_NO to u20180000000001u2019 in POSERVICES table. Maintain two entries in POSERVICES table like this:
    WA_POSERVICES-PCKG_NO = u20180000000001u2019.
    WA_POSERVICES-LINE_NO = u20180000000001u2019.
    WA_POSERVICES-OUTL_IND = u2018Xu2019.
    WA_POSERVICES-SUBPCKG_NO = u20180000000003u2019. (Dummy No.)
    WA_POSERVICES-QUANTITY = u2018100.000u2019.
    WA_POSERVICES-BASE_UOM = u2018EAu2019.
    WA_POSERVICES-PRICE_UNIT = u20181u2019.
    WA_POSERVICES-GR_PRICE = u2018100.000u2019.
    WA_POSERVICES-SHORT_TEXT = u2018SERVICE TESTu2019.
    APPEND WA_POSERVICES TO IT_POSERVICES.
    WA_POSERVICES- PCKG_NO = u20180000000003u2019.
    WA_POSERVICES- LINE_NO = u20180000000002u2019.
    WA_POSERVICES-QUANTITY = u201810.000u2019.
    WA_POSERVICES- BASE_UOM = u2018EAu2019.
    WA_POSERVICES--PRICE_UNIT = u20181u2019.
    WA_POSERVICES-GR_PRICE = u2018100.000u2019.
    WA_POSERVICES-SHORT_TEXT = u2018SERVICE 1u2019.
    WA_POSERVICES-MATL_GROUP = u20180012u2019.
    APPEND WA_POSERVICES TO IT_POSERVICES.
    Set PCKG_NO as SUB_PCKG_NO in table POSRVACCESSVALUES this:
    WA_POSRVACCESSVALUES-PCKG_NO = u20180000000003u2019.
    WA_POSRVACCESSVALUES-LINE_NO = u20180000000002u2019.
    WA_POSRVACCESSVALUES-SERNO_LINE = u201801u2019.
    WA_POSRVACCESSVALUES-SERIAL_NO = u201801u2019.
    WA_POSRVACCESSVALUES-QUANTITY = u201910.000u2019.
    APPEND WA_POSRVACCESSVALUES TO IT_ POSRVACCESSVALUES.
    This logic will work definitely and PO Service Items will be created.
    Thanks,
    Jayarama Krishna

  • Error After BAPI_PO_CREATE1 with multiple Lines "Enter Account Assignment"

    Hi,
    I am trying to Post Purchase Orders with Multiple lines using BAPI_PO_CREATE1 and got error
    "Enter Account Assignment". This is happening when I post PO with multiple line items.
    I am trying the same PO with one record, PO is creating successfully. Do I need to put any additional data.
    I am creating PO with Item Category 'D' and Account Assignment 'N' and external number range and internal number range.
    Pls let me know, Do i need any additional flags for this.
    Thanks,
    naini

    Hello all,
    please help!!
    I used function BAPI_PO_CREATE1 to create PO with limit item but function returned message error '518 No account assignment exist for service line 0000000000'. Can anyone give me an idea to slove this problem? for your information, I used parameters below to run this function.
    POHEADER
    POHEADER-COMP_CODE = '1205'
    POHEADER-DOC_TYPE = 'GZPO'
    POHEADER-VENDOR = '8000001313'
    POHEADER-PMNTTRMS = '0001'
    POHEADER-PURCH_ORG = '1222'.
    POHEADER-PUR_GROUP = 'K05'
    POHEADER-CURRENCY = 'THB'
    POHEADER-EXCH_RATE = '1.00000'
    POHEADER-EX_RATE_FX = ' X'
    POHEADER-DOC_DATE = '10.06.2008'
    POHEADERX
    POHEADERX-COMP_CODE = 'X'
    POHEADERX-DOC_TYPE = 'X'
    POHEADERX-VENDOR = 'X'
    POHEADERX-PMNTTRMS= 'X'
    POHEADERX-DSCNT1_TO = 'X'
    POHEADERX-PURCH_ORG= 'X'
    POHEADERX-PUR_GROUP = 'X'
    POHEADERX-CURRENCY= 'X'
    POHEADERX-EXCH_RATE= 'X'
    POHEADERX-EX_RATE_FX= 'X'
    POHEADERX-DOC_DATE= 'X'
    POHEADERX-INCOTERMS1= 'X'
    POHEADERX-INCOTERMS2= 'X'
    POITEM
    POITEM-SHORT_TEXT = 'TEST'
    POITEM-PLANT = '5005'
    POITEM-MATL_GROUP = '606100001'
    POITEM-QUANTITY = '1.000'
    POITEM-PO_UNIT = 'AU'
    POITEM-ITEM_CAT = 'B'
    POITEM-ACCTASSCAT = 'K'
    POITEM-DISTRIB = ' '
    POITEM-PART_INV = ' '
    POITEM-PCKG_NO = '0000100001'
    POITEMX
    POITEMX-SHORT_TEXT = 'X'
    POITEMX-PLANT = 'X'
    POITEMX-MATL_GROUP = 'X'
    POITEMX-QUANTITY = 'X'
    POITEMX-PO_UNIT = 'X'
    POITEMX-ITEM_CAT = 'X'
    POITEMX-ACCTASSCAT = 'X'
    POITEMX-DISTRIB = 'X'
    POITEMX-PART_INV = 'X'
    POITEMX-PCKG_NO = 'X'
    POSCHEDULE
    POSCHEDULE-PO_ITEM = '00001'
    POSCHEDULE-SCHED_LINE = '0001'
    POSCHEDULE-DEL_DATCAT_EXT = 'D'
    POSCHEDULE-DELIVERY_DATE = '01.09.2006'
    POSCHEDULE-QUANTITY = ' 1.000'
    POSCHEDULEX
    POSCHEDULEX-PO_ITEM= '00001'
    POSCHEDULEX-SCHED_LINE = '0001'
    POSCHEDULEX-PO_ITEMX = 'X'
    POSCHEDULEX-SCHED_LINEX = 'X'
    POSCHEDULEX-DEL_DATCAT_EXT = 'X'
    POSCHEDULEX-DELIVERY_DATE = 'X'
    POSCHEDULEX-QUANTITY = 'X'
    POACCOUNT
    POACCOUNT-PO_ITEM = '00001'
    POACCOUNT-SERIAL_NO = '01'
    POACCOUNT-GL_ACCOUNT = '0065903020'
    POACCOUNT-BUS_AREA = '70'
    POACCOUNT-COSTCENTER = '0010700003'
    POACCOUNT-ORDERID = ' '
    POACCOUNTX
    POACCOUNTX-PO_ITEM = '00001'
    POACCOUNTX-SERIAL_NO = '01'
    POACCOUNTX-PO_ITEMX = 'X'
    POACCOUNTX-SERIAL_NOX = 'X'
    POACCOUNTX-GL_ACCOUNT = 'X'
    POACCOUNTX-BUS_AREA = 'X'
    POACCOUNTX-COSTCENTER = 'X'
    POACCOUNTX-ORDERID = 'X'
    POSERVICES
    POSERVICES-PCKG_NO = '0000100001'
    POSERVICES-LINE_NO = '0000000001'
    POSERVICES-OUTL_IND = 'X'
    POSERVICES-SUBPCKG_NO = '0000100002'
    POSERVICES-QUANTITY = ' '
    POSERVICES-BASE_UOM = ' '
    POSERVICES-GR_PRICE = ' '
    POSERVICES-FROM_LINE = '000001'
    POSERVICES-TO_LINE = '999999'
    POSERVICES-SHORT_TEXT = ' '
    POSERVICES-MATL_GROUP = ' '
    APPEND POSERVICES
    POSERVICES-PCKG_NO = '00100002'
    POSERVICES-LINE_NO = '0000002'
    POSERVICES-OUTL_IND = ' '
    POSERVICES-SUBPCKG_NO = ' '
    POSERVICES-QUANTITY = '1.000'
    POSERVICES-BASE_UOM = 'AU'
    POSERVICES-GR_PRICE = '43,486.21'
    POSERVICES-FROM_LINE = ' '
    POSERVICES-TO_LINE = ' '
    POSERVICES-SHORT_TEXT = 'Demurrage'
    POSERVICES-MATL_GROUP = '606100001'
    POSRVACCESSVALUES
    POSRVACCESSVALUES-PCKG_NO = '0000100001'
    POSRVACCESSVALUES-LINE_NO = '0000000001'
    POSRVACCESSVALUES-SERIAL_NO = ' '
    POSRVACCESSVALUES-QUANTITY = ' '
    APPEND POSRVACCESSVALUES
    POSRVACCESSVALUES-PCKG_NO = '0000100002'
    POSRVACCESSVALUES-LINE_NO = '0000000002'
    POSRVACCESSVALUES-SERIAL_NO = '01'
    POSRVACCESSVALUES-QUANTITY = '1.000'
    POLIMITS
    POLIMITS-PCKG_NO = '0000100001'
    POLIMITS-LIMIT = '1.00'
    POLIMITS-EXP_VALUE = '1.00'
    APPEND POLIMITS
    POLIMITS-PCKG_NO = '0000100002'
    POLIMITS-LIMIT = ' '
    POLIMITS-EXP_VALUE = ' '
    please help
    Thank you for advance

  • BAPI_PO_CREATE1-No account assignment exists for service line 0000000000

    Hi guys
    I'm trying to use the above BAPI to create purchase orders from legacy system. I have populated ALL of the required tables (including the Xs) but I was returned the above error: No account assignment exists for service line 0000000000.
    I have populated fields in the POLIMITS structure 
    POLIMITS-PCKG_NO
    POLIMITS-LIMIT
    POLIMITS-EXP_VALUE.
    Any solutions?
    Thanks in advance.
    Cheers!

    hi Dinesh,
    am also having same error for bap po create1 . did it get resolved for you? please help its urgently needed for me here

  • BAPI_PO_CREATE1 - PO not created due to wrong account assignment

    Hello,
    I'm trying to use this BAPI for a PO that I can create with ME21n, so I'm asking you what can be wrong with my input data. Here are the facts:
    A - Message returned: KI / 265: Cost Center 1000 / 1000 does not exist;
    B - Account Assignment Category = 'K' (Cost Center);
    C - G/L account exists and is valid for the PO date;
    D - Cost center exists and is valid for the PO date;
    Here's how I'm filling the POACCOUNT table (one item only)
    PO_ITEM = 00010
    SERIAL_NO = 01
    CREAT_DATE = 20.10.2009
    GL_ACCOUNT = 614000
    COSTCENTER = 1000
    CO_AREA = 1000
    In the POACCOUNTX table I filled the appropriate fields
    Please remind that the PO enters fine with ME21n.
    Any clues?
    Regards,
    Joã

    Hi,
    do you get the same error Ki265 also in the online transaction ME21N?
    Maybe you need to specify POACCOUNT-COSTCENTER with leading zeros; like        
    "0000001000".                                                            
    Please check In your test data POHEADER-COMP_CODE and POHEADERX-COMP_CODE, these should be filled as well.
    If you still have a problem with the BAPI creation, please create a SAP ticket and use the notes 375886 and 539978
    to prive us with a test data to check in SE37.
    Regards,
    Edit

  • BAPI_PO_CREATE1 for blocked item and account assignment category Q

    Hi,
    I am facing an issue while creating PO with items which are blocked ie LOEKZ = 'S', and account assignment category 'Q'.
    Though I fill wbs element in POACCOUNT and POACCOUNTX structures, after execution it is being erased and am getting an error: "Enter WBS Element" with an information message "Change G/L Account could not be effected".
    Please help.
    Thanks in advance.
    Regards
    Kalyani

    Hi Ravi,
    Below is the code:
    POITEM-PO_ITEM = '00010'
    POITEM-DELETE_IND = 'S'
    POITEM-ACCTASSCAT = 'Q'
    POACCOUNT-PO_ITEM = '00010'
    POACCOUNT-SERIAL_NO = '01'
    POACCOUNT-CO_AREA = '1000'
    POACCOUNT-WBS_ELEMENT = 'XXXX'
    I filled POITEMX, POACCOUNTX structures too.
    When I dont pass POITEM-DELETE_IND = 'S', the PO is being created.
    But my requirement is to make the item blocked.
    Thanks in advance.
    Regards
    Kalyani

  • Error in PO using  BAPI_PO_CREATE1

    Hi ,
    I got a error in the po  that in my template the netpr is 8.00 but in the output always displaying the amount 1.00 only in POITEM-NET_PRICE.even i change in the template different values but no change in the output.why like this and how to solve this.
    Thanks,
    Regards,
    Rajendra.

    Hi Eswar,
           Below is the code,
    tables: T100.
    DATA : POHEADER         LIKE BAPIMEPOHEADER ,    
           POHEADERX        LIKE BAPIMEPOHEADERX,   
           POITEM           LIKE BAPIMEPOITEM     OCCURS 0 WITH HEADER LINE,
           POITEMX          LIKE BAPIMEPOITEMX    OCCURS 0 WITH HEADER LINE,
           POSCHEDULE       LIKE BAPIMEPOSCHEDULE OCCURS 0 WITH HEADER LINE,
           POSCHEDULEX      LIKE BAPIMEPOSCHEDULX OCCURS 0 WITH HEADER LINE,
           POACCOUNT        LIKE BAPIMEPOACCOUNT  OCCURS 0 WITH HEADER LINE,
           POACCOUNTX       LIKE BAPIMEPOACCOUNTX OCCURS 0 WITH HEADER LINE,
           POCOND           LIKE BAPIMEPOCOND     OCCURS 0 WITH HEADER LINE,
           POCONDX          LIKE BAPIMEPOCONDX    OCCURS 0 WITH HEADER LINE,
           RETURN           LIKE BAPIRET2         OCCURS 0 WITH HEADER LINE,
           EXPPURCHASEORDER LIKE BAPIMEPOHEADER-PO_NUMBER.
           POHEADER-COMP_CODE = '2006'.
    DATA : BEGIN OF DATA_TAB OCCURS 0,
               BSART(4)  TYPE C,
               LIFNR(10) TYPE C,
               EKORG(4)  TYPE C,
               EKGRP(3)  TYPE C,
               EBELP(5)  TYPE C,
               MATNR(18) TYPE C,
               MAKTX(40) TYPE C,
               WERKS(4)  TYPE C,
               CHARG(10) TYPE C,
               BEDNR(10) TYPE C,
               PSTYP(1)  TYPE C,
               KNTTP(1)  TYPE C,
               ANLN1(12) TYPE C,
               ANLN2(4)  TYPE C,
               AUFNR(12) TYPE C,
               PS_PSP_PNR(8) TYPE C,
               EINDT(8)  TYPE C,
               WAERS(5)  TYPE C,
               NETPR(11) TYPE C,
               WKURS(9)  TYPE C,
               BEDAT(8)  TYPE C,
               SAKTO(10) TYPE C,
               KOSTL(10) TYPE C,
               MENGE(13) TYPE C,
               MEINS(3)  TYPE C,
               KWERT(13) TYPE C,
               KSCHL(4)  TYPE C,
            END OF DATA_TAB.
    Data
    DATA : wc_file    type string,
           wc_tabix   like sy-tabix,
           wc_fl(40)  type c,
           wc_tot(19) type n.
    data: i_tab1        like alsmex_tabline occurs 0 with header line,
         w_Data_tab    like Data_tab occurs 0 with header line,
          w_Data_tab    like Data_tab,
          w_totlines    type i,
          w_end_col     type i.
    DATA : C_X(1) TYPE c VALUE 'X'.
    DATA : W_ERRSTAT(18)   TYPE C.
    DATA : W_ERRMSG(18)    TYPE C.
    DATA : I_EKKO LIKE EKKO OCCURS 0 WITH HEADER LINE.
    DATA : BEGIN OF I_RETURN OCCURS 0.
    DATA : EBELN   LIKE EKKO-EBELN.
            INCLUDE STRUCTURE DATA_TAB.
    DATA : MESSAGE LIKE RETURN-MESSAGE.
    DATA : END OF I_RETURN.
    ALV
    type-pools: slis.
    data: txt_report          like dokhl-object. "Reportname für Erläuterungsaufruf
    data: gt_fieldcat         type slis_t_fieldcat_alv,
          gt_events           type slis_t_event,
          gt_sort             type slis_t_sortinfo_alv,
          gt_list_top_of_page type slis_t_listheader,
          gs_layout           type slis_layout_alv.
    *Parameters
    selection-screen begin of block mysel1 with frame.
    parameters: pc_file like rlgrap-filename.  " obligatory default 'C:'." default 'C:mat.xls'.
    selection-screen end of block mysel1.
    *AT SELECTION-SCREEN
    at selection-screen on pc_file.
    call function 'WS_QUERY'
           exporting
                query    = 'FL'
                filename = pc_file
           importing
                return   = wc_fl.
           condense wc_fl no-gaps.
        if wc_fl eq space.
          message e009 raising pc_file.
           exit.
        endif.
    at selection-screen on value-request for pc_file.
                   wc_file = pc_file.
    call function 'WS_FILENAME_GET'
         exporting
               mask        = ' '
               title       = text-001
        importing
               filename    = pc_file
        exceptions
          inv_winsys       = 1
          no_batch         = 2
          selection_cancel = 3
          selection_error  = 4
          others           = 5.
    SELECTION-SCREEN
    start-of-selection.
              perform 1000_getfile.
              perform 2000_process_bapi.
              perform fieldcat_init  using gt_fieldcat[].
              perform layout_init    using gs_layout.
              perform comment_build  using gt_list_top_of_page[].
              perform eventtab_build using gt_events[].
              PERFORM sort_build     USING gt_sort[].
              perform 3000_updation_log.
       end-of-selection.
    *&      Form  1000_getfile
          text
    -->  p1        text
    <--  p2        text
    FORM 1000_getfile .
    *w_data_tab = data_tab.
    Get the No of Rows in the file
                      CALL FUNCTION 'AA_FILE_UPLOAD_EXCEL'
                        EXPORTING
                          I_FILENAME                 = pc_file
                        I_TEST                     =
                        I_UCOMM                    =
                        I_MAXCOLS                  =
                         I_DELIMITER                = ','
                        TABLES
                          ET_FILECONTENT             = DATA_TAB
                       EXCEPTIONS
                         ERROR_ACCESSING_FILE       = 1
                         OTHERS                     = 2
                      IF SY-SUBRC <> 0.
                         MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
                      ENDIF.
         describe table Data_tab lines w_totlines.
         w_end_col = 27.
        w_totlines = 1.
    Upload the data from file to Internal Table
         refresh Data_tab.
       call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
             exporting
                  filename    = pc_file
                  i_begin_col = 1 " Starting col on each row from the upload excel file
                  i_begin_row = 4 " Starting row from the upload excel file
                  i_end_col   = w_end_col " No. of columns in the upload excel file
                  i_end_row   = w_totlines " Possible no. of rows in the upload excel file
             tables
                   intern     = i_tab1
             exceptions
                   inconsistent_parameters = 1
                   upload_ole              = 2
                   others                  = 3.
             endif.
        sort i_tab1 by row col.
        loop at i_tab1.
           case i_tab1-col.
          when 1.
             clear w_Data_tab.
              move i_tab1-value to w_Data_tab-bsart.
          when 2.
              move i_tab1-value to w_Data_tab-lifnr.
          when 3.
              move i_tab1-value to w_Data_tab-ekorg.
          when 4.
              move i_tab1-value to w_Data_tab-ekgrp.
          when 5.
              move i_tab1-value to w_Data_tab-ebelp.
          when 6.
              move i_tab1-value to w_Data_tab-matnr.
          when 7.
              move i_tab1-value to w_Data_tab-maktx.
          when 8.
              move i_tab1-value to w_Data_tab-werks.
          when 9.
              move i_tab1-value to w_Data_tab-charg.
          when 10.
              move i_tab1-value to w_Data_tab-bednr.
          when 11.
              move i_tab1-value to w_Data_tab-pstyp.
          when 12.
              move i_tab1-value to w_Data_tab-knttp.
          when 13.
              move i_tab1-value to w_Data_tab-anln1.
          when 14.
              move i_tab1-value to w_Data_tab-anln2.
          when 15.
              move i_tab1-value to w_Data_tab-aufnr.
          when 16.
              move i_tab1-value to w_Data_tab-ps_psp_pnr.
          when 17.
              move i_tab1-value to w_Data_tab-eindt.
          when 18.
              move i_tab1-value to w_Data_tab-waers.
          when 19.
              move i_tab1-value to w_Data_tab-netpr.
          when 20.
              move i_tab1-value to w_Data_tab-wkurs.
          when 21.
              move i_tab1-value to w_Data_tab-bedat.
          when 22.
              move i_tab1-value to w_Data_tab-sakto.
          when 23.
              move i_tab1-value to w_Data_tab-kostl.
          when 24.
              move i_tab1-value to w_Data_tab-menge.
          when 25.
              move i_tab1-value to w_Data_tab-meins.
          when 26.
              move i_tab1-value to w_Data_tab-kwert.
          when 27.
              move i_tab1-value to w_Data_tab-kschl.
         endcase.
            at end of row.
              append w_Data_tab to Data_tab.
              clear  w_Data_tab.
             endat.
        endloop.
              clear wc_tot.
              describe table Data_tab lines wc_tot.
    ENDFORM.                                      " 1000_getfile
    *&      Form  2000_process_bapi
          text
    -->  p1        text
    <--  p2        text
    FORM 2000_process_bapi .
    LOOP AT DATA_TAB.
      POHEADER-DOC_TYPE   = DATA_TAB-BSART.
      POHEADER-VENDOR     = DATA_TAB-LIFNR.
      POHEADER-PURCH_ORG  = DATA_TAB-EKORG.
      POHEADER-PUR_GROUP  = DATA_TAB-EKGRP.
      POHEADER-DOC_DATE   = DATA_TAB-BEDAT.
      POHEADER-EXCH_RATE  = DATA_TAB-WKURS.
      POHEADER-CURRENCY   = DATA_TAB-WAERS.
    APPEND POHEADER.
      POHEADERX-DOC_TYPE   = 'X'.
      POHEADERX-VENDOR     = 'X'.
      POHEADERX-PURCH_ORG  = 'X'.
      POHEADERX-PUR_GROUP  = 'X'.
      POHEADERX-DOC_DATE   = 'X'.
      POHEADERX-EXCH_RATE  = 'X'.
      POHEADERX-CURRENCY   = 'X'.
    APPEND POHEADERX.
      POITEM-PO_ITEM        = DATA_TAB-EBELP.
      POITEM-MATERIAL       = DATA_TAB-MATNR.
    POITEM-SHORT_TEXT     = DATA_TAB-MAKTX.
      POITEM-PLANT          = DATA_TAB-WERKS.
      POITEM-BATCH          = DATA_TAB-CHARG.
      POITEM-TRACKINGNO     = DATA_TAB-BEDNR.
      POITEM-ITEM_CAT       = DATA_TAB-PSTYP.
      POITEM-ACCTASSCAT     = DATA_TAB-KNTTP.
      POITEM-NET_PRICE      = DATA_TAB-NETPR.
      POITEM-QUANTITY       = DATA_TAB-MENGE.
      POITEM-PO_UNIT        = DATA_TAB-MEINS.
    APPEND POITEM.
      POITEMX-PO_ITEM             = DATA_TAB-EBELP.
    POITEMX-PO_ITEM        = 'X'.
      POITEMX-MATERIAL       = 'X'.
    POITEMX-SHORT_TEXT     = 'X'.
      POITEMX-PLANT          = 'X'.
      POITEMX-BATCH          = 'X'.
      POITEMX-TRACKINGNO     = 'X'.
      POITEMX-ITEM_CAT       = 'X'.
      POITEMX-ACCTASSCAT     = 'X'.
      POITEMX-NET_PRICE      = 'X'.
      POITEMX-QUANTITY       = 'X'.
      POITEMX-PO_UNIT        = 'X'.
    APPEND POITEMX.
      POACCOUNT-PO_ITEM           = DATA_TAB-EBELP.
      POACCOUNT-ASSET_NO     = DATA_TAB-ANLN1.
      POACCOUNT-SUB_NUMBER   = DATA_TAB-ANLN2.
      POACCOUNT-ORDERID      = DATA_TAB-AUFNR.
      POACCOUNT-WBS_ELEMENT  = DATA_TAB-PS_PSP_PNR.
      POACCOUNT-GL_ACCOUNT   = DATA_TAB-SAKTO.
      POACCOUNT-COSTCENTER   = DATA_TAB-KOSTL.
    POACCOUNT-QUANTITY           = DATA_TAB-MENGE.
    APPEND POACCOUNT.
      POACCOUNTX-PO_ITEM           = DATA_TAB-EBELP.
      POACCOUNTX-ASSET_NO    = 'X'.
      POACCOUNTX-SUB_NUMBER  = 'X'.
      POACCOUNTX-ORDERID     = 'X'.
      POACCOUNTX-WBS_ELEMENT = 'X'.
      POACCOUNTX-GL_ACCOUNT  = 'X'.
      POACCOUNTX-COSTCENTER  = 'X'.
    APPEND POACCOUNTX.
      POCOND-ITM_NUMBER              = DATA_TAB-EBELP.
      POCOND-COND_VALUE              = DATA_TAB-KWERT.
      POCOND-CURRENCY         = DATA_TAB-WAERS.
      POCOND-COND_TYPE        = DATA_TAB-KSCHL.
      POCOND-CHANGE_ID        = ' I '.
    APPEND POCOND.
      POCONDX-ITM_NUMBER             = DATA_TAB-EBELP.
      POCONDX-COND_VALUE             = 'X'.
      POCONDX-CURRENCY       = 'X'.
      POCONDx-COND_TYPE      = 'X'.
      POCONDx-CHANGE_ID       = ' I '.
    APPEND POCONDX.
      POSCHEDULE-PO_ITEM        = DATA_TAB-EBELP.
      POSCHEDULE-DELIVERY_DATE  = DATA_TAB-EINDT.
      POSCHEDULE-QUANTITY             = DATA_TAB-MENGE.
      APPEND POSCHEDULE.
      POSCHEDULEX-PO_ITEM        = DATA_TAB-EBELP.
      POSCHEDULEX-DELIVERY_DATE  = 'X'.
      POSCHEDULEx-QUANTITY             = 'X'.
    APPEND POSCHEDULEX.
    ENDLOOP.
    CALL FUNCTION 'BAPI_PO_CREATE1'
      EXPORTING
        POHEADER                     = POHEADER
        POHEADERX                    = POHEADERX
    IMPORTING
        EXPPURCHASEORDER             = EXPPURCHASEORDER
      EXPHEADER                    =
      EXPPOEXPIMPHEADER            =
    TABLES
        RETURN                       = RETURN
        POITEM                       = POITEM
        POITEMX                      = POITEMX
      POADDRDELIVERY               =
        POSCHEDULE                   = POSCHEDULE
        POSCHEDULEX                  = POSCHEDULEX
        POACCOUNT                    = POACCOUNT
      POACCOUNTPROFITSEGMENT       =
        POACCOUNTX                   = POACCOUNTX
      POCONDHEADER                 =
      POCONDHEADERX                =
        POCOND                       = POCOND
        POCONDX                      = POCONDX
      POPARTNER                    =
    IF SY-SUBRC = 0.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
       WAIT          = C_X
    ENDIF.
    data : w_ekko like ekko-ebeln.
      LOOP AT DATA_TAB.
       READ TABLE RETURN index 1.
        MOVE-CORRESPONDING RETURN    TO I_RETURN.
        MOVE-CORRESPONDING DATA_TAB  TO I_RETURN.
      TO GET THE PO NUMBER     *************
       SELECT single EBELN  FROM EKKO INTO  w_EKKO
                          WHERE BSART EQ DATA_TAB-BSART
                            AND LIFNR EQ DATA_TAB-LIFNR
                            AND EKORG EQ DATA_TAB-EKORG
                            AND EKGRP EQ DATA_TAB-EKGRP.
               MOVE w_EKKO TO I_RETURN-EBELN.
        APPEND I_RETURN.
        CLEAR  I_RETURN.
      ENDLOOP.
      ENDFORM.                                     " 2000_process_bapi
    *&      Form  fieldcat_init
    FORM fieldcat_init  USING lt_fieldcat type slis_t_fieldcat_alv.
        data: ls_fieldcat type slis_fieldcat_alv.
    clear ls_fieldcat.
    ls_fieldcat-fieldname     = 'EBELN'.
    ls_fieldcat-datatype      = 'C'.
    ls_fieldcat-seltext_l     = text-001.
    ls_fieldcat-seltext_m     = text-001.
    ls_fieldcat-seltext_s     = text-001.
    ls_fieldcat-reptext_ddic  = text-001.
    ls_fieldcat-outputlen     = '10'.
    append ls_fieldcat to lt_fieldcat.
    clear ls_fieldcat.
    clear ls_fieldcat.
    ls_fieldcat-fieldname     = 'WERKS'.
    ls_fieldcat-datatype      = 'C'.
    ls_fieldcat-seltext_l     = text-002.
    ls_fieldcat-seltext_m     = text-002.
    ls_fieldcat-seltext_s     = text-002.
    ls_fieldcat-reptext_ddic  = text-002.
    ls_fieldcat-outputlen     = '4'.
    append ls_fieldcat to lt_fieldcat.
    clear ls_fieldcat.
    ls_fieldcat-fieldname     = 'KNTTP'.
    ls_fieldcat-datatype      = 'C'.
    ls_fieldcat-seltext_l     = text-003.
    ls_fieldcat-seltext_m     = text-003.
    ls_fieldcat-seltext_s     = text-003.
    ls_fieldcat-reptext_ddic  = text-003.
    ls_fieldcat-outputlen     = '4'.
    append ls_fieldcat to lt_fieldcat.
    clear ls_fieldcat.
    clear ls_fieldcat.
    ls_fieldcat-fieldname     = 'MATNR'.
    ls_fieldcat-datatype      = 'C'.
    ls_fieldcat-seltext_l     = text-004.
    ls_fieldcat-seltext_m     = text-004.
    ls_fieldcat-seltext_s     = text-004.
    ls_fieldcat-reptext_ddic  = text-004.
    ls_fieldcat-outputlen     = '18'.
    append ls_fieldcat to lt_fieldcat.
    clear ls_fieldcat.
    ls_fieldcat-fieldname     = 'MENGE'.
    ls_fieldcat-datatype      = 'C'.
    ls_fieldcat-seltext_l     = text-005.
    ls_fieldcat-seltext_m     = text-005.
    ls_fieldcat-seltext_s     = text-005.
    ls_fieldcat-reptext_ddic  = text-005.
    ls_fieldcat-outputlen     = '10'.
    append ls_fieldcat to lt_fieldcat.
    clear ls_fieldcat.
    clear ls_fieldcat.
    ls_fieldcat-fieldname     = 'NETPR'.
    ls_fieldcat-datatype      = 'CURR'.
    ls_fieldcat-seltext_l     = text-006.
    ls_fieldcat-seltext_m     = text-006.
    ls_fieldcat-seltext_s     = text-006.
    ls_fieldcat-reptext_ddic  = text-006.
    ls_fieldcat-outputlen     = '11'.
    append ls_fieldcat to lt_fieldcat.
    clear ls_fieldcat.
    ls_fieldcat-fieldname     = 'MESSAGE'.
    ls_fieldcat-datatype      = 'C'.
    ls_fieldcat-seltext_l     = text-007.
    ls_fieldcat-seltext_m     = text-007.
    ls_fieldcat-seltext_s     = text-007.
    ls_fieldcat-reptext_ddic  = text-007.
    ls_fieldcat-outputlen     = '50'.
    append ls_fieldcat to lt_fieldcat.
    clear ls_fieldcat.
    ENDFORM.                                       " fieldcat_init
    *&      Form  layout_init
          text
         -->P_GS_LAYOUT  text
    FORM layout_init  USING  ls_layout type slis_layout_alv.
          ls_layout-zebra = 'X'.
    ENDFORM.                                          " layout_init
    *&      Form  comment_build
          text
         -->P_GT_LIST_TOP_OF_PAGE[]  text
    FORM comment_build  USING Lt_top_of_page type slis_t_listheader.
      field-symbols: .
      data: ls_line type slis_listheader.
      data: i_sel   like textpool occurs 0 with header line.
            read  textpool sy-repid into i_sel language sy-langu.
            delete i_sel where id ne 'S'.
       LIST HEADING LINE: TYPE H
        clear ls_line.
          ls_line-typ    = 'H'.
          ls_line-info   = text-020.
        append ls_line to lt_top_of_page.
        clear ls_line.
          ls_line-typ    = 'S'.
          ls_line-key    = text-021.
        append ls_line to lt_top_of_page.
       Selection-screen
      loop at i_sel.
        assign (i_sel-key) to .
        append ls_line to lt_top_of_page.
    endloop.
    ENDFORM.                                          " comment_build
    *&      Form  eventtab_build
          text
         -->P_GT_EVENTS[]  text
    FORM eventtab_build  USING lt_events type slis_t_event.
    data: ls_event type slis_alv_event.
             move 'PF_STATUS_SET' to ls_event-name.
             move 'Z2006RMMPOUPLOAD' to ls_event-form.
          append ls_event to lt_events.
        clear ls_event.
    ENDFORM.                                          "eventtab_build
    FORM PF_STATUS_SET
    form Z2006RMMPOUPLOAD using extab type slis_t_extab. "#EC CALLED
             set pf-status 'Z2006RMMPOUPLOAD'. "EXCLUDING extab.
    endform.                                          "Z2006RMMPOUPLOAD
    FORM TOP_OF_PAGE *
    form top_of_page.
         call function 'REUSE_ALV_COMMENTARY_WRITE'
            exporting
                i_logo             = 'MECOMB'
                it_list_commentary = gt_list_top_of_page.
    endform.                                           "top_of_page
    *&      Form  3000_updation_log
    FORM 3000_updation_log .
                   CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
                    EXPORTING
                     I_INTERFACE_CHECK                 = ' '
                     I_BYPASSING_BUFFER                = ' '
                     I_BUFFER_ACTIVE                   = ' '
                       I_CALLBACK_PROGRAM                = 'Z2006RMMPOUPLOAD'
                     I_CALLBACK_PF_STATUS_SET          = ' '
                     I_CALLBACK_USER_COMMAND           = ' '
                       I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
                     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
                     I_CALLBACK_HTML_END_OF_LIST       = ' '
                     I_STRUCTURE_NAME                  =
                     I_BACKGROUND_ID                   = ' '
                     I_GRID_TITLE                      =
                     I_GRID_SETTINGS                   =
                       IS_LAYOUT                         = gs_layout
                       IT_FIELDCAT                       = gt_fieldcat[]
                       IT_EVENTS                         = gt_events[]
                     TABLES
                       T_OUTTAB                          = I_RETURN
                     EXCEPTIONS
                       PROGRAM_ERROR                     = 1
                       OTHERS                            = 2
    ENDFORM.                                      " 3000_updation_log
    *&      Form  sort_build
    FORM sort_build  USING lt_sort type slis_t_sortinfo_alv.
    data: ls_sort type slis_sortinfo_alv.
    ls_sort-fieldname = 'EBELN'.
    ls_sort-up = 'X'.
    ls_sort-subtot = 'X'.
    append ls_sort to lt_sort.
    clear ls_sort.
    ls_sort-fieldname = 'MATNR'.
    ls_sort-up = 'X'.
    append ls_sort to lt_sort.
    clear ls_sort.
    ENDFORM.                                          " sort_build
    Thanks,
    Rajendra.

Maybe you are looking for

  • How to Launch a PDF on Webgui

    Dear Experts: What I am trying to do is to convert PO smartform to PDF file and then launch the PDF file in a new window on Webgui. I am using function BBP_OUTUT_PO_PREVIEW_SMART, in which the function BBP_ALEWEB_DOWNLOAD is invoked. This program has

  • Creating a recursive HTree for class...please help!

    Hey, Our instructions were rather easy...to make a recursive H tree that when finished, would look like whats in this link. http://www.cs.usm.maine.edu/~macleod/courses/cos161/Spring2007/assign6.html After writing a good bit of code of what I thought

  • 3 Monitors for FCP

    I have ben searching for this answer and cannot find it so I will post here. In my editing suite I have two side by side monitors but I want to ad a third just for the canvas playback. I used to work at a studio and we had the same set up but I don't

  • HT1222 Can the iPad 1 be updated to iOS 6

    Is it possible to install iOS 5 or iOS 6 on an iPad 1?

  • Buying  WinQuickTimeMPEG2.qup Plugin where is the file

    Hi, I'm buying today the WinQuickTimeMPEG2.qup plugin online but where is this file? I tried to update my quicktime but it always said- no updates available. In the invoice are written that it comes automatically. But I need it also offline for reins