You are on page 1of 12

*&---------------------------------------------------------------------* *& Report ZRTP_PO_CREATE *& *&---------------------------------------------------------------------* *sno, DOC_TYPE , VENDOR , DOC_DATE ,PURCH_ORG , PUR_GROUP, COMP_CODE , *PMNTTRMS , INCOTERMS1

*INCOTERMS2, CURRENCY ,REF_1, OUR_REF, VPER_START, VPER_END,PO_ITEM, *ACCTASSCAT, ITEM_CAT *MATERIAL , SHORT_TEXT, NET_PRICE , QUANTITY ,PO_UNIT , DELIVERY_DATE *,PLANT , PREQ_NAME *IR_IND ,GR_BASEDIV,TAX_CODE , ASSET_NO , COSTCENTER, GL_ACCOUNT, *ORDERID , CONF_CTRL*& *& *&---------------------------------------------------------------------* REPORT ZRTP_PO_CREATE. *----------------------------------------------------------------------* * TYPE-POOLS * *----------------------------------------------------------------------* TYPE-POOLS: TRUXS, SLIS. *----------------------------------------------------------------------* * ALV DECLARATIONS * *----------------------------------------------------------------------* DATA: I_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE, W_LAYOUT TYPE SLIS_LAYOUT_ALV. TYPES : BEGIN OF TY_UPLOAD, SNO(5), DOC_TYPE TYPE BAPIMEPOHEADER-DOC_TYPE, VENDOR TYPE BAPIMEPOHEADER-VENDOR, DOC_DATE TYPE BAPIMEPOHEADER-DOC_DATE, PURCH_ORG TYPE BAPIMEPOHEADER-PURCH_ORG, PUR_GROUP TYPE BAPIMEPOHEADER-PUR_GROUP, COMP_CODE TYPE BAPIMEPOHEADER-COMP_CODE, PMNTTRMS TYPE BAPIMEPOHEADER-PMNTTRMS, INCOTERMS1 TYPE BAPIMEPOHEADER-INCOTERMS1, INCOTERMS2 TYPE BAPIMEPOHEADER-INCOTERMS2, CURRENCY TYPE BAPIMEPOHEADER-CURRENCY, REF_1 TYPE BAPIMEPOHEADER-REF_1, OUR_REF TYPE BAPIMEPOHEADER-OUR_REF, VPER_START TYPE BAPIMEPOHEADER-VPER_START, VPER_END TYPE BAPIMEPOHEADER-VPER_END, PO_ITEM TYPE BAPIMEPOITEM-PO_ITEM, ACCTASSCAT TYPE BAPIMEPOITEM-ACCTASSCAT, "Account Assig ITEM_CAT TYPE BAPIMEPOITEM-ITEM_CAT, "Item Category MATERIAL TYPE BAPIMEPOITEM-MATERIAL, SHORT_TEXT TYPE BAPIMEPOITEM-SHORT_TEXT, NET_PRICE TYPE BAPIMEPOITEM-NET_PRICE, QUANTITY TYPE BAPIMEPOITEM-QUANTITY, PO_UNIT TYPE BAPIMEPOITEM-PO_UNIT, DELIVERY_DATE TYPE BAPIMEPOSCHEDULE-DELIVERY_DATE,"Delivery Date PLANT TYPE BAPIMEPOITEM-PLANT, PREQ_NAME TYPE BAPIMEPOITEM-PREQ_NAME, "Requistioner IR_IND TYPE BAPIMEPOITEM-IR_IND, GR_BASEDIV TYPE BAPIMEPOITEM-GR_BASEDIV, TAX_CODE TYPE BAPIMEPOITEM-TAX_CODE,

ASSET_NO COSTCENTER ORDERID GL_ACCOUNT CONF_CTRL MATL_GROUP

TYPE BAPIMEPOACCOUNT-ASSET_NO, TYPE BAPIMEPOACCOUNT-COSTCENTER, TYPE BAPIMEPOACCOUNT-ORDERID, TYPE BAPIMEPOACCOUNT-GL_ACCOUNT, TYPE BAPIMEPOITEM-CONF_CTRL, TYPE BAPIMEPOITEM-MATL_GROUP,

END OF TY_UPLOAD. DATA : BEGIN OF I_MESSAGE OCCURS 0, SNO(5), TYPE TYPE BAPIRET2-TYPE, ID TYPE BAPIRET2-ID, NUMBER TYPE BAPIRET2-NUMBER, MESSAGE TYPE BAPIRET2-MESSAGE, END OF I_MESSAGE. DATA : WA_MESSAGE LIKE I_MESSAGE. DATA : I_RAW TYPE TRUXS_T_TEXT_DATA. DATA : I_UPLOAD TYPE TABLE OF TY_UPLOAD WITH HEADER LINE, WA_UPLOAD TYPE TY_UPLOAD. DATA : I_UPLOAD1 TYPE TABLE OF TY_UPLOAD WITH HEADER LINE, WA_UPLOAD1 TYPE TY_UPLOAD. DATA : I_BAPIMEPOITEM TYPE TABLE OF BAPIMEPOITEM WITH HEADER LINE, WA_BAPIMEPOITEM TYPE BAPIMEPOITEM, I_BAPIMEPOITEMX TYPE TABLE OF BAPIMEPOITEMX WITH HEADER LINE, WA_BAPIMEPOITEMX TYPE BAPIMEPOITEMX, * i_BAPIMEPOITEMX TYPE TABLE OF BAPIMEPOITEMX with header line, I_BAPIMEPOSCHEDULE TYPE TABLE OF BAPIMEPOSCHEDULE WITH HEADER LINE, WA_BAPIMEPOSCHEDULE TYPE BAPIMEPOSCHEDULE, I_BAPIMEPOSCHEDULX TYPE TABLE OF BAPIMEPOSCHEDULX WITH HEADER LINE, I_BAPIMEPOACCOUNT TYPE TABLE OF BAPIMEPOACCOUNT WITH HEADER LINE, WA_BAPIMEPOACCOUNT TYPE BAPIMEPOACCOUNT, WA_BAPIMEPOSCHEDULX TYPE BAPIMEPOSCHEDULX, I_BAPIMEPOACCOUNTX TYPE TABLE OF BAPIMEPOACCOUNTX WITH HEADER LINE, WA_BAPIMEPOACCOUNTX TYPE BAPIMEPOACCOUNTX, I_BAPIMEPOCOND TYPE TABLE OF BAPIMEPOCOND WITH HEADER LINE, WA_BAPIMEPOCOND TYPE BAPIMEPOCOND, I_BAPIMEPOCONDX TYPE TABLE OF BAPIMEPOCONDX WITH HEADER LINE, WA_BAPIMEPOCONDX TYPE BAPIMEPOCONDX. DATA : WA_BAPIMEPOHEADERX LIKE BAPIMEPOHEADERX, WA_BAPIMEPOHEADER LIKE BAPIMEPOHEADER. "WA_BAPIMEPOSCHEDULX LIKE BAPIMEPOSCHEDULX. DATA : IT_TAB TYPE STANDARD TABLE OF ALSMEX_TABLINE , WA_TAB TYPE ALSMEX_TABLINE. DATA: LWA_DATA TYPE TY_UPLOAD, LV_INDEX TYPE SY-TABIX, LV_TABIX TYPE SY-TABIX. data : lv_MAKTX type makt-MAKTX. DATA : I_RETURN TYPE TABLE OF BAPIRET2, WA_RETURN TYPE BAPIRET2.

