2008 Jul 11 2:57 PM
I am using BAPI BAPI_SALESORDER_CREATEFROMDAT1 and it is not automatically determining the route. Everything on the sales order is complete except for the route. If we go into the sales order, delete the plant, save, the put the plant back in the route is automatically determined. This tells me that the config/mater data is setup and it is something with the BAPI itself. Below are the fields I am populating:
LOOP AT items.
CLEAR ls_order_items_in.
* PERFORM add_items.
d_posnr = d_posnr + 10.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = d_posnr
IMPORTING
OUTPUT = d_posnr
.
ls_order_items_in-itm_number = d_posnr.
ls_order_items_in-cust_mat = items-kdmat.
ls_order_items_in-plant = d_werks.
ls_order_items_in-material = items-matnr.
ls_order_items_in-req_qty = items-zmeng * 1000.
ls_order_items_in-sales_unit = items-zieme.
ls_order_items_in-req_date = d_req_date.
*Check to see if this item is free of charge. If it is then item category is TANN
d_packed = items-cd_value2 * 100.
IF d_packed = '100.0000' OR d_packed = '100' OR d_packed > '99.9999'.
ls_order_items_in-item_categ = 'TANN'.
ELSE.
ls_order_items_in-cond_type = 'PN00'.
ls_order_items_in-currency = 'US$$'.
d_packed = items-cond_value.
d_packed = d_packed / items-zmeng.
d_packed = d_packed * 100.
ls_order_items_in-cond_value = d_packed.
d_packed = items-cd_value2 * 100.
ls_order_items_in-cd_value2 = d_packed.
ls_order_items_in-cd_type2 = 'ZCGD'.
ENDIF.
APPEND: ls_order_items_in TO lt_order_items_in.
ENDLOOP.
************************************************************************
* FILL PARTNER DATA
************************************************************************
READ TABLE lt_order_partners_out INTO ls_order_partners_out
WITH KEY partn_role = 'AG'.
IF sy-subrc = 0.
ls_order_partners-partn_role = 'AG'.
ls_order_partners-partn_numb = ls_order_partners_out-customer.
ls_order_partners-address = ls_order_partners_out-address.
APPEND ls_order_partners TO lt_order_partners.
ENDIF.
READ TABLE lt_order_partners_out INTO ls_order_partners_out
WITH KEY partn_role = 'WE'.
IF sy-subrc = 0.
ls_order_partners-partn_role = 'WE'.
ls_order_partners-partn_numb = ls_order_partners_out-customer.
SELECT SINGLE * FROM adrc WHERE addrnumber = ls_order_partners_out-address.
IF sy-subrc = 0.
* ls_order_partners-title = adrc-title.
ls_order_partners-name = adrc-name1.
ls_order_partners-name_2 = adrc-name2.
* ls_order_partners-name_3 = adrc-name3.
* ls_order_partners-name_4 = adrc-name4.
ls_order_partners-street = adrc-street.
ls_order_partners-country = adrc-country.
ls_order_partners-postl_code = adrc-post_code1.
* ls_order_partners-pobx_pcd = adrc-post_code2.
* ls_order_partners-pobx_cty = adrc-city_code2.
ls_order_partners-city = adrc-city1.
ls_order_partners-district = adrc-city2.
ls_order_partners-region = adrc-region.
* ls_order_partners-po_box = adrc-po_box.
ls_order_partners-telephone = adrc-tel_number.
ls_order_partners-fax_number = adrc-fax_number.
* ls_order_partners-langu = adrc-langu.
ls_order_partners-transpzone = adrc-transpzone.
ls_order_partners-taxjurcode = adrc-taxjurcode.
* ls_order_partners-addr_link = ls_order_partners_out-address.
ELSE.
ls_order_partners-address = ls_order_partners_out-address.
ENDIF.
APPEND ls_order_partners TO lt_order_partners.
ENDIF.
************************************************************************
* FILL LOGIC SWITCH
************************************************************************
lv_logic_switch-pricing = pa_prart.
***********************************************************************
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT1'
EXPORTING
order_header_in = ls_order_header_in
* WITHOUT_COMMIT = ' '
* CONVERT_PARVW_AUART = ' '
IMPORTING
salesdocument = e_vbeln
* SOLD_TO_PARTY =
* SHIP_TO_PARTY =
* BILLING_PARTY =
return = ls_return
TABLES
order_items_in = lt_order_items_in
order_partners = lt_order_partners
* ORDER_ITEMS_OUT =
* ORDER_CFGS_REF =
* ORDER_CFGS_INST =
* ORDER_CFGS_PART_OF =
* ORDER_CFGS_VALUE =
* ORDER_CCARD =
* ORDER_CFGS_BLOB =
order_schedule_ex = lt_order_schedules_out
.
* CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = '1'.
Do you have any idea why the route can't be determined when I run the BAPI?
Regards,
Davis
I am using BAPI BAPI_SALESORDER_CREATEFROMDAT1 and it is not automatically determining the route. Everything on the sales order is complete except for the route. If we go into the sales order, delete the plant, save, the put the plant back in the route is automatically determined. This tells me that the config/mater data is setup and it is something with the BAPI itself. Below are the fields I am populating:
LOOP AT items.
CLEAR ls_order_items_in.
* PERFORM add_items.
d_posnr = d_posnr + 10.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = d_posnr
IMPORTING
OUTPUT = d_posnr
.
ls_order_items_in-itm_number = d_posnr.
ls_order_items_in-cust_mat = items-kdmat.
ls_order_items_in-plant = d_werks.
ls_order_items_in-material = items-matnr.
ls_order_items_in-req_qty = items-zmeng * 1000.
ls_order_items_in-sales_unit = items-zieme.
ls_order_items_in-req_date = d_req_date.
*Check to see if this item is free of charge. If it is then item category is TANN
d_packed = items-cd_value2 * 100.
IF d_packed = '100.0000' OR d_packed = '100' OR d_packed > '99.9999'.
ls_order_items_in-item_categ = 'TANN'.
ELSE.
ls_order_items_in-cond_type = 'PN00'.
ls_order_items_in-currency = 'US$$'.
d_packed = items-cond_value.
d_packed = d_packed / items-zmeng.
d_packed = d_packed * 100.
ls_order_items_in-cond_value = d_packed.
d_packed = items-cd_value2 * 100.
ls_order_items_in-cd_value2 = d_packed.
ls_order_items_in-cd_type2 = 'ZCGD'.
ENDIF.
APPEND: ls_order_items_in TO lt_order_items_in.
ENDLOOP.
************************************************************************
* FILL PARTNER DATA
************************************************************************
READ TABLE lt_order_partners_out INTO ls_order_partners_out
WITH KEY partn_role = 'AG'.
IF sy-subrc = 0.
ls_order_partners-partn_role = 'AG'.
ls_order_partners-partn_numb = ls_order_partners_out-customer.
ls_order_partners-address = ls_order_partners_out-address.
APPEND ls_order_partners TO lt_order_partners.
ENDIF.
READ TABLE lt_order_partners_out INTO ls_order_partners_out
WITH KEY partn_role = 'WE'.
IF sy-subrc = 0.
ls_order_partners-partn_role = 'WE'.
ls_order_partners-partn_numb = ls_order_partners_out-customer.
SELECT SINGLE * FROM adrc WHERE addrnumber = ls_order_partners_out-address.
IF sy-subrc = 0.
* ls_order_partners-title = adrc-title.
ls_order_partners-name = adrc-name1.
ls_order_partners-name_2 = adrc-name2.
* ls_order_partners-name_3 = adrc-name3.
* ls_order_partners-name_4 = adrc-name4.
ls_order_partners-street = adrc-street.
ls_order_partners-country = adrc-country.
ls_order_partners-postl_code = adrc-post_code1.
* ls_order_partners-pobx_pcd = adrc-post_code2.
* ls_order_partners-pobx_cty = adrc-city_code2.
ls_order_partners-city = adrc-city1.
ls_order_partners-district = adrc-city2.
ls_order_partners-region = adrc-region.
* ls_order_partners-po_box = adrc-po_box.
ls_order_partners-telephone = adrc-tel_number.
ls_order_partners-fax_number = adrc-fax_number.
* ls_order_partners-langu = adrc-langu.
ls_order_partners-transpzone = adrc-transpzone.
ls_order_partners-taxjurcode = adrc-taxjurcode.
* ls_order_partners-addr_link = ls_order_partners_out-address.
ELSE.
ls_order_partners-address = ls_order_partners_out-address.
ENDIF.
APPEND ls_order_partners TO lt_order_partners.
ENDIF.
************************************************************************
* FILL LOGIC SWITCH
************************************************************************
lv_logic_switch-pricing = pa_prart.
***********************************************************************
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT1'
EXPORTING
order_header_in = ls_order_header_in
* WITHOUT_COMMIT = ' '
* CONVERT_PARVW_AUART = ' '
IMPORTING
salesdocument = e_vbeln
* SOLD_TO_PARTY =
* SHIP_TO_PARTY =
* BILLING_PARTY =
return = ls_return
TABLES
order_items_in = lt_order_items_in
order_partners = lt_order_partners
* ORDER_ITEMS_OUT =
* ORDER_CFGS_REF =
* ORDER_CFGS_INST =
* ORDER_CFGS_PART_OF =
* ORDER_CFGS_VALUE =
* ORDER_CCARD =
* ORDER_CFGS_BLOB =
order_schedule_ex = lt_order_schedules_out
.
* CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = '1'.
Do you have any idea why the route can't be determined when I run the BAPI?
Regards,
Davis
2008 Jul 11 3:38 PM
Hello Davis,
Check are you passing proper values to the Partners internal table to the BAPI call.
Thanks,
Greetson
2008 Jul 11 4:07 PM
All of the data, that I am passing in, is correct. All of the data except for the line items is coming from the referenced quote (all header and partner data).
Regards,
Davis
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |