3 weeks ago
hi experts,
please help to solve error while creating bapi_po_create1
code :
TYPES: BEGIN OF ty_DATA,
bsart TYPE ESART,
bukrs TYPE BUKRS,
ekorg TYPE EKORG,
ekgrp TYPE BKGRP,
lifnr TYPE LIFNR,
matnr TYPE MATNR,
werks TYPE EWERK,
lgort TYPE LGORT_D,
menge TYPE BSTMG,
netpr TYPE BPREI,
eindt TYPE EINDT,
waers TYPE WAERS,
END OF ty_DATA.
DATA : IT_DATA TYPE TABLE OF TY_DATA,
WA_DATA TYPE TY_DATA.
data : wa_POHEADER type BAPIMEPOHEADER,
wa_POHEADERX type BAPIMEPOHEADERX,
it_RETURN type table of BAPIRET2,
wa_RETURN type BAPIRET2,
it_POITEM type table of BAPIMEPOITEM,
wa_POITEM type BAPIMEPOITEM,
it_POITEMX type table of BAPIMEPOITEMX,
wa_POITEMX type BAPIMEPOITEMX,
it_POSCHEDULE type table of BAPIMEPOSCHEDULE,
wa_POSCHEDULE type BAPIMEPOSCHEDULE,
it_POSCHEDULEX type table of BAPIMEPOSCHEDULX,
wa_POSCHEDULEX type BAPIMEPOSCHEDULX,
lv_EXPPURCHASEORDER type BAPIMEPOHEADER-PO_NUMBER.
DATA : IT_FILE TYPE STRING.
PARAMETERS P_FILE TYPE LOCALFILE.
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.
IT_FILE = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = IT_FILE
* FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* CHECK_BOM = ' '
* VIRUS_SCAN_PROFILE =
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
TABLES
DATA_TAB = IT_DATA
* CHANGING
* ISSCANPERFORMED = ' '
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
LOOP AT it_data INTO wa_data.
REFRESH: it_poitem, it_poitemx, it_poschedule, it_poschedulex, it_return.
CLEAR: wa_poheader, wa_poheaderx, lv_exppurchaseorder.
"HEADER
wa_POHEADER-DOC_TYPE = WA_DATA-BSART.
wa_POHEADER-COMP_CODE = wa_data-bukrs.
wa_POHEADER-PURCH_ORG = WA_DATA-EKORG.
wa_POHEADER-PUR_GROUP = WA_DATA-EKGRP.
wa_POHEADER-VENDOR = WA_DATA-LIFNR.
wa_POHEADER-CURRENCY = WA_DATA-WAERS.
wa_POHEADERX-DOC_TYPE = 'X'.
wa_POHEADERX-COMP_CODE = 'X'.
wa_POHEADERX-PURCH_ORG = 'X'.
wa_POHEADERX-PUR_GROUP = 'X'.
wa_POHEADERX-VENDOR = 'X'.
wa_POHEADERX-CURRENCY = 'X'.
"ITEM
wa_POITEM-MATERIAL = WA_DATA-MATNR.
wa_POITEM-PLANT = WA_DATA-WERKS.
wa_POITEM-STGE_LOC = WA_DATA-LGORT.
wa_POITEM-QUANTITY = WA_DATA-MENGE.
wa_POITEM-NET_PRICE = WA_DATA-NETPR.
APPEND wa_poitem TO it_poitem.
wa_POITEMX-MATERIAL = 'X'.
wa_POITEMX-PLANT = 'X'.
wa_POITEMX-STGE_LOC = 'X'.
wa_POITEMX-QUANTITY = 'X'.
wa_POITEMX-NET_PRICE = 'X'.
APPEND wa_poitemX TO it_poitemX.
" SCHEDULE
wa_POSCHEDULE-DELIVERY_DATE = WA_DATA-EINDT.
APPEND wa_POSCHEDULE TO IT_POSCHEDULE.
.
wa_POSCHEDULEX-DELIVERY_DATE = 'X'.
APPEND wa_POSCHEDULEX TO IT_POSCHEDULEX.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = wa_POHEADER
POHEADERX = wa_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 = lv_EXPPURCHASEORDER
* EXPHEADER =
* EXPPOEXPIMPHEADER =
TABLES
RETURN = it_RETURN
POITEM = it_POITEM
POITEMX = it_POITEMX
* POADDRDELIVERY =
POSCHEDULE = it_POSCHEDULE
POSCHEDULEX = it_POSCHEDULEX
* 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 =
.
READ TABLE it_return INTO wa_return WITH KEY type = 'E'.
IF sy-subrc = 0.
WRITE: / 'Error for Vendor:', wa_data-lifnr.
LOOP AT it_return INTO wa_return.
WRITE: / wa_return-type, wa_return-message.
ENDLOOP.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
WRITE: / 'PO Created Successfully:',lv_EXPPURCHASEORDER.
ENDIF.
ENDLOOP.
error :
thankyou.
Request clarification before answering.
Hello,
Can you try populating the po_item field in all those itabs? (example: 00010 for the first item)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 15 | |
| 9 | |
| 6 | |
| 4 | |
| 4 | |
| 4 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.