DATA : S_MSG LIKE BAPIRET2-MESSAGE, E_MSG LIKE BAPIRET2-MESSAGE. DATA : DD(2),MM(2),YY(4). *----------------------------------------------------------------------* * SELECTION SCREEN * *----------------------------------------------------------------------* SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001. PARAMETERS : P_FILE TYPE RLGRAP-FILENAME. SELECTION-SCREEN END OF BLOCK B1. *----------------------------------------------------------------------* * INITIALIZATION * *----------------------------------------------------------------------* INITIALIZATION. REFRESH :I_UPLOAD,I_RAW. CLEAR : WA_UPLOAD. *----------------------------------------------------------------------* * At Selection-Screen * *----------------------------------------------------------------------* AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE. CALL FUNCTION 'F4_FILENAME' EXPORTING PROGRAM_NAME = SYST-CPROG DYNPRO_NUMBER = SYST-DYNNR * FIELD_NAME = ' ' IMPORTING FILE_NAME = P_FILE . *----------------------------------------------------------------------* * Start-Of-Selection * *----------------------------------------------------------------------* START-OF-SELECTION. PERFORM UPLOAD_DATA. *&---------------------------------------------------------------------* *& Form UPLOAD_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM UPLOAD_DATA . CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE' EXPORTING FILENAME = P_FILE I_BEGIN_COL = 1 I_BEGIN_ROW = 2 I_END_COL = 38 I_END_ROW = 1000 TABLES INTERN = IT_TAB EXCEPTIONS INCONSISTENT_PARAMETERS = 1 UPLOAD_OLE = 2 OTHERS = 3. * IF SY-SUBRC <> 0.

* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. * ENDIF. PERFORM TAB_APPND. PERFORM PROCESS_DATA. PERFORM DISPLAY_DATA. ENDFORM. " UPLOAD_DATA *&---------------------------------------------------------------------* *& Form TAB_APPND *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM TAB_APPND . LOOP AT IT_TAB INTO WA_TAB. CASE WA_TAB-COL. WHEN '0001'. WA_UPLOAD-SNO = WA_TAB-VALUE. WHEN '0002'. WA_UPLOAD-DOC_TYPE = WA_TAB-VALUE. WHEN '0003'. WA_UPLOAD-VENDOR = WA_TAB-VALUE. WHEN '0004'. WA_UPLOAD-DOC_DATE = WA_TAB-VALUE. WHEN '0005'. WA_UPLOAD-PURCH_ORG = WA_TAB-VALUE. WHEN '0006'. WA_UPLOAD-PUR_GROUP = WA_TAB-VALUE. WHEN '0007'. WA_UPLOAD-COMP_CODE = WA_TAB-VALUE. WHEN '0008'. WA_UPLOAD-PMNTTRMS = WA_TAB-VALUE. WHEN '0009'. WA_UPLOAD-INCOTERMS1 = WA_TAB-VALUE. WHEN '0010'. WA_UPLOAD-INCOTERMS2 = WA_TAB-VALUE. WHEN '0011'. WA_UPLOAD-CURRENCY = WA_TAB-VALUE. WHEN '0012'. WA_UPLOAD-REF_1 = WA_TAB-VALUE. WHEN '0013'. WA_UPLOAD-OUR_REF = WA_TAB-VALUE. WHEN '0014'. WA_UPLOAD-VPER_START = WA_TAB-VALUE. WHEN '0015'. WA_UPLOAD-VPER_END = WA_TAB-VALUE. WHEN '0016'. WA_UPLOAD-PO_ITEM = WA_TAB-VALUE. WHEN '0017'. WA_UPLOAD-ACCTASSCAT = WA_TAB-VALUE. WHEN '0018'. WA_UPLOAD-ITEM_CAT = WA_TAB-VALUE. WHEN '0019'. WA_UPLOAD-MATERIAL = WA_TAB-VALUE. WHEN '0020'. WA_UPLOAD-SHORT_TEXT = WA_TAB-VALUE.

