<?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_create1 in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3063794#M725925</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jasmine,&lt;/P&gt;&lt;P&gt;I have used the FM Bapi_create_po1 for creating PO.Itz working proper.Below is the whole code for it.Check it n u will be able to understand.&lt;/P&gt;&lt;P&gt;Reward if useful.&lt;/P&gt;&lt;P&gt;Thx.&lt;/P&gt;&lt;P&gt;method do_handle_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: event_id type string.&lt;/P&gt;&lt;P&gt;  data zpr_num1 type banfn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data zreturn type zsn_bapiret2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data ret type bapireturn-type.&lt;/P&gt;&lt;P&gt;  data message type bapi_msg.&lt;/P&gt;&lt;P&gt;  data returnval type bapimepoheader-po_number.&lt;/P&gt;&lt;P&gt;  data: r_view type ref to if_bsp_page.&lt;/P&gt;&lt;P&gt;  data: crt_view type ref to if_bsp_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data po_num_head type bapimepoheader.&lt;/P&gt;&lt;P&gt;  data zpoheader_it type zbapimepoheader_tab.&lt;/P&gt;&lt;P&gt;  data zpoheaderx_it type zbapimepoheaderx_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to add a new item to list&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if htmlb_event is bound and htmlb_event-&amp;gt;server_event = 'onadd'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpr_num = request-&amp;gt;get_form_field( 'PRNo' ) .&lt;/P&gt;&lt;P&gt;    data: zpr_num3 type banfn.&lt;/P&gt;&lt;P&gt;    call function 'ZCONVERT_ALPHA'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        input  = zpr_num&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        output = zpr_num3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpr_num = zpr_num3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data: temp_tab1  type zrmheader.&lt;/P&gt;&lt;P&gt;    delete from zrmheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpoheader-vendor = request-&amp;gt;get_form_field( 'Vendor' ) .&lt;/P&gt;&lt;P&gt;    zpoheader-purch_org = request-&amp;gt;get_form_field( 'POrg' ).&lt;/P&gt;&lt;P&gt;    zpoheader-pur_group = request-&amp;gt;get_form_field( 'PGrp' ).&lt;/P&gt;&lt;P&gt;    zpoheader-doc_type = 'NB'.&lt;/P&gt;&lt;P&gt;    zpoheader-item_intvl = request-&amp;gt;get_form_field( 'Item' ).&lt;/P&gt;&lt;P&gt;    zpoheader-comp_code = request-&amp;gt;get_form_field( 'CCode' ).&lt;/P&gt;&lt;P&gt;    zpoheader-doc_date = request-&amp;gt;get_form_field( 'DocDate' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    delivdate_new = request-&amp;gt;get_form_field( 'DelivDate' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    temp_tab1-vendor = request-&amp;gt;get_form_field( 'Vendor' ) .&lt;/P&gt;&lt;P&gt;    temp_tab1-purch_org = request-&amp;gt;get_form_field( 'POrg' ).&lt;/P&gt;&lt;P&gt;    temp_tab1-pur_group = request-&amp;gt;get_form_field( 'PGrp' ).&lt;/P&gt;&lt;P&gt;    temp_tab1-doc_type = 'NB'.&lt;/P&gt;&lt;P&gt;    temp_tab1-item_intvl = request-&amp;gt;get_form_field( 'Item' ).&lt;/P&gt;&lt;P&gt;    temp_tab1-comp_code = request-&amp;gt;get_form_field( 'CCode' ).&lt;/P&gt;&lt;P&gt;    temp_tab1-doc_date = request-&amp;gt;get_form_field( 'DocDate' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data: temp_tabx1  type zrmheaderx.&lt;/P&gt;&lt;P&gt;    delete from zrmheaderx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    temp_tabx1-vendor = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx1-purch_org = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx1-pur_group = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx1-doc_type = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx1-comp_code = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx1-doc_date = 'x'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    insert into zrmheader values temp_tab1.&lt;/P&gt;&lt;P&gt;    insert into zrmheaderx values temp_tabx1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data: temp_tab  type zrmitem .&lt;/P&gt;&lt;P&gt;    data: temp_tabx type zrmitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zitem1-acctasscat = request-&amp;gt;get_form_field( 'A' ).&lt;/P&gt;&lt;P&gt;    temp_tab-acctasscat = request-&amp;gt;get_form_field( 'A' ).&lt;/P&gt;&lt;P&gt;    zitem1-item_cat = request-&amp;gt;get_form_field( 'I' ).&lt;/P&gt;&lt;P&gt;    temp_tab-item_cat = request-&amp;gt;get_form_field( 'I' ).&lt;/P&gt;&lt;P&gt;    zitem1-material = request-&amp;gt;get_form_field( 'Material' ).&lt;/P&gt;&lt;P&gt;    temp_tab-material = request-&amp;gt;get_form_field( 'Material' ).&lt;/P&gt;&lt;P&gt;    zitem1-quantity = request-&amp;gt;get_form_field( 'POQuantity' ).&lt;/P&gt;&lt;P&gt;    temp_tab-quantity = request-&amp;gt;get_form_field( 'POQuantity' ).&lt;/P&gt;&lt;P&gt;    zitem1-po_unit = request-&amp;gt;get_form_field( 'OUN' ).&lt;/P&gt;&lt;P&gt;    temp_tab-po_unit = request-&amp;gt;get_form_field( 'OUN' ).&lt;/P&gt;&lt;P&gt;    zitem1-net_price = request-&amp;gt;get_form_field( 'NetPrice' ).&lt;/P&gt;&lt;P&gt;    temp_tab-net_price = request-&amp;gt;get_form_field( 'NetPrice' ).&lt;/P&gt;&lt;P&gt;    zitem1-plant = request-&amp;gt;get_form_field( 'Plnt' ).&lt;/P&gt;&lt;P&gt;    temp_tab-plant = request-&amp;gt;get_form_field( 'Plnt' ).&lt;/P&gt;&lt;P&gt;    zitem1-po_item = request-&amp;gt;get_form_field( 'Item' ).&lt;/P&gt;&lt;P&gt;    temp_tab-po_item = request-&amp;gt;get_form_field( 'Item' ).&lt;/P&gt;&lt;P&gt;    zitem1-stge_loc = request-&amp;gt;get_form_field( 'Sloc' ).&lt;/P&gt;&lt;P&gt;    temp_tab-stge_loc = request-&amp;gt;get_form_field( 'Sloc' ).&lt;/P&gt;&lt;P&gt;    zitem1-customer = request-&amp;gt;get_form_field( 'Customer' ).&lt;/P&gt;&lt;P&gt;    temp_tab-customer = request-&amp;gt;get_form_field( 'Customer' ).&lt;/P&gt;&lt;P&gt;    zitem1-incoterms2 = 'XDFGRT'.&lt;/P&gt;&lt;P&gt;    temp_tab-incoterms2 = 'XDFGRT'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    append  zitem1 to zitem.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    insert into zrmitem values temp_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zitemx1-acctasscat = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-item_cat = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-material = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-quantity = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-net_price = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-plant = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-po_item = 00010.&lt;/P&gt;&lt;P&gt;    zitemx1-po_itemx = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-stge_loc = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-customer = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-incoterms2 = 'x'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   append  zitemx1 to zitemx.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    temp_tabx-acctasscat = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-item_cat = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-material = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-quantity = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-net_price = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-plant = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-po_item = 00010.&lt;/P&gt;&lt;P&gt;    temp_tabx-po_itemx = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-stge_loc = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-customer = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-incoterms2 = 'x'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    insert into zrmitemx values temp_tabx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select * from zrmitem into corresponding fields of table zitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpr_num = request-&amp;gt;get_form_field( 'PRNo' ) .&lt;/P&gt;&lt;P&gt;    call function 'ZCONVERT_ALPHA'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        input  = zpr_num&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        output = zpr_num1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        LEN           =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call function 'BAPI_REQUISITION_GETDETAIL'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        number                               = zpr_num1&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ACCOUNT_ASSIGNMENT                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ITEM_TEXTS                           = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SERVICES                             = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SERVICE_TEXTS                        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      tables&lt;/P&gt;&lt;P&gt;        requisition_items                    = item_tab&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_ACCOUNT_ASSIGNMENT       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_TEXT                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_LIMITS                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_CONTRACT_LIMITS          =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SERVICES                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SERVICES_TEXTS           =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SRV_ACCASS_VALUES        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RETURN                               =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;    call function 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        wait = 'X'.&lt;/P&gt;&lt;P&gt;*IMPORTING&lt;/P&gt;&lt;P&gt;*RETURN = i_return&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to save the item details and generate a PO number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  elseif htmlb_event is bound and htmlb_event-&amp;gt;server_event = 'onsave'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpr_num = request-&amp;gt;get_form_field( 'PRNo' ) .&lt;/P&gt;&lt;P&gt;    data: zpr_num4 type banfn.&lt;/P&gt;&lt;P&gt;    call function 'ZCONVERT_ALPHA'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        input  = zpr_num&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        output = zpr_num4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpr_num = zpr_num4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data: temp_t2 type zrmsched,&lt;/P&gt;&lt;P&gt;          count2 type n,&lt;/P&gt;&lt;P&gt;          a2 type n value 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data:temp_t type zrmitem,&lt;/P&gt;&lt;P&gt;         count type n,&lt;/P&gt;&lt;P&gt;         a type n value 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select * from zrmitem into corresponding fields of table data_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    count = sy-dbcnt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    do count times.&lt;/P&gt;&lt;P&gt;      read table data_tab into temp_t index a.&lt;/P&gt;&lt;P&gt;      a = a + 1.&lt;/P&gt;&lt;P&gt;      zitem1-po_item = temp_t-po_item.&lt;/P&gt;&lt;P&gt;      zitem1-acctasscat = temp_t-acctasscat.&lt;/P&gt;&lt;P&gt;      zitem1-item_cat = temp_t-item_cat.&lt;/P&gt;&lt;P&gt;      zitem1-material = temp_t-material.&lt;/P&gt;&lt;P&gt;      zitem1-quantity = temp_t-quantity.&lt;/P&gt;&lt;P&gt;      zitem1-po_unit = temp_t-po_unit.&lt;/P&gt;&lt;P&gt;      zitem1-net_price = temp_t-net_price.&lt;/P&gt;&lt;P&gt;      zitem1-plant = temp_t-plant.&lt;/P&gt;&lt;P&gt;      zitem1-stge_loc = temp_t-stge_loc.&lt;/P&gt;&lt;P&gt;      zitem1-customer = temp_t-customer.&lt;/P&gt;&lt;P&gt;      zitem1-incoterms2 = temp_t-incoterms2.&lt;/P&gt;&lt;P&gt;      append zitem1 to zitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      zitemx1-acctasscat = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-item_cat = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-material = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-quantity = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-net_price = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-plant = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-po_item = temp_t-po_item.&lt;/P&gt;&lt;P&gt;      zitemx1-po_itemx = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-stge_loc = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-customer = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-incoterms2 = 'x'.&lt;/P&gt;&lt;P&gt;      append  zitemx1 to zitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    enddo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;count2 = sy-dbcnt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpoheader-vendor = request-&amp;gt;get_form_field( 'Vendor' ) .&lt;/P&gt;&lt;P&gt;    zpoheader-purch_org = request-&amp;gt;get_form_field( 'POrg' ).&lt;/P&gt;&lt;P&gt;    zpoheader-pur_group = request-&amp;gt;get_form_field( 'PGrp' ).&lt;/P&gt;&lt;P&gt;    zpoheader-doc_type = 'NB'.&lt;/P&gt;&lt;P&gt;    zpoheader-item_intvl = request-&amp;gt;get_form_field( 'Item' ).&lt;/P&gt;&lt;P&gt;    zpoheader-comp_code = request-&amp;gt;get_form_field( 'CCode' ).&lt;/P&gt;&lt;P&gt;    zpoheader-doc_date = request-&amp;gt;get_form_field( 'DocDate' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    delivdate_new = request-&amp;gt;get_form_field( 'DelivDate' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpoheaderx-vendor = 'x'.&lt;/P&gt;&lt;P&gt;    zpoheaderx-purch_org = 'x'.&lt;/P&gt;&lt;P&gt;    zpoheaderx-pur_group = 'x'.&lt;/P&gt;&lt;P&gt;    zpoheaderx-doc_type = 'x'.&lt;/P&gt;&lt;P&gt;    zpoheaderx-comp_code = 'x'.&lt;/P&gt;&lt;P&gt;    zpoheaderx-doc_date = 'x'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data: zpovendor type elifn.&lt;/P&gt;&lt;P&gt;    call function 'ZCONVERT_ALPHA'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        input  = zpoheader-vendor&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        output = zpovendor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpoheader-vendor = zpovendor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call function 'BAPI_PO_CREATE1'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        poheader                     = zpoheader&lt;/P&gt;&lt;P&gt;        poheaderx                    = zpoheaderx&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POADDRVENDOR                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TESTRUN                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  MEMORY_UNCOMPLETE            =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  MEMORY_COMPLETE              =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POEXPIMPHEADER               =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POEXPIMPHEADERX              =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  VERSIONS                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_MESSAGING                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_MESSAGE_REQ               =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_AUTHORITY                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_PRICE_FROM_PO             =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     importing&lt;/P&gt;&lt;P&gt;       exppurchaseorder             = po_num&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         EXPHEADER                    = PO_NUM_HEAD&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  EXPPOEXPIMPHEADER            =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     tables&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        RETURN                       = zreturn&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        poitem                       = zitem&lt;/P&gt;&lt;P&gt;        poitemx                      = zitemx&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POADDRDELIVERY               =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; POSCHEDULE                   = zposched&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; POSCHEDULEX                  = zposchedx&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POACCOUNT                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POACCOUNTPROFITSEGMENT       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POACCOUNTX                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POCONDHEADER                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POCONDHEADERX                =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POCOND                       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POCONDX                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POLIMITS                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POCONTRACTLIMITS             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSERVICES                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSRVACCESSVALUES            =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSERVICESTEXT               =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  EXTENSIONIN                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  EXTENSIONOUT                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POEXPIMPITEM                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POEXPIMPITEMX                =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POTEXTHEADER                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POTEXTITEM                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ALLVERSIONS                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POPARTNER                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POCOMPONENTS                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POCOMPONENTSX                =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSHIPPING                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSHIPPINGX                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSHIPPINGEXP                =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call function 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;         wait = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     RETURN =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    delete from zrmitem.&lt;/P&gt;&lt;P&gt;    delete from zrmitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select * from zrmitem into corresponding fields of table zitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if po_num = ' '.&lt;/P&gt;&lt;P&gt;      po_num = 'Try Again'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to store po_num and corresponding pr number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    data: temp_tt type zpo_pr_nums.&lt;/P&gt;&lt;P&gt;    temp_tt-pr_num = zpr_num.&lt;/P&gt;&lt;P&gt;    temp_tt-po_num = po_num.&lt;/P&gt;&lt;P&gt;    insert into zpo_pr_nums values temp_tt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to store po num and corresponding delivery date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    data: wa11 type zpo_delivdate.&lt;/P&gt;&lt;P&gt;    wa11-po_number = po_num.&lt;/P&gt;&lt;P&gt;    wa11-deliv_date = delivdate_new.&lt;/P&gt;&lt;P&gt;    insert into zpo_delivdate values wa11.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpoheader-vendor = ' '.&lt;/P&gt;&lt;P&gt;    zpoheader-purch_org = ' '.&lt;/P&gt;&lt;P&gt;    zpoheader-pur_group = ' '.&lt;/P&gt;&lt;P&gt;    zpoheader-doc_type = ' '.&lt;/P&gt;&lt;P&gt;    zpoheader-item_intvl = ' '.&lt;/P&gt;&lt;P&gt;    zpoheader-comp_code = ' '.&lt;/P&gt;&lt;P&gt;    zpoheader-doc_date = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    delivdate_new = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to enter a PR Number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  elseif htmlb_event is bound and htmlb_event-&amp;gt;server_event = 'onenter'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    delete from zrmitem.&lt;/P&gt;&lt;P&gt;    delete from zrmitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select * from zrmitem into corresponding fields of table zitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpr_num = request-&amp;gt;get_form_field( 'PRNo' ) .&lt;/P&gt;&lt;P&gt;    call function 'ZCONVERT_ALPHA'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        input  = zpr_num&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        output = zpr_num1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        LEN           =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call function 'BAPI_REQUISITION_GETDETAIL'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        number                               = zpr_num1&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ACCOUNT_ASSIGNMENT                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ITEM_TEXTS                           = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SERVICES                             = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SERVICE_TEXTS                        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      tables&lt;/P&gt;&lt;P&gt;        requisition_items                    = item_tab&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_ACCOUNT_ASSIGNMENT       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_TEXT                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_LIMITS                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_CONTRACT_LIMITS          =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SERVICES                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SERVICES_TEXTS           =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SRV_ACCASS_VALUES        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RETURN                               =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;    call function 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        wait = 'X'.&lt;/P&gt;&lt;P&gt;*IMPORTING&lt;/P&gt;&lt;P&gt;*RETURN = i_return&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to select an item from drop down item menu&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  elseif htmlb_event is bound and htmlb_event-&amp;gt;server_event = 'select'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data: zselection2 type bnfpo.&lt;/P&gt;&lt;P&gt;    data: data type ref to cl_htmlb_dropdownlistbox.&lt;/P&gt;&lt;P&gt;    zpr_num = request-&amp;gt;get_form_field( 'PRNo' ) .&lt;/P&gt;&lt;P&gt;    data: zpr_num2 type banfn.&lt;/P&gt;&lt;P&gt;    call function 'ZCONVERT_ALPHA'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        input  = zpr_num&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        output = zpr_num2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data ?= cl_htmlb_manager=&amp;gt;get_data(&lt;/P&gt;&lt;P&gt;                                        request = runtime-&amp;gt;server-&amp;gt;request&lt;/P&gt;&lt;P&gt;                                        name    = 'dropdownlistbox'&lt;/P&gt;&lt;P&gt;                                        id      = 'ItemSel'&lt;/P&gt;&lt;P&gt;                                      ).&lt;/P&gt;&lt;P&gt;    if data is not initial.&lt;/P&gt;&lt;P&gt;      zselection2 = data-&amp;gt;selection.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpoheader-vendor = request-&amp;gt;get_form_field( 'Vendor' ) .&lt;/P&gt;&lt;P&gt;    zpoheader-purch_org = request-&amp;gt;get_form_field( 'POrg' ).&lt;/P&gt;&lt;P&gt;    zpoheader-pur_group = request-&amp;gt;get_form_field( 'PGrp' ).&lt;/P&gt;&lt;P&gt;    zpoheader-doc_type = 'NB'.&lt;/P&gt;&lt;P&gt;    zpoheader-item_intvl = request-&amp;gt;get_form_field( 'Item' ).&lt;/P&gt;&lt;P&gt;    zpoheader-comp_code = request-&amp;gt;get_form_field( 'CCode' ).&lt;/P&gt;&lt;P&gt;    zpoheader-doc_date = request-&amp;gt;get_form_field( 'DocDate' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call function 'BAPI_REQUISITION_GETDETAIL'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        number                               = zpr_num2&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ACCOUNT_ASSIGNMENT                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ITEM_TEXTS                           = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SERVICES                             = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SERVICE_TEXTS                        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      tables&lt;/P&gt;&lt;P&gt;        requisition_items                    = item_tab&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_ACCOUNT_ASSIGNMENT       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_TEXT                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_LIMITS                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_CONTRACT_LIMITS          =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SERVICES                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SERVICES_TEXTS           =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SRV_ACCASS_VALUES        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RETURN                               =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;    data wa1 type bapieban.&lt;/P&gt;&lt;P&gt;    loop at item_tab into wa1.&lt;/P&gt;&lt;P&gt;      if wa1-preq_item = zselection2.&lt;/P&gt;&lt;P&gt;        item_new = wa1-preq_item.&lt;/P&gt;&lt;P&gt;        material_new = wa1-material.&lt;/P&gt;&lt;P&gt;        plant_new = wa1-plant.&lt;/P&gt;&lt;P&gt;        quantity_new = wa1-quantity.&lt;/P&gt;&lt;P&gt;        unit_new = wa1-unit.&lt;/P&gt;&lt;P&gt;        delivdate_new = wa1-deliv_date.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmethod.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 03 Dec 2007 11:31:45 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-12-03T11:31:45Z</dc:date>
    <item>
      <title>Bapi_po_create1</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3063790#M725921</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;using FM Bapi_create_po1 I crated one Purchase order.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The Purchase order number is generated. But If I check the table Ekko its not getting stored.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why its happening. Any one help me on this issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I wrote the code for commit work also.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;P&gt;   WAIT          = 'X'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Points Assured.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Dec 2007 11:10:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3063790#M725921</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-03T11:10:44Z</dc:date>
    </item>
    <item>
      <title>Re: Bapi_po_create1</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3063791#M725922</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi Jasmine,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;few things to check:&lt;/P&gt;&lt;P&gt;do the BAPI returns without any errro message?&lt;/P&gt;&lt;P&gt;did you check transaction SM13, if the DB changes are locked there?&lt;/P&gt;&lt;P&gt;did you chck transaction SM21 about system messages?&lt;/P&gt;&lt;P&gt;did you check the return code of BAPI_TRANSACTION_COMMIT?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ec&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Dec 2007 11:16:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3063791#M725922</guid>
      <dc:creator>JozsefSzikszai</dc:creator>
      <dc:date>2007-12-03T11:16:03Z</dc:date>
    </item>
    <item>
      <title>Re: Bapi_po_create1</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3063792#M725923</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try to delete the WAIT addition or check if the BAPI for commit returns an error&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Max&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Dec 2007 11:18:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3063792#M725923</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-03T11:18:06Z</dc:date>
    </item>
    <item>
      <title>Re: Bapi_po_create1</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3063793#M725924</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check the below sample code for ur reference&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT z_create_openppo NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;LINE-SIZE 340&lt;/P&gt;&lt;P&gt;LINE-COUNT 60&lt;/P&gt;&lt;P&gt;MESSAGE-ID zricef.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SELECTION SCREEN *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK mainblck WITH FRAME TITLE text-t01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN SKIP 1.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_app RADIOBUTTON GROUP cmp1.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_pre RADIOBUTTON GROUP cmp1.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_infile LIKE rlgrap-filename OBLIGATORY DEFAULT '/usr/sap/',&lt;/P&gt;&lt;P&gt;p_group(12) TYPE c,&lt;/P&gt;&lt;P&gt;p_user TYPE sy-uname.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_errfl LIKE rlgrap-filename OBLIGATORY DEFAULT '/ricef/DEV/conversions/CV5060/data/cv5060_err.txt' .&lt;/P&gt;&lt;P&gt;PARAMETERS:p_tst RADIOBUTTON GROUP comp.&lt;/P&gt;&lt;P&gt;PARAMETERS:p_prd RADIOBUTTON GROUP comp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK mainblck.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CONSTANTS *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS:&lt;/P&gt;&lt;P&gt;con_tab TYPE c VALUE cl_abap_char_utilities=&amp;gt;horizontal_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WORK VARIABLES *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal tabe to store upload header data&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_record,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;header items&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;legpo(15) TYPE c,&lt;/P&gt;&lt;P&gt;bukrs TYPE bukrs,&lt;/P&gt;&lt;P&gt;bsart TYPE bsart,&lt;/P&gt;&lt;P&gt;cu_dat TYPE erdat,&lt;/P&gt;&lt;P&gt;lifnr TYPE lifnr,&lt;/P&gt;&lt;P&gt;vkorg TYPE vkorg,&lt;/P&gt;&lt;P&gt;ekgrp TYPE ekgrp,&lt;/P&gt;&lt;P&gt;waers TYPE waers,&lt;/P&gt;&lt;P&gt;doc_date TYPE ebdat,&lt;/P&gt;&lt;P&gt;s_werks TYPE werks,&lt;/P&gt;&lt;P&gt;*line items&lt;/P&gt;&lt;P&gt;legpo_item(4) TYPE c,&lt;/P&gt;&lt;P&gt;ematn TYPE matnr,&lt;/P&gt;&lt;P&gt;werks TYPE werks,&lt;/P&gt;&lt;P&gt;menge TYPE menge,&lt;/P&gt;&lt;P&gt;meins TYPE meins,&lt;/P&gt;&lt;P&gt;netpr TYPE poscurncy,&lt;/P&gt;&lt;P&gt;peinh TYPE peinh,&lt;/P&gt;&lt;P&gt;epstp TYPE epstp,&lt;/P&gt;&lt;P&gt;knttp TYPE knttp,&lt;/P&gt;&lt;P&gt;*delievery&lt;/P&gt;&lt;P&gt;eindt TYPE eindt,&lt;/P&gt;&lt;P&gt;message(72) TYPE c,&lt;/P&gt;&lt;P&gt;END OF t_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Data table&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_src_header,&lt;/P&gt;&lt;P&gt;legpo(15) TYPE c,&lt;/P&gt;&lt;P&gt;bukrs(4) TYPE c,&lt;/P&gt;&lt;P&gt;bsart(4) TYPE c,&lt;/P&gt;&lt;P&gt;cu_dat(8) TYPE c,&lt;/P&gt;&lt;P&gt;lifnr(10) TYPE c,&lt;/P&gt;&lt;P&gt;vkorg(4) TYPE c,&lt;/P&gt;&lt;P&gt;ekgrp(3) TYPE c,&lt;/P&gt;&lt;P&gt;waers(3) TYPE c,&lt;/P&gt;&lt;P&gt;doc_date(8) TYPE c,&lt;/P&gt;&lt;P&gt;s_werks(4) TYPE c,&lt;/P&gt;&lt;P&gt;legpo_item(4) TYPE c,&lt;/P&gt;&lt;P&gt;ematn(18) TYPE c,&lt;/P&gt;&lt;P&gt;werks(4) TYPE c,&lt;/P&gt;&lt;P&gt;menge(13) TYPE c,&lt;/P&gt;&lt;P&gt;meins(3) TYPE c,&lt;/P&gt;&lt;P&gt;netpr(11) TYPE c,&lt;/P&gt;&lt;P&gt;peinh(5) TYPE c,&lt;/P&gt;&lt;P&gt;epstp(1) TYPE c,&lt;/P&gt;&lt;P&gt;knttp(1) TYPE c,&lt;/P&gt;&lt;P&gt;eindt(8) TYPE c,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END OF t_src_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF lt_record,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;header items&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;legpo(15) TYPE c,&lt;/P&gt;&lt;P&gt;bukrs(4) TYPE c, " TYPE bukrs,&lt;/P&gt;&lt;P&gt;bsart(2) TYPE c, "TYPE bsart,&lt;/P&gt;&lt;P&gt;cu_dat(8) TYPE c, " TYPE erdat,&lt;/P&gt;&lt;P&gt;lifnr(10) TYPE c, " TYPE lifnr,&lt;/P&gt;&lt;P&gt;vkorg(4) TYPE c, "TYPE vkorg,&lt;/P&gt;&lt;P&gt;ekgrp(3) TYPE c," TYPE ekgrp,&lt;/P&gt;&lt;P&gt;waers(3) TYPE c, " TYPE waers,&lt;/P&gt;&lt;P&gt;doc_date(8) TYPE c, "TYPE ebdat,&lt;/P&gt;&lt;P&gt;s_werks(4) TYPE c, " TYPE werks,&lt;/P&gt;&lt;P&gt;*line items&lt;/P&gt;&lt;P&gt;legpo_item(4) TYPE c,&lt;/P&gt;&lt;P&gt;ematn(18) TYPE c, " TYPE matnr,&lt;/P&gt;&lt;P&gt;werks(4) TYPE c, " TYPE werks,&lt;/P&gt;&lt;P&gt;menge(17) TYPE c, "TYPE menge,&lt;/P&gt;&lt;P&gt;meins(3) TYPE c, " TYPE meins,&lt;/P&gt;&lt;P&gt;netpr(11) TYPE c, " TYPE netpr,&lt;/P&gt;&lt;P&gt;peinh(5) TYPE c, " TYPE peinh,&lt;/P&gt;&lt;P&gt;epstp(1) TYPE c, " TYPE epstp,&lt;/P&gt;&lt;P&gt;knttp(1) TYPE c, "TYPE knttp,&lt;/P&gt;&lt;P&gt;*delivery&lt;/P&gt;&lt;P&gt;eindt(8) TYPE c, "TYPE eindt,&lt;/P&gt;&lt;P&gt;message(72) TYPE c,&lt;/P&gt;&lt;P&gt;END OF lt_record.&lt;/P&gt;&lt;P&gt;DATA: lt_record TYPE lt_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: l_record TYPE t_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For the input purchase order data with a flag&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES : BEGIN OF t_pur_ord.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE l_record.&lt;/P&gt;&lt;P&gt;TYPES : mess(2500) TYPE c,&lt;/P&gt;&lt;P&gt;ok(1) TYPE c,&lt;/P&gt;&lt;P&gt;ebeln TYPE ekko-ebeln,&lt;/P&gt;&lt;P&gt;END OF t_pur_ord.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: nodata VALUE '/' .&lt;/P&gt;&lt;P&gt;DATA: gd_file TYPE string.&lt;/P&gt;&lt;P&gt;DATA: w_menge TYPE char13.&lt;/P&gt;&lt;P&gt;DATA: w_netpr TYPE currency.&lt;/P&gt;&lt;P&gt;DATA: lv_knumv TYPE knumv.&lt;/P&gt;&lt;P&gt;DATA: gv_matnr TYPE matnr,&lt;/P&gt;&lt;P&gt;gv_ekgrp TYPE ekgrp.&lt;/P&gt;&lt;P&gt;*Internal Table for BAPI change.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: i_tab TYPE STANDARD TABLE OF konv WITH KEY knumv kposn stunr zaehk,&lt;/P&gt;&lt;P&gt;st_temp TYPE konv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_record TYPE STANDARD TABLE OF t_record INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;st_error TYPE t_record,&lt;/P&gt;&lt;P&gt;i_error TYPE STANDARD TABLE OF t_record,&lt;/P&gt;&lt;P&gt;temp_error TYPE STANDARD TABLE OF t_record,&lt;/P&gt;&lt;P&gt;wa_record TYPE t_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Batchinputdata of single transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal table to header upload data into&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF it_datatab OCCURS 0,&lt;/P&gt;&lt;P&gt;row(500) TYPE c,&lt;/P&gt;&lt;P&gt;END OF it_datatab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: wa_uploadtxt TYPE t_src_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*String value to data in initially.&lt;/P&gt;&lt;P&gt;DATA: wa_string(255) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: st_pur_ord TYPE t_pur_ord, "header for i_pur_ord&lt;/P&gt;&lt;P&gt;i_pur_ord TYPE STANDARD TABLE OF t_pur_ord.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS cl_abap_char_utilities DEFINITION LOAD.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structure For PO header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*structures for passing to BAPI&lt;/P&gt;&lt;P&gt;DATA: poheader TYPE bapimepoheader, "header data&lt;/P&gt;&lt;P&gt;poheaderx TYPE bapimepoheaderx.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PO number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: po_number TYPE ekko-ebeln. "bapimepoheader-po_number. "created PO number&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Export header for BAPI Change&lt;/P&gt;&lt;P&gt;DATA: expheader TYPE bapimepoheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;*for messages&lt;/P&gt;&lt;P&gt;st_return TYPE bapiret2,&lt;/P&gt;&lt;P&gt;i_return TYPE STANDARD TABLE OF bapiret2,&lt;/P&gt;&lt;P&gt;i_return_ch TYPE STANDARD TABLE OF bapiret2,&lt;/P&gt;&lt;P&gt;wa_ret TYPE bapiret2.&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for PO items.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;st_poitem TYPE bapimepoitem,&lt;/P&gt;&lt;P&gt;i_poitem TYPE STANDARD TABLE OF bapimepoitem,&lt;/P&gt;&lt;P&gt;st_poitemx TYPE bapimepoitemx,&lt;/P&gt;&lt;P&gt;i_poitemx TYPE STANDARD TABLE OF bapimepoitemx,&lt;/P&gt;&lt;P&gt;*schedule lines data&lt;/P&gt;&lt;P&gt;st_poschedule TYPE bapimeposchedule, "schedule lines&lt;/P&gt;&lt;P&gt;i_poschedule TYPE STANDARD TABLE OF bapimeposchedule,&lt;/P&gt;&lt;P&gt;st_poschedulx TYPE bapimeposchedulx,&lt;/P&gt;&lt;P&gt;i_poschedulx TYPE STANDARD TABLE OF bapimeposchedulx,&lt;/P&gt;&lt;P&gt;*conditions&lt;/P&gt;&lt;P&gt;st_condheader TYPE bapimepocondheader,&lt;/P&gt;&lt;P&gt;i_pocondheader TYPE STANDARD TABLE OF bapimepocondheader,&lt;/P&gt;&lt;P&gt;st_condheaderx TYPE bapimepocondheaderx,&lt;/P&gt;&lt;P&gt;i_pocondheaderx TYPE STANDARD TABLE OF bapimepocondheaderx,&lt;/P&gt;&lt;P&gt;*Internal table to hold messages from BAPI call&lt;/P&gt;&lt;P&gt;return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FIELD-SYMBOLS *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS: &amp;lt;fs_return&amp;gt; TYPE bapiret2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;AT SELECTION SCREEN *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_infile.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WS_FILENAME_GET'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;def_filename = p_infile&lt;/P&gt;&lt;P&gt;mask = ',*.txt.'&lt;/P&gt;&lt;P&gt;mode = 'O'&lt;/P&gt;&lt;P&gt;title = text-001&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;filename = p_infile&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;inv_winsys = 1&lt;/P&gt;&lt;P&gt;no_batch = 2&lt;/P&gt;&lt;P&gt;selection_cancel = 3&lt;/P&gt;&lt;P&gt;selection_error = 4&lt;/P&gt;&lt;P&gt;OTHERS = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TOP OF PAGE&amp;amp;#24315; *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE:/ sy-uline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE: / 'Program :', sy-repid,&lt;/P&gt;&lt;P&gt;52 'WB WHV - US Implementation',&lt;/P&gt;&lt;P&gt;116 'Page: ', sy-pagno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE:/ sy-uline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SKIP 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;*START-OF-SELECTION&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;gd_file = p_infile.&lt;/P&gt;&lt;P&gt;PERFORM load_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Alternative method, where by you split fields at each TAB after you&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;have returned the data. No point unless you dont have access to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;GUI_UPLOAD but just included for information&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;filename = gd_file&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;filetype = 'ASC'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data_tab = it_datatab "ITBL_IN_RECORD[]&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;file_open_error = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 2.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;If upload is successful...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LOOP AT it_datatab.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CLEAR: wa_string, wa_uploadtxt.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_string = it_datatab.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Split the input string at TAB and push into variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SPLIT wa_string AT con_tab INTO wa_uploadtxt-legpo&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-bukrs&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-bsart&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-cu_dat&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-lifnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-vkorg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-ekgrp&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-waers&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-doc_date&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-s_werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-legpo_item&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-ematn&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-menge&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-meins&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-netpr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-peinh&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-epstp&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-knttp&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;wa_uploadtxt-eindt.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Move to workarea&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MOVE-CORRESPONDING wa_uploadtxt TO wa_record.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;APPEND wa_record TO it_record.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF p_tst EQ 'X'.&lt;/P&gt;&lt;P&gt;PERFORM pre_validation.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;*Peform BAPI CREATE&lt;/P&gt;&lt;P&gt;PERFORM call_bapi_po_create.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;END-OF-SELECTION *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;IF p_prd EQ 'X'.&lt;/P&gt;&lt;P&gt;*!! Text data is now contained within the internal table IT_RECORD&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display report data for illustration purposes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF NOT i_error[] IS INITIAL.&lt;/P&gt;&lt;P&gt;PERFORM write_error_recs.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: lv_line TYPE i.&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE it_record LINES lv_line.&lt;/P&gt;&lt;P&gt;WRITE:/ lv_line.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form call_bapi_po_create&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call the BAPI FM to create PO&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM call_bapi_po_create .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: curr_line TYPE t_record.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Open the error session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;PERFORM open_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Iterate thru the input records...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT it_record INTO curr_line.&lt;/P&gt;&lt;P&gt;APPEND curr_line TO temp_error.&lt;/P&gt;&lt;P&gt;st_pur_ord = curr_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Load data into header&lt;/P&gt;&lt;P&gt;AT NEW legpo.&lt;/P&gt;&lt;P&gt;PERFORM fillheader.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the lineitem structures&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM fillline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;On change of the legacy PO number, post one transaction into SAP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;AT END OF legpo.&lt;/P&gt;&lt;P&gt;*When ZCM,ZCN, ZRP,ZRS call the Bapi&lt;/P&gt;&lt;P&gt;CASE poheader-doc_type.&lt;/P&gt;&lt;P&gt;WHEN 'ZCM' OR 'ZCN' OR 'ZRP' OR 'ZRS'.&lt;/P&gt;&lt;P&gt;PERFORM zcall_bapi.&lt;/P&gt;&lt;P&gt;WHEN OTHERS.&lt;/P&gt;&lt;P&gt;PERFORM gen_bdc.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;*when ZPR,ZUB,ZIC call form gen_bdc&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Close the BDC error session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM close_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " call_bapi_po_create&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form Fillheader&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the PO header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM fillheader .&lt;/P&gt;&lt;P&gt;DATA: lv_date TYPE sy-datum,&lt;/P&gt;&lt;P&gt;lv1_date TYPE sy-datum,&lt;/P&gt;&lt;P&gt;lv_ekgrp TYPE ekgrp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR: st_poitem,&lt;/P&gt;&lt;P&gt;st_poitemx,&lt;/P&gt;&lt;P&gt;st_poschedule,&lt;/P&gt;&lt;P&gt;st_poschedule,&lt;/P&gt;&lt;P&gt;st_condheader,&lt;/P&gt;&lt;P&gt;st_condheaderx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH: i_poitem,&lt;/P&gt;&lt;P&gt;i_poitemx,&lt;/P&gt;&lt;P&gt;i_poschedule,&lt;/P&gt;&lt;P&gt;i_poschedulx,&lt;/P&gt;&lt;P&gt;i_pocondheader,&lt;/P&gt;&lt;P&gt;i_pocondheaderx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**Purchasing group&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SELECT SINGLE ekgrp FROM t024 INTO lv_ekgrp WHERE ekgrp = st_pur_ord-ekgrp.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;APPEND LINES OF temp_error TO i_error.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MODIFY i_error FROM st_error TRANSPORTING message WHERE message = 'Purchasing Group is inocrrect'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PERFORM write_error_recs.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;gv_ekgrp = lv_ekgrp.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check the legacy type and populate the SAP document type for the PO&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CASE st_pur_ord-bsart.&lt;/P&gt;&lt;P&gt;WHEN 'PO'.&lt;/P&gt;&lt;P&gt;st_pur_ord-bsart ='ZCM'.&lt;/P&gt;&lt;P&gt;WHEN 'CO'.&lt;/P&gt;&lt;P&gt;st_pur_ord-bsart ='ZCN'.&lt;/P&gt;&lt;P&gt;WHEN 'DO'.&lt;/P&gt;&lt;P&gt;st_pur_ord-bsart ='ZPR'.&lt;/P&gt;&lt;P&gt;WHEN 'RO'.&lt;/P&gt;&lt;P&gt;st_pur_ord-bsart ='ZRP'.&lt;/P&gt;&lt;P&gt;WHEN 'TO'.&lt;/P&gt;&lt;P&gt;st_pur_ord-bsart ='ZUB'.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Populate the header structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;poheader-comp_code = st_pur_ord-bukrs. "Company code&lt;/P&gt;&lt;P&gt;poheader-doc_type = st_pur_ord-bsart. "Doc type&lt;/P&gt;&lt;P&gt;poheader-creat_date = st_pur_ord-cu_dat. "Creation date&lt;/P&gt;&lt;P&gt;poheader-created_by = sy-uname. "Author&lt;/P&gt;&lt;P&gt;poheader-vendor = st_pur_ord-lifnr. "Vendor&lt;/P&gt;&lt;P&gt;poheader-langu = 'EN'. "Lang key&lt;/P&gt;&lt;P&gt;poheader-langu_iso = 'EN'. "Lang ISO key&lt;/P&gt;&lt;P&gt;poheader-purch_org = st_pur_ord-vkorg. "Sales Org&lt;/P&gt;&lt;P&gt;poheader-pur_group = st_pur_ord-ekgrp. "Purchasing Group&lt;/P&gt;&lt;P&gt;poheader-currency = st_pur_ord-waers. "Currency&lt;/P&gt;&lt;P&gt;poheader-currency_iso = st_pur_ord-waers. "Currency ISO&lt;/P&gt;&lt;P&gt;poheader-doc_date = st_pur_ord-doc_date. "Document date&lt;/P&gt;&lt;P&gt;poheader-suppl_plnt = st_pur_ord-s_werks. "Supplying plant&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;poheaderx-comp_code = 'X'.&lt;/P&gt;&lt;P&gt;poheaderx-doc_type ='X'.&lt;/P&gt;&lt;P&gt;poheaderx-creat_date = 'X'.&lt;/P&gt;&lt;P&gt;poheaderx-created_by = 'X'.&lt;/P&gt;&lt;P&gt;poheaderx-vendor = 'X'.&lt;/P&gt;&lt;P&gt;poheaderx-langu = 'X'.&lt;/P&gt;&lt;P&gt;poheaderx-langu_iso = 'X'.&lt;/P&gt;&lt;P&gt;poheaderx-purch_org = 'X'.&lt;/P&gt;&lt;P&gt;poheaderx-pur_group = 'X'.&lt;/P&gt;&lt;P&gt;poheaderx-currency = 'X'.&lt;/P&gt;&lt;P&gt;poheaderx-currency_iso = 'X'.&lt;/P&gt;&lt;P&gt;poheaderx-doc_date = 'X'.&lt;/P&gt;&lt;P&gt;poheaderx-suppl_plnt = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " Fillheader&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form Fillline&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the PO line items.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM fillline .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: lv_date1 TYPE sy-datum,&lt;/P&gt;&lt;P&gt;lv_po TYPE ebeln,&lt;/P&gt;&lt;P&gt;lv_matnr TYPE matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*material&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR: lv_matnr,&lt;/P&gt;&lt;P&gt;gv_matnr.&lt;/P&gt;&lt;P&gt;SELECT SINGLE matnr FROM zmc_matlxref INTO lv_matnr&lt;/P&gt;&lt;P&gt;WHERE legmatnr = st_pur_ord-ematn.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;APPEND LINES OF temp_error TO i_error.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MODIFY i_error FROM st_error TRANSPORTING message WHERE message = 'Material not in SAP'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PERFORM write_error_recs.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;gv_matnr = lv_matnr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Conversion for order unit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF NOT st_pur_ord-meins IS INITIAL.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;input = st_pur_ord-meins&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;output = st_pur_ord-meins.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Item category depends on Doctype&lt;/P&gt;&lt;P&gt;CASE poheader-doc_type.&lt;/P&gt;&lt;P&gt;WHEN 'ZCN' OR 'ZPR' OR 'ZRP' OR 'ZRS'.&lt;/P&gt;&lt;P&gt;st_pur_ord-epstp = 'L'.&lt;/P&gt;&lt;P&gt;WHEN 'ZUB' OR 'ZCM'.&lt;/P&gt;&lt;P&gt;st_pur_ord-epstp = ' '.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;w_menge = st_pur_ord-menge.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the lineitem data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;st_poitem-po_item = st_pur_ord-legpo_item * 10. "Item number&lt;/P&gt;&lt;P&gt;st_poitem-material = lv_matnr. "Material Number&lt;/P&gt;&lt;P&gt;st_poitem-ematerial = lv_matnr. "Material Number&lt;/P&gt;&lt;P&gt;st_poitem-plant = st_pur_ord-werks. "Plant&lt;/P&gt;&lt;P&gt;st_poitem-trackingno = st_pur_ord-legpo. "Legacy PO&lt;/P&gt;&lt;P&gt;st_poitem-quantity = w_menge. "Quantity&lt;/P&gt;&lt;P&gt;st_poitem-orderpr_un = st_pur_ord-meins. "Order unit&lt;/P&gt;&lt;P&gt;st_poitem-orderpr_un_iso = st_pur_ord-meins. "Order unit&lt;/P&gt;&lt;P&gt;st_poitem-net_price = st_pur_ord-netpr * 1000. "Net Price&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;st_poitem-price_unit = st_pur_ord-peinh.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;st_poitem-price_unit = '1000'.&lt;/P&gt;&lt;P&gt;st_poitem-item_cat = st_pur_ord-epstp. "Item category&lt;/P&gt;&lt;P&gt;st_poitem-acctasscat = st_pur_ord-knttp. "Acct Assignment category&lt;/P&gt;&lt;P&gt;APPEND st_poitem TO i_poitem.&lt;/P&gt;&lt;P&gt;CLEAR st_poitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INTERFACE ITEM DATA&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;st_poitemx-po_item = st_pur_ord-legpo_item * 10.&lt;/P&gt;&lt;P&gt;st_poitemx-po_itemx = 'X'.&lt;/P&gt;&lt;P&gt;st_poitemx-ematerial = 'X'.&lt;/P&gt;&lt;P&gt;st_poitemx-plant = 'X'.&lt;/P&gt;&lt;P&gt;st_poitemx-trackingno = 'X'.&lt;/P&gt;&lt;P&gt;st_poitemx-quantity = 'X'.&lt;/P&gt;&lt;P&gt;st_poitemx-orderpr_un = 'X'.&lt;/P&gt;&lt;P&gt;st_poitemx-orderpr_un_iso = 'X'.&lt;/P&gt;&lt;P&gt;st_poitemx-net_price = 'X'.&lt;/P&gt;&lt;P&gt;st_poitemx-price_unit = 'X'.&lt;/P&gt;&lt;P&gt;st_poitemx-item_cat = 'X'.&lt;/P&gt;&lt;P&gt;st_poitemx-acctasscat = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;st_poitem-CALCTYPE = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND st_poitemx TO i_poitemx.&lt;/P&gt;&lt;P&gt;CLEAR st_poitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Convert date to user format&lt;/P&gt;&lt;P&gt;lv_date1 = st_pur_ord-eindt.&lt;/P&gt;&lt;P&gt;WRITE lv_date1 TO lv_date1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DELIVERY DETAILS DATA&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;st_poschedule-po_item = st_pur_ord-legpo_item * 10.&lt;/P&gt;&lt;P&gt;st_poschedule-delivery_date = lv_date1.&lt;/P&gt;&lt;P&gt;APPEND st_poschedule TO i_poschedule.&lt;/P&gt;&lt;P&gt;CLEAR st_poschedule.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Delivery interface&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;st_poschedulx-po_item = st_pur_ord-legpo_item * 10.&lt;/P&gt;&lt;P&gt;st_poschedulx-delivery_date = 'X'.&lt;/P&gt;&lt;P&gt;st_poitemx-po_itemx = 'X'.&lt;/P&gt;&lt;P&gt;APPEND st_poschedulx TO i_poschedulx.&lt;/P&gt;&lt;P&gt;CLEAR st_poschedulx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*CONDITIONS&lt;/P&gt;&lt;P&gt;st_condheader-itm_number = st_pur_ord-legpo_item * 10.&lt;/P&gt;&lt;P&gt;CASE poheader-doc_type.&lt;/P&gt;&lt;P&gt;WHEN 'ZCN' OR 'ZPR' OR 'ZRP' OR 'ZRS'.&lt;/P&gt;&lt;P&gt;st_condheader-cond_type = 'ZWUS'.&lt;/P&gt;&lt;P&gt;WHEN 'ZUB' OR 'ZCM'.&lt;/P&gt;&lt;P&gt;st_condheader-cond_type = 'PB00'.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;st_condheader-cond_value = st_pur_ord-netpr * 1000.&lt;/P&gt;&lt;P&gt;st_condheader-currency = 'USD'.&lt;/P&gt;&lt;P&gt;st_condheader-currency_iso = 'USD'.&lt;/P&gt;&lt;P&gt;st_condheader-cond_unit = 'EA'.&lt;/P&gt;&lt;P&gt;st_condheader-cond_unit_iso = 'EA'.&lt;/P&gt;&lt;P&gt;st_condheader-cond_p_unt = '1000'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check to see if the material and plant combo exists in SAP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE ebeln INTO lv_po FROM ekpo&lt;/P&gt;&lt;P&gt;WHERE matnr = lv_matnr AND&lt;/P&gt;&lt;P&gt;werks = st_pur_ord-werks.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If yes...update&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;st_condheader-change_id = 'U'.&lt;/P&gt;&lt;P&gt;ELSE. "Insert&lt;/P&gt;&lt;P&gt;st_condheader-change_id = 'I'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;st_condheader-condchaman = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND st_condheader TO i_pocondheader.&lt;/P&gt;&lt;P&gt;CLEAR st_condheader.&lt;/P&gt;&lt;P&gt;*CONDITIONS INTERFACE&lt;/P&gt;&lt;P&gt;st_condheaderx-itm_number = st_pur_ord-legpo_item * 10.&lt;/P&gt;&lt;P&gt;st_condheaderx-itm_numberx = 'X'.&lt;/P&gt;&lt;P&gt;st_condheaderx-cond_type = 'X'.&lt;/P&gt;&lt;P&gt;st_condheaderx-cond_value = 'X'.&lt;/P&gt;&lt;P&gt;st_condheaderx-currency = 'X'.&lt;/P&gt;&lt;P&gt;st_condheaderx-currency_iso = 'X'.&lt;/P&gt;&lt;P&gt;st_condheaderx-cond_unit = 'X'.&lt;/P&gt;&lt;P&gt;st_condheaderx-cond_unit_iso = 'X'.&lt;/P&gt;&lt;P&gt;st_condheaderx-cond_p_unt = 'X'.&lt;/P&gt;&lt;P&gt;st_condheaderx-change_id = 'X'.&lt;/P&gt;&lt;P&gt;st_condheaderx-condchaman = 'X'.&lt;/P&gt;&lt;P&gt;APPEND st_condheaderx TO i_pocondheaderx.&lt;/P&gt;&lt;P&gt;CLEAR st_condheaderx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " Fillline&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form ZCALL_BAPI&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BAPI to post&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM zcall_bapi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: lv_flag TYPE c,&lt;/P&gt;&lt;P&gt;lst_return TYPE bapiret2.&lt;/P&gt;&lt;P&gt;DATA: i_ekko TYPE STANDARD TABLE OF ekko.&lt;/P&gt;&lt;P&gt;DATA: lv_zaehk LIKE konv-zaehk,&lt;/P&gt;&lt;P&gt;lv_changid TYPE cdchngind.&lt;/P&gt;&lt;P&gt;DATA: st_return_ch TYPE bapiret2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH: i_return.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call PO create FM to post the PO transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'BAPI_PO_CREATE1'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;poheader = poheader&lt;/P&gt;&lt;P&gt;poheaderx = poheaderx&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;exppurchaseorder = po_number&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;return = i_return&lt;/P&gt;&lt;P&gt;poitem = i_poitem&lt;/P&gt;&lt;P&gt;poitemx = i_poitemx&lt;/P&gt;&lt;P&gt;poschedule = i_poschedule&lt;/P&gt;&lt;P&gt;poschedulex = i_poschedulx&lt;/P&gt;&lt;P&gt;pocondheader = i_pocondheader&lt;/P&gt;&lt;P&gt;pocondheaderx = i_pocondheaderx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read the return Internal table for the outcome of the post...&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If it is E or A, then the posting errored&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;In this case, pass the error records to BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;READ TABLE i_return ASSIGNING &amp;lt;fs_return&amp;gt; WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;READ TABLE i_return ASSIGNING &amp;lt;fs_return&amp;gt; WITH KEY type = 'A'.&lt;/P&gt;&lt;P&gt;IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;lv_flag = 'N'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;lv_flag = 'N'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If NO errors occured during posting, commit the transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF lv_flag NE 'N'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;wait = 'X'.&lt;/P&gt;&lt;P&gt;READ TABLE i_return INTO wa_ret WITH KEY type = 'S'.&lt;/P&gt;&lt;P&gt;IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;WRITE:/ wa_ret-message.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;REFRESH temp_error.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Else rollback the data and generate BDC session&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT i_return INTO lst_return WHERE type = 'E'&lt;/P&gt;&lt;P&gt;OR type = 'A'.&lt;/P&gt;&lt;P&gt;CONCATENATE lst_return-message st_error-message&lt;/P&gt;&lt;P&gt;INTO st_error-message SEPARATED BY '-'.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF i_error[] IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Open the error session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PERFORM open_group.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Append error internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;APPEND LINES OF temp_error TO i_error.&lt;/P&gt;&lt;P&gt;REFRESH: temp_error.&lt;/P&gt;&lt;P&gt;MODIFY i_error FROM st_error TRANSPORTING message WHERE message = ''.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Generate the BDC Session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM gen_bdc.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR st_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LOOP AT i_return INTO wa_ret.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE / wa_ret-message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;******************************************************************&lt;/P&gt;&lt;P&gt;******************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Change BAPI&lt;/P&gt;&lt;P&gt;******************************************************************&lt;/P&gt;&lt;P&gt;******************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;If the BAPI posting was successful...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;IF lv_flag NE 'N'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Conversion function for the PO&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;input = po_number&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;output = po_number.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR lv_knumv.&lt;/P&gt;&lt;P&gt;*BAPI Change for order type&lt;/P&gt;&lt;P&gt;CASE poheader-doc_type.&lt;/P&gt;&lt;P&gt;WHEN 'ZCN'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Select the condition record number for the PO&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SELECT SINGLE knumv INTO lv_knumv FROM ekko&lt;/P&gt;&lt;P&gt;WHERE ebeln = po_number.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Select the condition records for above condition record number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SELECT * FROM konv INTO TABLE i_tab WHERE knumv = lv_knumv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Iterate thru the condition records and do....&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT i_tab INTO st_temp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH: i_pocondheaderx, i_pocondheader.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE:/ st_temp-kschl.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Depending on the condition record type...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CASE st_temp-kschl.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Delete the condition records if conditions are..&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;WHEN 'Z001' OR 'Z002' OR 'Z003' OR 'Z004' OR 'Z005' OR 'Z006' OR 'Z007' OR 'Z008' OR 'Z009' OR 'ZO10' OR&lt;/P&gt;&lt;P&gt;'Z011' OR 'Z012' OR 'Z013' OR 'Z014' OR 'Z015' OR 'Z016' OR 'Z017' OR 'Z018' OR 'Z019' OR 'ZO20' OR&lt;/P&gt;&lt;P&gt;'Z021' OR 'Z022' OR 'Z023' OR 'Z024' OR 'Z025' OR 'Z216' OR 'Z027' OR 'Z028' OR 'Z029' OR 'ZO30' OR&lt;/P&gt;&lt;P&gt;'Z031' OR 'Z032' OR 'Z033' OR 'Z034' OR 'Z035' OR 'Z036' OR 'Z037' OR 'Z038' OR 'Z039' OR 'ZO40' OR&lt;/P&gt;&lt;P&gt;'Z041' OR 'Z042' OR 'Z043' OR 'Z044' OR 'Z045' OR 'Z046' OR 'Z047' OR 'Z048' OR 'Z049' OR 'ZO50' OR&lt;/P&gt;&lt;P&gt;'Z051' OR 'Z052' OR 'Z053' OR 'Z054' OR 'Z055' OR 'Z056' OR 'Z057' OR 'Z058' OR 'Z059' OR 'ZO60' OR&lt;/P&gt;&lt;P&gt;'Z061' OR 'Z062' OR 'Z063' OR 'Z064' OR 'Z065' OR 'Z066' OR 'Z067' OR 'Z068' OR 'Z069' OR 'ZO70' OR&lt;/P&gt;&lt;P&gt;'Z071' OR 'Z072' OR 'Z073' OR 'Z074' OR 'Z075' OR 'Z076' OR 'Z077' OR 'Z078' OR 'Z079' OR 'ZO80' OR&lt;/P&gt;&lt;P&gt;'Z081' OR 'Z082' OR 'Z083' OR 'Z084' OR 'Z085' OR 'Z086' OR 'Z087' OR 'Z088' OR 'Z089' OR 'ZO90' OR&lt;/P&gt;&lt;P&gt;'Z091' OR 'Z092' OR 'Z093' OR 'Z094' OR 'Z095' OR 'Z096' OR 'Z097' OR 'Z098' OR 'Z099' OR 'Z1O0' OR&lt;/P&gt;&lt;P&gt;'Z101' OR 'Z102' OR 'Z103' OR 'Z104' OR 'Z105' OR 'Z106' OR 'Z107' OR 'Z108' OR 'Z109' OR 'Z110' OR&lt;/P&gt;&lt;P&gt;'Z111' OR 'Z112' OR 'Z113' OR 'Z114' OR 'Z115' OR 'Z116' OR 'Z117' OR 'Z118' OR 'Z119' OR 'Z120' OR&lt;/P&gt;&lt;P&gt;'Z121' OR 'Z122' OR 'Z123' OR 'Z124' OR 'Z125' OR 'Z126' OR 'Z127' OR 'Z128' OR 'Z129' OR 'Z130' OR&lt;/P&gt;&lt;P&gt;'Z131' OR 'Z132' OR 'Z313' OR 'Z134' OR 'Z135' OR 'Z136' OR 'Z137' OR 'Z138' OR 'Z139' OR 'Z140' OR&lt;/P&gt;&lt;P&gt;'Z141' OR 'Z142' OR 'Z143' OR 'Z144' OR 'Z145' OR 'Z146' OR 'Z147' OR 'Z148' OR 'Z149' OR 'Z150' OR&lt;/P&gt;&lt;P&gt;'Z151' OR 'Z152' OR 'Z153' OR 'Z154' OR 'Z154' OR 'Z156' OR 'Z157' OR 'Z158' OR 'Z159' OR 'Z160' OR&lt;/P&gt;&lt;P&gt;'Z161' OR 'Z162' OR 'Z163' OR 'Z164' OR 'Z165' OR 'Z166' OR 'Z167' OR 'Z168' OR 'Z169' OR 'Z170' OR&lt;/P&gt;&lt;P&gt;'FRA1' OR 'FRB1' OR 'FRC1' OR 'FRA2' OR 'FRB2' OR 'FRC2' OR 'RB00' OR 'ZB00' OR 'RA00' OR 'ZA00' OR&lt;/P&gt;&lt;P&gt;'RA01' OR 'ZA01' OR 'ZC00' OR 'HB01' OR 'RL01' OR 'MM00' OR 'MM01' OR 'ZUS0'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;lv_changid = 'D'.&lt;/P&gt;&lt;P&gt;PERFORM populate_condheader USING lv_changid.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Update in following case&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WHEN 'ZWUS'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;lv_changid = 'U'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PERFORM populate_condheader USING lv_changid.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;REFRESH: i_return_ch.&lt;/P&gt;&lt;P&gt;CLEAR: lv_flag.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call the BAPI PO change to Update/Insert the condition records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'BAPI_PO_CHANGE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;purchaseorder = po_number&lt;/P&gt;&lt;P&gt;poheader = poheader&lt;/P&gt;&lt;P&gt;poheaderx = poheaderx&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;expheader = expheader&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;return = i_return_ch&lt;/P&gt;&lt;P&gt;poitem = i_poitem&lt;/P&gt;&lt;P&gt;poitemx = i_poitemx&lt;/P&gt;&lt;P&gt;poschedule = i_poschedule&lt;/P&gt;&lt;P&gt;poschedulex = i_poschedulx&lt;/P&gt;&lt;P&gt;pocondheader = i_pocondheader&lt;/P&gt;&lt;P&gt;pocondheaderx = i_pocondheaderx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read the return table to check if errors occurecd...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;READ TABLE i_return_ch INTO st_return_ch WITH KEY type = 'E'.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;READ TABLE i_return ASSIGNING &amp;lt;fs_return&amp;gt; WITH KEY type = 'A'.&lt;/P&gt;&lt;P&gt;IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;lv_flag = 'N'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;lv_flag = 'N'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If NO errors occured...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF lv_flag NE 'N'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;wait = 'X'.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;**NOTHING.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;CLEAR lv_zaehk.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " ZCALL_BAPI&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form gen_bdc&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Subroutine to generate the BDC error session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM gen_bdc .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: cnt TYPE i.&lt;/P&gt;&lt;P&gt;DATA: st_item TYPE bapimepoitem,&lt;/P&gt;&lt;P&gt;lst_poschedule TYPE bapimeposchedule.&lt;/P&gt;&lt;P&gt;DATA: l_price(20) TYPE c,&lt;/P&gt;&lt;P&gt;l_price1 LIKE ekpo-netpr,&lt;/P&gt;&lt;P&gt;l_price2(11) TYPE c,&lt;/P&gt;&lt;P&gt;l_qty(13) TYPE c,&lt;/P&gt;&lt;P&gt;l_prev TYPE aufep. "(5) type n.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Loop at the items tab...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT i_poitem INTO st_item.&lt;/P&gt;&lt;P&gt;l_prev = st_item-po_item.&lt;/P&gt;&lt;P&gt;l_prev = l_prev - 10.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Reformat the creation date...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;WRITE poheader-creat_date TO poheader-creat_date.&lt;/P&gt;&lt;P&gt;cnt = cnt + 1.&lt;/P&gt;&lt;P&gt;l_price1 = st_item-net_price.&lt;/P&gt;&lt;P&gt;l_qty = st_item-quantity.&lt;/P&gt;&lt;P&gt;SHIFT l_qty LEFT DELETING LEADING space.&lt;/P&gt;&lt;P&gt;l_price2 = l_price1.&lt;/P&gt;&lt;P&gt;SHIFT l_price2 LEFT DELETING LEADING space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For the first line item...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF cnt = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**New code for ZPR,ZIC,ZUB Item category,supplying plant&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***supplying plant&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CASE poheader-doc_type.&lt;/P&gt;&lt;P&gt;WHEN 'ZPR' OR 'ZUB' OR 'ZIC'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0100'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'EKKO-EKGRP'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'=KOPF'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKKO-LIFNR'&lt;/P&gt;&lt;P&gt;poheader-vendor. "'6055899'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-BSART'&lt;/P&gt;&lt;P&gt;poheader-doc_type. "'zcm'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-BEDAT'&lt;/P&gt;&lt;P&gt;poheader-creat_date. "'05/04/2007'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKKO-EKORG'&lt;/P&gt;&lt;P&gt;poheader-purch_org. "'3000'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKKO-EKGRP'&lt;/P&gt;&lt;P&gt;poheader-pur_group. "'004'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-WERKS'&lt;/P&gt;&lt;P&gt;'0041' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0101'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'=AB'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'EKKO-ZWERKS'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKKO-ZWERKS'&lt;/P&gt;&lt;P&gt;'0041'.&lt;/P&gt;&lt;P&gt;WHEN OTHERS.&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0100'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'EKKO-EKGRP'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'/00'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKKO-LIFNR'&lt;/P&gt;&lt;P&gt;poheader-vendor. "'6055899'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-BSART'&lt;/P&gt;&lt;P&gt;poheader-doc_type. "'zcm'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-BEDAT'&lt;/P&gt;&lt;P&gt;poheader-creat_date. "'05/04/2007'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKKO-EKORG'&lt;/P&gt;&lt;P&gt;poheader-purch_org. "'3000'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKKO-EKGRP'&lt;/P&gt;&lt;P&gt;poheader-pur_group. "'004'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-WERKS'&lt;/P&gt;&lt;P&gt;'0041' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0120'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'EKPO-NETPR(01)'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'/00'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-EBELP'&lt;/P&gt;&lt;P&gt;st_item-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE i_poschedule INTO lst_poschedule WITH KEY po_item = st_item-po_item.&lt;/P&gt;&lt;P&gt;WRITE lst_poschedule-delivery_date TO lst_poschedule-delivery_date.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-EEIND(01)'&lt;/P&gt;&lt;P&gt;lst_poschedule-delivery_date.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKPO-WERKS(01)'&lt;/P&gt;&lt;P&gt;st_item-plant.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKPO-EMATN(01)'&lt;/P&gt;&lt;P&gt;gv_matnr.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKPO-MENGE(01)'&lt;/P&gt;&lt;P&gt;l_qty. "st_item-quantity.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKPO-NETPR(01)'&lt;/P&gt;&lt;P&gt;l_price2.&lt;/P&gt;&lt;P&gt;perform bdc_field using 'EKPO-PEINH(01)'&lt;/P&gt;&lt;P&gt;'1000'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;IF poheader-doc_type = 'ZCN' OR&lt;/P&gt;&lt;P&gt;poheader-doc_type = 'ZPR' OR&lt;/P&gt;&lt;P&gt;poheader-doc_type = 'ZRP' OR&lt;/P&gt;&lt;P&gt;poheader-doc_type = 'ZRS'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-EPSTP(01)'&lt;/P&gt;&lt;P&gt;'L'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*new code&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0120'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'EKPO-MENGE(01)'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'=DETA'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-EBELP'&lt;/P&gt;&lt;P&gt;'10'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*item details&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0111'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'EKPO-NETPR'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'/00'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKPO-NETPR'&lt;/P&gt;&lt;P&gt;l_price2.&lt;/P&gt;&lt;P&gt;perform bdc_field using 'EKPO-BEDNR'&lt;/P&gt;&lt;P&gt;st_item-trackingno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For second line item...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF cnt = 2.&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0111'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0120'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'EKPO-MATKL(02)'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'/00'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-EBELP'&lt;/P&gt;&lt;P&gt;st_item-po_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE i_poschedule INTO lst_poschedule WITH KEY po_item = st_item-po_item.&lt;/P&gt;&lt;P&gt;WRITE lst_poschedule-delivery_date TO lst_poschedule-delivery_date.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-EEIND(02)'&lt;/P&gt;&lt;P&gt;lst_poschedule-delivery_date.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKPO-WERKS(02)'&lt;/P&gt;&lt;P&gt;st_item-plant.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKPO-EMATN(02)'&lt;/P&gt;&lt;P&gt;gv_matnr.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKPO-MENGE(02)'&lt;/P&gt;&lt;P&gt;l_qty. "st_item-quantity.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKPO-NETPR(02)'&lt;/P&gt;&lt;P&gt;l_price2.&lt;/P&gt;&lt;P&gt;perform bdc_field using 'EKPO-PEINH(02)'&lt;/P&gt;&lt;P&gt;'1000'.&lt;/P&gt;&lt;P&gt;IF poheader-doc_type = 'ZCN' OR&lt;/P&gt;&lt;P&gt;poheader-doc_type = 'ZPR' OR&lt;/P&gt;&lt;P&gt;poheader-doc_type = 'ZRP' OR&lt;/P&gt;&lt;P&gt;poheader-doc_type = 'ZRS'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-EPSTP(02)'&lt;/P&gt;&lt;P&gt;'L'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0120'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'EKPO-MENGE(01)'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'=DETA'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-EBELP'&lt;/P&gt;&lt;P&gt;'20'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0111'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'EKPO-NETPR'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'/00'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKPO-NETPR'&lt;/P&gt;&lt;P&gt;l_price2.&lt;/P&gt;&lt;P&gt;perform bdc_field using 'EKPO-BEDNR'&lt;/P&gt;&lt;P&gt;st_item-trackingno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For line items greater than 2..&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF cnt &amp;gt; 2.&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0111'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0120'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'RM06E-EBELP'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'/00'.&lt;/P&gt;&lt;P&gt;DATA: l_prev1(5) TYPE c,&lt;/P&gt;&lt;P&gt;l_temp TYPE ebelp.&lt;/P&gt;&lt;P&gt;l_prev1 = l_prev.&lt;/P&gt;&lt;P&gt;SHIFT l_prev1 LEFT DELETING LEADING 0.&lt;/P&gt;&lt;P&gt;l_temp = st_item-po_item - 10.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-EBELP'&lt;/P&gt;&lt;P&gt;l_temp. "'20'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0120'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'EKPO-NETPR(02)'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'/00'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-EBELP'&lt;/P&gt;&lt;P&gt;st_item-po_item.&lt;/P&gt;&lt;P&gt;READ TABLE i_poschedule INTO lst_poschedule&lt;/P&gt;&lt;P&gt;WITH KEY po_item = st_item-po_item.&lt;/P&gt;&lt;P&gt;WRITE lst_poschedule-delivery_date TO lst_poschedule-delivery_date.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-EEIND(02)'&lt;/P&gt;&lt;P&gt;lst_poschedule-delivery_date.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKPO-WERKS(02)'&lt;/P&gt;&lt;P&gt;st_item-plant.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKPO-EMATN(02)'&lt;/P&gt;&lt;P&gt;st_item-material.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKPO-MENGE(02)'&lt;/P&gt;&lt;P&gt;l_qty. "st_item-quantity.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKPO-NETPR(02)'&lt;/P&gt;&lt;P&gt;l_price2.&lt;/P&gt;&lt;P&gt;perform bdc_field using 'EKPO-PEINH(02)'&lt;/P&gt;&lt;P&gt;'1000'.&lt;/P&gt;&lt;P&gt;IF poheader-doc_type = 'ZCN' OR&lt;/P&gt;&lt;P&gt;poheader-doc_type = 'ZPR' OR&lt;/P&gt;&lt;P&gt;poheader-doc_type = 'ZRP' OR&lt;/P&gt;&lt;P&gt;poheader-doc_type = 'ZRS'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-EPSTP(02)'&lt;/P&gt;&lt;P&gt;'L'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0120'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'EKPO-MENGE(01)'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'=DETA'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-EBELP'&lt;/P&gt;&lt;P&gt;'10'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0111'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'EKPO-NETPR'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'/00'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'EKPO-NETPR'&lt;/P&gt;&lt;P&gt;l_price2.&lt;/P&gt;&lt;P&gt;perform bdc_field using 'EKPO-PEINH'&lt;/P&gt;&lt;P&gt;'1000'.&lt;/P&gt;&lt;P&gt;perform bdc_field using 'EKPO-BEDNR'&lt;/P&gt;&lt;P&gt;st_item-trackingno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Save the BDC&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0111'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPMM06E' '0120'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;'RM06E-EBELP'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'=BU'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'RM06E-EBELP'&lt;/P&gt;&lt;P&gt;'20'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.&lt;/P&gt;&lt;P&gt;PERFORM bdc_field USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;'=YES'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Insert the BDC&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM bdc_transaction USING 'ME21'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " gen_bdc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start new screen *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_dynpro USING program dynpro.&lt;/P&gt;&lt;P&gt;CLEAR bdcdata.&lt;/P&gt;&lt;P&gt;bdcdata-program = program.&lt;/P&gt;&lt;P&gt;bdcdata-dynpro = dynpro.&lt;/P&gt;&lt;P&gt;bdcdata-dynbegin = 'X'.&lt;/P&gt;&lt;P&gt;APPEND bdcdata.&lt;/P&gt;&lt;P&gt;ENDFORM. "BDC_DYNPRO&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Insert field *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_field USING fnam fval.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF fval &amp;lt;&amp;gt; nodata.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR bdcdata.&lt;/P&gt;&lt;P&gt;bdcdata-fnam = fnam.&lt;/P&gt;&lt;P&gt;bdcdata-fval = fval.&lt;/P&gt;&lt;P&gt;APPEND bdcdata.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDFORM. "BDC_FIELD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start new transaction according to parameters *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_transaction USING tcode.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;batch input session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;tcode = tcode&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;dynprotab = bdcdata.&lt;/P&gt;&lt;P&gt;WRITE: / 'BDC_INSERT'(i03),&lt;/P&gt;&lt;P&gt;tcode,&lt;/P&gt;&lt;P&gt;'returncode:'(i05),&lt;/P&gt;&lt;P&gt;sy-subrc,&lt;/P&gt;&lt;P&gt;'RECORD:',&lt;/P&gt;&lt;P&gt;sy-index.&lt;/P&gt;&lt;P&gt;REFRESH bdcdata.&lt;/P&gt;&lt;P&gt;ENDFORM. "BDC_TRANSACTION&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end batchinput session *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(call transaction using...: error session) *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM close_group.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;close batchinput group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;P&gt;ENDFORM. "CLOSE_GROUP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create batchinput session *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(not for call transaction using...) *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM open_group.&lt;/P&gt;&lt;P&gt;WRITE: /(20) 'Create group'(i01), p_group.&lt;/P&gt;&lt;P&gt;SKIP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;open batchinput group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;client = sy-mandt&lt;/P&gt;&lt;P&gt;group = p_group&lt;/P&gt;&lt;P&gt;user = p_user&lt;/P&gt;&lt;P&gt;keep = 'X'. "KEEP&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HOLDDATE = HOLDDATE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;WRITE: /(30) 'BDC_OPEN_GROUP'(i02),&lt;/P&gt;&lt;P&gt;(12) 'returncode:'(i05),&lt;/P&gt;&lt;P&gt;sy-subrc.&lt;/P&gt;&lt;P&gt;ENDFORM. "OPEN_GROUP&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form write_error_recs&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Write out the error records&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM write_error_recs .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: l_line TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open the app server file to write...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;OPEN DATASET p_errfl FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;IF sy-subrc EQ 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Loop thru the error records and write to the appserver file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT i_error INTO st_error.&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING st_error TO lt_record.&lt;/P&gt;&lt;P&gt;TRANSFER lt_record TO p_errfl.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " write_error_recs&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form populate_condheader&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the condition headers&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_LV_CHANGID change id (D or U)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM populate_condheader USING p_lv_changid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: lv_zaehk TYPE konv-zaehk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Select the current record from KONV&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SELECT SINGLE zaehk INTO lv_zaehk FROM konv WHERE&lt;/P&gt;&lt;P&gt;kposn = st_temp-kposn AND&lt;/P&gt;&lt;P&gt;knumv = st_temp-knumv AND&lt;/P&gt;&lt;P&gt;stunr = st_temp-stunr AND&lt;/P&gt;&lt;P&gt;kschl = st_temp-kschl.&lt;/P&gt;&lt;P&gt;IF sy-subrc EQ 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CONDITIONS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;st_condheader-itm_number = st_temp-kposn.&lt;/P&gt;&lt;P&gt;st_condheader-condition_no = st_temp-knumv.&lt;/P&gt;&lt;P&gt;st_condheader-cond_st_no = st_temp-stunr.&lt;/P&gt;&lt;P&gt;st_condheader-cond_count = lv_zaehk. "st_temp-ZAEHK.&lt;/P&gt;&lt;P&gt;st_condheader-cond_type = st_temp-kschl.&lt;/P&gt;&lt;P&gt;st_condheader-cond_value = st_pur_ord-netpr * 1000.&lt;/P&gt;&lt;P&gt;st_condheader-change_id = p_lv_changid..&lt;/P&gt;&lt;P&gt;APPEND st_condheader TO i_pocondheader.&lt;/P&gt;&lt;P&gt;CLEAR st_condheader.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CONDITIONS INTERFACE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;st_condheaderx-itm_number = st_temp-kposn.&lt;/P&gt;&lt;P&gt;st_condheaderx-condition_no = st_temp-knumv.&lt;/P&gt;&lt;P&gt;st_condheaderx-cond_st_no = st_temp-stunr.&lt;/P&gt;&lt;P&gt;st_condheaderx-itm_numberx = 'X'.&lt;/P&gt;&lt;P&gt;st_condheaderx-condition_nox = 'X'.&lt;/P&gt;&lt;P&gt;st_condheaderx-cond_st_nox = 'X'.&lt;/P&gt;&lt;P&gt;st_condheaderx-cond_count = 'X'.&lt;/P&gt;&lt;P&gt;st_condheaderx-cond_type = 'X'.&lt;/P&gt;&lt;P&gt;st_condheaderx-cond_value = 'X'.&lt;/P&gt;&lt;P&gt;st_condheaderx-change_id = 'X'.&lt;/P&gt;&lt;P&gt;APPEND st_condheaderx TO i_pocondheaderx.&lt;/P&gt;&lt;P&gt;CLEAR st_condheaderx.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " populate_condheader&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form pre_validation&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt; p1 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;-- p2 text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM pre_validation .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: lv_ekgrp LIKE t024-ekgrp,&lt;/P&gt;&lt;P&gt;lv_matnr LIKE mara-matnr,&lt;/P&gt;&lt;P&gt;lv_flg TYPE c,&lt;/P&gt;&lt;P&gt;lv_cnt_ekgrp TYPE i,&lt;/P&gt;&lt;P&gt;lv_cnt_matnr TYPE i,&lt;/P&gt;&lt;P&gt;lst_record TYPE t_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open the app server file to write...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;OPEN DATASET p_errfl FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Unable to open output file during prevalidation'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT it_record INTO lst_record.&lt;/P&gt;&lt;P&gt;*Purchasing group&lt;/P&gt;&lt;P&gt;SELECT SINGLE ekgrp FROM t024 INTO lv_ekgrp WHERE ekgrp = lst_record-ekgrp.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;CONCATENATE lst_record-message 'Purchasing group incorrect' INTO lst_record-message SEPARATED BY '-'.&lt;/P&gt;&lt;P&gt;lv_flg = 'X'.&lt;/P&gt;&lt;P&gt;lv_cnt_ekgrp = lv_cnt_ekgrp + 1.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE matnr FROM zmc_matlxref INTO lv_matnr&lt;/P&gt;&lt;P&gt;WHERE legmatnr = lst_record-ematn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;CONCATENATE lst_record-message 'Material is incorrect' INTO lst_record-message SEPARATED BY '-'.&lt;/P&gt;&lt;P&gt;lv_flg = 'X'.&lt;/P&gt;&lt;P&gt;lv_cnt_matnr = lv_cnt_matnr + 1.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF lv_flg = 'X'.&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING lst_record TO lt_record.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;append lst_record to i_error.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TRANSFER lt_record TO p_errfl.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;CLEAR lv_flg.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;CLOSE DATASET p_errfl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF ( NOT lv_cnt_ekgrp IS INITIAL OR NOT lv_cnt_matnr IS INITIAL ).&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_HEADING .&lt;/P&gt;&lt;P&gt;WRITE:/ 'Run Statistics:'.&lt;/P&gt;&lt;P&gt;FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;SKIP 2.&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_NORMAL.&lt;/P&gt;&lt;P&gt;WRITE:/ 'Number of Purchase Orgs Errored:', lv_cnt_ekgrp.&lt;/P&gt;&lt;P&gt;WRITE:/ 'Number of Materials Errored', lv_cnt_matnr.&lt;/P&gt;&lt;P&gt;WRITE:/ 'Error file downloaded to:', p_errfl.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;ULINE.&lt;/P&gt;&lt;P&gt;WRITE:/ 'No errors found in the input file...good to go!!'.&lt;/P&gt;&lt;P&gt;ULINE.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;FORMAT COLOR OFF.&lt;/P&gt;&lt;P&gt;ENDFORM. " pre_validation&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form load_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt; p1 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;-- p2 text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM load_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal table to header upload data into&lt;/P&gt;&lt;P&gt;DATA: st_temp TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF it_datatab OCCURS 0,&lt;/P&gt;&lt;P&gt;row(500) TYPE c,&lt;/P&gt;&lt;P&gt;END OF it_datatab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF p_pre EQ 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Alternative method, where by you split fields at each TAB after you&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;have returned the data. No point unless you dont have access to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GUI_UPLOAD but just included for information&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;filename = gd_file&lt;/P&gt;&lt;P&gt;filetype = 'ASC'&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;data_tab = it_datatab "ITBL_IN_RECORD[]&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;file_open_error = 1&lt;/P&gt;&lt;P&gt;OTHERS = 2.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;If upload is successful...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;LOOP AT it_datatab.&lt;/P&gt;&lt;P&gt;CLEAR: wa_string, wa_uploadtxt.&lt;/P&gt;&lt;P&gt;wa_string = it_datatab.&lt;/P&gt;&lt;P&gt;PERFORM append_line.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;OPEN DATASET p_infile FOR INPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;DO.&lt;/P&gt;&lt;P&gt;READ DATASET p_infile INTO wa_string.&lt;/P&gt;&lt;P&gt;IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;PERFORM append_line.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDDO.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " load_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form append_line&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt; p1 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;-- p2 text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM append_line .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Split the input string at TAB and push into variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SPLIT wa_string AT con_tab INTO wa_uploadtxt-legpo&lt;/P&gt;&lt;P&gt;wa_uploadtxt-bukrs&lt;/P&gt;&lt;P&gt;wa_uploadtxt-bsart&lt;/P&gt;&lt;P&gt;wa_uploadtxt-cu_dat&lt;/P&gt;&lt;P&gt;wa_uploadtxt-lifnr&lt;/P&gt;&lt;P&gt;wa_uploadtxt-vkorg&lt;/P&gt;&lt;P&gt;wa_uploadtxt-ekgrp&lt;/P&gt;&lt;P&gt;wa_uploadtxt-waers&lt;/P&gt;&lt;P&gt;wa_uploadtxt-doc_date&lt;/P&gt;&lt;P&gt;wa_uploadtxt-s_werks&lt;/P&gt;&lt;P&gt;wa_uploadtxt-legpo_item&lt;/P&gt;&lt;P&gt;wa_uploadtxt-ematn&lt;/P&gt;&lt;P&gt;wa_uploadtxt-werks&lt;/P&gt;&lt;P&gt;wa_uploadtxt-menge&lt;/P&gt;&lt;P&gt;wa_uploadtxt-meins&lt;/P&gt;&lt;P&gt;wa_uploadtxt-netpr&lt;/P&gt;&lt;P&gt;wa_uploadtxt-peinh&lt;/P&gt;&lt;P&gt;wa_uploadtxt-epstp&lt;/P&gt;&lt;P&gt;wa_uploadtxt-knttp&lt;/P&gt;&lt;P&gt;wa_uploadtxt-eindt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Move to workarea&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;MOVE-CORRESPONDING wa_uploadtxt TO wa_record.&lt;/P&gt;&lt;P&gt;APPEND wa_record TO it_record.&lt;/P&gt;&lt;P&gt;CLEAR wa_record.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " append_line&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Nagaraj&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Dec 2007 11:21:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3063793#M725924</guid>
      <dc:creator>former_member404244</dc:creator>
      <dc:date>2007-12-03T11:21:23Z</dc:date>
    </item>
    <item>
      <title>Re: Bapi_po_create1</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3063794#M725925</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jasmine,&lt;/P&gt;&lt;P&gt;I have used the FM Bapi_create_po1 for creating PO.Itz working proper.Below is the whole code for it.Check it n u will be able to understand.&lt;/P&gt;&lt;P&gt;Reward if useful.&lt;/P&gt;&lt;P&gt;Thx.&lt;/P&gt;&lt;P&gt;method do_handle_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: event_id type string.&lt;/P&gt;&lt;P&gt;  data zpr_num1 type banfn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data zreturn type zsn_bapiret2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data ret type bapireturn-type.&lt;/P&gt;&lt;P&gt;  data message type bapi_msg.&lt;/P&gt;&lt;P&gt;  data returnval type bapimepoheader-po_number.&lt;/P&gt;&lt;P&gt;  data: r_view type ref to if_bsp_page.&lt;/P&gt;&lt;P&gt;  data: crt_view type ref to if_bsp_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data po_num_head type bapimepoheader.&lt;/P&gt;&lt;P&gt;  data zpoheader_it type zbapimepoheader_tab.&lt;/P&gt;&lt;P&gt;  data zpoheaderx_it type zbapimepoheaderx_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to add a new item to list&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if htmlb_event is bound and htmlb_event-&amp;gt;server_event = 'onadd'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpr_num = request-&amp;gt;get_form_field( 'PRNo' ) .&lt;/P&gt;&lt;P&gt;    data: zpr_num3 type banfn.&lt;/P&gt;&lt;P&gt;    call function 'ZCONVERT_ALPHA'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        input  = zpr_num&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        output = zpr_num3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpr_num = zpr_num3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data: temp_tab1  type zrmheader.&lt;/P&gt;&lt;P&gt;    delete from zrmheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpoheader-vendor = request-&amp;gt;get_form_field( 'Vendor' ) .&lt;/P&gt;&lt;P&gt;    zpoheader-purch_org = request-&amp;gt;get_form_field( 'POrg' ).&lt;/P&gt;&lt;P&gt;    zpoheader-pur_group = request-&amp;gt;get_form_field( 'PGrp' ).&lt;/P&gt;&lt;P&gt;    zpoheader-doc_type = 'NB'.&lt;/P&gt;&lt;P&gt;    zpoheader-item_intvl = request-&amp;gt;get_form_field( 'Item' ).&lt;/P&gt;&lt;P&gt;    zpoheader-comp_code = request-&amp;gt;get_form_field( 'CCode' ).&lt;/P&gt;&lt;P&gt;    zpoheader-doc_date = request-&amp;gt;get_form_field( 'DocDate' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    delivdate_new = request-&amp;gt;get_form_field( 'DelivDate' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    temp_tab1-vendor = request-&amp;gt;get_form_field( 'Vendor' ) .&lt;/P&gt;&lt;P&gt;    temp_tab1-purch_org = request-&amp;gt;get_form_field( 'POrg' ).&lt;/P&gt;&lt;P&gt;    temp_tab1-pur_group = request-&amp;gt;get_form_field( 'PGrp' ).&lt;/P&gt;&lt;P&gt;    temp_tab1-doc_type = 'NB'.&lt;/P&gt;&lt;P&gt;    temp_tab1-item_intvl = request-&amp;gt;get_form_field( 'Item' ).&lt;/P&gt;&lt;P&gt;    temp_tab1-comp_code = request-&amp;gt;get_form_field( 'CCode' ).&lt;/P&gt;&lt;P&gt;    temp_tab1-doc_date = request-&amp;gt;get_form_field( 'DocDate' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data: temp_tabx1  type zrmheaderx.&lt;/P&gt;&lt;P&gt;    delete from zrmheaderx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    temp_tabx1-vendor = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx1-purch_org = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx1-pur_group = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx1-doc_type = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx1-comp_code = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx1-doc_date = 'x'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    insert into zrmheader values temp_tab1.&lt;/P&gt;&lt;P&gt;    insert into zrmheaderx values temp_tabx1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data: temp_tab  type zrmitem .&lt;/P&gt;&lt;P&gt;    data: temp_tabx type zrmitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zitem1-acctasscat = request-&amp;gt;get_form_field( 'A' ).&lt;/P&gt;&lt;P&gt;    temp_tab-acctasscat = request-&amp;gt;get_form_field( 'A' ).&lt;/P&gt;&lt;P&gt;    zitem1-item_cat = request-&amp;gt;get_form_field( 'I' ).&lt;/P&gt;&lt;P&gt;    temp_tab-item_cat = request-&amp;gt;get_form_field( 'I' ).&lt;/P&gt;&lt;P&gt;    zitem1-material = request-&amp;gt;get_form_field( 'Material' ).&lt;/P&gt;&lt;P&gt;    temp_tab-material = request-&amp;gt;get_form_field( 'Material' ).&lt;/P&gt;&lt;P&gt;    zitem1-quantity = request-&amp;gt;get_form_field( 'POQuantity' ).&lt;/P&gt;&lt;P&gt;    temp_tab-quantity = request-&amp;gt;get_form_field( 'POQuantity' ).&lt;/P&gt;&lt;P&gt;    zitem1-po_unit = request-&amp;gt;get_form_field( 'OUN' ).&lt;/P&gt;&lt;P&gt;    temp_tab-po_unit = request-&amp;gt;get_form_field( 'OUN' ).&lt;/P&gt;&lt;P&gt;    zitem1-net_price = request-&amp;gt;get_form_field( 'NetPrice' ).&lt;/P&gt;&lt;P&gt;    temp_tab-net_price = request-&amp;gt;get_form_field( 'NetPrice' ).&lt;/P&gt;&lt;P&gt;    zitem1-plant = request-&amp;gt;get_form_field( 'Plnt' ).&lt;/P&gt;&lt;P&gt;    temp_tab-plant = request-&amp;gt;get_form_field( 'Plnt' ).&lt;/P&gt;&lt;P&gt;    zitem1-po_item = request-&amp;gt;get_form_field( 'Item' ).&lt;/P&gt;&lt;P&gt;    temp_tab-po_item = request-&amp;gt;get_form_field( 'Item' ).&lt;/P&gt;&lt;P&gt;    zitem1-stge_loc = request-&amp;gt;get_form_field( 'Sloc' ).&lt;/P&gt;&lt;P&gt;    temp_tab-stge_loc = request-&amp;gt;get_form_field( 'Sloc' ).&lt;/P&gt;&lt;P&gt;    zitem1-customer = request-&amp;gt;get_form_field( 'Customer' ).&lt;/P&gt;&lt;P&gt;    temp_tab-customer = request-&amp;gt;get_form_field( 'Customer' ).&lt;/P&gt;&lt;P&gt;    zitem1-incoterms2 = 'XDFGRT'.&lt;/P&gt;&lt;P&gt;    temp_tab-incoterms2 = 'XDFGRT'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    append  zitem1 to zitem.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    insert into zrmitem values temp_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zitemx1-acctasscat = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-item_cat = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-material = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-quantity = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-net_price = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-plant = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-po_item = 00010.&lt;/P&gt;&lt;P&gt;    zitemx1-po_itemx = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-stge_loc = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-customer = 'x'.&lt;/P&gt;&lt;P&gt;    zitemx1-incoterms2 = 'x'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   append  zitemx1 to zitemx.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    temp_tabx-acctasscat = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-item_cat = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-material = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-quantity = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-net_price = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-plant = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-po_item = 00010.&lt;/P&gt;&lt;P&gt;    temp_tabx-po_itemx = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-stge_loc = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-customer = 'x'.&lt;/P&gt;&lt;P&gt;    temp_tabx-incoterms2 = 'x'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    insert into zrmitemx values temp_tabx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select * from zrmitem into corresponding fields of table zitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpr_num = request-&amp;gt;get_form_field( 'PRNo' ) .&lt;/P&gt;&lt;P&gt;    call function 'ZCONVERT_ALPHA'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        input  = zpr_num&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        output = zpr_num1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        LEN           =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call function 'BAPI_REQUISITION_GETDETAIL'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        number                               = zpr_num1&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ACCOUNT_ASSIGNMENT                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ITEM_TEXTS                           = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SERVICES                             = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SERVICE_TEXTS                        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      tables&lt;/P&gt;&lt;P&gt;        requisition_items                    = item_tab&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_ACCOUNT_ASSIGNMENT       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_TEXT                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_LIMITS                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_CONTRACT_LIMITS          =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SERVICES                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SERVICES_TEXTS           =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SRV_ACCASS_VALUES        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RETURN                               =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;    call function 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        wait = 'X'.&lt;/P&gt;&lt;P&gt;*IMPORTING&lt;/P&gt;&lt;P&gt;*RETURN = i_return&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to save the item details and generate a PO number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  elseif htmlb_event is bound and htmlb_event-&amp;gt;server_event = 'onsave'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpr_num = request-&amp;gt;get_form_field( 'PRNo' ) .&lt;/P&gt;&lt;P&gt;    data: zpr_num4 type banfn.&lt;/P&gt;&lt;P&gt;    call function 'ZCONVERT_ALPHA'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        input  = zpr_num&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        output = zpr_num4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpr_num = zpr_num4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data: temp_t2 type zrmsched,&lt;/P&gt;&lt;P&gt;          count2 type n,&lt;/P&gt;&lt;P&gt;          a2 type n value 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data:temp_t type zrmitem,&lt;/P&gt;&lt;P&gt;         count type n,&lt;/P&gt;&lt;P&gt;         a type n value 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select * from zrmitem into corresponding fields of table data_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    count = sy-dbcnt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    do count times.&lt;/P&gt;&lt;P&gt;      read table data_tab into temp_t index a.&lt;/P&gt;&lt;P&gt;      a = a + 1.&lt;/P&gt;&lt;P&gt;      zitem1-po_item = temp_t-po_item.&lt;/P&gt;&lt;P&gt;      zitem1-acctasscat = temp_t-acctasscat.&lt;/P&gt;&lt;P&gt;      zitem1-item_cat = temp_t-item_cat.&lt;/P&gt;&lt;P&gt;      zitem1-material = temp_t-material.&lt;/P&gt;&lt;P&gt;      zitem1-quantity = temp_t-quantity.&lt;/P&gt;&lt;P&gt;      zitem1-po_unit = temp_t-po_unit.&lt;/P&gt;&lt;P&gt;      zitem1-net_price = temp_t-net_price.&lt;/P&gt;&lt;P&gt;      zitem1-plant = temp_t-plant.&lt;/P&gt;&lt;P&gt;      zitem1-stge_loc = temp_t-stge_loc.&lt;/P&gt;&lt;P&gt;      zitem1-customer = temp_t-customer.&lt;/P&gt;&lt;P&gt;      zitem1-incoterms2 = temp_t-incoterms2.&lt;/P&gt;&lt;P&gt;      append zitem1 to zitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      zitemx1-acctasscat = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-item_cat = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-material = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-quantity = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-net_price = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-plant = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-po_item = temp_t-po_item.&lt;/P&gt;&lt;P&gt;      zitemx1-po_itemx = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-stge_loc = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-customer = 'x'.&lt;/P&gt;&lt;P&gt;      zitemx1-incoterms2 = 'x'.&lt;/P&gt;&lt;P&gt;      append  zitemx1 to zitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    enddo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;count2 = sy-dbcnt.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpoheader-vendor = request-&amp;gt;get_form_field( 'Vendor' ) .&lt;/P&gt;&lt;P&gt;    zpoheader-purch_org = request-&amp;gt;get_form_field( 'POrg' ).&lt;/P&gt;&lt;P&gt;    zpoheader-pur_group = request-&amp;gt;get_form_field( 'PGrp' ).&lt;/P&gt;&lt;P&gt;    zpoheader-doc_type = 'NB'.&lt;/P&gt;&lt;P&gt;    zpoheader-item_intvl = request-&amp;gt;get_form_field( 'Item' ).&lt;/P&gt;&lt;P&gt;    zpoheader-comp_code = request-&amp;gt;get_form_field( 'CCode' ).&lt;/P&gt;&lt;P&gt;    zpoheader-doc_date = request-&amp;gt;get_form_field( 'DocDate' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    delivdate_new = request-&amp;gt;get_form_field( 'DelivDate' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpoheaderx-vendor = 'x'.&lt;/P&gt;&lt;P&gt;    zpoheaderx-purch_org = 'x'.&lt;/P&gt;&lt;P&gt;    zpoheaderx-pur_group = 'x'.&lt;/P&gt;&lt;P&gt;    zpoheaderx-doc_type = 'x'.&lt;/P&gt;&lt;P&gt;    zpoheaderx-comp_code = 'x'.&lt;/P&gt;&lt;P&gt;    zpoheaderx-doc_date = 'x'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data: zpovendor type elifn.&lt;/P&gt;&lt;P&gt;    call function 'ZCONVERT_ALPHA'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        input  = zpoheader-vendor&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        output = zpovendor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpoheader-vendor = zpovendor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call function 'BAPI_PO_CREATE1'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        poheader                     = zpoheader&lt;/P&gt;&lt;P&gt;        poheaderx                    = zpoheaderx&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POADDRVENDOR                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TESTRUN                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  MEMORY_UNCOMPLETE            =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  MEMORY_COMPLETE              =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POEXPIMPHEADER               =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POEXPIMPHEADERX              =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  VERSIONS                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_MESSAGING                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_MESSAGE_REQ               =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_AUTHORITY                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_PRICE_FROM_PO             =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     importing&lt;/P&gt;&lt;P&gt;       exppurchaseorder             = po_num&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         EXPHEADER                    = PO_NUM_HEAD&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  EXPPOEXPIMPHEADER            =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     tables&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        RETURN                       = zreturn&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        poitem                       = zitem&lt;/P&gt;&lt;P&gt;        poitemx                      = zitemx&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POADDRDELIVERY               =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; POSCHEDULE                   = zposched&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; POSCHEDULEX                  = zposchedx&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POACCOUNT                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POACCOUNTPROFITSEGMENT       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POACCOUNTX                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POCONDHEADER                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POCONDHEADERX                =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POCOND                       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POCONDX                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POLIMITS                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POCONTRACTLIMITS             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSERVICES                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSRVACCESSVALUES            =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSERVICESTEXT               =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  EXTENSIONIN                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  EXTENSIONOUT                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POEXPIMPITEM                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POEXPIMPITEMX                =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POTEXTHEADER                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POTEXTITEM                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ALLVERSIONS                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POPARTNER                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POCOMPONENTS                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POCOMPONENTSX                =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSHIPPING                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSHIPPINGX                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSHIPPINGEXP                =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call function 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;         wait = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     RETURN =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    delete from zrmitem.&lt;/P&gt;&lt;P&gt;    delete from zrmitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select * from zrmitem into corresponding fields of table zitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if po_num = ' '.&lt;/P&gt;&lt;P&gt;      po_num = 'Try Again'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to store po_num and corresponding pr number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    data: temp_tt type zpo_pr_nums.&lt;/P&gt;&lt;P&gt;    temp_tt-pr_num = zpr_num.&lt;/P&gt;&lt;P&gt;    temp_tt-po_num = po_num.&lt;/P&gt;&lt;P&gt;    insert into zpo_pr_nums values temp_tt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to store po num and corresponding delivery date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    data: wa11 type zpo_delivdate.&lt;/P&gt;&lt;P&gt;    wa11-po_number = po_num.&lt;/P&gt;&lt;P&gt;    wa11-deliv_date = delivdate_new.&lt;/P&gt;&lt;P&gt;    insert into zpo_delivdate values wa11.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpoheader-vendor = ' '.&lt;/P&gt;&lt;P&gt;    zpoheader-purch_org = ' '.&lt;/P&gt;&lt;P&gt;    zpoheader-pur_group = ' '.&lt;/P&gt;&lt;P&gt;    zpoheader-doc_type = ' '.&lt;/P&gt;&lt;P&gt;    zpoheader-item_intvl = ' '.&lt;/P&gt;&lt;P&gt;    zpoheader-comp_code = ' '.&lt;/P&gt;&lt;P&gt;    zpoheader-doc_date = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    delivdate_new = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to enter a PR Number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  elseif htmlb_event is bound and htmlb_event-&amp;gt;server_event = 'onenter'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    delete from zrmitem.&lt;/P&gt;&lt;P&gt;    delete from zrmitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select * from zrmitem into corresponding fields of table zitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpr_num = request-&amp;gt;get_form_field( 'PRNo' ) .&lt;/P&gt;&lt;P&gt;    call function 'ZCONVERT_ALPHA'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        input  = zpr_num&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        output = zpr_num1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        LEN           =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call function 'BAPI_REQUISITION_GETDETAIL'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        number                               = zpr_num1&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ACCOUNT_ASSIGNMENT                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ITEM_TEXTS                           = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SERVICES                             = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SERVICE_TEXTS                        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      tables&lt;/P&gt;&lt;P&gt;        requisition_items                    = item_tab&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_ACCOUNT_ASSIGNMENT       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_TEXT                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_LIMITS                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_CONTRACT_LIMITS          =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SERVICES                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SERVICES_TEXTS           =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SRV_ACCASS_VALUES        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RETURN                               =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;    call function 'BAPI_TRANSACTION_COMMIT'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        wait = 'X'.&lt;/P&gt;&lt;P&gt;*IMPORTING&lt;/P&gt;&lt;P&gt;*RETURN = i_return&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to select an item from drop down item menu&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  elseif htmlb_event is bound and htmlb_event-&amp;gt;server_event = 'select'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data: zselection2 type bnfpo.&lt;/P&gt;&lt;P&gt;    data: data type ref to cl_htmlb_dropdownlistbox.&lt;/P&gt;&lt;P&gt;    zpr_num = request-&amp;gt;get_form_field( 'PRNo' ) .&lt;/P&gt;&lt;P&gt;    data: zpr_num2 type banfn.&lt;/P&gt;&lt;P&gt;    call function 'ZCONVERT_ALPHA'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        input  = zpr_num&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        output = zpr_num2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data ?= cl_htmlb_manager=&amp;gt;get_data(&lt;/P&gt;&lt;P&gt;                                        request = runtime-&amp;gt;server-&amp;gt;request&lt;/P&gt;&lt;P&gt;                                        name    = 'dropdownlistbox'&lt;/P&gt;&lt;P&gt;                                        id      = 'ItemSel'&lt;/P&gt;&lt;P&gt;                                      ).&lt;/P&gt;&lt;P&gt;    if data is not initial.&lt;/P&gt;&lt;P&gt;      zselection2 = data-&amp;gt;selection.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    zpoheader-vendor = request-&amp;gt;get_form_field( 'Vendor' ) .&lt;/P&gt;&lt;P&gt;    zpoheader-purch_org = request-&amp;gt;get_form_field( 'POrg' ).&lt;/P&gt;&lt;P&gt;    zpoheader-pur_group = request-&amp;gt;get_form_field( 'PGrp' ).&lt;/P&gt;&lt;P&gt;    zpoheader-doc_type = 'NB'.&lt;/P&gt;&lt;P&gt;    zpoheader-item_intvl = request-&amp;gt;get_form_field( 'Item' ).&lt;/P&gt;&lt;P&gt;    zpoheader-comp_code = request-&amp;gt;get_form_field( 'CCode' ).&lt;/P&gt;&lt;P&gt;    zpoheader-doc_date = request-&amp;gt;get_form_field( 'DocDate' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call function 'BAPI_REQUISITION_GETDETAIL'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        number                               = zpr_num2&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ACCOUNT_ASSIGNMENT                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ITEM_TEXTS                           = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SERVICES                             = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SERVICE_TEXTS                        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      tables&lt;/P&gt;&lt;P&gt;        requisition_items                    = item_tab&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_ACCOUNT_ASSIGNMENT       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_TEXT                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_LIMITS                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_CONTRACT_LIMITS          =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SERVICES                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SERVICES_TEXTS           =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REQUISITION_SRV_ACCASS_VALUES        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RETURN                               =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              .&lt;/P&gt;&lt;P&gt;    data wa1 type bapieban.&lt;/P&gt;&lt;P&gt;    loop at item_tab into wa1.&lt;/P&gt;&lt;P&gt;      if wa1-preq_item = zselection2.&lt;/P&gt;&lt;P&gt;        item_new = wa1-preq_item.&lt;/P&gt;&lt;P&gt;        material_new = wa1-material.&lt;/P&gt;&lt;P&gt;        plant_new = wa1-plant.&lt;/P&gt;&lt;P&gt;        quantity_new = wa1-quantity.&lt;/P&gt;&lt;P&gt;        unit_new = wa1-unit.&lt;/P&gt;&lt;P&gt;        delivdate_new = wa1-deliv_date.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endmethod.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Dec 2007 11:31:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1/m-p/3063794#M725925</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-03T11:31:45Z</dc:date>
    </item>
  </channel>
</rss>

