Application Development 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: 

how to use " BAPI_SALESORDER_SIMULATE "

Former Member
0 Kudos

hi,all

now have such requirement ,as below:

I need get price by call "BAPI_SALESORDER_SIMULATE".

But how to set the parameter " ORDER_ITEMS_IN ". i don't know where normal got "CUST_MAT" ,"REQ_QTY".

plz give me a hand, some sample is good for me

thanks in advance.

kevin

1 ACCEPTED SOLUTION

gregorw
Active Contributor
0 Kudos

Hello Kevin,

take this one:


REPORT  z_salesorder_simulate.

DATA: order_header_in LIKE bapisdhead,
      order_items_in LIKE TABLE OF bapiitemin,
      return LIKE bapireturn,
      wa_order_items_in LIKE LINE OF order_items_in,
      order_partners LIKE TABLE OF bapipartnr,
      wa_order_partners LIKE LINE OF order_partners,
      order_items_out LIKE TABLE OF bapiitemex,
      wa_order_items_out LIKE LINE OF order_items_out.

* Fill order_header_in
order_header_in-doc_type = 'TA'.

* Fill order_items_in
wa_order_items_in-material = '000000000000000001'.
wa_order_items_in-req_qty = '1000'.

APPEND wa_order_items_in TO order_items_in.

* Fill order_items_in
wa_order_partners-partn_role = 'AG'.
wa_order_partners-partn_numb = '0000000001'.

APPEND wa_order_partners TO order_partners.

* Execute Function Module BAPI_SALESORDER_SIMULATE
CALL FUNCTION 'BAPI_SALESORDER_SIMULATE'
  EXPORTING
    order_header_in           = order_header_in
  IMPORTING
    return                    = return
  TABLES
    order_items_in            = order_items_in
    order_partners            = order_partners
    order_items_out           = order_items_out.

* The return structure gives any error messages
WRITE: return-message.

* Print out the order items
LOOP AT order_items_out INTO wa_order_items_out.
  WRITE: wa_order_items_out-material,
         wa_order_items_out-short_text,
         wa_order_items_out-subtotal_2.
ENDLOOP.

Regards

Gregor

3 REPLIES 3

gregorw
Active Contributor
0 Kudos

Hello Kevin,

take this one:


REPORT  z_salesorder_simulate.

DATA: order_header_in LIKE bapisdhead,
      order_items_in LIKE TABLE OF bapiitemin,
      return LIKE bapireturn,
      wa_order_items_in LIKE LINE OF order_items_in,
      order_partners LIKE TABLE OF bapipartnr,
      wa_order_partners LIKE LINE OF order_partners,
      order_items_out LIKE TABLE OF bapiitemex,
      wa_order_items_out LIKE LINE OF order_items_out.

* Fill order_header_in
order_header_in-doc_type = 'TA'.

* Fill order_items_in
wa_order_items_in-material = '000000000000000001'.
wa_order_items_in-req_qty = '1000'.

APPEND wa_order_items_in TO order_items_in.

* Fill order_items_in
wa_order_partners-partn_role = 'AG'.
wa_order_partners-partn_numb = '0000000001'.

APPEND wa_order_partners TO order_partners.

* Execute Function Module BAPI_SALESORDER_SIMULATE
CALL FUNCTION 'BAPI_SALESORDER_SIMULATE'
  EXPORTING
    order_header_in           = order_header_in
  IMPORTING
    return                    = return
  TABLES
    order_items_in            = order_items_in
    order_partners            = order_partners
    order_items_out           = order_items_out.

* The return structure gives any error messages
WRITE: return-message.

* Print out the order items
LOOP AT order_items_out INTO wa_order_items_out.
  WRITE: wa_order_items_out-material,
         wa_order_items_out-short_text,
         wa_order_items_out-subtotal_2.
ENDLOOP.

Regards

Gregor

Former Member
0 Kudos

thanks

but i don't know get order_items_tab. i have define a own function. order_items_tab is included,but type is like "VBAPVB" , how to get infor from this parameter.

both function 's parameter type is diferent. how to transfer.

谢谢!

kevin

gregorw
Active Contributor
0 Kudos

Hello Kevin,

extend the example above with this code:

DATA: it_vbapvb LIKE TABLE OF vbapvb,
      wa_vbapvb LIKE LINE OF it_vbapvb.

* Fill it_VBAPVB
wa_vbapvb-matnr = '000000000000000001'.
wa_vbapvb-zmeng = 1.

APPEND wa_vbapvb TO it_vbapvb.

* Fill order_items_in
LOOP AT it_vbapvb INTO wa_vbapvb.
  wa_order_items_in-material = wa_vbapvb-matnr.
  wa_order_items_in-req_qty = wa_vbapvb-zmeng * 1000.

  APPEND wa_order_items_in TO order_items_in.
ENDLOOP.

Regards

Gregor