WHEN '0021'. WA_UPLOAD-NET_PRICE = WA_TAB-VALUE. WHEN '0022'. WA_UPLOAD-QUANTITY = WA_TAB-VALUE. WHEN '0023'. WA_UPLOAD-PO_UNIT = WA_TAB-VALUE. WHEN '0024'. WA_UPLOAD-DELIVERY_DATE = WA_TAB-VALUE. WHEN '0025'. WA_UPLOAD-PLANT = WA_TAB-VALUE. WHEN '0026'. WA_UPLOAD-PREQ_NAME = WA_TAB-VALUE. WHEN '0027'. WA_UPLOAD-IR_IND = WA_TAB-VALUE. WHEN '0028'. WA_UPLOAD-GR_BASEDIV = WA_TAB-VALUE. WHEN '0029'. WA_UPLOAD-TAX_CODE = WA_TAB-VALUE. WHEN '0030'. WA_UPLOAD-ASSET_NO = WA_TAB-VALUE. WHEN '0031'. WA_UPLOAD-COSTCENTER = WA_TAB-VALUE. WHEN '0033'. WA_UPLOAD-GL_ACCOUNT = WA_TAB-VALUE. WHEN '0032'. WA_UPLOAD-ORDERID = WA_TAB-VALUE. WHEN '0034'. WA_UPLOAD-CONF_CTRL = WA_TAB-VALUE. WHEN '0035'. WA_UPLOAD-MATL_GROUP = WA_TAB-VALUE. ENDCASE. AT END OF ROW. APPEND WA_UPLOAD TO I_UPLOAD. CLEAR WA_UPLOAD. ENDAT. ENDLOOP. LOOP AT I_UPLOAD INTO WA_UPLOAD. LV_INDEX = SY-TABIX. LV_TABIX = SY-TABIX - 1. READ TABLE I_UPLOAD INTO LWA_DATA INDEX LV_TABIX. IF SY-SUBRC = 0 AND WA_UPLOAD-SNO IS INITIAL. WA_UPLOAD-SNO = LWA_DATA-SNO. MODIFY I_UPLOAD INDEX LV_INDEX FROM WA_UPLOAD . ENDIF. ENDLOOP. ENDFORM. " TAB_APPND *&---------------------------------------------------------------------* *& Form PROCESS_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM PROCESS_DATA . * WA_BAPIMEPOHEADERX ,WA_BAPIMEPOITEMX , WA_BAPIMEPOSCHEDULX

**HEADER DATA CHECK SORT I_UPLOAD BY SNO. LOOP AT I_UPLOAD INTO WA_UPLOAD. MOVE-CORRESPONDING WA_UPLOAD TO WA_UPLOAD1. WA_BAPIMEPOHEADERX-COMP_CODE = 'X'. WA_BAPIMEPOHEADERX-DOC_TYPE = 'X'. WA_BAPIMEPOHEADERX-VENDOR = 'X'. WA_BAPIMEPOHEADERX-PMNTTRMS = 'X'. WA_BAPIMEPOHEADERX-PURCH_ORG = 'X'. WA_BAPIMEPOHEADERX-PUR_GROUP = 'X'. WA_BAPIMEPOHEADERX-CURRENCY = 'X'. WA_BAPIMEPOHEADERX-DOC_DATE = 'X'. WA_BAPIMEPOHEADERX-VPER_START = 'X'. WA_BAPIMEPOHEADERX-VPER_END = 'X'. WA_BAPIMEPOHEADERX-REF_1 = 'X'. WA_BAPIMEPOHEADERX-INCOTERMS1 = 'X'. WA_BAPIMEPOHEADERX-INCOTERMS2 = 'X'. WA_BAPIMEPOHEADERX-OUR_REF = 'X'. **ITEM DATA CHECK WA_BAPIMEPOITEMX-PO_ITEMX = 'X'. WA_BAPIMEPOITEMX-ACCTASSCAT = 'X'. WA_BAPIMEPOITEMX-MATERIAL = 'X'. WA_BAPIMEPOITEMX-PLANT = 'X'. WA_BAPIMEPOITEMX-QUANTITY = 'X'. WA_BAPIMEPOITEMX-PREQ_NAME = 'X'. WA_BAPIMEPOITEMX-PO_UNIT = 'X'. * WA_BAPIMEPOITEMX-NET_PRICE = 'X'. WA_BAPIMEPOITEMX-TAX_CODE = 'X'. WA_BAPIMEPOITEMX-IR_IND = 'X'. WA_BAPIMEPOITEMX-GR_BASEDIV = 'X'. WA_BAPIMEPOITEMX-CONF_CTRL = 'X'. WA_BAPIMEPOITEMX-SHORT_TEXT = 'X'. WA_BAPIMEPOITEMX-MATL_GROUP = 'X'. WA_BAPIMEPOACCOUNTX-ASSET_NO = WA_BAPIMEPOACCOUNTX-QUANTITY = WA_BAPIMEPOACCOUNTX-COSTCENTER WA_BAPIMEPOACCOUNTX-GL_ACCOUNT WA_BAPIMEPOACCOUNTX-ORDERID = *** 'X'. 'X'. = 'X'. = 'X'. 'X'.

