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

Problems with output table from BAPI_SALESORDER_CREATEFROMDAT2

Former Member
0 Likes
950

Hi Gurus,

I am using the BAPI BAPI_SALESORDER_CREATEFROMDAT2 for creating the sales order and it is working fine (properly creating sales order) but I am facing few problems:

1) In the ORDER_ITEMS_IN table after creating the order all other e.g. short_text or EAN_UPC fields are not getting populated

2) In table ORDER_ITEMS_IN it gives me all the material in the output after creating the order if material does not present in SAP ie I want only the correct material for which the sales order is created

Please reply me as soon as possible as I urgently need your help.

Sagar

6 REPLIES 6
Read only

Former Member
0 Likes
843

hi,

kindly post the code such that i can help you out fastly

regards,

pavan

Read only

0 Likes
843

Hi Pavan,

Thanks for your quick reply

But first I would like to inform you that I have created the ZBAPI as it need commit work and there is a third party solution which will be calling this ZBAPI and creating the sales order

Below is the fields which I am possing and also the code in the ZBAPI

<b>INPUT DATA:</b>

) ORDER_HEADER_IN-DOC_TYPE value OR (constant value)

2) ORDER_HEADER_IN-SALES_ORG value AN01

3) ORDER_HEADER_IN-DISTR_CHAN value DI

4) ORDER_HEADER_IN-DIVISION value 01

5) ORDER_HEADER_IN-PURCH_NO_C value Test_spi

6) BEHAVE_WHEN_ERROR value P (constant value)

Input parameters with multiple value:

1) ORDER_ITEMS_IN-MATERIAL value 352213

2) ORDER_ITEMS_IN-MATERIAL value 14

3) ORDER_ITEMS_IN-MATERIAL value 788752522

4) ORDER_ITEMS_IN-MATERIAL value 352215

5) ORDER_ITEMS_IN-TARGET_QTY value 1

6) ORDER_ITEMS_IN-TARGET_QTY value 1

7) ORDER_ITEMS_IN-TARGET_QTY value 1

😎 ORDER_ITEMS_IN-TARGET_QTY value 1

9) ORDER_PARTNERS-PARTN_ROLE value SH (constant value)

10) ORDER_PARTNERS-PARTN_ROLE value SP (constant value)

11) ORDER_PARTNERS-PARTN_NUMB value 44

12) ORDER_PARTNERS-PARTN_NUMB value 44

Code of the ZBAPI:

FUNCTION z_bapi_salesorder_createomdat2.

*"----


""Local interface:

*" IMPORTING

*" VALUE(SALESDOCUMENTIN) LIKE BAPIVBELN-VBELN OPTIONAL

*" VALUE(ORDER_HEADER_IN) LIKE BAPISDHD1 STRUCTURE BAPISDHD1

*" VALUE(ORDER_HEADER_INX) LIKE BAPISDHD1X STRUCTURE BAPISDHD1X

*" OPTIONAL

*" VALUE(SENDER) LIKE BAPI_SENDER STRUCTURE BAPI_SENDER OPTIONAL

*" VALUE(BINARY_RELATIONSHIPTYPE) LIKE BAPIRELTYPE-RELTYPE

*" OPTIONAL

*" VALUE(INT_NUMBER_ASSIGNMENT) LIKE BAPIFLAG-BAPIFLAG OPTIONAL

*" VALUE(BEHAVE_WHEN_ERROR) LIKE BAPIFLAG-BAPIFLAG OPTIONAL

*" VALUE(LOGIC_SWITCH) LIKE BAPISDLS STRUCTURE BAPISDLS OPTIONAL

*" VALUE(TESTRUN) LIKE BAPIFLAG-BAPIFLAG OPTIONAL

*" VALUE(CONVERT) LIKE BAPIFLAG-BAPIFLAG DEFAULT SPACE

*" EXPORTING

*" VALUE(SALESDOCUMENT) LIKE BAPIVBELN-VBELN

*" TABLES

*" RETURN STRUCTURE BAPIRET2 OPTIONAL

*" ORDER_ITEMS_IN STRUCTURE BAPISDITM OPTIONAL

*" ORDER_ITEMS_INX STRUCTURE BAPISDITMX OPTIONAL

*" ORDER_PARTNERS STRUCTURE BAPIPARNR

