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

Error in BAPI

Former Member
0 Likes
1,776

Hi guys!

I'm still having trouble with my BAPI. Right now I'm using BAPI_SALESORDER_CREATEFRMDAT1, having an error of

<b>Unpermitted combination of business object BUS2032 and sales doc. category</b>. could someone explain why is this happening? Please help. Below is my code..

DATA: 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.

  • -- 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 AND

vbtyp = 'B'.

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

bapisdhd1-ref_doc = scr0100-vbeln.

bapisdhd1x-ref_doc = 'X'.

bapisdhd1-refdoc_cat = 'B'.

bapisdhd1x-refdoc_cat = 'X'.

bapisdhd1-doc_type = 'ZRE'.

bapisdhd1x-doc_type = 'X'.

LOOP AT it_vbak INTO wa_vbak.

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.

LOOP AT it_vbap INTO wa_vbap.

bapisditmx-updateflag = 'I'.

bapisditm-ref_doc = wa_vbap-vbeln.

bapisditmx-ref_doc = 'X'.

bapisditm-ref_doc_it = wa_vbap-posnr.

bapisditmx-ref_doc_it = 'X'.

bapisditm-ref_doc_ca = 'B'.

bapisditmx-ref_doc_ca = 'X'.

bapisditm-material = wa_vbap-matnr.

bapisditmx-material = 'X'.

bapisditm-plant = wa_vbap-werks.

bapisditmx-plant = 'X'.

  • bapisditm-target_qty = wa_vbap-kwmeng.

  • bapisditmx-target_qty = 'X'.

APPEND: bapisditm,

bapisditmx.

CLEAR wa_vbap.

ENDLOOP.

CHECK NOT it_vbak IS INITIAL AND NOT it_vbap IS INITIAL.

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

order_header_in = bapisdhd1

order_header_inx = bapisdhd1x

convert = 'X'

IMPORTING

salesdocument = scr0100-cbeln

TABLES

return = return

order_items_in = bapisditm

order_items_inx = bapisditmx

order_partners = bapiparnr.

LOOP AT return WHERE type = 'E' OR type = 'A'.

EXIT.

ENDLOOP.

IF sy-subrc <> 0.

COMMIT WORK AND WAIT.

ENDIF.

Please help its urgent...tnx!

Regards,

Mackoy

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,512

I think you have to fill in bapisdhd1-SD_DOC_CAT.

Rob

11 REPLIES 11
Read only

Former Member
0 Likes
1,512

Hi,

Please refer to the documentation below:

Functionality

You can use this method to create sales orders.

You must enter at least the order header data (from the ORDER_HEADER_IN structure) as well as partner data (using the ORDER_PARTNERS table) as input parameters.

Enter item data using the ORDER_ITEMS_IN table. You can allocate the item number by filling in the relevant fields manually, or the system does it according to the settings in Customizing, whereby the relevant fields remain blank.

If the item is configurable, you need to enter the configuration data in the ORDER_CFGS_REF, ORDER_CFGS_INST, ORDER_CFGS_PART_OF and ORDER_CFGS_VALUE tables.

You can use the BAPICCARD structure to enter credit card data. You can either enter data for identifying the card or, you can enter data for an authorization in an external system.

Once you have successfully created the sales order, the system displays the document number (in the SALESDOCUMENT field), as well as detailed data about the other parties (in the OLD_TO_PARTY, SHIP_TO_PARTY and BILLING_PARTY structures). The RETURN parameter displays any errors that may have occured.

The ORDER_ITEMS_OUT table contains more detailed information that will enable you to judge the pricing and availability of an item.

Notes

1. Mandatory entries:

ORDER_HEADER_IN : DOC_TYPE Sales document type

SALES_ORG Sales organization

DISTR_CHAN Distribution channel

DIVISION Division

ORDER_PARTNERS..: PARTN_ROLE Partner functions, SP sold-to party

PARTN_NUMB Customer number

ORDER_ITEMS_IN..: MATERIAL Material number

REQ_QTY Order quantity in sales unit

2. Ship-to party

If a ship-to party hasn't been entered, the ship-to party = sold-to

party

3. COMMIT control:Parameter WITHOUT_COMMIT

If this switch is activated, the system does not process any Commit Work and the application that has called it up must trigger the Commit itself. To do this, useBAPI_TRANSACTION_COMMIT.

4. German keywords:

The following keywords must be entered in German, regardless of the

logon language:

DOC_TYPE Sales document type, for example TA for standard order

PARTN_ROLE Partner function, for example, WE for ship-to party

Hope it will be useful.

Thanks,

Sandeep.

Read only

0 Likes
1,512

Hi Sandeep!

Am i having problem in my doc_type? in my program, i declare the

doc_type = 'ZRE' which is available in va01. still having a problem.. what should i do..tnx

regards,

Mackoy

Read only

Former Member
0 Likes
1,512

Is there a long text with the message?

Rob

Read only

0 Likes
1,512

Hi Rob,

Yes! and it says:

<b>Unpermitted combination of business object BUS2032 and sales doc. category</b>. do u know this error?

Regards,

Mackoy

Read only

0 Likes
1,512

What's the error message number and id?

Rob

Read only

0 Likes
1,512

Hi Rob,

error message no. V1 and id 761. tnx!

Read only

0 Likes
1,512

HI,

Check these links.. May get a clue..

Thanks

Mahesh

Read only

