2007 Sep 03 7:58 AM
Hii experts....help me..
when i create a purchase order using BAPI (BAPI_PO_CREATE1)... i am getting error message..
1.Check item number 0 in table POSCHEDULEX
(this is my first exp..with BAPI)...this is my code..how can i solve my problem...
FORM bapi_upload .
it_itab[] = itab[].
read table itab.
move-corresponding itab to G_BAPIMEPOHEADER.
G_BAPIMEPOHEADER-CREAT_DATE = sy-datum.
G_BAPIMEPOHEADER-CREATED_BY = sy-uname.
append G_BAPIMEPOHEADER.
g_poheaderx-comp_code = 'X'.
g_poheaderx-vendor = 'X'.
g_poheaderx-doc_type = 'X'.
g_poheaderx-purch_org = 'X'.
g_poheaderx-pur_group = 'X'.
g_poheaderx-suppl_plnt = 'X'.
loop at it_itab where material = itab-material.
move-corresponding it_itab to G_BAPIMEPOITEM.
append G_BAPIMEPOITEM.
move-corresponding it_itab to G_BAPIMEPOSCHEDULE.
append G_BAPIMEPOSCHEDULE.
g_poitemx-PO_ITEM = it_itab-PO_ITEM.
g_poitemx-PO_ITEMX = 'X'.
g_poitemx-item_cat = 'X'.
g_poitemx-stge_loc = 'X'.
g_poitemx-acctasscat = 'X'.
g_poitemx-short_text = 'X'.
g_poitemx-matl_group = 'X'.
g_poitemx-quantity = 'X'.
g_poitemx-po_unit = 'X'.
g_poitemx-orderpr_un = 'X'.
g_poitemx-trackingno = 'X'.
g_poitemx-delete_ind = 'X'.
append g_poitemx.
*G_BAPIMEPOSCHEDULE-PO_ITEM = it_itab-PO_ITEM.
*G_BAPIMEPOSCHEDULE-SCHED_LINE = 'X'.
*G_BAPIMEPOSCHEDULE-DEL_DATCAT_EXT = 'X'.
*G_BAPIMEPOSCHEDULE-DELIVERY_DATE = 'X'.
*G_BAPIMEPOSCHEDULE-QUANTITY = it_itab-quantity.
*G_BAPIMEPOSCHEDULE-DELIV_TIME = 'X'.
*G_BAPIMEPOSCHEDULE-STAT_DATE = 'X'.
*append G_BAPIMEPOSCHEDULE.
g_poschedulex-PO_ITEM = 'X'.
g_poschedulex-SCHED_LINE = 'X'.
g_poschedulex-PO_ITEMX = 'X'.
g_poschedulex-SCHED_LINEX = 'X'.
g_poschedulex-DEL_DATCAT_EXT = 'X'.
g_poschedulex-DELIVERY_DATE = 'X'.
g_poschedulex-QUANTITY = 'X'.
g_poschedulex-DELIV_TIME = 'X'.
g_poschedulex-STAT_DATE = 'X'.
g_poschedulex-PREQ_NO = 'X'.
g_poschedulex-PREQ_ITEM = 'X'.
g_poschedulex-PO_DATE = 'X'.
g_poschedulex-ROUTESCHED = 'X'.
g_poschedulex-MS_DATE = 'X'.
append g_poschedulex.
endloop.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = G_BAPIMEPOHEADER
POHEADERX = g_poheaderx
IMPORTING
EXPPURCHASEORDER = g_ebeln
TABLES
RETURN = G_BAPIRET2
POITEM = G_BAPIMEPOITEM
POITEMX = g_poitemx
POSCHEDULE = G_BAPIMEPOSCHEDULE
POSCHEDULEX = g_poschedulex
endform.
2007 Sep 03 9:01 AM
Use the function module
CONVERSION_EXIT_ALPHA_INPUT with the parameter vendor number and try to execute the BAPI again
hii..i modified my Program..now purchase order was created...with warning messages....
Trade Material created under the number 4500041541
Validity period less than a week-warning message
Start of validity period is in the past-warning message...
(i created 6 docu nos like this..)
but the problem is...when i tried to display the order in me23n..it tells that...
Document 4500041541 does not exist
also this entry is not updated in ekko and ekpo tables...
if i create manually...for the same data..i can able to see the docu no in me23n...also that is updated in pur.docu tables...give me the solution..
2007 Sep 03 8:03 AM
g_poschedulex-PO_ITEM = 'X'.
g_poschedulex-SCHED_LINE = 'X'.the above fields have to be item number & schedule line number & not flag.
Hope this helps.
Murugesh AS
2007 Sep 03 8:54 AM
if i give these
g_poschedulex-PO_ITEM = it_itab-PO_ITEM.
g_poschedulex-SCHED_LINE = 1.
i am getting these errors..
PO header data still faulty
No master record exists for vendor 300001
No instance of object type PurchaseOrder has been created. External reference:
Please enter material number or account assignment category
Can delivery date be met?
we have this nedor..300001..
2007 Sep 03 9:01 AM
Use the function module
CONVERSION_EXIT_ALPHA_INPUT with the parameter vendor number and try to execute the BAPI again
2007 Sep 03 9:10 AM
I used CONVERSION_EXIT_ALPHA_INPUT for vendor..now my errors are..
PO header data still faulty
Enter Validity end
Enter Validity start
No instance of object type PurchaseOrder has been created. External reference:
Net price must be greater than 0
Please enter material number or account assignment category
Can delivery date be met
..i used same for material also,I am getting the same errors..
2007 Sep 03 9:28 AM
pass values in
BAPIMEPOHEADER-VPER_START, BAPIMEPOHEADER-VPER_END &
BAPIMEPOITEM-MATERIAL, BAPIMEPOITEM-NET_PRICE.
check the field desc., in relation to the messages and pass appropriate values!
best regards, Murugesh AS
Also you need to enable following fields:
BAPIMEPOHEADERX-VPER_START, BAPIMEPOHEADERX-VPER_END &
BAPIMEPOITEMX-MATERIAL, BAPIMEPOITEMX-NET_PRICE.
please post your complete code for further help!
Message was edited by:
Murugesh Arcot
2007 Sep 03 9:37 AM
i have already given the values for start date and end date...flat file values for those fields are..
G_BAPIMEPOHEADER-VPER_START = 01092007.
G_BAPIMEPOHEADER-VPER_END = 30092007.
G_BAPIMEPOHEADER-net_price = 1000.
Message was edited by:
Sugumar Ganesan
2007 Sep 03 10:04 AM
REPORT ZBAPI_SS no standard page heading.
data: begin of itab occurs 0,
DOC_TYPE(4),
VENDOR(10),
PURCH_ORG(4),
PUR_GROUP(3),
COMP_CODE(4),
VPER_START(8),
VPER_END(8),
PO_ITEM(5),
MATERIAL(18),
QUANTITY(16),
NET_PRICE(28),
PLANT(4),
STGE_LOC(4),
DELIVERY_DATE(8),
end of itab.
CONSTANTS : C_X VALUE 'X'.
data: g_ebeln like bapimepoheader-po_number.
data: begin of G_BAPIMEPOHEADER occurs 0.
include structure BAPIMEPOHEADER.
data: end of G_BAPIMEPOHEADER.
data: begin of g_poheaderx occurs 0.
include structure bapimepoheaderx.
data: end of g_poheaderx.
data: begin of G_BAPIMEPOSCHEDULE occurs 0.
include structure BAPIMEPOSCHEDULE.
data: end of G_BAPIMEPOSCHEDULE.
data: begin of g_poschedulex occurs 0.
include structure BAPIMEPOSCHEDULX.
data: end of g_poschedulex.
data: begin of G_BAPIEIKP occurs 0.
include structure BAPIEIKP.
data: end of G_BAPIEIKP.
data: begin of G_BAPIMEPOITEM occurs 0.
include structure BAPIMEPOITEM.
data: end of G_BAPIMEPOITEM.
data: begin of g_poitemx occurs 0.
include structure bapimepoitemx.
data: end of g_poitemx.
data: begin of G_BAPIRET2 occurs 0.
include structure BAPIRET2.
data: end of G_BAPIRET2.
data: it_itab like itab occurs 0 with header line.
SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME TITLE text-100.
PARAMETERS : p_file LIKE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK blk.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM file_selection.
START-OF-SELECTION.
PERFORM data_upload.
PERFORM bapi_upload.
perform display.
&----
*& Form file_selection
&----
text
----
--> p1 text
<-- p2 text
----
FORM file_selection.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = ' '
def_path = 'C:\'
mask = ',.txt,.txt.'
mode = 'O'
title = 'Open a TXT(Tab delimited) file only'
IMPORTING
filename = p_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
ENDFORM. " file_selection
&----
*& Form data_upload
&----
text
----
--> p1 text
<-- p2 text
----
FORM data_upload .
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = p_file
filetype = 'DAT'
TABLES
data_tab = itab
EXCEPTIONS
conversion_error = 1
file_open_error = 2
file_read_error = 3
invalid_type = 4
no_batch = 5
unknown_error = 6
invalid_table_width = 7
gui_refuse_filetransfer = 8
customer_error = 9
no_authority = 10
OTHERS = 11.
IF sy-subrc EQ 0 .
WRITE:/ 'Program : ', sy-repid.
WRITE:/ 'Filename: ', p_file.
WRITE AT /1(144) sy-uline.
ELSE .
MESSAGE i001.
ENDIF.
ENDFORM. " data_upload
&----
*& Form bapi_upload
&----
text
----
--> p1 text
<-- p2 text
----
FORM bapi_upload .
it_itab[] = itab[].
read table itab.
move-corresponding itab to G_BAPIMEPOHEADER.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = itab-VENDOR
IMPORTING
OUTPUT = itab-VENDOR.
G_BAPIMEPOHEADER-VENDOR = itab-VENDOR.
G_BAPIMEPOHEADER-CREAT_DATE = sy-datum.
G_BAPIMEPOHEADER-CREATED_BY = sy-uname.
append G_BAPIMEPOHEADER.
g_poheaderx-comp_code = 'X'.
g_poheaderx-vendor = 'X'.
g_poheaderx-doc_type = 'X'.
g_poheaderx-purch_org = 'X'.
g_poheaderx-pur_group = 'X'.
g_poheaderx-suppl_plnt = 'X'.
loop at it_itab where material = itab-material.
move-corresponding it_itab to G_BAPIMEPOITEM.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = it_itab-MATERIAL
IMPORTING
OUTPUT = it_itab-MATERIAL.
G_BAPIMEPOITEM-MATERIAL = it_itab-MATERIAL.
append G_BAPIMEPOITEM.
move-corresponding it_itab to G_BAPIMEPOSCHEDULE.
append G_BAPIMEPOSCHEDULE.
g_poitemx-PO_ITEM = it_itab-PO_ITEM.
g_poitemx-PO_ITEMX = 'X'.
g_poitemx-item_cat = 'X'.
g_poitemx-stge_loc = 'X'.
g_poitemx-acctasscat = 'X'.
g_poitemx-short_text = 'X'.
g_poitemx-matl_group = 'X'.
g_poitemx-quantity = 'X'.
g_poitemx-po_unit = 'X'.
g_poitemx-orderpr_un = 'X'.
g_poitemx-trackingno = 'X'.
g_poitemx-delete_ind = 'X'.
append g_poitemx.
*G_BAPIMEPOSCHEDULE-PO_ITEM = it_itab-PO_ITEM.
*G_BAPIMEPOSCHEDULE-SCHED_LINE = 'X'.
*G_BAPIMEPOSCHEDULE-DEL_DATCAT_EXT = 'X'.
*G_BAPIMEPOSCHEDULE-DELIVERY_DATE = 'X'.
*G_BAPIMEPOSCHEDULE-QUANTITY = it_itab-quantity.
*G_BAPIMEPOSCHEDULE-DELIV_TIME = 'X'.
*G_BAPIMEPOSCHEDULE-STAT_DATE = 'X'.
*append G_BAPIMEPOSCHEDULE.
g_poschedulex-PO_ITEM = it_itab-PO_ITEM.
g_poschedulex-SCHED_LINE = 1.
g_poschedulex-PO_ITEMX = 'X'.
g_poschedulex-SCHED_LINEX = 'X'.
g_poschedulex-DEL_DATCAT_EXT = 'X'.
g_poschedulex-DELIVERY_DATE = 'X'.
g_poschedulex-QUANTITY = 'X'.
g_poschedulex-DELIV_TIME = 'X'.
g_poschedulex-STAT_DATE = 'X'.
g_poschedulex-PREQ_NO = 'X'.
g_poschedulex-PREQ_ITEM = 'X'.
g_poschedulex-PO_DATE = 'X'.
g_poschedulex-ROUTESCHED = 'X'.
g_poschedulex-MS_DATE = 'X'.
append g_poschedulex.
endloop.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = G_BAPIMEPOHEADER
POHEADERX = g_poheaderx
POADDRVENDOR =
TESTRUN =
MEMORY_UNCOMPLETE =
MEMORY_COMPLETE =
POEXPIMPHEADER = G_BAPIEIKP
POEXPIMPHEADERX =
VERSIONS =
NO_MESSAGING =
NO_MESSAGE_REQ =
NO_AUTHORITY =
NO_PRICE_FROM_PO =
IMPORTING
EXPPURCHASEORDER = g_ebeln
EXPHEADER =
EXPPOEXPIMPHEADER =
TABLES
RETURN = G_BAPIRET2
POITEM = G_BAPIMEPOITEM
POITEMX = g_poitemx
POADDRDELIVERY =
POSCHEDULE = G_BAPIMEPOSCHEDULE
POSCHEDULEX = g_poschedulex
POACCOUNT =
POACCOUNTPROFITSEGMENT =
POACCOUNTX =
POCONDHEADER =
POCONDHEADERX =
POCOND =
POCONDX =
POLIMITS =
POCONTRACTLIMITS =
POSERVICES =
POSRVACCESSVALUES =
POSERVICESTEXT =
EXTENSIONIN =
EXTENSIONOUT =
POEXPIMPITEM =
POEXPIMPITEMX =
POTEXTHEADER =
POTEXTITEM =
ALLVERSIONS =
POPARTNER =
NFMETALLITMS =
.
ENDFORM. " bapi_upload
2007 Sep 03 10:16 AM
hi,
in the header level,
G_BAPIMEPOHEADER-VPER_START = '01092007'.
G_BAPIMEPOHEADER-VPER_END = '30092007'.
G_BAPIMEPOHEADERX-VPER_START = 'X'.
G_BAPIMEPOHEADERX-VPER_END = 'X'
& in item level:
G_BAPIMEPOitem-net_price = 1000.
G_BAPIMEPOitemX-net_price = 'X'.
G_BAPIMEPOitem-MATERIAL = your specified material....
G_BAPIMEPOitemX-MATERIAL = 'X'.
I do not see this code in your program! I suggest you check whether the values are populated properly in debug mode.
Message was edited by:
Murugesh Arcot
2007 Sep 03 11:08 AM
hii..i modified my Program..now purchase order was created...with warning messages....
Trade Material created under the number 4500041541
Validity period less than a week-warning message
Start of validity period is in the past-warning message...
(i created 6 docu nos like this..)
but the problem is...when i tried to display the order in me23n..it tells that...
Document 4500041541 does not exist
also this entry is not updated in ekko and ekpo tables...
if i create manually...for the same data..i can able to see the docu no in me23n...also that is updated in pur.docu tables...give me the solution..
2007 Sep 03 1:54 PM
hii murugesh...thanks a lot for ur help..
in my program i am not included BAPI_TRANSACTION_COMMIT
thats why i got that problem...now the problem was solved...
once again thank u murugesh...
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |