‎2007 Aug 07 9:11 PM
Hi experts!
Im having trouble in BAPI_SALESORDER_CREATEFROMDAT2.. and it says..
<b>Unpermitted combination of business object BUS2032 and sales doc. category</b>. How can i solved this problem.. below is my code..pls help its urgent.
DATA: v_vbeln LIKE vbak-vbeln,
bapisdhd1 LIKE bapisdhd1,
bapisdhd1x LIKE bapisdhd1x,
bapisditm LIKE bapisditm OCCURS 0 WITH HEADER LINE,
bapisditmx LIKE bapisditmx OCCURS 0 WITH HEADER LINE,
bapiparnr LIKE bapiparnr OCCURS 0 WITH HEADER LINE,
return LIKE bapiret2 OCCURS 0 WITH HEADER LINE,
lt_schedules_inx TYPE STANDARD TABLE OF bapischdlx WITH HEADER LINE,
lt_schedules_in TYPE STANDARD TABLE OF bapischdl WITH HEADER LINE.
-- header
DATA: it_vbak LIKE STANDARD TABLE OF vbak,
wa_vbak LIKE vbak.
-- details
DATA: it_vbap LIKE STANDARD TABLE OF vbap,
wa_vbap LIKE vbap.
DATA: kunnr_soldto TYPE vbpa-kunnr,
kunnr_shipto TYPE vbpa-kunnr.
CLEAR: it_vbak,
it_vbap.
REFRESH: it_vbak,
it_vbap.
CHECK NOT scr0100-vbeln IS INITIAL.
SELECT * FROM vbak INTO TABLE it_vbak "header table for sales order
WHERE vbeln = scr0100-vbeln.
SELECT * FROM vbap INTO TABLE it_vbap "detail table for sales order
WHERE vbeln = scr0100-vbeln.
SELECT SINGLE kunnr FROM vbpa INTO kunnr_soldto "Ship to party
WHERE vbeln = scr0100-vbeln
AND parvw = 'AG'.
SELECT SINGLE kunnr FROM vbpa INTO kunnr_shipto "Sold to party
WHERE vbeln = scr0100-vbeln
AND parvw = 'WE'.
--! Order header data
LOOP AT it_vbak INTO wa_vbak.
bapisdhd1-doc_type = wa_vbak-auart.
bapisdhd1x-doc_type = 'X'.
bapisdhd1-sales_org = wa_vbak-vkorg.
bapisdhd1x-sales_org = 'X'.
bapisdhd1-distr_chan = wa_vbak-vtweg.
bapisdhd1x-distr_chan = 'X'.
bapisdhd1-division = wa_vbak-spart.
bapisdhd1x-division = 'X'.
bapisdhd1x-updateflag = 'I'.
CLEAR wa_vbak.
ENDLOOP.
--! partner function
bapiparnr-partn_role = 'AG'.
bapiparnr-partn_numb = kunnr_soldto.
APPEND bapiparnr.
bapiparnr-partn_role = 'WE'.
bapiparnr-partn_numb = kunnr_shipto.
APPEND bapiparnr.
--! item data
LOOP AT it_vbap INTO wa_vbap.
bapisditmx-updateflag = 'I'.
bapisditm-itm_number = wa_vbap-posnr.
bapisditmx-itm_number = 'X'.
bapisditm-hg_lv_item = wa_vbap-uepos.
bapisditmx-hg_lv_item = 'X'.
bapisditm-material = wa_vbap-matnr.
bapisditmx-material = 'X'.
bapisditm-plant = wa_vbap-werks.
bapisditmx-plant = 'X'.
APPEND: bapisditm,
bapisditmx.
clear wa_vbap.
ENDLOOP.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
SALESDOCUMENTIN = scr0100-vbeln
order_header_in = bapisdhd1
order_header_inx = bapisdhd1x
IMPORTING
salesdocument = scr0100-cbeln
TABLES
return = return
order_items_in = bapisditm
order_items_inx = bapisditmx
order_partners = bapiparnr.
ORDER_SCHEDULES_IN =
ORDER_SCHEDULES_INX =
ORDER_CONDITIONS_IN =
ORDER_CONDITIONS_INX =
LOOP AT return WHERE type = 'E' OR type = 'A'.
EXIT.
ENDLOOP.
IF sy-subrc <> 0.
COMMIT WORK AND WAIT.
ENDIF.
tnx! i hope someone can fix it...
‎2007 Aug 07 9:20 PM
‎2007 Aug 07 9:34 PM
VBAK stores all sales documents, not just sales orders. So when you select from VBAK, you may selected some contracts of RFQs along with your sales orders and the BAPI you are using supports only sales orders.
Change your select statement to say VBTYP = 'C', then your current code should work.