Former Member
0 Likes
1,513

I think you have to fill in bapisdhd1-SD_DOC_CAT.

Rob

Read only

Former Member
0 Likes
1,512

You are trying to fill th ereference doc details it at the header level instead fill it at the item level

Read only

Former Member
0 Likes
1,512

From wat I'm seeing, you have to use BAPI_SALESDOCU_CREATEFROMDAT1 for any creation that is not a Sales Order.

Read only

Former Member
0 Likes
1,512

i hope u have to use 'DOC_TYPE TYPE AUART' instead of refdoc_cat ....

bapisdhd1-ref_doc = scr0100-vbeln.

bapisdhd1x-ref_doc = 'X'.

bapisdhd1-refdoc_cat = 'B'.

bapisdhd1x-refdoc_cat = 'X'.

bapisdhd1-doc_type = 'ZRE'.

bapisdhd1x-doc_type = 'X'.

check the sample code below...........so that u will get an idea............

*Order Partners

data: li_order_partners type standard table of bapiparnr,

l_order_partners like bapiparnr.

*Structures For Order Header

data:l_order_header_in like bapisdhd1,

l_order_header_inx like bapisdhd1x,

*Tables for Order Items

li_order_items_in type standard table of bapisditm,

l_order_items_in like bapisditm,

li_order_items_inx type standard table of bapisditmx,

l_order_items_inx like bapisditmx,

*Return Table from BAPI Call

li_return type standard table of bapiret2,

l_return type bapiret2,

*Sales Document No

l_vbeln like bapivbeln-vbeln,

*Error Flag

l_errflag(1) type c.

start-of-selection.

*Build Partner Information

clear l_order_partners .

l_order_partners-partn_role = 'AG'.

l_order_partners-partn_numb = '0000001002'.

append l_order_partners to li_order_partners.

*Update Flag

l_order_header_inx-updateflag = 'I'.

*Sales document type

l_order_header_in-doc_type = 'TA'.

l_order_header_inx-doc_type = 'X'.

*Sales Organization

l_order_header_in-sales_org = '1000'.

l_order_header_inx-sales_org = 'X'.

*Distribution Channel

l_order_header_in-distr_chan = '10'.

l_order_header_inx-distr_chan = 'X'.

*Division

l_order_header_in-division = '00'.

l_order_header_inx-division = 'X'.

*Purchase Order

l_order_header_in-purch_no_c = 'DG-19970626-300'.

l_order_header_inx-purch_no_c = 'X'.

*Build Order Items for 1 item

l_order_items_in-itm_number = '10'.

l_order_items_inx-itm_number = '10'.

l_order_items_in-material = 'P-100'.

l_order_items_inx-material = 'X'.

l_order_items_in-comp_quant = '1.000'.

l_order_items_inx-comp_quant = 'X'.

append l_order_items_in to li_order_items_in.

l_order_items_inx-updateflag = 'I'.

append l_order_items_inx to li_order_items_inx.

call function 'BAPI_SALESORDER_CREATEFROMDAT2'

exporting

  • SALESDOCUMENTIN = SALESDOCUMENTIN

order_header_in = l_order_header_in

order_header_inx = l_order_header_inx

  • SENDER = SENDER

  • BINARY_RELATIONSHIPTYPE = BINARY_RELATIONSHIPTYPE

  • INT_NUMBER_ASSIGNMENT = INT_NUMBER_ASSIGNMENT

  • BEHAVE_WHEN_ERROR = BEHAVE_WHEN_ERROR

  • LOGIC_SWITCH = LOGIC_SWITCH

testrun = 'X'

  • CONVERT = ' '

importing

salesdocument = l_vbeln

tables

return = li_return

order_items_in = li_order_items_in

order_items_inx = li_order_items_inx

order_partners = li_order_partners

  • ORDER_SCHEDULES_IN = ORDER_SCHEDULES_IN

  • ORDER_SCHEDULES_INX = ORDER_SCHEDULES_INX

  • ORDER_CONDITIONS_IN = ORDER_CONDITIONS_IN

  • ORDER_CONDITIONS_INX = ORDER_CONDITIONS_INX

  • ORDER_CFGS_REF = ORDER_CFGS_REF

  • ORDER_CFGS_INST = ORDER_CFGS_INST

  • ORDER_CFGS_PART_OF = ORDER_CFGS_PART_OF

  • ORDER_CFGS_VALUE = ORDER_CFGS_VALUE

  • ORDER_CFGS_BLOB = ORDER_CFGS_BLOB

  • ORDER_CFGS_VK = ORDER_CFGS_VK

  • ORDER_CFGS_REFINST = ORDER_CFGS_REFINST

  • ORDER_CCARD = ORDER_CCARD

  • ORDER_TEXT = ORDER_TEXT

  • ORDER_KEYS = ORDER_KEYS

  • EXTENSIONIN = EXTENSIONIN

  • PARTNERADDRESSES = PARTNERADDRESSES

.

end-of-selection.

*----


  • Check and write Return table

*----


clear l_errflag.

write: / 'Sales dcoument: ', l_vbeln.

loop at li_return into l_return.

write: / l_return-type, l_return-message(50).

if l_return-type = 'E'.

l_errflag = 'X'.

endif.

endloop.

*----


  • No errors - Commit

*----


if l_errflag is initial.

call function 'BAPI_TRANSACTION_COMMIT'.

endif.

reward points if helpful..........