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

BAPI -SALES ORDER ERROR

divsmart
Participant
0 Likes
1,197

Hi Guys,

I have created an BAPI for sales order creation using ''BAPI_SALESORDER_CREATEFROMDAT2'

& with 'NO' syntax or dump..

But, i am unable to see the record in VA03 (where i stored as default) in IT_return i can see the sales document was successfully created. But i am unable to check what i am missing here.

I have attached the source code , Debug screen , and error in VA03.

Yours help is much appreciated!!!

My code:

REPORT zbapi_test06.

DATA: v_vbeln TYPE bapivbeln-vbeln.

DATA: wa_order_header_in LIKE bapisdhd1,
wa_order_header_inx LIKE bapisdhd1x.

DATA: it_order_items_in TYPE TABLE OF bapisditm,
wa_order_items_in TYPE bapisditm.

DATA: it_order_items_inx TYPE TABLE OF bapisditmx,
wa_order_items_inx TYPE bapisditmx.

DATA: it_order_partners TYPE TABLE OF bapiparnr,
wa_order_partners TYPE bapiparnr.

DATA: it_return TYPE TABLE OF bapiret2,
wa_return TYPE bapiret2.

START-OF-SELECTION.

wa_order_header_in-doc_type = 'RO'.
wa_order_header_in-doc_date = '24.02.1998'.
wa_order_header_in-sales_org = '1000'.
wa_order_header_in-distr_chan = '10' .
wa_order_header_in-division = '00' .

wa_order_header_inx-doc_type = 'X'.
wa_order_header_inx-doc_date = 'X'.
wa_order_header_inx-sales_org = 'X'.
wa_order_header_inx-distr_chan = 'X' .
wa_order_header_inx-division = 'X' .

wa_order_items_in-itm_number = '000010'.
wa_order_items_in-material = 'M-15'.
wa_order_items_in-target_qty = '25'.
* wa_order_items_in-t_unit_iso = 'KG'.
wa_order_items_in-short_text = 'SEC Multisync XV15'.
wa_order_items_in-item_categ = 'TAN' .
APPEND wa_order_items_in TO it_order_items_in.
CLEAR wa_order_items_in.

wa_order_items_inx-itm_number = '000010'.
wa_order_items_inx-material = 'X'.
wa_order_items_inx-target_qty = 'X'.
* wa_order_items_inx-t_unit_iso = 'X'.
wa_order_items_inx-short_text = 'X'.
wa_order_items_inx-item_categ = 'X' .
APPEND wa_order_items_inx TO it_order_items_inx.
CLEAR wa_order_items_inx.

wa_order_partners-partn_role = 'SH'.
wa_order_partners-partn_numb = '0000001360'.
* wa_order_partners-name = 'Flatter & Asche AG'.
* wa_order_partners-street = 'Daimlerstrasse 35'.
* wa_order_partners-postl_code = '40235'.
* wa_order_partners-city = 'Duesseldorf'.
APPEND wa_order_partners TO it_order_partners.
CLEAR wa_order_partners.

wa_order_partners-partn_role = 'SP'.
wa_order_partners-partn_numb = '0000001360'.
APPEND wa_order_partners TO it_order_partners.
CLEAR wa_order_partners.


* BREAK-POINT.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
* salesdocumentin = v_vbeln
order_header_in = wa_order_header_in
order_header_inx = wa_order_header_inx
* testrun = 'X'
convert = 'X'
IMPORTING
salesdocument = v_vbeln
TABLES
return = it_return
order_items_in = it_order_items_in
order_items_inx = it_order_items_inx
order_partners = it_order_partners.

IF it_return is NOT INITIAL.
READ TABLE it_return TRANSPORTING NO FIELDS WITH KEY type = 'E'.
IF SY-SUBRC = 0.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.

ENDIF.
ENDIF.

Error message and Deb screen:

dispaly.jpgdeb.jpg

2 REPLIES 2
Read only

MateuszAdamus
Active Contributor
1,094

Hi divsmart

You're not saving the created document. The BAPI_TRANSACTION_COMMIT is executed only, if there is an error in the IT_RETURN table. See below code.

IF it_return is NOT INITIAL.
  READ TABLE it_return TRANSPORTING NO FIELDS WITH KEY type = 'E'.
  IF SY-SUBRC = 0. " <-- should be SY-SUBRC <> 0
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        WAIT = 'X'.
  ENDIF.
ENDIF.
Regards,
Mateusz
Read only

0 Likes
1,094

Hi Mateusz,

Yes, its should be it_return is not initial ..

Sorry , its my mistake. Much Thanks for reply.. Now i got that answer..

Regards,

Senthil.G .