<?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 query in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-query/m-p/1393529#M190975</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Salil,&lt;/P&gt;&lt;P&gt;This is a sample code of BAPI.Try to map it to your requirement.This is not related to vendor.This is related to sales order.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ypat_salesorder_create LINE-SIZE 256.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This program will create a ZOC Sales Order with Reference to Contract&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;20000720 / 10. This will be done via BAPI. There are 2 BAPi calls,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BAPI_SALESORDER_CREATEFROMDAT2 and BAPI_SALESORDER_CHANGE. We need to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform 2 BAPI calls as the BAPI to create the Sales Order does not&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;bring across the Pricing Conditions properly. To get around this we&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create the Order with reference to the Contract, then we get the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;related Pricing Conditions from the COntract and then update the newly&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;created Order.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&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;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;CONSTANTS: c_contract  LIKE vbak-vbeln VALUE '0020000720',&lt;/P&gt;&lt;P&gt;           c_item      LIKE vbap-posnr VALUE '000010'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structures&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structure to hold BAPI Header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: st_bapisdhd1   LIKE bapisdhd1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order Create BAPI Return Messages&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_return     TYPE STANDARD TABLE OF bapiret2&lt;/P&gt;&lt;P&gt;                     WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order BAPI Line Item&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapisditm  TYPE STANDARD TABLE OF bapisditm&lt;/P&gt;&lt;P&gt;                     WITH HEADER LINE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order BAPI Line Item&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapisditmx  TYPE STANDARD TABLE OF bapisditmx&lt;/P&gt;&lt;P&gt;                     WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order BAPI Pricing Conditions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapicond   TYPE STANDARD TABLE OF bapicond&lt;/P&gt;&lt;P&gt;                     WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order BAPI Partner Functions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapiparnr  TYPE STANDARD TABLE OF bapiparnr&lt;/P&gt;&lt;P&gt;                     WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order BAPI Schedule Lines&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapischdl  TYPE STANDARD TABLE OF bapischdl&lt;/P&gt;&lt;P&gt;                     WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order BAPI Schedule Lines&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapischdlx TYPE STANDARD TABLE OF bapischdlx&lt;/P&gt;&lt;P&gt;                     WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order BAPI Pricing Conditions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapicondx    TYPE STANDARD TABLE OF bapicondx&lt;/P&gt;&lt;P&gt;                       WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Customer Enhancement for VBAK, VBAP, VBEP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapiparex    TYPE STANDARD TABLE OF bapiparex&lt;/P&gt;&lt;P&gt;                       WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Table to hold BAPI Detail Conditions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapisdcond   TYPE STANDARD TABLE OF bapisdcond&lt;/P&gt;&lt;P&gt;                       WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Table to hold Return Messages from Sales Order Change BAPI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA: tbl_return_chg  TYPE STANDARD TABLE OF bapiret2&lt;/P&gt;&lt;P&gt;                      WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;DATA: g_vbeln_created   LIKE vbak-vbeln,&lt;/P&gt;&lt;P&gt;      g_valid_contract  TYPE c,&lt;/P&gt;&lt;P&gt;      g_cont_price_date TYPE d.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start of Selection&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  PERFORM validate_contract.&lt;/P&gt;&lt;P&gt;  PERFORM create_sales_ord.&lt;/P&gt;&lt;P&gt;  PERFORM update_sales_ord.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&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;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  PERFORM write_output_report.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Subroutines&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&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  create_sales_ord&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;      Create the Sales Order&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 create_sales_ord .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  PERFORM populate_bapi_tables.&lt;/P&gt;&lt;P&gt;  PERFORM call_create_sales_ord_bapi.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_sales_ord&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_bapi_tables&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;      Fill up the BAPI Tables&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_bapi_tables .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  PERFORM populate_bapi_header.&lt;/P&gt;&lt;P&gt;  PERFORM build_bapi_partners.&lt;/P&gt;&lt;P&gt;  PERFORM build_bapi_items.&lt;/P&gt;&lt;P&gt;  PERFORM build_bapi_sched_lines.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " populate_bapi_tables&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_bapi_header&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;      Build BAPI Header Details&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_bapi_header .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR st_bapisdhd1.&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-doc_type     = 'ZOC'.         "Order type&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-sales_org    = '026'.         "Sales Org&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-distr_chan   = '00'.          "Dist Channel&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-division     = '00'.          "Division&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-purch_no_c   = 'Cust Po No'.  "Cust PO No&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-name         = 'Orderer'.     "Name of Orderer&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-ord_reason   = ''.            "Order Reason&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-sales_off    = '3001'.        "Sales Office&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-sales_grp    = '301'.         "Market Area&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF g_valid_contract = 'X'.&lt;/P&gt;&lt;P&gt;    st_bapisdhd1-price_date = g_cont_price_date.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " populate_bapi_header&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  build_bapi_partners&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;      Build BAPI Partner Functions&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 build_bapi_partners .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR tbl_bapiparnr.&lt;/P&gt;&lt;P&gt;  tbl_bapiparnr-partn_role   = 'AG'.&lt;/P&gt;&lt;P&gt;  tbl_bapiparnr-partn_numb   = '0000100750'.&lt;/P&gt;&lt;P&gt;  APPEND tbl_bapiparnr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR tbl_bapiparnr.&lt;/P&gt;&lt;P&gt;  tbl_bapiparnr-partn_role   = 'WE'.&lt;/P&gt;&lt;P&gt;  tbl_bapiparnr-partn_numb   = '0000504472'.&lt;/P&gt;&lt;P&gt;  APPEND tbl_bapiparnr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_bapi_partners&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  build_bapi_items&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;      Build The BAPI 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 build_bapi_items .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA: l_matnr LIKE mara-matnr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      input  = '10000072'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      output = l_matnr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR tbl_bapisditm.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-itm_number  = c_item.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF g_valid_contract = 'X'.&lt;/P&gt;&lt;P&gt;    tbl_bapisditm-ref_doc     = c_contract.&lt;/P&gt;&lt;P&gt;    tbl_bapisditm-ref_doc_it  = c_item.&lt;/P&gt;&lt;P&gt;    tbl_bapisditm-ref_doc_ca  = 'G'.       "Contract&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  tbl_bapisditm-material    = l_matnr.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-plant       = '3012'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-target_qty  = '5.000'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  tbl_bapisditm-target_qu   = 'M3'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-item_categ  = 'ZZOC'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-sales_dist  = '301'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-dlv_prio    = '02'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  tbl_bapisditm-prc_group5  = '080'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  tbl_bapisditm-cust_mat35  = 'kdmat'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-route       = 'TESYS'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-usage_ind   = 'CIV'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND tbl_bapisditm.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR tbl_bapisditmx.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-itm_number = c_item.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-ref_doc    = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-ref_doc_it = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-ref_doc_ca = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-material   = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-updateflag = 'I'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-plant      = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-target_qty = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-target_qu  = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-item_categ = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-sales_dist = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-dlv_prio   = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-prc_group5 = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-cust_mat35 = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-usage_ind  = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-route      = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND tbl_bapisditmx.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_bapi_items&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  build_bapi_sched_lines&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;      Build the BAPI Schedule Lines&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 build_bapi_sched_lines .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR tbl_bapischdl.&lt;/P&gt;&lt;P&gt;  tbl_bapischdl-itm_number  = c_item.&lt;/P&gt;&lt;P&gt;  tbl_bapischdl-req_qty     = '1'.&lt;/P&gt;&lt;P&gt;  tbl_bapischdl-req_date    = sy-datum.&lt;/P&gt;&lt;P&gt;  APPEND tbl_bapischdl.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_bapi_sched_lines&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  build_bapi_conditions&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;      Pull the BAPI Pricing Conditions from the Contract&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 build_bapi_conditions .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT tbl_bapisdcond.&lt;/P&gt;&lt;P&gt;    CLEAR tbl_bapicond.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING tbl_bapisdcond TO tbl_bapicond.&lt;/P&gt;&lt;P&gt;    APPEND tbl_bapicond.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    CLEAR tbl_bapicondx.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-itm_number = tbl_bapicond-itm_number.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-cond_st_no = tbl_bapicond-cond_st_no.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-cond_count = tbl_bapicond-cond_count.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-cond_type  = tbl_bapicond-cond_type.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-updateflag = 'I'.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-cond_value = 'X'.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-currency   = 'X'.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-cond_unit  = 'X'.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-cond_p_unt = 'X'.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-varcond    = tbl_bapicond-varcond.&lt;/P&gt;&lt;P&gt;    APPEND tbl_bapicondx.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_bapi_conditions&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_create_sales_ord_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;      Call the Sales Order Create BAPI&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_create_sales_ord_bapi .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR g_vbeln_created.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      order_header_in    = st_bapisdhd1&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      salesdocument      = g_vbeln_created&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      return             = tbl_return&lt;/P&gt;&lt;P&gt;      order_items_in     = tbl_bapisditm&lt;/P&gt;&lt;P&gt;      order_items_inx    = tbl_bapisditmx&lt;/P&gt;&lt;P&gt;      order_partners     = tbl_bapiparnr&lt;/P&gt;&lt;P&gt;      order_schedules_in = tbl_bapischdl.&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;ENDFORM.                    " call_create_sales_ord_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  update_sales_ord&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;      Update the newly created Sales Order with the Pricing Conditions&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      from the Contract&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 update_sales_ord .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CHECK g_valid_contract EQ 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  PERFORM get_contract_details.&lt;/P&gt;&lt;P&gt;  PERFORM build_bapi_conditions.&lt;/P&gt;&lt;P&gt;  PERFORM call_change_sales_ord_bapi.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " update_sales_ord&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  get_contract_details&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;      Get Contract Details&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 get_contract_details .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Need to manually get the relevant Pricing Conditions as the BAPI&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BAPISDORDER_GETDETAILEDLIST causes problems when we call the BAPI&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BAPI_SALESORDER_CREATEFROMDAT2 and BAPI_SALESORDER_CHANGE (I think&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this is due to the fact that these BAPIs belong to the same Function&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Group and there must be some common structures that are not cleared&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;causing us all sorts of grief when we try and call the next BAPI)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA: tbl_konv TYPE STANDARD TABLE OF konv WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: tbl_komv TYPE STANDARD TABLE OF komv WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: tbl_vbak TYPE STANDARD TABLE OF vbak WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Pricing Condition Master&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: BEGIN OF tbl_t685a OCCURS 0,&lt;/P&gt;&lt;P&gt;          kschl     LIKE t685a-kschl,&lt;/P&gt;&lt;P&gt;          kaend_wrt LIKE t685a-kaend_wrt,&lt;/P&gt;&lt;P&gt;        END OF tbl_t685a.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SELECT *&lt;/P&gt;&lt;P&gt;         INTO TABLE tbl_vbak&lt;/P&gt;&lt;P&gt;         FROM vbak&lt;/P&gt;&lt;P&gt;         WHERE vbeln = c_contract.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  READ TABLE tbl_vbak INDEX 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SELECT *&lt;/P&gt;&lt;P&gt;         INTO TABLE tbl_konv&lt;/P&gt;&lt;P&gt;         FROM konv&lt;/P&gt;&lt;P&gt;         WHERE knumv = tbl_vbak-knumv AND&lt;/P&gt;&lt;P&gt;               kposn = c_item.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;We now need to make sure we only bring across the Condition Types that&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;are EDITABLE. If we bring across non editable conditions (such as&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;'ZPR1') the Change Sales Order BAPI will fail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT kschl kaend_wrt&lt;/P&gt;&lt;P&gt;         INTO TABLE tbl_t685a&lt;/P&gt;&lt;P&gt;         FROM t685a&lt;/P&gt;&lt;P&gt;         FOR ALL ENTRIES IN tbl_konv&lt;/P&gt;&lt;P&gt;         WHERE kappl     EQ 'V'             AND  "Sales&lt;/P&gt;&lt;P&gt;               kschl     EQ tbl_konv-kschl  AND&lt;/P&gt;&lt;P&gt;               kaend_wrt EQ 'X'             AND  "Value is Editable&lt;/P&gt;&lt;P&gt;               kmanu     NE 'D'.                 "Process manually&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Prepare for Binary Search&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SORT tbl_t685a BY kschl.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT tbl_konv.&lt;/P&gt;&lt;P&gt;    READ TABLE tbl_t685a WITH KEY kschl = tbl_konv-kschl BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING tbl_konv TO tbl_komv.&lt;/P&gt;&lt;P&gt;      APPEND tbl_komv.&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;  CHECK NOT tbl_komv[] IS INITIAL.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Map KOMV into the more BAPI friendly BAPISDCOND structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'MAP_INT_TO_EXT_STRUCTURE'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      fxvbak        = tbl_vbak&lt;/P&gt;&lt;P&gt;      fxkomv        = tbl_komv&lt;/P&gt;&lt;P&gt;      fxbapikomv    = tbl_bapisdcond&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      entry_missing = 1&lt;/P&gt;&lt;P&gt;      OTHERS        = 2.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_contract_details&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_change_sales_ord_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;      Call the Change Sales Order BAPI&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_change_sales_ord_bapi .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA: st_head_chg      LIKE bapisdh1x,&lt;/P&gt;&lt;P&gt;        st_logic_switch  TYPE bapisdls.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CHECK NOT g_vbeln_created IS INITIAL.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CHECK g_valid_contract EQ 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  st_head_chg-updateflag     = 'U'.&lt;/P&gt;&lt;P&gt;  st_logic_switch-cond_handl = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_SALESORDER_CHANGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      salesdocument    = g_vbeln_created&lt;/P&gt;&lt;P&gt;      order_header_inx = st_head_chg&lt;/P&gt;&lt;P&gt;      logic_switch     = st_logic_switch&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      return           = tbl_return_chg&lt;/P&gt;&lt;P&gt;      conditions_in    = tbl_bapicond&lt;/P&gt;&lt;P&gt;      conditions_inx   = tbl_bapicondx.&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;ENDFORM.                    " call_change_sales_ord_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  write_output_report&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;      Produce Output Report&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_output_report .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF NOT g_vbeln_created IS INITIAL.&lt;/P&gt;&lt;P&gt;    WRITE:/ 'Success! Sales Order', g_vbeln_created, 'was created!'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    WRITE:/ 'Failure! Sales Order was not created!'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SKIP.&lt;/P&gt;&lt;P&gt;  WRITE:/ 'Sales Order Create Log'.&lt;/P&gt;&lt;P&gt;  LOOP AT tbl_return.&lt;/P&gt;&lt;P&gt;    WRITE:/ tbl_return-type, tbl_return-id, tbl_return-number,&lt;/P&gt;&lt;P&gt;            tbl_return-message.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SKIP.&lt;/P&gt;&lt;P&gt;  WRITE:/ 'Sales Order Change Log'.&lt;/P&gt;&lt;P&gt;  LOOP AT tbl_return_chg.&lt;/P&gt;&lt;P&gt;    WRITE:/ tbl_return_chg-type, tbl_return_chg-id,&lt;/P&gt;&lt;P&gt;            tbl_return_chg-number, tbl_return_chg-message.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " write_output_report&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  validate_contract&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;      Make sure that the Contract is Valid&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 validate_contract .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA: l_gueen  LIKE vbak-gueen,&lt;/P&gt;&lt;P&gt;        l_prsdt  LIKE vbkd-prsdt.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SELECT SINGLE  vbak&lt;SUB&gt;gueen vbkd&lt;/SUB&gt;prsdt&lt;/P&gt;&lt;P&gt;         INTO (l_gueen, l_prsdt)&lt;/P&gt;&lt;P&gt;         FROM vbak&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;         INNER JOIN vbkd&lt;/P&gt;&lt;P&gt;         ON vbak&lt;SUB&gt;vbeln = vbkd&lt;/SUB&gt;vbeln&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;         WHERE vbak~vbeln = c_contract AND&lt;/P&gt;&lt;P&gt;               vbkd~posnr = '000000'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF sy-datum LE l_gueen.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Contract is valid! Set Order Price Date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    g_valid_contract  = 'X'.&lt;/P&gt;&lt;P&gt;    g_cont_price_date = l_prsdt.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " validate_contract&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Mukesh Kumar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 13 Jul 2006 08:11:17 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-07-13T08:11:17Z</dc:date>
    <item>
      <title>bapi query</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-query/m-p/1393525#M190971</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;i m totally new in bapi. suppose i found a bapi for my application (vendor). Now i would like to use it so how i can use it through in prog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;codeing will be added advantage.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Jul 2006 08:03:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-query/m-p/1393525#M190971</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-13T08:03:32Z</dc:date>
    </item>
    <item>
      <title>Re: bapi query</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-query/m-p/1393526#M190972</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;U can call the BAPI in the ABAP editor.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Vasanth&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Jul 2006 08:05:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-query/m-p/1393526#M190972</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-13T08:05:34Z</dc:date>
    </item>
    <item>
      <title>Re: bapi query</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-query/m-p/1393527#M190973</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;refer...&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="1687321"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GO THROUGH THE FOLLOWING LINKS&lt;/P&gt;&lt;P&gt;&lt;A href="http://sap.niraj.tripod.com/id19.html" target="test_blank"&gt;http://sap.niraj.tripod.com/id19.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.planetsap.com/Userexit_List.htm" target="test_blank"&gt;http://www.planetsap.com/Userexit_List.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.allsaplinks.com/material.html" target="test_blank"&gt;http://www.allsaplinks.com/material.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap-function.htm" target="test_blank"&gt;http://www.sap-img.com/abap-function.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/840ad679-0601-0010-cd8e-9989fd650822" target="test_blank"&gt;https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/840ad679-0601-0010-cd8e-9989fd650822&lt;/A&gt;&lt;/P&gt;&lt;P&gt;SLDB-To find out the logical database details&lt;/P&gt;&lt;P&gt;&lt;A href="http://de.geocities.com/rafaelreichle/abapkeywords.html" target="test_blank"&gt;http://de.geocities.com/rafaelreichle/abapkeywords.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;STMS-Transport Management System&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.kabai.com/abaps/q.htm" target="test_blank"&gt;http://www.kabai.com/abaps/q.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.skytechnologies.com.au/default_files/job_scheduling.htm" target="test_blank"&gt;http://www.skytechnologies.com.au/default_files/job_scheduling.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;PZ04-TIME STATEMENT&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapdevelopment.co.uk/fmodules/fmsfield.htm" target="test_blank"&gt;http://www.sapdevelopment.co.uk/fmodules/fmsfield.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_nw04/helpdata/en/59/cd7daa07d711d5b66f006094192fe3/content.htm" target="test_blank"&gt;http://help.sap.com/saphelp_nw04/helpdata/en/59/cd7daa07d711d5b66f006094192fe3/content.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapfriends.com/sapstuff.html" target="test_blank"&gt;http://www.sapfriends.com/sapstuff.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap4.com" target="test_blank"&gt;http://www.sap4.com&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Jul 2006 08:06:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-query/m-p/1393527#M190973</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-13T08:06:18Z</dc:date>
    </item>
    <item>
      <title>Re: bapi query</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-query/m-p/1393528#M190974</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here is a example of how to call the BAPI.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapgenie.com/abap/bapi/example.htm" target="test_blank"&gt;http://www.sapgenie.com/abap/bapi/example.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Ravi&lt;/P&gt;&lt;P&gt;Note : Please mark all the helpful answers&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Jul 2006 08:07:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-query/m-p/1393528#M190974</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-13T08:07:26Z</dc:date>
    </item>
    <item>
      <title>Re: bapi query</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-query/m-p/1393529#M190975</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Salil,&lt;/P&gt;&lt;P&gt;This is a sample code of BAPI.Try to map it to your requirement.This is not related to vendor.This is related to sales order.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ypat_salesorder_create LINE-SIZE 256.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This program will create a ZOC Sales Order with Reference to Contract&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;20000720 / 10. This will be done via BAPI. There are 2 BAPi calls,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BAPI_SALESORDER_CREATEFROMDAT2 and BAPI_SALESORDER_CHANGE. We need to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform 2 BAPI calls as the BAPI to create the Sales Order does not&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;bring across the Pricing Conditions properly. To get around this we&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create the Order with reference to the Contract, then we get the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;related Pricing Conditions from the COntract and then update the newly&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;created Order.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&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;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;CONSTANTS: c_contract  LIKE vbak-vbeln VALUE '0020000720',&lt;/P&gt;&lt;P&gt;           c_item      LIKE vbap-posnr VALUE '000010'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structures&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structure to hold BAPI Header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: st_bapisdhd1   LIKE bapisdhd1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order Create BAPI Return Messages&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_return     TYPE STANDARD TABLE OF bapiret2&lt;/P&gt;&lt;P&gt;                     WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order BAPI Line Item&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapisditm  TYPE STANDARD TABLE OF bapisditm&lt;/P&gt;&lt;P&gt;                     WITH HEADER LINE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order BAPI Line Item&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapisditmx  TYPE STANDARD TABLE OF bapisditmx&lt;/P&gt;&lt;P&gt;                     WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order BAPI Pricing Conditions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapicond   TYPE STANDARD TABLE OF bapicond&lt;/P&gt;&lt;P&gt;                     WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order BAPI Partner Functions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapiparnr  TYPE STANDARD TABLE OF bapiparnr&lt;/P&gt;&lt;P&gt;                     WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order BAPI Schedule Lines&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapischdl  TYPE STANDARD TABLE OF bapischdl&lt;/P&gt;&lt;P&gt;                     WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order BAPI Schedule Lines&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapischdlx TYPE STANDARD TABLE OF bapischdlx&lt;/P&gt;&lt;P&gt;                     WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Order BAPI Pricing Conditions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapicondx    TYPE STANDARD TABLE OF bapicondx&lt;/P&gt;&lt;P&gt;                       WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Customer Enhancement for VBAK, VBAP, VBEP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapiparex    TYPE STANDARD TABLE OF bapiparex&lt;/P&gt;&lt;P&gt;                       WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Table to hold BAPI Detail Conditions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: tbl_bapisdcond   TYPE STANDARD TABLE OF bapisdcond&lt;/P&gt;&lt;P&gt;                       WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Table to hold Return Messages from Sales Order Change BAPI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA: tbl_return_chg  TYPE STANDARD TABLE OF bapiret2&lt;/P&gt;&lt;P&gt;                      WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;DATA: g_vbeln_created   LIKE vbak-vbeln,&lt;/P&gt;&lt;P&gt;      g_valid_contract  TYPE c,&lt;/P&gt;&lt;P&gt;      g_cont_price_date TYPE d.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start of Selection&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  PERFORM validate_contract.&lt;/P&gt;&lt;P&gt;  PERFORM create_sales_ord.&lt;/P&gt;&lt;P&gt;  PERFORM update_sales_ord.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&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;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  PERFORM write_output_report.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Subroutines&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&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  create_sales_ord&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;      Create the Sales Order&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 create_sales_ord .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  PERFORM populate_bapi_tables.&lt;/P&gt;&lt;P&gt;  PERFORM call_create_sales_ord_bapi.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_sales_ord&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_bapi_tables&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;      Fill up the BAPI Tables&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_bapi_tables .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  PERFORM populate_bapi_header.&lt;/P&gt;&lt;P&gt;  PERFORM build_bapi_partners.&lt;/P&gt;&lt;P&gt;  PERFORM build_bapi_items.&lt;/P&gt;&lt;P&gt;  PERFORM build_bapi_sched_lines.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " populate_bapi_tables&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_bapi_header&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;      Build BAPI Header Details&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_bapi_header .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR st_bapisdhd1.&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-doc_type     = 'ZOC'.         "Order type&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-sales_org    = '026'.         "Sales Org&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-distr_chan   = '00'.          "Dist Channel&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-division     = '00'.          "Division&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-purch_no_c   = 'Cust Po No'.  "Cust PO No&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-name         = 'Orderer'.     "Name of Orderer&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-ord_reason   = ''.            "Order Reason&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-sales_off    = '3001'.        "Sales Office&lt;/P&gt;&lt;P&gt;  st_bapisdhd1-sales_grp    = '301'.         "Market Area&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF g_valid_contract = 'X'.&lt;/P&gt;&lt;P&gt;    st_bapisdhd1-price_date = g_cont_price_date.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " populate_bapi_header&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  build_bapi_partners&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;      Build BAPI Partner Functions&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 build_bapi_partners .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR tbl_bapiparnr.&lt;/P&gt;&lt;P&gt;  tbl_bapiparnr-partn_role   = 'AG'.&lt;/P&gt;&lt;P&gt;  tbl_bapiparnr-partn_numb   = '0000100750'.&lt;/P&gt;&lt;P&gt;  APPEND tbl_bapiparnr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR tbl_bapiparnr.&lt;/P&gt;&lt;P&gt;  tbl_bapiparnr-partn_role   = 'WE'.&lt;/P&gt;&lt;P&gt;  tbl_bapiparnr-partn_numb   = '0000504472'.&lt;/P&gt;&lt;P&gt;  APPEND tbl_bapiparnr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_bapi_partners&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  build_bapi_items&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;      Build The BAPI 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 build_bapi_items .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA: l_matnr LIKE mara-matnr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      input  = '10000072'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      output = l_matnr.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR tbl_bapisditm.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-itm_number  = c_item.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF g_valid_contract = 'X'.&lt;/P&gt;&lt;P&gt;    tbl_bapisditm-ref_doc     = c_contract.&lt;/P&gt;&lt;P&gt;    tbl_bapisditm-ref_doc_it  = c_item.&lt;/P&gt;&lt;P&gt;    tbl_bapisditm-ref_doc_ca  = 'G'.       "Contract&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  tbl_bapisditm-material    = l_matnr.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-plant       = '3012'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-target_qty  = '5.000'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  tbl_bapisditm-target_qu   = 'M3'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-item_categ  = 'ZZOC'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-sales_dist  = '301'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-dlv_prio    = '02'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  tbl_bapisditm-prc_group5  = '080'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  tbl_bapisditm-cust_mat35  = 'kdmat'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-route       = 'TESYS'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditm-usage_ind   = 'CIV'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND tbl_bapisditm.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR tbl_bapisditmx.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-itm_number = c_item.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-ref_doc    = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-ref_doc_it = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-ref_doc_ca = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-material   = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-updateflag = 'I'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-plant      = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-target_qty = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-target_qu  = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-item_categ = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-sales_dist = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-dlv_prio   = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-prc_group5 = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-cust_mat35 = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-usage_ind  = 'X'.&lt;/P&gt;&lt;P&gt;  tbl_bapisditmx-route      = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND tbl_bapisditmx.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_bapi_items&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  build_bapi_sched_lines&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;      Build the BAPI Schedule Lines&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 build_bapi_sched_lines .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR tbl_bapischdl.&lt;/P&gt;&lt;P&gt;  tbl_bapischdl-itm_number  = c_item.&lt;/P&gt;&lt;P&gt;  tbl_bapischdl-req_qty     = '1'.&lt;/P&gt;&lt;P&gt;  tbl_bapischdl-req_date    = sy-datum.&lt;/P&gt;&lt;P&gt;  APPEND tbl_bapischdl.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_bapi_sched_lines&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  build_bapi_conditions&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;      Pull the BAPI Pricing Conditions from the Contract&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 build_bapi_conditions .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT tbl_bapisdcond.&lt;/P&gt;&lt;P&gt;    CLEAR tbl_bapicond.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING tbl_bapisdcond TO tbl_bapicond.&lt;/P&gt;&lt;P&gt;    APPEND tbl_bapicond.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    CLEAR tbl_bapicondx.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-itm_number = tbl_bapicond-itm_number.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-cond_st_no = tbl_bapicond-cond_st_no.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-cond_count = tbl_bapicond-cond_count.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-cond_type  = tbl_bapicond-cond_type.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-updateflag = 'I'.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-cond_value = 'X'.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-currency   = 'X'.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-cond_unit  = 'X'.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-cond_p_unt = 'X'.&lt;/P&gt;&lt;P&gt;    tbl_bapicondx-varcond    = tbl_bapicond-varcond.&lt;/P&gt;&lt;P&gt;    APPEND tbl_bapicondx.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_bapi_conditions&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_create_sales_ord_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;      Call the Sales Order Create BAPI&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_create_sales_ord_bapi .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CLEAR g_vbeln_created.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      order_header_in    = st_bapisdhd1&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      salesdocument      = g_vbeln_created&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      return             = tbl_return&lt;/P&gt;&lt;P&gt;      order_items_in     = tbl_bapisditm&lt;/P&gt;&lt;P&gt;      order_items_inx    = tbl_bapisditmx&lt;/P&gt;&lt;P&gt;      order_partners     = tbl_bapiparnr&lt;/P&gt;&lt;P&gt;      order_schedules_in = tbl_bapischdl.&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;ENDFORM.                    " call_create_sales_ord_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  update_sales_ord&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;      Update the newly created Sales Order with the Pricing Conditions&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      from the Contract&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 update_sales_ord .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CHECK g_valid_contract EQ 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  PERFORM get_contract_details.&lt;/P&gt;&lt;P&gt;  PERFORM build_bapi_conditions.&lt;/P&gt;&lt;P&gt;  PERFORM call_change_sales_ord_bapi.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " update_sales_ord&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  get_contract_details&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;      Get Contract Details&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 get_contract_details .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Need to manually get the relevant Pricing Conditions as the BAPI&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BAPISDORDER_GETDETAILEDLIST causes problems when we call the BAPI&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BAPI_SALESORDER_CREATEFROMDAT2 and BAPI_SALESORDER_CHANGE (I think&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this is due to the fact that these BAPIs belong to the same Function&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Group and there must be some common structures that are not cleared&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;causing us all sorts of grief when we try and call the next BAPI)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA: tbl_konv TYPE STANDARD TABLE OF konv WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: tbl_komv TYPE STANDARD TABLE OF komv WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: tbl_vbak TYPE STANDARD TABLE OF vbak WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Pricing Condition Master&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: BEGIN OF tbl_t685a OCCURS 0,&lt;/P&gt;&lt;P&gt;          kschl     LIKE t685a-kschl,&lt;/P&gt;&lt;P&gt;          kaend_wrt LIKE t685a-kaend_wrt,&lt;/P&gt;&lt;P&gt;        END OF tbl_t685a.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SELECT *&lt;/P&gt;&lt;P&gt;         INTO TABLE tbl_vbak&lt;/P&gt;&lt;P&gt;         FROM vbak&lt;/P&gt;&lt;P&gt;         WHERE vbeln = c_contract.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  READ TABLE tbl_vbak INDEX 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SELECT *&lt;/P&gt;&lt;P&gt;         INTO TABLE tbl_konv&lt;/P&gt;&lt;P&gt;         FROM konv&lt;/P&gt;&lt;P&gt;         WHERE knumv = tbl_vbak-knumv AND&lt;/P&gt;&lt;P&gt;               kposn = c_item.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CHECK sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;We now need to make sure we only bring across the Condition Types that&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;are EDITABLE. If we bring across non editable conditions (such as&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;'ZPR1') the Change Sales Order BAPI will fail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT kschl kaend_wrt&lt;/P&gt;&lt;P&gt;         INTO TABLE tbl_t685a&lt;/P&gt;&lt;P&gt;         FROM t685a&lt;/P&gt;&lt;P&gt;         FOR ALL ENTRIES IN tbl_konv&lt;/P&gt;&lt;P&gt;         WHERE kappl     EQ 'V'             AND  "Sales&lt;/P&gt;&lt;P&gt;               kschl     EQ tbl_konv-kschl  AND&lt;/P&gt;&lt;P&gt;               kaend_wrt EQ 'X'             AND  "Value is Editable&lt;/P&gt;&lt;P&gt;               kmanu     NE 'D'.                 "Process manually&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Prepare for Binary Search&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SORT tbl_t685a BY kschl.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT tbl_konv.&lt;/P&gt;&lt;P&gt;    READ TABLE tbl_t685a WITH KEY kschl = tbl_konv-kschl BINARY SEARCH.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING tbl_konv TO tbl_komv.&lt;/P&gt;&lt;P&gt;      APPEND tbl_komv.&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;  CHECK NOT tbl_komv[] IS INITIAL.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Map KOMV into the more BAPI friendly BAPISDCOND structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'MAP_INT_TO_EXT_STRUCTURE'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      fxvbak        = tbl_vbak&lt;/P&gt;&lt;P&gt;      fxkomv        = tbl_komv&lt;/P&gt;&lt;P&gt;      fxbapikomv    = tbl_bapisdcond&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      entry_missing = 1&lt;/P&gt;&lt;P&gt;      OTHERS        = 2.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_contract_details&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_change_sales_ord_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;      Call the Change Sales Order BAPI&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_change_sales_ord_bapi .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA: st_head_chg      LIKE bapisdh1x,&lt;/P&gt;&lt;P&gt;        st_logic_switch  TYPE bapisdls.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CHECK NOT g_vbeln_created IS INITIAL.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CHECK g_valid_contract EQ 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  st_head_chg-updateflag     = 'U'.&lt;/P&gt;&lt;P&gt;  st_logic_switch-cond_handl = 'X'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BAPI_SALESORDER_CHANGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      salesdocument    = g_vbeln_created&lt;/P&gt;&lt;P&gt;      order_header_inx = st_head_chg&lt;/P&gt;&lt;P&gt;      logic_switch     = st_logic_switch&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      return           = tbl_return_chg&lt;/P&gt;&lt;P&gt;      conditions_in    = tbl_bapicond&lt;/P&gt;&lt;P&gt;      conditions_inx   = tbl_bapicondx.&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;ENDFORM.                    " call_change_sales_ord_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  write_output_report&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;      Produce Output Report&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_output_report .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF NOT g_vbeln_created IS INITIAL.&lt;/P&gt;&lt;P&gt;    WRITE:/ 'Success! Sales Order', g_vbeln_created, 'was created!'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    WRITE:/ 'Failure! Sales Order was not created!'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SKIP.&lt;/P&gt;&lt;P&gt;  WRITE:/ 'Sales Order Create Log'.&lt;/P&gt;&lt;P&gt;  LOOP AT tbl_return.&lt;/P&gt;&lt;P&gt;    WRITE:/ tbl_return-type, tbl_return-id, tbl_return-number,&lt;/P&gt;&lt;P&gt;            tbl_return-message.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SKIP.&lt;/P&gt;&lt;P&gt;  WRITE:/ 'Sales Order Change Log'.&lt;/P&gt;&lt;P&gt;  LOOP AT tbl_return_chg.&lt;/P&gt;&lt;P&gt;    WRITE:/ tbl_return_chg-type, tbl_return_chg-id,&lt;/P&gt;&lt;P&gt;            tbl_return_chg-number, tbl_return_chg-message.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " write_output_report&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  validate_contract&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;      Make sure that the Contract is Valid&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 validate_contract .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  DATA: l_gueen  LIKE vbak-gueen,&lt;/P&gt;&lt;P&gt;        l_prsdt  LIKE vbkd-prsdt.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SELECT SINGLE  vbak&lt;SUB&gt;gueen vbkd&lt;/SUB&gt;prsdt&lt;/P&gt;&lt;P&gt;         INTO (l_gueen, l_prsdt)&lt;/P&gt;&lt;P&gt;         FROM vbak&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;         INNER JOIN vbkd&lt;/P&gt;&lt;P&gt;         ON vbak&lt;SUB&gt;vbeln = vbkd&lt;/SUB&gt;vbeln&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;         WHERE vbak~vbeln = c_contract AND&lt;/P&gt;&lt;P&gt;               vbkd~posnr = '000000'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF sy-datum LE l_gueen.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Contract is valid! Set Order Price Date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    g_valid_contract  = 'X'.&lt;/P&gt;&lt;P&gt;    g_cont_price_date = l_prsdt.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " validate_contract&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Mukesh Kumar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Jul 2006 08:11:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-query/m-p/1393529#M190975</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-07-13T08:11:17Z</dc:date>
    </item>
  </channel>
</rss>