PO Conditions WA_BAPIMEPOCONDX-ITM_NUMBER = 'X'. WA_BAPIMEPOCONDX-COND_TYPE = 'X'. WA_BAPIMEPOCONDX-COND_VALUE = 'X'. WA_BAPIMEPOCONDX-CURRENCY = 'X'. WA_BAPIMEPOCONDX-CHANGE_ID = 'X'.

** SCHEDULE DATA CHECK WA_BAPIMEPOSCHEDULX-DELIVERY_DATE = 'X'. ************************* Start Of Header Level Data ********************* AT NEW SNO. WA_BAPIMEPOHEADER-COMP_CODE = WA_UPLOAD1-COMP_CODE. WA_BAPIMEPOHEADER-DOC_TYPE = WA_UPLOAD1-DOC_TYPE.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING INPUT = WA_UPLOAD1-VENDOR IMPORTING OUTPUT = WA_UPLOAD1-VENDOR. WA_BAPIMEPOHEADER-VENDOR = WA_UPLOAD1-VENDOR . YY = WA_UPLOAD1-DOC_DATE+4(4). MM = WA_UPLOAD1-DOC_DATE+2(2). DD = WA_UPLOAD1-DOC_DATE+0(2). CONCATENATE YY MM DD INTO WA_UPLOAD1-DOC_DATE. CLEAR : DD,MM,YY. WA_BAPIMEPOHEADER-PMNTTRMS = WA_UPLOAD1-PMNTTRMS. WA_BAPIMEPOHEADER-PURCH_ORG = WA_UPLOAD1-PURCH_ORG. WA_BAPIMEPOHEADER-PUR_GROUP = WA_UPLOAD1-PUR_GROUP. WA_BAPIMEPOHEADER-CURRENCY = WA_UPLOAD1-CURRENCY. WA_BAPIMEPOHEADER-DOC_DATE = WA_UPLOAD1-DOC_DATE. YY = WA_UPLOAD1-VPER_START+4(4). MM = WA_UPLOAD1-VPER_START+2(2). DD = WA_UPLOAD1-VPER_START+0(2). CONCATENATE YY MM DD INTO WA_UPLOAD1-VPER_START. CLEAR : DD,MM,YY. WA_BAPIMEPOHEADER-VPER_START = WA_UPLOAD1-VPER_START. YY = WA_UPLOAD1-VPER_END+4(4). MM = WA_UPLOAD1-VPER_END+2(2). DD = WA_UPLOAD1-VPER_END+0(2). CONCATENATE YY MM DD INTO WA_UPLOAD1-VPER_END. CLEAR : DD,MM,YY. WA_BAPIMEPOHEADER-VPER_END WA_BAPIMEPOHEADER-REF_1 WA_BAPIMEPOHEADER-INCOTERMS1 WA_BAPIMEPOHEADER-INCOTERMS2 WA_BAPIMEPOHEADER-OUR_REF = WA_UPLOAD1-VPER_END. = = = = WA_UPLOAD1-REF_1. WA_UPLOAD1-INCOTERMS1. WA_UPLOAD1-INCOTERMS2. WA_UPLOAD1-OUR_REF.

ENDAT. ************************* End Of Header Level Data ********************* ****************** Start Of Item Level ****************** WA_BAPIMEPOITEM-PO_ITEM = WA_UPLOAD1-PO_ITEM. WA_BAPIMEPOITEM-ACCTASSCAT = WA_UPLOAD1-ACCTASSCAT. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING INPUT = WA_UPLOAD1-MATERIAL IMPORTING OUTPUT = WA_UPLOAD1-MATERIAL. WA_BAPIMEPOITEM-MATERIAL = WA_UPLOAD1-MATERIAL. if wa_upload1-material is not initial. select single maktx from makt into lv_MAKTX where matnr = WA_UPLOAD1-MATER IAL. WA_BAPIMEPOITEM-SHORT_TEXT = lv_maktx. else. WA_BAPIMEPOITEM-SHORT_TEXT = WA_UPLOAD1-SHORT_TEXT. endif. WA_BAPIMEPOITEM-PLANT = WA_UPLOAD1-PLANT. WA_BAPIMEPOITEM-QUANTITY = WA_UPLOAD1-QUANTITY.