*" ORDER_SCHEDULES_IN STRUCTURE BAPISCHDL OPTIONAL

*" ORDER_SCHEDULES_INX STRUCTURE BAPISCHDLX OPTIONAL

*" ORDER_CONDITIONS_IN STRUCTURE BAPICOND OPTIONAL

*" ORDER_CFGS_REF STRUCTURE BAPICUCFG OPTIONAL

*" ORDER_CFGS_INST STRUCTURE BAPICUINS OPTIONAL

*" ORDER_CFGS_PART_OF STRUCTURE BAPICUPRT OPTIONAL

*" ORDER_CFGS_VALUE STRUCTURE BAPICUVAL OPTIONAL

*" ORDER_CFGS_BLOB STRUCTURE BAPICUBLB OPTIONAL

*" ORDER_CFGS_VK STRUCTURE BAPICUVK OPTIONAL

*" ORDER_CFGS_REFINST STRUCTURE BAPICUREF OPTIONAL

*" ORDER_CCARD STRUCTURE BAPICCARD OPTIONAL

*" ORDER_TEXT STRUCTURE BAPISDTEXT OPTIONAL

*" ORDER_KEYS STRUCTURE BAPISDKEY OPTIONAL

*" EXTENSIONIN STRUCTURE BAPIPAREX OPTIONAL

*" PARTNERADDRESSES STRUCTURE BAPIADDR1 OPTIONAL

*" ERROR_MATERIALS STRUCTURE BAPISDITM OPTIONAL

*"----


DATA: l_count TYPE bapischdl-itm_number.

CLEAR l_count.

LOOP AT order_items_in.

  • LOGIC FOR APPENDING THE ITEM NO. AND TARGET QTY.

l_count = l_count + 10.

order_schedules_in-itm_number = l_count.

order_schedules_in-req_qty = order_items_in-target_qty.

APPEND order_schedules_in.

CLEAR order_schedules_in.

  • Get all the materials which does not exist or is set as deletion

SELECT SINGLE matnr

FROM mara

INTO error_materials-material

WHERE matnr EQ order_items_in-material

AND lvorm NE 'X'.

IF sy-subrc NE 0.

APPEND error_materials.

CLEAR error_materials.

ENDIF.

ENDLOOP.

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

salesdocumentin = salesdocumentin

order_header_in = order_header_in

order_header_inx = 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 = testrun

convert = ' '

IMPORTING

salesdocument = salesdocument

TABLES

return = return

order_items_in = order_items_in

order_items_inx = order_items_inx

order_partners = order_partners

order_schedules_in = order_schedules_in

order_schedules_inx = order_schedules_inx

order_conditions_in = order_conditions_in

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.

IF NOT salesdocument IS INITIAL.

COMMIT WORK.

ELSE.

ROLLBACK WORK.

ENDIF.

ENDFUNCTION.

Please let me know if you requires some more information

Regards,

Sagar

Read only

Former Member
0 Likes
843

where you are updating index files i am not getting, r u doing index updateflag = 'I' or that is not required for your program

correct me if i am wrong, i am talking as per my knowledge

pls respond fastly

regards,

pavan

Read only

Former Member
0 Likes
843

this is the program i wrote :

may be this may useful for you to understand fastly

REPORT ZSKCREA .

*types : begin of xml_line,

  • data(256) type x,

  • end of xml_line.

*

*data: xml_table type table of xml_line,

  • xml_table_size type i,

  • istream type ref to if_ixml_istream.

*

*call function 'GUI_UPLOAD'

  • exporting

  • filename = 'c:\slcreaorder2.xml'

  • FILETYPE = 'BIN'

  • IMPORTING

  • FILELENGTH = xml_table_size

  • tables

  • data_tab = xml_table

*.

data : salesorderheader like BAPISDHD1 occurs 0 with header line,

salesorderheaderx like BAPISDHD1X occurs 0 with header line,

salesorderitems like BAPISDITM occurs 0 with header line,

salesorderitemsx like BAPISDITMX occurs 0 with header line,

salesorderpartners like BAPIPARNR occurs 0 with header line,

salesorderschdule like BAPISCHDL occurs 0 with header line,

salesorderschdulex like BAPISCHDLX occurs 0 with header line,

salesordercondition like bapicond occurs 0 with header line,

salesorderconditionx like bapicondx occurs 0 with header line,

return1 like BAPIRET2 occurs 0 with header line.

salesorderheader-doc_type = 'TA'.

salesorderheader-sales_org = 'JNJ1'.

salesorderheader-distr_chan = '02'.

salesorderheader-division = 'J1'.

salesorderheader-sales_off = 'JNJ1'.

salesorderheader-purch_no_c = 'testbapipo'.

salesorderheader-purch_date = sy-datum.

salesorderheader-req_date_h = sy-datum.

append salesorderheader.

salesorderitems-material = '000000000000000727'.

salesorderitems-plant = 'JNJ1'.

salesorderitems-target_qu = 'EA'.

append salesorderitems.

salesorderpartners-partn_role = 'AG'.

salesorderpartners-partn_numb = '0000000036'.

append salesorderpartners.

salesorderschdule-itm_number = '10'.

salesorderschdule-req_qty = '10'.

append salesorderschdule.

  • salesordercondition-cond_type = 'zpr1'.

  • salesordercondition-cond_value = '40'.

  • append salesordercondition.

salesorderheaderx-updateflag = 'I'.

salesorderheaderx-doc_type = 'X'.

salesorderheaderx-sales_org = 'X'.

salesorderheaderx-distr_chan = 'X'.

salesorderheaderx-division = 'X'.

salesorderheaderx-sales_off = 'X'.

salesorderheaderx-purch_no_c = 'X'.

salesorderheaderx-purch_date = 'X'.

salesorderheaderx-req_date_h = 'X'.

salesorderitemsx-updateflag = 'I'.

salesorderitemsx-material = 'X'.

salesorderitemsx-plant = 'X'.

salesorderitemsx-division = 'X'.

salesorderitemsx-target_qu = 'X'.

append salesorderitemsx.

salesorderschdulex-updateflag = 'I'.

salesorderschdulex-itm_number = 'X'.

salesorderschdulex-req_qty = 'X'.

append salesorderschdulex.

  • salesorderconditionx-updateflag = 'I'.

  • salesorderconditionx-cond_type = 'X'.

  • salesorderconditionx-cond_value = 'X'.

  • append salesorderconditionx.

call function 'BAPI_SALESORDER_CREATEFROMDAT2'

exporting

  • SALESDOCUMENTIN =

order_header_in = salesorderheader

ORDER_HEADER_INX = salesorderheaderx

  • SENDER =

  • BINARY_RELATIONSHIPTYPE =

  • INT_NUMBER_ASSIGNMENT =

  • BEHAVE_WHEN_ERROR =

  • LOGIC_SWITCH =

  • TESTRUN =

  • CONVERT = 'c:\msk2.xml '

  • IMPORTING

  • SALESDOCUMENT = salesdocument

tables

RETURN = return1

ORDER_ITEMS_IN = salesorderitems

ORDER_ITEMS_INX = salesorderitemsx

order_partners = salesorderpartners

ORDER_SCHEDULES_IN = salesorderschdule

ORDER_SCHEDULES_INX = salesorderschdulex

  • ORDER_CONDITIONS_IN =

  • ORDER_CONDITIONS_INX =

  • ORDER_CFGS_REF =

  • ORDER_CFGS_INST =

  • ORDER_CFGS_PART_OF =

  • ORDER_CFGS_VALUE =

  • ORDER_CFGS_BLOB =

  • ORDER_CFGS_VK =

  • ORDER_CFGS_REFINST =

  • ORDER_CCARD =

  • ORDER_TEXT =

  • ORDER_KEYS =

  • EXTENSIONIN =

  • PARTNERADDRESSES =

.

call function 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT =

  • IMPORTING

  • RETURN =

.

regards,

pavan

Read only

0 Likes
843

Hi Pavan,

I tried the your code and I have added the values ORDER_ITEMS_INX but still in the ORDER_ITEMS_IN is filled with no extra fields. But I want some extra fields related to material master.

And do in need to pass index field in schedule line table too.

And also how we would be know for which material the sales order was created if the data we pass has some incorrect material

Regards

Sagar

Read only

0 Likes
843

hi sagar,

if we pass incorrect material, As per my knowledge, it won't create sales order, you will error/warning message in return structure of Bapi, by that message you can know that it is wrong material entry is happened.

for forther clariffication, kindly take help of SD consultant.

correct me if i am wrong

regards,

pavan

Message was edited by:

pavan kumar pisipati