Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

function modules invoked in wrong sequence bapi_po_create

Former Member
0 Likes
1,187

trying to use bapi_po_create in se37

enter purch org vendor doc type purch group

when test get the following

function modules invoked in wrong sequence

what does that mean?

how an i create

5 REPLIES 5
Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
798

Not sure, but I do think you need more information than that. Here is an example program calling the BAPI.





report zrich_0001.

constants : c_x value 'X'.

data: del_date type sy-datum.

data: pohead  type bapimepoheader.
data: poheadx type bapimepoheaderx.

data: exp_head type bapimepoheader.

data: return  type table of bapiret2 with header line.
data: poitem  type table of bapimepoitem with header line.
data: poitemx type table of bapimepoitemx with header line.

data: posched  type table of bapimeposchedule with header line.
data: poschedx type table of bapimeposchedulx with header line.

data: ex_po_number type bapimepoheader-po_number.

parameters: p_matnr type ekpo-matnr.
parameters: p_werks type ekpo-werks.
parameters: p_lgort type ekpo-lgort.
parameters: p_menge type ekpo-menge.
parameters: p_lifnr type ekko-lifnr.
parameters: p_ekorg type ekko-ekorg.
parameters: p_ekgrp type ekko-ekgrp.
parameters: p_bukrs type ekko-bukrs.

* Header Level Data

pohead-comp_code = p_bukrs.
pohead-doc_type   = 'NB'     .
pohead-creat_date = sy-datum   .

pohead-vendor = p_lifnr.
pohead-purch_org = p_ekorg.
pohead-pur_group = p_ekgrp.

pohead-langu      = sy-langu   .
pohead-doc_date   = sy-datum.

poheadx-comp_code  = c_x.
poheadx-doc_type   = c_x.
poheadx-creat_date = c_x.
poheadx-vendor     = c_x.
poheadx-langu      = c_x.
poheadx-purch_org  = c_x.
poheadx-pur_group  = c_x.
poheadx-doc_date   = c_x.


* Item Level Data
poitem-po_item  = 1.
poitem-material = p_matnr.
poitem-plant    = p_werks.
poitem-stge_loc = p_lgort.
poitem-quantity = p_menge.
append poitem.

poitemx-po_item    = 1.
poitemx-po_itemx   = c_x.
poitemx-material   = c_x.
poitemx-plant      = c_x .
poitemx-stge_loc   = c_x .
poitemx-quantity   = c_x .
poitemx-tax_code   = c_x .
poitemx-item_cat   = c_x .
poitemx-acctasscat = c_x .
append poitemx.


* Schedule Line Level Data
posched-po_item        = 1.
posched-sched_line     = 1.
posched-del_datcat_ext = 'D'.
del_date = sy-datum + 1.
write del_date to posched-delivery_date.
posched-deliv_time     = '000001'.
posched-quantity       = p_menge.
append posched.

poschedx-po_item        = 1.
poschedx-sched_line     = 1.
poschedx-po_itemx       = c_x.
poschedx-sched_linex    = c_x.
poschedx-del_datcat_ext = c_x.
poschedx-delivery_date  = c_x.
poschedx-quantity       = c_x.
append poschedx.

call function 'BAPI_PO_CREATE1'
     exporting
          poheader         = pohead
          poheaderx        = poheadx
          testrun          = ' '
     importing
          exppurchaseorder = ex_po_number
          expheader        = exp_head
     tables
          return           = return
          poitem           = poitem
          poitemx          = poitemx
          poschedule       = posched
          poschedulex      = poschedx.

call function 'BAPI_TRANSACTION_COMMIT'
     exporting
          wait = 'X'.

if not ex_po_number is initial.
  call function 'DEQUEUE_ALL'.
else.
  call function 'DEQUEUE_ALL'.
*  message i036.
endif.

Regards,

RIch Heilman

Read only

0 Likes
798

thank you sooooooo much

i can now enter the po in transaction se37

originally i did not have enough info

what i need to do now is do the same thing in idoc pordcr101 which uses bapi_po_create.

when i put in the info in the idoc i get error partner role cannot be processes by bapi_po_create

enter purchasing org -


i am entering purchasing org

any ideas would be greatly appreciated

Read only

0 Likes
798

you should provide at least one line item information to create PO

Read only

Former Member
0 Likes
798

Double click on the message to see if there is a long text.

Rob

Read only

0 Likes
798

Maybe you tried to execute the commit first.

Rob