WA_BAPIMEPOITEM-PO_UNIT = WA_UPLOAD1-PO_UNIT. WA_BAPIMEPOITEM-NET_PRICE = WA_UPLOAD1-NET_PRICE. WA_BAPIMEPOITEM-TAX_CODE = WA_UPLOAD1-TAX_CODE. WA_BAPIMEPOITEM-IR_IND = WA_UPLOAD1-IR_IND. WA_BAPIMEPOITEM-GR_BASEDIV = WA_UPLOAD1-GR_BASEDIV. WA_BAPIMEPOITEM-CONF_CTRL = WA_UPLOAD1-CONF_CTRL. WA_BAPIMEPOITEM-PREQ_NAME = WA_UPLOAD1-PREQ_NAME. WA_BAPIMEPOITEM-MATL_GROUP = WA_UPLOAD1-MATL_GROUP. ** Added * WA_BAPIMEPOITEM-ACCTASSCAT = WA_UPLOAD1-ACCTASSCAT. WA_BAPIMEPOITEM-ITEM_CAT = WA_UPLOAD1-ITEM_CAT. * WA_BAPIMEPOITEM-ASSET_NO = WA_UPLOAD1-ASSET_NO . ** Ended APPEND WA_BAPIMEPOITEM TO I_BAPIMEPOITEM. ********* Item 'X' Condition WA_BAPIMEPOITEMX-PO_ITEM = WA_UPLOAD1-PO_ITEM. * APPEND WA_BAPIMEPOITEMX TO I_BAPIMEPOITEMX. ****************** End Of Item Level ******************

****************** Start of Scheduling Items *************** WA_BAPIMEPOSCHEDULE-PO_ITEM = WA_UPLOAD1-PO_ITEM. **** YY = WA_UPLOAD1-DELIVERY_DATE+4(4). MM = WA_UPLOAD1-DELIVERY_DATE+2(2). DD = WA_UPLOAD1-DELIVERY_DATE+0(2). CONCATENATE YY MM DD INTO WA_UPLOAD1-DELIVERY_DATE. CLEAR : DD,MM,YY. **** WA_BAPIMEPOSCHEDULE-DELIVERY_DATE = WA_UPLOAD1-DELIVERY_DATE. APPEND WA_BAPIMEPOSCHEDULE TO I_BAPIMEPOSCHEDULE. WA_BAPIMEPOSCHEDULX-PO_ITEM = WA_UPLOAD1-PO_ITEM. WA_BAPIMEPOSCHEDULX-DELIVERY_DATE = 'X'. APPEND WA_BAPIMEPOSCHEDULX TO I_BAPIMEPOSCHEDULX. ****************** End of Scheduling Items *************** ****************** Start of Account ******************** WA_BAPIMEPOACCOUNT-PO_ITEM = WA_UPLOAD1-PO_ITEM . WA_BAPIMEPOACCOUNT-QUANTITY = WA_UPLOAD1-QUANTITY. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING INPUT = WA_UPLOAD1-ASSET_NO IMPORTING OUTPUT = WA_UPLOAD1-ASSET_NO. WA_BAPIMEPOACCOUNT-ASSET_NO = WA_UPLOAD1-ASSET_NO . WA_BAPIMEPOACCOUNT-COSTCENTER = WA_UPLOAD1-COSTCENTER . CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING INPUT = WA_UPLOAD1-GL_ACCOUNT IMPORTING OUTPUT = WA_UPLOAD1-GL_ACCOUNT.

