<?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 - qty conversion error in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1-qty-conversion-error/m-p/3665267#M882805</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Are you using quantities directly entered by the user while calling the function to do the net price calculation? If that is the case, you should use FM CONVERSION_EXIT_ALPHA_INPUT to convert the quantity from the external format into the internal one!&lt;/P&gt;&lt;P&gt;Another possibility is that some customizing is missing for converting quantities in different unit of measures (like the quantity in pieces is known, but the pricing calculation is being done on kilos.. but the convertion between these 2 unit of measures is missing).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or &lt;/P&gt;&lt;P&gt;REPORT z_po_create NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;MESSAGE-ID z0lo_scm&lt;/P&gt;&lt;P&gt;LINE-SIZE 220&lt;/P&gt;&lt;P&gt;LINE-COUNT 65 .&lt;/P&gt;&lt;P&gt;TABLES : ekko,&lt;/P&gt;&lt;P&gt;ekpo.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;D A T A D E C L A R A T I O N S &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;*--Type declaration to store data read from table EKKO.&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF t_ekko,&lt;/P&gt;&lt;P&gt;ebeln TYPE ekko-ebeln,&lt;/P&gt;&lt;P&gt;bukrs TYPE ekko-bukrs,&lt;/P&gt;&lt;P&gt;bsart TYPE ekko-bsart,&lt;/P&gt;&lt;P&gt;aedat TYPE ekko-aedat,&lt;/P&gt;&lt;P&gt;ernam TYPE ekko-ernam,&lt;/P&gt;&lt;P&gt;lifnr TYPE ekko-lifnr,&lt;/P&gt;&lt;P&gt;ekorg TYPE ekko-ekorg,&lt;/P&gt;&lt;P&gt;ekgrp TYPE ekko-ekgrp,&lt;/P&gt;&lt;P&gt;spras TYPE ekko-spras,&lt;/P&gt;&lt;P&gt;werks TYPE ekpo-werks,&lt;/P&gt;&lt;P&gt;END OF t_ekko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Type declaration to store data read from table EKPO.&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF t_ekpo,&lt;/P&gt;&lt;P&gt;ebeln TYPE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;ebelp TYPE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;matnr TYPE ekpo-matnr,&lt;/P&gt;&lt;P&gt;werks TYPE ekpo-werks,&lt;/P&gt;&lt;P&gt;lgort TYPE ekpo-lgort,&lt;/P&gt;&lt;P&gt;menge TYPE ekpo-menge,&lt;/P&gt;&lt;P&gt;knttp TYPE ekpo-knttp,&lt;/P&gt;&lt;P&gt;matkl TYPE ekpo-matkl,&lt;/P&gt;&lt;P&gt;bednr TYPE ekpo-bednr,&lt;/P&gt;&lt;P&gt;afnam TYPE ekpo-afnam,&lt;/P&gt;&lt;P&gt;meins TYPE ekpo-meins,&lt;/P&gt;&lt;P&gt;bpumz TYPE ekpo-bpumz,&lt;/P&gt;&lt;P&gt;bpumn TYPE ekpo-bpumn,&lt;/P&gt;&lt;P&gt;netpr TYPE ekpo-netpr,&lt;/P&gt;&lt;P&gt;peinh TYPE ekpo-peinh,&lt;/P&gt;&lt;P&gt;webaz TYPE ekpo-webaz,&lt;/P&gt;&lt;P&gt;END OF t_ekpo.&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF t_head_item,&lt;/P&gt;&lt;P&gt;ebeln TYPE ekko-ebeln,&lt;/P&gt;&lt;P&gt;bukrs TYPE ekko-bukrs,&lt;/P&gt;&lt;P&gt;bsart TYPE ekko-bsart,&lt;/P&gt;&lt;P&gt;aedat TYPE ekko-aedat,&lt;/P&gt;&lt;P&gt;ernam TYPE ekko-ernam,&lt;/P&gt;&lt;P&gt;lifnr TYPE ekko-lifnr,&lt;/P&gt;&lt;P&gt;ekorg TYPE ekko-ekorg,&lt;/P&gt;&lt;P&gt;ekgrp TYPE ekko-ekgrp,&lt;/P&gt;&lt;P&gt;spras TYPE ekko-spras,&lt;/P&gt;&lt;P&gt;pincr TYPE ekko-pincr,&lt;/P&gt;&lt;P&gt;zterm TYPE ekko-zterm,&lt;/P&gt;&lt;P&gt;waers TYPE ekko-waers,&lt;/P&gt;&lt;P&gt;inco1 TYPE ekko-inco1,&lt;/P&gt;&lt;P&gt;inco2 TYPE ekko-inco2,&lt;/P&gt;&lt;P&gt;bedat TYPE ekko-bedat,&lt;/P&gt;&lt;P&gt;ebelp TYPE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;txz01 TYPE ekpo-txz01,&lt;/P&gt;&lt;P&gt;matnr TYPE ekpo-matnr,&lt;/P&gt;&lt;P&gt;werks TYPE ekpo-werks,&lt;/P&gt;&lt;P&gt;lgort TYPE ekpo-lgort,&lt;/P&gt;&lt;P&gt;menge TYPE ekpo-menge,&lt;/P&gt;&lt;P&gt;knttp TYPE ekpo-knttp,&lt;/P&gt;&lt;P&gt;matkl TYPE ekpo-matkl,&lt;/P&gt;&lt;P&gt;bednr TYPE ekpo-bednr,&lt;/P&gt;&lt;P&gt;afnam TYPE ekpo-afnam,&lt;/P&gt;&lt;P&gt;meins TYPE ekpo-meins,&lt;/P&gt;&lt;P&gt;bpumz TYPE ekpo-bpumz,&lt;/P&gt;&lt;P&gt;bpumn TYPE ekpo-bpumn,&lt;/P&gt;&lt;P&gt;netpr TYPE ekpo-netpr,&lt;/P&gt;&lt;P&gt;peinh TYPE ekpo-peinh,&lt;/P&gt;&lt;P&gt;webaz TYPE ekpo-webaz,&lt;/P&gt;&lt;P&gt;mwskz TYPE ekpo-mwskz,&lt;/P&gt;&lt;P&gt;adrn2 TYPE ekpo-adrn2,&lt;/P&gt;&lt;P&gt;END OF t_head_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF t_sucess,&lt;/P&gt;&lt;P&gt;ebeln TYPE ekko-ebeln,&lt;/P&gt;&lt;P&gt;END OF t_sucess.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF t_ekko_ekpo,&lt;/P&gt;&lt;P&gt;ebeln TYPE ekko-ebeln,&lt;/P&gt;&lt;P&gt;lifnr TYPE ekko-lifnr,&lt;/P&gt;&lt;P&gt;inco1 TYPE ekko-inco1,&lt;/P&gt;&lt;P&gt;inco2 TYPE ekko-inco2,&lt;/P&gt;&lt;P&gt;zterm TYPE ekko-zterm,&lt;/P&gt;&lt;P&gt;ebelp TYPE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;matnr TYPE ekpo-matnr,&lt;/P&gt;&lt;P&gt;END OF t_ekko_ekpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_err_log,&lt;/P&gt;&lt;P&gt;ebeln TYPE ebeln, " Purchase order no.&lt;/P&gt;&lt;P&gt;bstpo TYPE bstpo, " Purchase order line item&lt;/P&gt;&lt;P&gt;etenr TYPE etenr, " Schedule line&lt;/P&gt;&lt;P&gt;err_val(20) TYPE c, " Error value&lt;/P&gt;&lt;P&gt;err_msg(100) TYPE c, " Error message&lt;/P&gt;&lt;P&gt;pogr_err(1) TYPE c, " If 'X' indicates PO creation error,&lt;/P&gt;&lt;P&gt;" else, indicates GR creation error&lt;/P&gt;&lt;P&gt;END OF t_err_log.&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;&lt;P&gt;Variables declarations. &lt;/P&gt;&lt;P&gt;DATA : v_ebeln TYPE ekko-ebeln, "PO Number&lt;/P&gt;&lt;P&gt;v_bsart TYPE ekko-bsart,&lt;/P&gt;&lt;P&gt;v_ekorg TYPE ekko-ekorg, "Purchasing Organization&lt;/P&gt;&lt;P&gt;v_ekgrp TYPE ekko-ekgrp, "Purchasing group&lt;/P&gt;&lt;P&gt;v_lifnr TYPE ekko-lifnr, "Vendor Number&lt;/P&gt;&lt;P&gt;v_werks TYPE ekpo-werks, "Plant&lt;/P&gt;&lt;P&gt;v_matnr TYPE ekpo-matnr, "Material Number&lt;/P&gt;&lt;P&gt;v_infnr TYPE ekpo-infnr. "Agreement&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;&lt;P&gt;Constants declarations. &lt;/P&gt;&lt;P&gt;CONSTANTS: c_bstyp TYPE ekpo-bstyp VALUE 'K',&lt;/P&gt;&lt;P&gt;c_bstyp1 TYPE ekpo-bstyp VALUE 'F',&lt;/P&gt;&lt;P&gt;c_x VALUE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;D A T A D E C L A R A T I O N S FOR BAPI &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI structure for Purchase Order Header Data&lt;/P&gt;&lt;P&gt;DATA : x_poheader TYPE bapimepoheader,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI structure for Purchase Order Header Data (Change Toolbar)&lt;/P&gt;&lt;P&gt;x_poheaderx TYPE bapimepoheaderx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI structure for Purchase Order Item Data&lt;/P&gt;&lt;P&gt;x_poitem TYPE bapimepoitem,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI structure for Purchase Order Item Data (Change Toolbar)&lt;/P&gt;&lt;P&gt;x_poitemx TYPE bapimepoitemx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI structure for messages&lt;/P&gt;&lt;P&gt;x_return TYPE bapiret2,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-Structure for the error log&lt;/P&gt;&lt;P&gt;x_err_log TYPE t_err_log,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI structure for Purchase Order Account assignment Data&lt;/P&gt;&lt;P&gt;x_poaccount TYPE bapimepoaccount,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI structure for Purchase Order Account assignment&lt;/P&gt;&lt;P&gt;**-Data (Change Toolbar)&lt;/P&gt;&lt;P&gt;x_poaccountx TYPE bapimepoaccountx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*ADDRESS&lt;/P&gt;&lt;P&gt;x_deliveryaddr TYPE bapimepoaddrdelivery.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI internal table containing purchase order item&lt;/P&gt;&lt;P&gt;DATA : it_poitem TYPE STANDARD TABLE OF bapimepoitem,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI internal table containing PO item data (Change Toolbar)&lt;/P&gt;&lt;P&gt;it_poitemx TYPE STANDARD TABLE OF bapimepoitemx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI Return table containing messages&lt;/P&gt;&lt;P&gt;it_return TYPE STANDARD TABLE OF bapiret2,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI internal table containing Account Assignment Fields for PO&lt;/P&gt;&lt;P&gt;it_poaccount TYPE STANDARD TABLE OF bapimepoaccount,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI internal table containing Account Assignment Fields&lt;/P&gt;&lt;P&gt;**-in Purchase Order (Change Toolbar)&lt;/P&gt;&lt;P&gt;it_poaccountx TYPE STANDARD TABLE OF bapimepoaccountx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_deliveryaddr TYPE STANDARD TABLE OF bapimepoaddrdelivery.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I N T E R N A L T A B L E D E C L E R A T I O N S &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;DATA: it_ekko TYPE STANDARD TABLE OF t_ekko WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;it_ekko_dest TYPE STANDARD TABLE OF t_ekko WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;it_ekpo TYPE STANDARD TABLE OF t_ekpo WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;it_head_item TYPE STANDARD TABLE OF t_head_item WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;it_ekko_ekpo TYPE STANDARD TABLE OF t_ekko_ekpo WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;it_sucess TYPE STANDARD TABLE OF t_sucess WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;it_contract TYPE STANDARD TABLE OF t_sucess WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;**-Internal table containing error messages&lt;/P&gt;&lt;P&gt;it_err_log TYPE STANDARD TABLE OF t_err_log.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;S E L E C T I O N S C R E E N &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&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;Selection criteria &lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:s_ebeln FOR ekko-ebeln, "PO Number&lt;/P&gt;&lt;P&gt;s_bsart FOR ekko-bsart DEFAULT 'ZHBV', "PO Type&lt;/P&gt;&lt;P&gt;s_aedat FOR ekko-aedat DEFAULT sy-datum, "Creation Date&lt;/P&gt;&lt;P&gt;s_ekorg FOR ekko-ekorg, "Purchasing Organization&lt;/P&gt;&lt;P&gt;s_ekgrp FOR ekko-ekgrp, "Purchasing group&lt;/P&gt;&lt;P&gt;s_lifnr FOR ekko-lifnr, "Vendor Number&lt;/P&gt;&lt;P&gt;s_werks FOR ekpo-werks, "Plant&lt;/P&gt;&lt;P&gt;s_matnr FOR ekpo-matnr, "Material Number&lt;/P&gt;&lt;P&gt;s_infnr FOR ekpo-infnr. "Agreement&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.&lt;/P&gt;&lt;P&gt;PARAMETERS :p_bukrs LIKE ekko-bukrs DEFAULT '9040', "Company Code&lt;/P&gt;&lt;P&gt;p_werks LIKE ekpo-werks DEFAULT '7040', "Plant&lt;/P&gt;&lt;P&gt;p_ekorg LIKE ekko-ekorg DEFAULT '9040', "Purchasing Organization&lt;/P&gt;&lt;P&gt;p_ekgrp LIKE ekko-ekgrp DEFAULT '031', "Purchasing group&lt;/P&gt;&lt;P&gt;p_bsart1 LIKE ekko-bsart DEFAULT 'ZHIH'. "PO Type&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A T S E L E C T I O N - S C R E E N &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;AT SELECTION-SCREEN.&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;&lt;P&gt;Validating the Selection Screen inputs. &lt;/P&gt;&lt;P&gt;PERFORM validate_user_input.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;S T A R T - O F - S E L E C T I O N &lt;/P&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Getting data from table EKKO. &lt;/P&gt;&lt;P&gt;PERFORM get_purchase_order.&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;&lt;P&gt;Getting data from table EKKO &lt;/P&gt;&lt;P&gt;PERFORM get_po_created.&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;&lt;P&gt;Getting data from table EKKO &amp;amp; EKPO &lt;/P&gt;&lt;P&gt;PERFORM get_contract_num.&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;&lt;P&gt;Creating the PO. &lt;/P&gt;&lt;P&gt;PERFORM create_po.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;E N D - O F - S E L E C T I O N &lt;/P&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Display PO which are already created &lt;/P&gt;&lt;P&gt;PERFORM display_createdpo_rept.&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;&lt;P&gt;Display PO which doesnt have contract numbers &lt;/P&gt;&lt;P&gt;PERFORM display_contract_rept.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;PERFORM page_heading.&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form VALIDATE_USER_INPUT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Form to validate user inputs at Selection Screen. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM validate_user_input .&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;&lt;P&gt;Validating Purchasing Document Number &lt;/P&gt;&lt;P&gt;IF NOT s_ebeln[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT ebeln&lt;/P&gt;&lt;P&gt;INTO v_ebeln&lt;/P&gt;&lt;P&gt;FROM ekko&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE ebeln IN s_ebeln.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid Purchasing Document Number'(004).&lt;/P&gt;&lt;P&gt;ENDIF.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Validating Purchasing Document Type &lt;/P&gt;&lt;P&gt;IF NOT s_bsart[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT bsart&lt;/P&gt;&lt;P&gt;INTO v_bsart&lt;/P&gt;&lt;P&gt;FROM t161&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE bsart IN s_bsart.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid Purchasing Document Type'(005).&lt;/P&gt;&lt;P&gt;ENDIF.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Validating Purchasing org &lt;/P&gt;&lt;P&gt;IF NOT s_ekorg[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT ekorg&lt;/P&gt;&lt;P&gt;INTO v_ekorg&lt;/P&gt;&lt;P&gt;FROM t024e&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE ekorg IN s_ekorg.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid Purchasing Organization'(006).&lt;/P&gt;&lt;P&gt;ENDIF.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Validating Purchasing group &lt;/P&gt;&lt;P&gt;IF NOT s_ekgrp[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT ekgrp&lt;/P&gt;&lt;P&gt;INTO v_ekgrp&lt;/P&gt;&lt;P&gt;FROM t024&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE ekgrp IN s_ekgrp.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid Purchasing Group'(007).&lt;/P&gt;&lt;P&gt;ENDIF.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Validating Vendor's account number &lt;/P&gt;&lt;P&gt;IF NOT s_lifnr[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT lifnr&lt;/P&gt;&lt;P&gt;INTO v_lifnr&lt;/P&gt;&lt;P&gt;FROM lfa1&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE lifnr IN s_lifnr.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid Vendor account number'(008).&lt;/P&gt;&lt;P&gt;ENDIF.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Validating Plant &lt;/P&gt;&lt;P&gt;IF NOT s_werks[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT werks&lt;/P&gt;&lt;P&gt;INTO v_werks&lt;/P&gt;&lt;P&gt;FROM t001w&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE werks IN s_werks.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid Plant'(009).&lt;/P&gt;&lt;P&gt;ENDIF.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Validating Material &lt;/P&gt;&lt;P&gt;IF NOT s_matnr[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT matnr&lt;/P&gt;&lt;P&gt;INTO v_matnr&lt;/P&gt;&lt;P&gt;FROM mara&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE matnr IN s_matnr.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid Material Number'(010).&lt;/P&gt;&lt;P&gt;ENDIF.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Validating info record(Agreement) &lt;/P&gt;&lt;P&gt;IF NOT s_infnr[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT infnr&lt;/P&gt;&lt;P&gt;INTO v_infnr&lt;/P&gt;&lt;P&gt;FROM eina&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE infnr IN s_infnr.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid purchasing info record'(011).&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " VALIDATE_USER_INPUT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form GET_PURCHASE_ORDER&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Form to fetch data required from table EKKO &amp;amp; EKPO into internal table. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM get_purchase_order.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH it_head_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Getting data from table EKKO &amp;amp; EKPO. &lt;/P&gt;&lt;P&gt;SELECT a~ebeln&lt;/P&gt;&lt;P&gt;a~bukrs&lt;/P&gt;&lt;P&gt;a~bsart&lt;/P&gt;&lt;P&gt;a~aedat&lt;/P&gt;&lt;P&gt;a~ernam&lt;/P&gt;&lt;P&gt;a~lifnr&lt;/P&gt;&lt;P&gt;a~ekorg&lt;/P&gt;&lt;P&gt;a~ekgrp&lt;/P&gt;&lt;P&gt;a~spras&lt;/P&gt;&lt;P&gt;a~pincr&lt;/P&gt;&lt;P&gt;a~zterm&lt;/P&gt;&lt;P&gt;a~waers&lt;/P&gt;&lt;P&gt;a~inco1&lt;/P&gt;&lt;P&gt;a~inco2&lt;/P&gt;&lt;P&gt;a~bedat&lt;/P&gt;&lt;P&gt;b~ebelp&lt;/P&gt;&lt;P&gt;b~txz01&lt;/P&gt;&lt;P&gt;b~matnr&lt;/P&gt;&lt;P&gt;b~werks&lt;/P&gt;&lt;P&gt;b~lgort&lt;/P&gt;&lt;P&gt;b~menge&lt;/P&gt;&lt;P&gt;b~knttp&lt;/P&gt;&lt;P&gt;b~matkl&lt;/P&gt;&lt;P&gt;b~bednr&lt;/P&gt;&lt;P&gt;b~afnam&lt;/P&gt;&lt;P&gt;b~meins&lt;/P&gt;&lt;P&gt;b~bpumz&lt;/P&gt;&lt;P&gt;b~bpumn&lt;/P&gt;&lt;P&gt;b~netpr&lt;/P&gt;&lt;P&gt;b~peinh&lt;/P&gt;&lt;P&gt;b~webaz&lt;/P&gt;&lt;P&gt;b~mwskz&lt;/P&gt;&lt;P&gt;b~adrn2&lt;/P&gt;&lt;P&gt;INTO TABLE it_head_item&lt;/P&gt;&lt;P&gt;FROM ekko AS a&lt;/P&gt;&lt;P&gt;INNER JOIN ekpo AS b&lt;/P&gt;&lt;P&gt;ON a&lt;SUB&gt;ebeln = b&lt;/SUB&gt;ebeln&lt;/P&gt;&lt;P&gt;WHERE a~ebeln IN s_ebeln&lt;/P&gt;&lt;P&gt;AND a~bsart IN s_bsart&lt;/P&gt;&lt;P&gt;AND a~aedat IN s_aedat&lt;/P&gt;&lt;P&gt;AND a~ekgrp IN s_ekgrp&lt;/P&gt;&lt;P&gt;AND a~ekorg IN s_ekorg&lt;/P&gt;&lt;P&gt;AND a~lifnr IN s_lifnr&lt;/P&gt;&lt;P&gt;AND a~loekz c_x&lt;/P&gt;&lt;P&gt;AND b~werks IN s_werks&lt;/P&gt;&lt;P&gt;AND b~matnr IN s_matnr&lt;/P&gt;&lt;P&gt;AND b~infnr IN s_infnr&lt;/P&gt;&lt;P&gt;AND b~loekz c_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;SORT it_head_item BY ebeln.&lt;/P&gt;&lt;P&gt;LOOP AT it_head_item.&lt;/P&gt;&lt;P&gt;it_head_item-ebeln+0(1) = 'I'.&lt;/P&gt;&lt;P&gt;MODIFY it_head_item INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;MESSAGE i000 WITH 'No Purchase Order is possible for creation'(003).&lt;/P&gt;&lt;P&gt;STOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " GET_PURCHASE_ORDER&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form GET_PO_CREATED&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Form to fetch data required from table EKKO into internal table. &lt;/P&gt;&lt;P&gt;Delete those records which are already created &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM get_po_created .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--fetch data from table EKKO into internal table&lt;/P&gt;&lt;P&gt;*--Where Docu type = 'ZHIH'&lt;/P&gt;&lt;P&gt;IF NOT it_head_item[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT a~ebeln&lt;/P&gt;&lt;P&gt;a~bukrs&lt;/P&gt;&lt;P&gt;a~bsart&lt;/P&gt;&lt;P&gt;a~aedat&lt;/P&gt;&lt;P&gt;a~ernam&lt;/P&gt;&lt;P&gt;a~lifnr&lt;/P&gt;&lt;P&gt;a~ekorg&lt;/P&gt;&lt;P&gt;a~ekgrp&lt;/P&gt;&lt;P&gt;a~spras&lt;/P&gt;&lt;P&gt;b~werks&lt;/P&gt;&lt;P&gt;INTO TABLE it_ekko_dest&lt;/P&gt;&lt;P&gt;FROM ekko AS a&lt;/P&gt;&lt;P&gt;INNER JOIN ekpo AS b&lt;/P&gt;&lt;P&gt;ON a&lt;SUB&gt;ebeln = b&lt;/SUB&gt;ebeln&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN it_head_item&lt;/P&gt;&lt;P&gt;WHERE a~ebeln = it_head_item-ebeln&lt;/P&gt;&lt;P&gt;AND a~bsart = p_bsart1&lt;/P&gt;&lt;P&gt;AND a~bukrs = p_bukrs&lt;/P&gt;&lt;P&gt;AND b~werks = p_werks&lt;/P&gt;&lt;P&gt;AND b~bstyp = c_bstyp1&lt;/P&gt;&lt;P&gt;AND a~ekorg = p_ekorg&lt;/P&gt;&lt;P&gt;AND a~ekgrp = p_ekgrp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;SORT it_ekko_dest BY ebeln.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Move all the PO numbers into sucess internal table&lt;/P&gt;&lt;P&gt;*--if the PO was already created&lt;/P&gt;&lt;P&gt;LOOP AT it_ekko_dest.&lt;/P&gt;&lt;P&gt;MOVE it_ekko_dest-ebeln TO it_sucess-ebeln.&lt;/P&gt;&lt;P&gt;APPEND it_sucess.&lt;/P&gt;&lt;P&gt;CLEAR it_sucess.&lt;/P&gt;&lt;P&gt;DELETE it_head_item WHERE ebeln = it_ekko_dest-ebeln.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR it_head_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF it_head_item[] IS INITIAL.&lt;/P&gt;&lt;P&gt;MESSAGE i000 WITH 'No Purchase Order is possible for creation'(003).&lt;/P&gt;&lt;P&gt;STOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " GET_PO_CREATED&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form GET_CONTRACT_NUM&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM get_contract_num .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Select the data to get contract number&lt;/P&gt;&lt;P&gt;IF NOT it_head_item[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT a~ebeln "contract numbers&lt;/P&gt;&lt;P&gt;a~lifnr&lt;/P&gt;&lt;P&gt;a~inco1 "Incoterm1&lt;/P&gt;&lt;P&gt;a~inco2 "incoterm2&lt;/P&gt;&lt;P&gt;a~zterm&lt;/P&gt;&lt;P&gt;b~ebelp&lt;/P&gt;&lt;P&gt;b~matnr&lt;/P&gt;&lt;P&gt;INTO TABLE it_ekko_ekpo&lt;/P&gt;&lt;P&gt;FROM ekko AS a&lt;/P&gt;&lt;P&gt;INNER JOIN ekpo AS b&lt;/P&gt;&lt;P&gt;ON a&lt;SUB&gt;ebeln = b&lt;/SUB&gt;ebeln&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN it_head_item&lt;/P&gt;&lt;P&gt;WHERE b~matnr = it_head_item-matnr&lt;/P&gt;&lt;P&gt;AND a~bukrs = p_bukrs " Company code&lt;/P&gt;&lt;P&gt;AND a~ekorg = p_ekorg " Purchase org&lt;/P&gt;&lt;P&gt;AND a~loekz c_x " Deletion indicator for header data&lt;/P&gt;&lt;P&gt;AND a~kdatb &amp;lt;= sy-datum " Validity period start&lt;/P&gt;&lt;P&gt;AND a~kdate &amp;gt;= sy-datum " Validity period end&lt;/P&gt;&lt;P&gt;AND b~loekz &amp;lt;&amp;gt; c_x " Deletion indicator for item data&lt;/P&gt;&lt;P&gt;AND b~bstyp = c_bstyp. " Purch. doc. category&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;SORT it_ekko_ekpo BY matnr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;LOOP AT it_head_item.&lt;/P&gt;&lt;P&gt;READ TABLE it_ekko_ekpo WITH KEY matnr = it_head_item-matnr&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;move the data to the internal table &lt;/P&gt;&lt;P&gt;which doesnt have contract number &lt;/P&gt;&lt;P&gt;it_contract-ebeln = it_head_item-ebeln.&lt;/P&gt;&lt;P&gt;APPEND it_contract.&lt;/P&gt;&lt;P&gt;CLEAR it_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;Deleting the record &lt;/P&gt;&lt;P&gt;which doesnt have any contract number &lt;/P&gt;&lt;P&gt;DELETE it_head_item WHERE ebeln = it_head_item-ebeln.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;CLEAR it_head_item.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF it_head_item[] IS INITIAL.&lt;/P&gt;&lt;P&gt;MESSAGE i000 WITH 'No Purchase Order is possible for creation'(003).&lt;/P&gt;&lt;P&gt;STOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " GET_CONTRACT_NUM&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form CREATE_PO&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE PURCHASE ORDER &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM create_po .&lt;/P&gt;&lt;P&gt;DATA: l_ret_msg(1000) TYPE c. " Success/Error message from BAPI&lt;/P&gt;&lt;P&gt;CLEAR: x_poheader, x_poheaderx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT it_head_item BY ebeln.&lt;/P&gt;&lt;P&gt;LOOP AT it_head_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT NEW ebeln.&lt;/P&gt;&lt;P&gt;READ TABLE it_head_item WITH KEY ebeln = it_head_item-ebeln.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;**-Populate PO Header structure&lt;/P&gt;&lt;P&gt;x_poheader-po_number = it_head_item-ebeln. " PO no.&lt;/P&gt;&lt;P&gt;x_poheader-comp_code = p_bukrs. " Company code&lt;/P&gt;&lt;P&gt;x_poheader-doc_type = p_bsart1. " Document type&lt;/P&gt;&lt;P&gt;x_poheader-creat_date = it_head_item-aedat. " Date created&lt;/P&gt;&lt;P&gt;x_poheader-created_by = it_head_item-ernam. " Created by&lt;/P&gt;&lt;P&gt;READ TABLE it_ekko_ekpo WITH KEY matnr = it_head_item-matnr&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;x_poheader-vendor = it_ekko_ekpo-lifnr. " Vendor no.&lt;/P&gt;&lt;P&gt;x_poheader-incoterms1 = it_ekko_ekpo-inco1. " Incoterms1&lt;/P&gt;&lt;P&gt;x_poheader-incoterms2 = it_ekko_ekpo-inco2. " Incoterms2&lt;/P&gt;&lt;P&gt;x_poheader-pmnttrms = it_ekko_ekpo-zterm. " Payment terms&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;x_poheader-langu = sy-langu. " Language key&lt;/P&gt;&lt;P&gt;x_poheader-langu_iso = sy-langu. " Language key iso&lt;/P&gt;&lt;P&gt;x_poheader-purch_org = p_ekorg. " Purchasing org.&lt;/P&gt;&lt;P&gt;x_poheader-pur_group = p_ekgrp. " Purch. Group&lt;/P&gt;&lt;P&gt;x_poheader-currency = it_head_item-waers. " currency&lt;/P&gt;&lt;P&gt;x_poheader-currency_iso = it_head_item-waers. " currency iso&lt;/P&gt;&lt;P&gt;x_poheader-doc_date = it_head_item-bedat. " Doc date&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-Populate PO Header 'X' structure&lt;/P&gt;&lt;P&gt;x_poheaderx-po_number = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-comp_code = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-doc_type = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-creat_date = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-created_by = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-vendor = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-langu = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-langu_iso = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-pmnttrms = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-purch_org = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-pur_group = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-currency = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-currency_iso = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-doc_date = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-incoterms1 = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-incoterms2 = c_x.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE it_ekko_ekpo WITH KEY matnr = it_head_item-matnr&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;x_poitem-po_item = it_ekko_ekpo-ebelp. " PO Item no.&lt;/P&gt;&lt;P&gt;x_poitem-agreement = it_ekko_ekpo-ebeln. " Agreement NO&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;x_poitem-short_text = it_head_item-txz01. " Item description&lt;/P&gt;&lt;P&gt;x_poitem-material = it_head_item-matnr. " Material no.&lt;/P&gt;&lt;P&gt;x_poitem-plant = p_werks. " Plant&lt;/P&gt;&lt;P&gt;x_poitem-stge_loc = p_werks. " Storage Loc&lt;/P&gt;&lt;P&gt;x_poitem-matl_group = it_head_item-matkl. " Material group&lt;/P&gt;&lt;P&gt;x_poitem-quantity = it_head_item-menge. " Ordered qty.&lt;/P&gt;&lt;P&gt;x_poitem-po_unit = it_head_item-meins. " Order unit&lt;/P&gt;&lt;P&gt;x_poitem-po_unit_iso = it_head_item-meins. " Order unit&lt;/P&gt;&lt;P&gt;x_poitem-net_price = it_head_item-netpr. " Net price&lt;/P&gt;&lt;P&gt;x_poitem-price_unit = it_head_item-peinh. " price per unit&lt;/P&gt;&lt;P&gt;x_poitem-tax_code = it_head_item-mwskz. " Tax Code&lt;/P&gt;&lt;P&gt;x_poitem-acctasscat = it_head_item-knttp. " Account ass cata&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND x_poitem TO it_poitem.&lt;/P&gt;&lt;P&gt;CLEAR x_poitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-Populate PO Item 'X' structure&lt;/P&gt;&lt;P&gt;x_poitemx-po_item = it_ekko_ekpo-ebelp. " PO Item no.&lt;/P&gt;&lt;P&gt;x_poitemx-po_itemx = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-short_text = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-material = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-plant = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-stge_loc = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-agreement = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-matl_group = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-quantity = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-po_unit = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-po_unit_iso = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-net_price = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-price_unit = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-tax_code = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-acctasscat = c_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND x_poitemx TO it_poitemx.&lt;/P&gt;&lt;P&gt;CLEAR x_poitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;x_deliveryaddr-po_item = it_ekko_ekpo-ebelp.&lt;/P&gt;&lt;P&gt;x_deliveryaddr-addr_no = it_head_item-adrn2.&lt;/P&gt;&lt;P&gt;APPEND x_deliveryaddr TO it_deliveryaddr.&lt;/P&gt;&lt;P&gt;CLEAR x_deliveryaddr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT END OF ebeln.&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 = x_poheader&lt;/P&gt;&lt;P&gt;poheaderx = x_poheaderx&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;return = it_return&lt;/P&gt;&lt;P&gt;poitem = it_poitem&lt;/P&gt;&lt;P&gt;poitemx = it_poitemx&lt;/P&gt;&lt;P&gt;poaddrdelivery = it_deliveryaddr.&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;REFRESH : it_poitemx,it_poitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; x_poheader-po_number.&lt;/P&gt;&lt;P&gt;LOOP AT it_return INTO x_return.&lt;/P&gt;&lt;P&gt;WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; x_return-type,&lt;/P&gt;&lt;P&gt;20 x_return-message.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH : it_poitemx,it_poitem,it_deliveryaddr,it_return.&lt;/P&gt;&lt;P&gt;CLEAR: x_poheader,x_poheaderx,x_poitem,x_poitemx,x_deliveryaddr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " CREATE_PO&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form display_createdpo_rept&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM display_createdpo_rept .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-Column headings&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;WRITE:/1(100) sy-uline.&lt;/P&gt;&lt;P&gt;WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;30 'List of PO already created',&lt;/P&gt;&lt;P&gt;100 sy-vline.&lt;/P&gt;&lt;P&gt;FORMAT INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;FORMAT RESET.&lt;/P&gt;&lt;P&gt;WRITE:/1(100) sy-uline.&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;&lt;P&gt;Display PO created sucess report &lt;/P&gt;&lt;P&gt;LOOP AT it_sucess.&lt;/P&gt;&lt;P&gt;WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;15 'Purchase Order NO:',&lt;/P&gt;&lt;P&gt;40 it_sucess-ebeln,&lt;/P&gt;&lt;P&gt;100 sy-vline.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;2(99) sy-uline,&lt;/P&gt;&lt;P&gt;100 sy-vline.&lt;/P&gt;&lt;P&gt;ENDFORM. " display_createdpo_rept&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form display_contract_rept&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM display_contract_rept .&lt;/P&gt;&lt;P&gt;SKIP 3.&lt;/P&gt;&lt;P&gt;**-Column headings&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;WRITE:/1(100) sy-uline.&lt;/P&gt;&lt;P&gt;WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;30 'List of Contract Numbers',&lt;/P&gt;&lt;P&gt;100 sy-vline.&lt;/P&gt;&lt;P&gt;FORMAT INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;FORMAT RESET.&lt;/P&gt;&lt;P&gt;WRITE:/1(100) sy-uline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT it_contract.&lt;/P&gt;&lt;P&gt;WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;15 'Purchase Order NO:',&lt;/P&gt;&lt;P&gt;40 it_contract-ebeln,&lt;/P&gt;&lt;P&gt;100 sy-vline.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;2(99) sy-uline,&lt;/P&gt;&lt;P&gt;100 sy-vline.&lt;/P&gt;&lt;P&gt;ENDFORM. " display_contract_rept&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;**&amp;amp; Form RETURN_MESSAGES&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*FORM return_messages .&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*ENDFORM. " RETURN_MESSAGES&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form PAGE_HEADING&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM page_heading .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-List heading&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;WRITE:/1(100) sy-uline.&lt;/P&gt;&lt;P&gt;WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;40 'Summary Report',&lt;/P&gt;&lt;P&gt;100 sy-vline.&lt;/P&gt;&lt;P&gt;FORMAT INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;FORMAT RESET.&lt;/P&gt;&lt;P&gt;WRITE:/1(100) sy-uline.&lt;/P&gt;&lt;P&gt;SKIP 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " PAGE_HEADING&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Reward if helpful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 14 Apr 2008 08:24:32 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-04-14T08:24:32Z</dc:date>
    <item>
      <title>BAPI_PO_CREATE1 - qty conversion error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1-qty-conversion-error/m-p/3665266#M882804</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi guys, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can u help me identify the problem for this error in po upload. i am using the bapi_po_create1 and i am getting the error quantity conversion error in net price calculation.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards, &lt;/P&gt;&lt;P&gt;christine&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Apr 2008 05:30:00 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1-qty-conversion-error/m-p/3665266#M882804</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-14T05:30:00Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CREATE1 - qty conversion error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1-qty-conversion-error/m-p/3665267#M882805</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Are you using quantities directly entered by the user while calling the function to do the net price calculation? If that is the case, you should use FM CONVERSION_EXIT_ALPHA_INPUT to convert the quantity from the external format into the internal one!&lt;/P&gt;&lt;P&gt;Another possibility is that some customizing is missing for converting quantities in different unit of measures (like the quantity in pieces is known, but the pricing calculation is being done on kilos.. but the convertion between these 2 unit of measures is missing).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or &lt;/P&gt;&lt;P&gt;REPORT z_po_create NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;MESSAGE-ID z0lo_scm&lt;/P&gt;&lt;P&gt;LINE-SIZE 220&lt;/P&gt;&lt;P&gt;LINE-COUNT 65 .&lt;/P&gt;&lt;P&gt;TABLES : ekko,&lt;/P&gt;&lt;P&gt;ekpo.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;D A T A D E C L A R A T I O N S &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;*--Type declaration to store data read from table EKKO.&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF t_ekko,&lt;/P&gt;&lt;P&gt;ebeln TYPE ekko-ebeln,&lt;/P&gt;&lt;P&gt;bukrs TYPE ekko-bukrs,&lt;/P&gt;&lt;P&gt;bsart TYPE ekko-bsart,&lt;/P&gt;&lt;P&gt;aedat TYPE ekko-aedat,&lt;/P&gt;&lt;P&gt;ernam TYPE ekko-ernam,&lt;/P&gt;&lt;P&gt;lifnr TYPE ekko-lifnr,&lt;/P&gt;&lt;P&gt;ekorg TYPE ekko-ekorg,&lt;/P&gt;&lt;P&gt;ekgrp TYPE ekko-ekgrp,&lt;/P&gt;&lt;P&gt;spras TYPE ekko-spras,&lt;/P&gt;&lt;P&gt;werks TYPE ekpo-werks,&lt;/P&gt;&lt;P&gt;END OF t_ekko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Type declaration to store data read from table EKPO.&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF t_ekpo,&lt;/P&gt;&lt;P&gt;ebeln TYPE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;ebelp TYPE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;matnr TYPE ekpo-matnr,&lt;/P&gt;&lt;P&gt;werks TYPE ekpo-werks,&lt;/P&gt;&lt;P&gt;lgort TYPE ekpo-lgort,&lt;/P&gt;&lt;P&gt;menge TYPE ekpo-menge,&lt;/P&gt;&lt;P&gt;knttp TYPE ekpo-knttp,&lt;/P&gt;&lt;P&gt;matkl TYPE ekpo-matkl,&lt;/P&gt;&lt;P&gt;bednr TYPE ekpo-bednr,&lt;/P&gt;&lt;P&gt;afnam TYPE ekpo-afnam,&lt;/P&gt;&lt;P&gt;meins TYPE ekpo-meins,&lt;/P&gt;&lt;P&gt;bpumz TYPE ekpo-bpumz,&lt;/P&gt;&lt;P&gt;bpumn TYPE ekpo-bpumn,&lt;/P&gt;&lt;P&gt;netpr TYPE ekpo-netpr,&lt;/P&gt;&lt;P&gt;peinh TYPE ekpo-peinh,&lt;/P&gt;&lt;P&gt;webaz TYPE ekpo-webaz,&lt;/P&gt;&lt;P&gt;END OF t_ekpo.&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF t_head_item,&lt;/P&gt;&lt;P&gt;ebeln TYPE ekko-ebeln,&lt;/P&gt;&lt;P&gt;bukrs TYPE ekko-bukrs,&lt;/P&gt;&lt;P&gt;bsart TYPE ekko-bsart,&lt;/P&gt;&lt;P&gt;aedat TYPE ekko-aedat,&lt;/P&gt;&lt;P&gt;ernam TYPE ekko-ernam,&lt;/P&gt;&lt;P&gt;lifnr TYPE ekko-lifnr,&lt;/P&gt;&lt;P&gt;ekorg TYPE ekko-ekorg,&lt;/P&gt;&lt;P&gt;ekgrp TYPE ekko-ekgrp,&lt;/P&gt;&lt;P&gt;spras TYPE ekko-spras,&lt;/P&gt;&lt;P&gt;pincr TYPE ekko-pincr,&lt;/P&gt;&lt;P&gt;zterm TYPE ekko-zterm,&lt;/P&gt;&lt;P&gt;waers TYPE ekko-waers,&lt;/P&gt;&lt;P&gt;inco1 TYPE ekko-inco1,&lt;/P&gt;&lt;P&gt;inco2 TYPE ekko-inco2,&lt;/P&gt;&lt;P&gt;bedat TYPE ekko-bedat,&lt;/P&gt;&lt;P&gt;ebelp TYPE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;txz01 TYPE ekpo-txz01,&lt;/P&gt;&lt;P&gt;matnr TYPE ekpo-matnr,&lt;/P&gt;&lt;P&gt;werks TYPE ekpo-werks,&lt;/P&gt;&lt;P&gt;lgort TYPE ekpo-lgort,&lt;/P&gt;&lt;P&gt;menge TYPE ekpo-menge,&lt;/P&gt;&lt;P&gt;knttp TYPE ekpo-knttp,&lt;/P&gt;&lt;P&gt;matkl TYPE ekpo-matkl,&lt;/P&gt;&lt;P&gt;bednr TYPE ekpo-bednr,&lt;/P&gt;&lt;P&gt;afnam TYPE ekpo-afnam,&lt;/P&gt;&lt;P&gt;meins TYPE ekpo-meins,&lt;/P&gt;&lt;P&gt;bpumz TYPE ekpo-bpumz,&lt;/P&gt;&lt;P&gt;bpumn TYPE ekpo-bpumn,&lt;/P&gt;&lt;P&gt;netpr TYPE ekpo-netpr,&lt;/P&gt;&lt;P&gt;peinh TYPE ekpo-peinh,&lt;/P&gt;&lt;P&gt;webaz TYPE ekpo-webaz,&lt;/P&gt;&lt;P&gt;mwskz TYPE ekpo-mwskz,&lt;/P&gt;&lt;P&gt;adrn2 TYPE ekpo-adrn2,&lt;/P&gt;&lt;P&gt;END OF t_head_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF t_sucess,&lt;/P&gt;&lt;P&gt;ebeln TYPE ekko-ebeln,&lt;/P&gt;&lt;P&gt;END OF t_sucess.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF t_ekko_ekpo,&lt;/P&gt;&lt;P&gt;ebeln TYPE ekko-ebeln,&lt;/P&gt;&lt;P&gt;lifnr TYPE ekko-lifnr,&lt;/P&gt;&lt;P&gt;inco1 TYPE ekko-inco1,&lt;/P&gt;&lt;P&gt;inco2 TYPE ekko-inco2,&lt;/P&gt;&lt;P&gt;zterm TYPE ekko-zterm,&lt;/P&gt;&lt;P&gt;ebelp TYPE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;matnr TYPE ekpo-matnr,&lt;/P&gt;&lt;P&gt;END OF t_ekko_ekpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_err_log,&lt;/P&gt;&lt;P&gt;ebeln TYPE ebeln, " Purchase order no.&lt;/P&gt;&lt;P&gt;bstpo TYPE bstpo, " Purchase order line item&lt;/P&gt;&lt;P&gt;etenr TYPE etenr, " Schedule line&lt;/P&gt;&lt;P&gt;err_val(20) TYPE c, " Error value&lt;/P&gt;&lt;P&gt;err_msg(100) TYPE c, " Error message&lt;/P&gt;&lt;P&gt;pogr_err(1) TYPE c, " If 'X' indicates PO creation error,&lt;/P&gt;&lt;P&gt;" else, indicates GR creation error&lt;/P&gt;&lt;P&gt;END OF t_err_log.&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;&lt;P&gt;Variables declarations. &lt;/P&gt;&lt;P&gt;DATA : v_ebeln TYPE ekko-ebeln, "PO Number&lt;/P&gt;&lt;P&gt;v_bsart TYPE ekko-bsart,&lt;/P&gt;&lt;P&gt;v_ekorg TYPE ekko-ekorg, "Purchasing Organization&lt;/P&gt;&lt;P&gt;v_ekgrp TYPE ekko-ekgrp, "Purchasing group&lt;/P&gt;&lt;P&gt;v_lifnr TYPE ekko-lifnr, "Vendor Number&lt;/P&gt;&lt;P&gt;v_werks TYPE ekpo-werks, "Plant&lt;/P&gt;&lt;P&gt;v_matnr TYPE ekpo-matnr, "Material Number&lt;/P&gt;&lt;P&gt;v_infnr TYPE ekpo-infnr. "Agreement&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;&lt;P&gt;Constants declarations. &lt;/P&gt;&lt;P&gt;CONSTANTS: c_bstyp TYPE ekpo-bstyp VALUE 'K',&lt;/P&gt;&lt;P&gt;c_bstyp1 TYPE ekpo-bstyp VALUE 'F',&lt;/P&gt;&lt;P&gt;c_x VALUE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;D A T A D E C L A R A T I O N S FOR BAPI &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI structure for Purchase Order Header Data&lt;/P&gt;&lt;P&gt;DATA : x_poheader TYPE bapimepoheader,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI structure for Purchase Order Header Data (Change Toolbar)&lt;/P&gt;&lt;P&gt;x_poheaderx TYPE bapimepoheaderx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI structure for Purchase Order Item Data&lt;/P&gt;&lt;P&gt;x_poitem TYPE bapimepoitem,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI structure for Purchase Order Item Data (Change Toolbar)&lt;/P&gt;&lt;P&gt;x_poitemx TYPE bapimepoitemx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI structure for messages&lt;/P&gt;&lt;P&gt;x_return TYPE bapiret2,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-Structure for the error log&lt;/P&gt;&lt;P&gt;x_err_log TYPE t_err_log,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI structure for Purchase Order Account assignment Data&lt;/P&gt;&lt;P&gt;x_poaccount TYPE bapimepoaccount,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI structure for Purchase Order Account assignment&lt;/P&gt;&lt;P&gt;**-Data (Change Toolbar)&lt;/P&gt;&lt;P&gt;x_poaccountx TYPE bapimepoaccountx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*ADDRESS&lt;/P&gt;&lt;P&gt;x_deliveryaddr TYPE bapimepoaddrdelivery.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI internal table containing purchase order item&lt;/P&gt;&lt;P&gt;DATA : it_poitem TYPE STANDARD TABLE OF bapimepoitem,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI internal table containing PO item data (Change Toolbar)&lt;/P&gt;&lt;P&gt;it_poitemx TYPE STANDARD TABLE OF bapimepoitemx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI Return table containing messages&lt;/P&gt;&lt;P&gt;it_return TYPE STANDARD TABLE OF bapiret2,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI internal table containing Account Assignment Fields for PO&lt;/P&gt;&lt;P&gt;it_poaccount TYPE STANDARD TABLE OF bapimepoaccount,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-BAPI internal table containing Account Assignment Fields&lt;/P&gt;&lt;P&gt;**-in Purchase Order (Change Toolbar)&lt;/P&gt;&lt;P&gt;it_poaccountx TYPE STANDARD TABLE OF bapimepoaccountx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it_deliveryaddr TYPE STANDARD TABLE OF bapimepoaddrdelivery.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I N T E R N A L T A B L E D E C L E R A T I O N S &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;DATA: it_ekko TYPE STANDARD TABLE OF t_ekko WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;it_ekko_dest TYPE STANDARD TABLE OF t_ekko WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;it_ekpo TYPE STANDARD TABLE OF t_ekpo WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;it_head_item TYPE STANDARD TABLE OF t_head_item WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;it_ekko_ekpo TYPE STANDARD TABLE OF t_ekko_ekpo WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;it_sucess TYPE STANDARD TABLE OF t_sucess WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;it_contract TYPE STANDARD TABLE OF t_sucess WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;**-Internal table containing error messages&lt;/P&gt;&lt;P&gt;it_err_log TYPE STANDARD TABLE OF t_err_log.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;S E L E C T I O N S C R E E N &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="------------------------------------------------------------------" /&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;Selection criteria &lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:s_ebeln FOR ekko-ebeln, "PO Number&lt;/P&gt;&lt;P&gt;s_bsart FOR ekko-bsart DEFAULT 'ZHBV', "PO Type&lt;/P&gt;&lt;P&gt;s_aedat FOR ekko-aedat DEFAULT sy-datum, "Creation Date&lt;/P&gt;&lt;P&gt;s_ekorg FOR ekko-ekorg, "Purchasing Organization&lt;/P&gt;&lt;P&gt;s_ekgrp FOR ekko-ekgrp, "Purchasing group&lt;/P&gt;&lt;P&gt;s_lifnr FOR ekko-lifnr, "Vendor Number&lt;/P&gt;&lt;P&gt;s_werks FOR ekpo-werks, "Plant&lt;/P&gt;&lt;P&gt;s_matnr FOR ekpo-matnr, "Material Number&lt;/P&gt;&lt;P&gt;s_infnr FOR ekpo-infnr. "Agreement&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.&lt;/P&gt;&lt;P&gt;PARAMETERS :p_bukrs LIKE ekko-bukrs DEFAULT '9040', "Company Code&lt;/P&gt;&lt;P&gt;p_werks LIKE ekpo-werks DEFAULT '7040', "Plant&lt;/P&gt;&lt;P&gt;p_ekorg LIKE ekko-ekorg DEFAULT '9040', "Purchasing Organization&lt;/P&gt;&lt;P&gt;p_ekgrp LIKE ekko-ekgrp DEFAULT '031', "Purchasing group&lt;/P&gt;&lt;P&gt;p_bsart1 LIKE ekko-bsart DEFAULT 'ZHIH'. "PO Type&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A T S E L E C T I O N - S C R E E N &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;AT SELECTION-SCREEN.&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;&lt;P&gt;Validating the Selection Screen inputs. &lt;/P&gt;&lt;P&gt;PERFORM validate_user_input.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;S T A R T - O F - S E L E C T I O N &lt;/P&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Getting data from table EKKO. &lt;/P&gt;&lt;P&gt;PERFORM get_purchase_order.&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;&lt;P&gt;Getting data from table EKKO &lt;/P&gt;&lt;P&gt;PERFORM get_po_created.&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;&lt;P&gt;Getting data from table EKKO &amp;amp; EKPO &lt;/P&gt;&lt;P&gt;PERFORM get_contract_num.&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;&lt;P&gt;Creating the PO. &lt;/P&gt;&lt;P&gt;PERFORM create_po.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;E N D - O F - S E L E C T I O N &lt;/P&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Display PO which are already created &lt;/P&gt;&lt;P&gt;PERFORM display_createdpo_rept.&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;&lt;P&gt;Display PO which doesnt have contract numbers &lt;/P&gt;&lt;P&gt;PERFORM display_contract_rept.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;PERFORM page_heading.&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form VALIDATE_USER_INPUT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Form to validate user inputs at Selection Screen. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM validate_user_input .&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;&lt;P&gt;Validating Purchasing Document Number &lt;/P&gt;&lt;P&gt;IF NOT s_ebeln[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT ebeln&lt;/P&gt;&lt;P&gt;INTO v_ebeln&lt;/P&gt;&lt;P&gt;FROM ekko&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE ebeln IN s_ebeln.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid Purchasing Document Number'(004).&lt;/P&gt;&lt;P&gt;ENDIF.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Validating Purchasing Document Type &lt;/P&gt;&lt;P&gt;IF NOT s_bsart[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT bsart&lt;/P&gt;&lt;P&gt;INTO v_bsart&lt;/P&gt;&lt;P&gt;FROM t161&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE bsart IN s_bsart.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid Purchasing Document Type'(005).&lt;/P&gt;&lt;P&gt;ENDIF.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Validating Purchasing org &lt;/P&gt;&lt;P&gt;IF NOT s_ekorg[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT ekorg&lt;/P&gt;&lt;P&gt;INTO v_ekorg&lt;/P&gt;&lt;P&gt;FROM t024e&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE ekorg IN s_ekorg.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid Purchasing Organization'(006).&lt;/P&gt;&lt;P&gt;ENDIF.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Validating Purchasing group &lt;/P&gt;&lt;P&gt;IF NOT s_ekgrp[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT ekgrp&lt;/P&gt;&lt;P&gt;INTO v_ekgrp&lt;/P&gt;&lt;P&gt;FROM t024&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE ekgrp IN s_ekgrp.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid Purchasing Group'(007).&lt;/P&gt;&lt;P&gt;ENDIF.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Validating Vendor's account number &lt;/P&gt;&lt;P&gt;IF NOT s_lifnr[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT lifnr&lt;/P&gt;&lt;P&gt;INTO v_lifnr&lt;/P&gt;&lt;P&gt;FROM lfa1&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE lifnr IN s_lifnr.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid Vendor account number'(008).&lt;/P&gt;&lt;P&gt;ENDIF.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Validating Plant &lt;/P&gt;&lt;P&gt;IF NOT s_werks[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT werks&lt;/P&gt;&lt;P&gt;INTO v_werks&lt;/P&gt;&lt;P&gt;FROM t001w&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE werks IN s_werks.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid Plant'(009).&lt;/P&gt;&lt;P&gt;ENDIF.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Validating Material &lt;/P&gt;&lt;P&gt;IF NOT s_matnr[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT matnr&lt;/P&gt;&lt;P&gt;INTO v_matnr&lt;/P&gt;&lt;P&gt;FROM mara&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE matnr IN s_matnr.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid Material Number'(010).&lt;/P&gt;&lt;P&gt;ENDIF.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Validating info record(Agreement) &lt;/P&gt;&lt;P&gt;IF NOT s_infnr[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT infnr&lt;/P&gt;&lt;P&gt;INTO v_infnr&lt;/P&gt;&lt;P&gt;FROM eina&lt;/P&gt;&lt;P&gt;UP TO 1 ROWS&lt;/P&gt;&lt;P&gt;WHERE infnr IN s_infnr.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;MESSAGE e000 WITH 'Invalid purchasing info record'(011).&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " VALIDATE_USER_INPUT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form GET_PURCHASE_ORDER&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Form to fetch data required from table EKKO &amp;amp; EKPO into internal table. &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM get_purchase_order.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH it_head_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Getting data from table EKKO &amp;amp; EKPO. &lt;/P&gt;&lt;P&gt;SELECT a~ebeln&lt;/P&gt;&lt;P&gt;a~bukrs&lt;/P&gt;&lt;P&gt;a~bsart&lt;/P&gt;&lt;P&gt;a~aedat&lt;/P&gt;&lt;P&gt;a~ernam&lt;/P&gt;&lt;P&gt;a~lifnr&lt;/P&gt;&lt;P&gt;a~ekorg&lt;/P&gt;&lt;P&gt;a~ekgrp&lt;/P&gt;&lt;P&gt;a~spras&lt;/P&gt;&lt;P&gt;a~pincr&lt;/P&gt;&lt;P&gt;a~zterm&lt;/P&gt;&lt;P&gt;a~waers&lt;/P&gt;&lt;P&gt;a~inco1&lt;/P&gt;&lt;P&gt;a~inco2&lt;/P&gt;&lt;P&gt;a~bedat&lt;/P&gt;&lt;P&gt;b~ebelp&lt;/P&gt;&lt;P&gt;b~txz01&lt;/P&gt;&lt;P&gt;b~matnr&lt;/P&gt;&lt;P&gt;b~werks&lt;/P&gt;&lt;P&gt;b~lgort&lt;/P&gt;&lt;P&gt;b~menge&lt;/P&gt;&lt;P&gt;b~knttp&lt;/P&gt;&lt;P&gt;b~matkl&lt;/P&gt;&lt;P&gt;b~bednr&lt;/P&gt;&lt;P&gt;b~afnam&lt;/P&gt;&lt;P&gt;b~meins&lt;/P&gt;&lt;P&gt;b~bpumz&lt;/P&gt;&lt;P&gt;b~bpumn&lt;/P&gt;&lt;P&gt;b~netpr&lt;/P&gt;&lt;P&gt;b~peinh&lt;/P&gt;&lt;P&gt;b~webaz&lt;/P&gt;&lt;P&gt;b~mwskz&lt;/P&gt;&lt;P&gt;b~adrn2&lt;/P&gt;&lt;P&gt;INTO TABLE it_head_item&lt;/P&gt;&lt;P&gt;FROM ekko AS a&lt;/P&gt;&lt;P&gt;INNER JOIN ekpo AS b&lt;/P&gt;&lt;P&gt;ON a&lt;SUB&gt;ebeln = b&lt;/SUB&gt;ebeln&lt;/P&gt;&lt;P&gt;WHERE a~ebeln IN s_ebeln&lt;/P&gt;&lt;P&gt;AND a~bsart IN s_bsart&lt;/P&gt;&lt;P&gt;AND a~aedat IN s_aedat&lt;/P&gt;&lt;P&gt;AND a~ekgrp IN s_ekgrp&lt;/P&gt;&lt;P&gt;AND a~ekorg IN s_ekorg&lt;/P&gt;&lt;P&gt;AND a~lifnr IN s_lifnr&lt;/P&gt;&lt;P&gt;AND a~loekz c_x&lt;/P&gt;&lt;P&gt;AND b~werks IN s_werks&lt;/P&gt;&lt;P&gt;AND b~matnr IN s_matnr&lt;/P&gt;&lt;P&gt;AND b~infnr IN s_infnr&lt;/P&gt;&lt;P&gt;AND b~loekz c_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;SORT it_head_item BY ebeln.&lt;/P&gt;&lt;P&gt;LOOP AT it_head_item.&lt;/P&gt;&lt;P&gt;it_head_item-ebeln+0(1) = 'I'.&lt;/P&gt;&lt;P&gt;MODIFY it_head_item INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;MESSAGE i000 WITH 'No Purchase Order is possible for creation'(003).&lt;/P&gt;&lt;P&gt;STOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " GET_PURCHASE_ORDER&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form GET_PO_CREATED&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Form to fetch data required from table EKKO into internal table. &lt;/P&gt;&lt;P&gt;Delete those records which are already created &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM get_po_created .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--fetch data from table EKKO into internal table&lt;/P&gt;&lt;P&gt;*--Where Docu type = 'ZHIH'&lt;/P&gt;&lt;P&gt;IF NOT it_head_item[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT a~ebeln&lt;/P&gt;&lt;P&gt;a~bukrs&lt;/P&gt;&lt;P&gt;a~bsart&lt;/P&gt;&lt;P&gt;a~aedat&lt;/P&gt;&lt;P&gt;a~ernam&lt;/P&gt;&lt;P&gt;a~lifnr&lt;/P&gt;&lt;P&gt;a~ekorg&lt;/P&gt;&lt;P&gt;a~ekgrp&lt;/P&gt;&lt;P&gt;a~spras&lt;/P&gt;&lt;P&gt;b~werks&lt;/P&gt;&lt;P&gt;INTO TABLE it_ekko_dest&lt;/P&gt;&lt;P&gt;FROM ekko AS a&lt;/P&gt;&lt;P&gt;INNER JOIN ekpo AS b&lt;/P&gt;&lt;P&gt;ON a&lt;SUB&gt;ebeln = b&lt;/SUB&gt;ebeln&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN it_head_item&lt;/P&gt;&lt;P&gt;WHERE a~ebeln = it_head_item-ebeln&lt;/P&gt;&lt;P&gt;AND a~bsart = p_bsart1&lt;/P&gt;&lt;P&gt;AND a~bukrs = p_bukrs&lt;/P&gt;&lt;P&gt;AND b~werks = p_werks&lt;/P&gt;&lt;P&gt;AND b~bstyp = c_bstyp1&lt;/P&gt;&lt;P&gt;AND a~ekorg = p_ekorg&lt;/P&gt;&lt;P&gt;AND a~ekgrp = p_ekgrp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;SORT it_ekko_dest BY ebeln.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Move all the PO numbers into sucess internal table&lt;/P&gt;&lt;P&gt;*--if the PO was already created&lt;/P&gt;&lt;P&gt;LOOP AT it_ekko_dest.&lt;/P&gt;&lt;P&gt;MOVE it_ekko_dest-ebeln TO it_sucess-ebeln.&lt;/P&gt;&lt;P&gt;APPEND it_sucess.&lt;/P&gt;&lt;P&gt;CLEAR it_sucess.&lt;/P&gt;&lt;P&gt;DELETE it_head_item WHERE ebeln = it_ekko_dest-ebeln.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR it_head_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF it_head_item[] IS INITIAL.&lt;/P&gt;&lt;P&gt;MESSAGE i000 WITH 'No Purchase Order is possible for creation'(003).&lt;/P&gt;&lt;P&gt;STOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " GET_PO_CREATED&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form GET_CONTRACT_NUM&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM get_contract_num .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*--Select the data to get contract number&lt;/P&gt;&lt;P&gt;IF NOT it_head_item[] IS INITIAL.&lt;/P&gt;&lt;P&gt;SELECT a~ebeln "contract numbers&lt;/P&gt;&lt;P&gt;a~lifnr&lt;/P&gt;&lt;P&gt;a~inco1 "Incoterm1&lt;/P&gt;&lt;P&gt;a~inco2 "incoterm2&lt;/P&gt;&lt;P&gt;a~zterm&lt;/P&gt;&lt;P&gt;b~ebelp&lt;/P&gt;&lt;P&gt;b~matnr&lt;/P&gt;&lt;P&gt;INTO TABLE it_ekko_ekpo&lt;/P&gt;&lt;P&gt;FROM ekko AS a&lt;/P&gt;&lt;P&gt;INNER JOIN ekpo AS b&lt;/P&gt;&lt;P&gt;ON a&lt;SUB&gt;ebeln = b&lt;/SUB&gt;ebeln&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN it_head_item&lt;/P&gt;&lt;P&gt;WHERE b~matnr = it_head_item-matnr&lt;/P&gt;&lt;P&gt;AND a~bukrs = p_bukrs " Company code&lt;/P&gt;&lt;P&gt;AND a~ekorg = p_ekorg " Purchase org&lt;/P&gt;&lt;P&gt;AND a~loekz c_x " Deletion indicator for header data&lt;/P&gt;&lt;P&gt;AND a~kdatb &amp;lt;= sy-datum " Validity period start&lt;/P&gt;&lt;P&gt;AND a~kdate &amp;gt;= sy-datum " Validity period end&lt;/P&gt;&lt;P&gt;AND b~loekz &amp;lt;&amp;gt; c_x " Deletion indicator for item data&lt;/P&gt;&lt;P&gt;AND b~bstyp = c_bstyp. " Purch. doc. category&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;SORT it_ekko_ekpo BY matnr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;LOOP AT it_head_item.&lt;/P&gt;&lt;P&gt;READ TABLE it_ekko_ekpo WITH KEY matnr = it_head_item-matnr&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;move the data to the internal table &lt;/P&gt;&lt;P&gt;which doesnt have contract number &lt;/P&gt;&lt;P&gt;it_contract-ebeln = it_head_item-ebeln.&lt;/P&gt;&lt;P&gt;APPEND it_contract.&lt;/P&gt;&lt;P&gt;CLEAR it_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;Deleting the record &lt;/P&gt;&lt;P&gt;which doesnt have any contract number &lt;/P&gt;&lt;P&gt;DELETE it_head_item WHERE ebeln = it_head_item-ebeln.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;CLEAR it_head_item.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF it_head_item[] IS INITIAL.&lt;/P&gt;&lt;P&gt;MESSAGE i000 WITH 'No Purchase Order is possible for creation'(003).&lt;/P&gt;&lt;P&gt;STOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " GET_CONTRACT_NUM&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form CREATE_PO&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE PURCHASE ORDER &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM create_po .&lt;/P&gt;&lt;P&gt;DATA: l_ret_msg(1000) TYPE c. " Success/Error message from BAPI&lt;/P&gt;&lt;P&gt;CLEAR: x_poheader, x_poheaderx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT it_head_item BY ebeln.&lt;/P&gt;&lt;P&gt;LOOP AT it_head_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT NEW ebeln.&lt;/P&gt;&lt;P&gt;READ TABLE it_head_item WITH KEY ebeln = it_head_item-ebeln.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;**-Populate PO Header structure&lt;/P&gt;&lt;P&gt;x_poheader-po_number = it_head_item-ebeln. " PO no.&lt;/P&gt;&lt;P&gt;x_poheader-comp_code = p_bukrs. " Company code&lt;/P&gt;&lt;P&gt;x_poheader-doc_type = p_bsart1. " Document type&lt;/P&gt;&lt;P&gt;x_poheader-creat_date = it_head_item-aedat. " Date created&lt;/P&gt;&lt;P&gt;x_poheader-created_by = it_head_item-ernam. " Created by&lt;/P&gt;&lt;P&gt;READ TABLE it_ekko_ekpo WITH KEY matnr = it_head_item-matnr&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;x_poheader-vendor = it_ekko_ekpo-lifnr. " Vendor no.&lt;/P&gt;&lt;P&gt;x_poheader-incoterms1 = it_ekko_ekpo-inco1. " Incoterms1&lt;/P&gt;&lt;P&gt;x_poheader-incoterms2 = it_ekko_ekpo-inco2. " Incoterms2&lt;/P&gt;&lt;P&gt;x_poheader-pmnttrms = it_ekko_ekpo-zterm. " Payment terms&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;x_poheader-langu = sy-langu. " Language key&lt;/P&gt;&lt;P&gt;x_poheader-langu_iso = sy-langu. " Language key iso&lt;/P&gt;&lt;P&gt;x_poheader-purch_org = p_ekorg. " Purchasing org.&lt;/P&gt;&lt;P&gt;x_poheader-pur_group = p_ekgrp. " Purch. Group&lt;/P&gt;&lt;P&gt;x_poheader-currency = it_head_item-waers. " currency&lt;/P&gt;&lt;P&gt;x_poheader-currency_iso = it_head_item-waers. " currency iso&lt;/P&gt;&lt;P&gt;x_poheader-doc_date = it_head_item-bedat. " Doc date&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-Populate PO Header 'X' structure&lt;/P&gt;&lt;P&gt;x_poheaderx-po_number = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-comp_code = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-doc_type = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-creat_date = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-created_by = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-vendor = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-langu = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-langu_iso = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-pmnttrms = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-purch_org = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-pur_group = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-currency = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-currency_iso = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-doc_date = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-incoterms1 = c_x.&lt;/P&gt;&lt;P&gt;x_poheaderx-incoterms2 = c_x.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE it_ekko_ekpo WITH KEY matnr = it_head_item-matnr&lt;/P&gt;&lt;P&gt;BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;x_poitem-po_item = it_ekko_ekpo-ebelp. " PO Item no.&lt;/P&gt;&lt;P&gt;x_poitem-agreement = it_ekko_ekpo-ebeln. " Agreement NO&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;x_poitem-short_text = it_head_item-txz01. " Item description&lt;/P&gt;&lt;P&gt;x_poitem-material = it_head_item-matnr. " Material no.&lt;/P&gt;&lt;P&gt;x_poitem-plant = p_werks. " Plant&lt;/P&gt;&lt;P&gt;x_poitem-stge_loc = p_werks. " Storage Loc&lt;/P&gt;&lt;P&gt;x_poitem-matl_group = it_head_item-matkl. " Material group&lt;/P&gt;&lt;P&gt;x_poitem-quantity = it_head_item-menge. " Ordered qty.&lt;/P&gt;&lt;P&gt;x_poitem-po_unit = it_head_item-meins. " Order unit&lt;/P&gt;&lt;P&gt;x_poitem-po_unit_iso = it_head_item-meins. " Order unit&lt;/P&gt;&lt;P&gt;x_poitem-net_price = it_head_item-netpr. " Net price&lt;/P&gt;&lt;P&gt;x_poitem-price_unit = it_head_item-peinh. " price per unit&lt;/P&gt;&lt;P&gt;x_poitem-tax_code = it_head_item-mwskz. " Tax Code&lt;/P&gt;&lt;P&gt;x_poitem-acctasscat = it_head_item-knttp. " Account ass cata&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND x_poitem TO it_poitem.&lt;/P&gt;&lt;P&gt;CLEAR x_poitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-Populate PO Item 'X' structure&lt;/P&gt;&lt;P&gt;x_poitemx-po_item = it_ekko_ekpo-ebelp. " PO Item no.&lt;/P&gt;&lt;P&gt;x_poitemx-po_itemx = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-short_text = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-material = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-plant = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-stge_loc = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-agreement = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-matl_group = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-quantity = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-po_unit = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-po_unit_iso = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-net_price = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-price_unit = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-tax_code = c_x.&lt;/P&gt;&lt;P&gt;x_poitemx-acctasscat = c_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND x_poitemx TO it_poitemx.&lt;/P&gt;&lt;P&gt;CLEAR x_poitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;x_deliveryaddr-po_item = it_ekko_ekpo-ebelp.&lt;/P&gt;&lt;P&gt;x_deliveryaddr-addr_no = it_head_item-adrn2.&lt;/P&gt;&lt;P&gt;APPEND x_deliveryaddr TO it_deliveryaddr.&lt;/P&gt;&lt;P&gt;CLEAR x_deliveryaddr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT END OF ebeln.&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 = x_poheader&lt;/P&gt;&lt;P&gt;poheaderx = x_poheaderx&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;return = it_return&lt;/P&gt;&lt;P&gt;poitem = it_poitem&lt;/P&gt;&lt;P&gt;poitemx = it_poitemx&lt;/P&gt;&lt;P&gt;poaddrdelivery = it_deliveryaddr.&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;REFRESH : it_poitemx,it_poitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; x_poheader-po_number.&lt;/P&gt;&lt;P&gt;LOOP AT it_return INTO x_return.&lt;/P&gt;&lt;P&gt;WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; x_return-type,&lt;/P&gt;&lt;P&gt;20 x_return-message.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH : it_poitemx,it_poitem,it_deliveryaddr,it_return.&lt;/P&gt;&lt;P&gt;CLEAR: x_poheader,x_poheaderx,x_poitem,x_poitemx,x_deliveryaddr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " CREATE_PO&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form display_createdpo_rept&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM display_createdpo_rept .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-Column headings&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;WRITE:/1(100) sy-uline.&lt;/P&gt;&lt;P&gt;WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;30 'List of PO already created',&lt;/P&gt;&lt;P&gt;100 sy-vline.&lt;/P&gt;&lt;P&gt;FORMAT INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;FORMAT RESET.&lt;/P&gt;&lt;P&gt;WRITE:/1(100) sy-uline.&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;&lt;P&gt;Display PO created sucess report &lt;/P&gt;&lt;P&gt;LOOP AT it_sucess.&lt;/P&gt;&lt;P&gt;WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;15 'Purchase Order NO:',&lt;/P&gt;&lt;P&gt;40 it_sucess-ebeln,&lt;/P&gt;&lt;P&gt;100 sy-vline.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;2(99) sy-uline,&lt;/P&gt;&lt;P&gt;100 sy-vline.&lt;/P&gt;&lt;P&gt;ENDFORM. " display_createdpo_rept&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form display_contract_rept&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM display_contract_rept .&lt;/P&gt;&lt;P&gt;SKIP 3.&lt;/P&gt;&lt;P&gt;**-Column headings&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;WRITE:/1(100) sy-uline.&lt;/P&gt;&lt;P&gt;WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;30 'List of Contract Numbers',&lt;/P&gt;&lt;P&gt;100 sy-vline.&lt;/P&gt;&lt;P&gt;FORMAT INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;FORMAT RESET.&lt;/P&gt;&lt;P&gt;WRITE:/1(100) sy-uline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT it_contract.&lt;/P&gt;&lt;P&gt;WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;15 'Purchase Order NO:',&lt;/P&gt;&lt;P&gt;40 it_contract-ebeln,&lt;/P&gt;&lt;P&gt;100 sy-vline.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;2(99) sy-uline,&lt;/P&gt;&lt;P&gt;100 sy-vline.&lt;/P&gt;&lt;P&gt;ENDFORM. " display_contract_rept&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;**&amp;amp; Form RETURN_MESSAGES&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text &lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*FORM return_messages .&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*ENDFORM. " RETURN_MESSAGES&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form PAGE_HEADING&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------------" /&gt;&lt;P&gt;FORM page_heading .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**-List heading&lt;/P&gt;&lt;P&gt;FORMAT COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;WRITE:/1(100) sy-uline.&lt;/P&gt;&lt;P&gt;WRITE:/1 sy-vline,&lt;/P&gt;&lt;P&gt;40 'Summary Report',&lt;/P&gt;&lt;P&gt;100 sy-vline.&lt;/P&gt;&lt;P&gt;FORMAT INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;FORMAT RESET.&lt;/P&gt;&lt;P&gt;WRITE:/1(100) sy-uline.&lt;/P&gt;&lt;P&gt;SKIP 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " PAGE_HEADING&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Reward if helpful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Apr 2008 08:24:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1-qty-conversion-error/m-p/3665267#M882805</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-14T08:24:32Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CREATE1 - qty conversion error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1-qty-conversion-error/m-p/3665268#M882806</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi shiva,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i tried changing the type of the variable like the one used in the bapi but it still doesnt work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i am using an upload file for my input, the field has a number format.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Apr 2008 09:13:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1-qty-conversion-error/m-p/3665268#M882806</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-15T09:13:26Z</dc:date>
    </item>
    <item>
      <title>Re: BAPI_PO_CREATE1 - qty conversion error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1-qty-conversion-error/m-p/3665269#M882807</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;u declare quantity using CHARECTER.&lt;/P&gt;&lt;P&gt;pl check  u are passing the following values..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF g_poitemx OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapimepoitemx.&lt;/P&gt;&lt;P&gt;DATA: END OF g_poitemx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      g_poitemx-po_item = it_itab-po_item.&lt;/P&gt;&lt;P&gt;      g_poitemx-po_itemx = 'X'.&lt;/P&gt;&lt;P&gt;      g_poitemx-plant = 'X'.&lt;/P&gt;&lt;P&gt;      g_poitemx-stge_loc = 'X'.&lt;/P&gt;&lt;P&gt;      g_poitemx-material = 'X'.&lt;/P&gt;&lt;P&gt;      g_poitemx-quantity = 'X'. &lt;/P&gt;&lt;P&gt;      APPEND g_poitemx.&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                     = g_bapimepoheader&lt;/P&gt;&lt;P&gt;        poheaderx                    = g_bapimepoheaderx&lt;/P&gt;&lt;P&gt;     IMPORTING&lt;/P&gt;&lt;P&gt;       exppurchaseorder             = g_ebeln&lt;/P&gt;&lt;P&gt;     TABLES&lt;/P&gt;&lt;P&gt;       return                       = g_bapiret2&lt;/P&gt;&lt;P&gt;       poitem                       = g_bapimepoitem&lt;/P&gt;&lt;P&gt;       poitemx                      = g_poitemx&lt;/P&gt;&lt;P&gt;       poschedule                   = g_bapimeposchedule&lt;/P&gt;&lt;P&gt;       poschedulex                  = g_poschedulex&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;Sugumar G&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 15 Apr 2008 10:18:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bapi-po-create1-qty-conversion-error/m-p/3665269#M882807</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-15T10:18:50Z</dc:date>
    </item>
  </channel>
</rss>