WA_BAPIMEPOACCOUNT-GL_ACCOUNT = WA_UPLOAD1-GL_ACCOUNT . CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING INPUT = WA_UPLOAD1-ORDERID IMPORTING OUTPUT = WA_UPLOAD1-ORDERID. WA_BAPIMEPOACCOUNT-ORDERID = WA_UPLOAD1-ORDERID . WA_BAPIMEPOACCOUNT-TAX_CODE = WA_UPLOAD1-TAX_CODE . APPEND WA_BAPIMEPOACCOUNT TO I_BAPIMEPOACCOUNT. WA_BAPIMEPOACCOUNTX-PO_ITEM = WA_UPLOAD1-PO_ITEM . WA_BAPIMEPOACCOUNTX-TAX_CODE = 'X' . APPEND WA_BAPIMEPOACCOUNTX TO I_BAPIMEPOACCOUNTX. ****************** End of Account ******************** ******************* Start of PO Conditions *********** WA_BAPIMEPOCOND-ITM_NUMBER = WA_UPLOAD1-PO_ITEM . WA_BAPIMEPOCOND-COND_TYPE = 'ZPBX' . WA_BAPIMEPOCOND-COND_VALUE = WA_UPLOAD1-NET_PRICE . WA_BAPIMEPOCOND-CURRENCY = WA_UPLOAD1-CURRENCY . WA_BAPIMEPOCOND-CHANGE_ID = 'U'. APPEND WA_BAPIMEPOCOND TO I_BAPIMEPOCOND . WA_BAPIMEPOCONDX-ITM_NUMBER = WA_UPLOAD1-PO_ITEM . APPEND WA_BAPIMEPOCONDX TO I_BAPIMEPOCONDX . ******************* End of PO Conditions AT END OF SNO. CALL FUNCTION 'BAPI_PO_CREATE1' EXPORTING POHEADER POHEADERX POADDRVENDOR = TESTRUN = MEMORY_UNCOMPLETE = MEMORY_COMPLETE = POEXPIMPHEADER = POEXPIMPHEADERX = VERSIONS = NO_MESSAGING = NO_MESSAGE_REQ = NO_AUTHORITY = NO_PRICE_FROM_PO = PARK_COMPLETE = PARK_UNCOMPLETE = IMPORTING EXPPURCHASEORDER = EXPHEADER = EXPPOEXPIMPHEADER = TABLES RETURN POITEM POITEMX POADDRDELIVERY = POSCHEDULE POSCHEDULEX ***********

= WA_BAPIMEPOHEADER = WA_BAPIMEPOHEADERX

* * * * * * * * * * * * * * * * *

= I_RETURN[] = I_BAPIMEPOITEM[] = I_BAPIMEPOITEMX[] = I_BAPIMEPOSCHEDULE[] = I_BAPIMEPOSCHEDULX[]

* * * * * * * * * * * * * * * * * * * * * * * * * * *

POACCOUNT POACCOUNTPROFITSEGMENT POACCOUNTX POCONDHEADER POCONDHEADERX POCOND POCONDX POLIMITS POCONTRACTLIMITS POSERVICES POSRVACCESSVALUES POSERVICESTEXT EXTENSIONIN EXTENSIONOUT POEXPIMPITEM POEXPIMPITEMX POTEXTHEADER POTEXTITEM ALLVERSIONS POPARTNER POCOMPONENTS POCOMPONENTSX POSHIPPING POSHIPPINGX POSHIPPINGEXP SERIALNUMBER SERIALNUMBERX INVPLANHEADER INVPLANHEADERX INVPLANITEM INVPLANITEMX .

= I_BAPIMEPOACCOUNT[] = = I_BAPIMEPOACCOUNTX[] = = = I_BAPIMEPOCOND[] = I_BAPIMEPOCONDX[] = = = = = = = = = = = = = = = = = = = = = = = =

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING WAIT = 'X'. COMMIT WORK AND WAIT. READ TABLE I_RETURN INTO WA_RETURN WITH KEY TYPE = 'S'. IF SY-SUBRC = 0. S_MSG = WA_RETURN-MESSAGE. WA_MESSAGE-SNO = WA_UPLOAD1-SNO. WA_MESSAGE-TYPE = WA_RETURN-TYPE. WA_MESSAGE-NUMBER = WA_RETURN-NUMBER. WA_MESSAGE-MESSAGE = WA_RETURN-MESSAGE. APPEND WA_MESSAGE TO I_MESSAGE. CLEAR : WA_MESSAGE,WA_RETURN. ELSE. READ TABLE I_RETURN INTO WA_RETURN WITH KEY TYPE = 'E'. E_MSG = WA_RETURN-MESSAGE. LOOP AT I_RETURN INTO WA_RETURN WHERE TYPE = 'E'."NUMBER NE '001' AND TY = 'E' and id ne 'BAPI'. WA_MESSAGE-SNO = WA_UPLOAD1-SNO. WA_MESSAGE-TYPE = WA_RETURN-TYPE. WA_MESSAGE-NUMBER = WA_RETURN-NUMBER. WA_MESSAGE-MESSAGE = WA_RETURN-MESSAGE. APPEND WA_MESSAGE TO I_MESSAGE. CLEAR : WA_MESSAGE,WA_RETURN. ENDLOOP.

* * PE

DELETE ADJACENT DUPLICATES FROM I_MESSAGE COMPARING TYPE NUMBER. ENDIF. CLEAR : WA_BAPIMEPOHEADERX,WA_BAPIMEPOITEMX,WA_UPLOAD,WA_UPLOAD1, WA_BAPIMEPOHEADER,WA_BAPIMEPOITEM,WA_BAPIMEPOSCHEDULE, WA_BAPIMEPOITEMX,WA_BAPIMEPOACCOUNT,WA_BAPIMEPOSCHEDULX,WA_MESSAGE

, WA_BAPIMEPOCONDX,WA_BAPIMEPOCOND. REFRESH :I_BAPIMEPOITEM[],I_BAPIMEPOACCOUNT[],I_BAPIMEPOITEMX[], I_BAPIMEPOSCHEDULE[],I_BAPIMEPOSCHEDULX[],I_BAPIMEPOACCOUNTX[], I_BAPIMEPOCOND[],I_BAPIMEPOCONDX[],I_RETURN[]. ENDAT. ENDLOOP. * LOOP AT I_MESSAGE INTO WA_MESSAGE WHERE ( TYPE = 'S' ) OR ( TYPE = 'E' ). * WRITE:/ WA_MESSAGE-SNO,10 WA_MESSAGE-TYPE,20 WA_MESSAGE-MESSAGE. * ENDLOOP. ENDFORM. " PROCESS_DATA *&---------------------------------------------------------------------* *& Form DISPLAY_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM DISPLAY_DATA . * SNO(5), TYPE , number, MESSAGE REFRESH I_FIELDCATALOG. I_FIELDCATALOG-FIELDNAME = 'SNO'. I_FIELDCATALOG-SELTEXT_M = 'SNO'. I_FIELDCATALOG-COL_POS = 1. APPEND I_FIELDCATALOG. CLEAR I_FIELDCATALOG. I_FIELDCATALOG-FIELDNAME I_FIELDCATALOG-SELTEXT_M I_FIELDCATALOG-COL_POS APPEND I_FIELDCATALOG. CLEAR I_FIELDCATALOG. I_FIELDCATALOG-FIELDNAME I_FIELDCATALOG-SELTEXT_M I_FIELDCATALOG-COL_POS APPEND I_FIELDCATALOG. CLEAR I_FIELDCATALOG. = 'TYPE'. = 'Message Type'. = 2.

= 'MESSAGE'. = 'Message'. = 3.

W_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY' EXPORTING I_CALLBACK_PROGRAM = SY-REPID i_callback_top_of_page = ' ' I_CALLBACK_PF_STATUS_SET = ' ' I_CALLBACK_USER_COMMAND = ' ' i_grid_title = ' ' IS_LAYOUT = W_LAYOUT IT_FIELDCAT = I_FIELDCATALOG[]

* * * *

TABLES T_OUTTAB EXCEPTIONS PROGRAM_ERROR OTHERS IF SY-SUBRC NE 0. WRITE:/ SY-SUBRC. ENDIF. ENDFORM.

= I_MESSAGE = 1 = 2.

" DISPLAY_DATA

You might also like