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

ISSUE ON CREATE SALES ORDER USING BAPI

Former Member
0 Likes
1,589

Hi,

I am creating a sales order using bapi BAPI_SALESORDER_CREATEFROMDAT2.But it it fails to create a sales order abd below is my code pls check and correct me to create a sales order.

LOOP AT DATA_TAB.

clear: l_order_header_in,

l_salesdocument,

l_order_partners,

l_order_items_IN,

l_order_schedules_IN.

refresh: l_order_items_in,

l_order_partners,

l_order_schedules_IN,

l_return.

  • Order header

l_order_header_in-DOC_TYPE = DATA_TAB-AUART.

l_order_header_IN-SALES_ORG = DATA_TAB-VKORG.

l_order_header_IN-DISTR_CHAN = data_tab-vtweg.

l_order_header_in-division = DATA_TAB-SPART.

l_order_header_in-REF_1_S = DATA_TAB-IHREZ_E.

l_order_header_in-PURCH_NO_S = DATA_TAB-BSTKD_E.

l_order_header_in-PO_DAT_S = data_tab-bstdk_e.

l_order_header_in-PO_METH_S = DATA_TAB-BSARK_E.

l_order_header_in-DOC_DATE = DATA_TAB-AUDAT.

l_order_header_in-REC_POINT = DATA_TAB-EMPST.

l_order_header_inX-DOC_TYPE = 'X'.

l_order_header_INX-SALES_ORG = 'X'.

l_order_header_INX-DISTR_CHAN = 'X'.

l_order_header_inX-division = 'X'.

l_order_header_inX-REF_1_S = 'X'.

l_order_header_inX-PURCH_NO_S = 'X'.

l_order_header_inX-PO_DAT_S = 'X'.

l_order_header_inX-PO_METH_S = 'X'.

l_order_header_inX-DOC_DATE = 'X'.

l_order_header_inX-REC_POINT = 'X'.

  • Partner data SOLD TO PARTY

l_order_partners-ITM_NUMBER = DATA_TAB-POSNR.

l_order_partners-partn_role = 'SP'.

l_order_partners-partn_numb = DATA_TAB-kunnr1.

append l_ordeR_partners.

  • Partner data SHOP TO PARTY

l_order_partners-ITM_NUMBER = DATA_TAB-POSNR.

l_order_partners-partn_role = 'SH'.

l_order_partners-partn_numb = DATA_TAB-kunnr2.

append l_ordeR_partners.

  • Order items

l_order_items_IN-ITM_NUMBER = DATA_TAB-POSNR.

l_order_items_IN-material = DATA_TAB-MABNR.

l_order_items_IN-BATCH = DATA_TAB-CHARG.

l_order_items_IN-REASON_REJ = DATA_TAB-ABGRU.

append l_order_items_IN.

l_order_items_INX-ITM_NUMBER = DATA_TAB-POSNR.

l_order_items_INX-material = 'X'.

l_order_items_INX-BATCH = 'X'.

l_order_items_INX-REASON_REJ = 'X'.

append l_order_items_INX.

  • Schedules for quantity

l_order_schedules_IN-itm_number = DATA_TAB-POSNR.

l_order_schedules_IN-req_qty = DATA_TAB-KWMENG.

append l_order_schedules_IN.

  • Schedules for quantity

l_order_schedules_INX-itm_number = data_tab-posnr.

l_order_schedules_INX-req_qty = 'X'.

append l_order_schedules_INX.

  • Conditions for value

l_order_conditions_IN-itm_number = DATA_TAB-POSNR.

l_order_conditions_IN-cond_type = DATA_TAB-KSCHL.

l_order_conditions_IN-cond_value = DATA_TAB-KBETR.

l_order_conditions_IN-currency = DATA_TAB-KOEIN.

append l_order_conditions_IN.

  • Conditions for value

l_order_conditions_INX-itm_number = DATA_TAB-POSNR.

l_order_conditions_INX-cond_type = 'X'.

l_order_conditions_INX-cond_value = 'X'.

l_order_conditions_INX-currency = 'X'.

append l_order_conditions_INX .

endloop.

  • BAPI to create sales order

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

  • SALESDOCUMENTIN =

ORDER_HEADER_IN = l_order_header_IN

ORDER_HEADER_INX = l_order_header_INX

IMPORTING

SALESDOCUMENT = l_salesdocument

TABLES

RETURN = l_return

ORDER_ITEMS_IN = l_order_items_IN

ORDER_ITEMS_INX = l_order_items_INX

ORDER_PARTNERS = l_order_partners

ORDER_SCHEDULES_IN = l_order_schedules_in

ORDER_SCHEDULES_INX = l_order_schedules_inX

ORDER_CONDITIONS_IN = l_order_conditions_in

ORDER_CONDITIONS_INX = l_order_conditions_inX

.

IF SY-SUBRC = 0.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = C_X

  • IMPORTING

  • RETURN =

.

ENDIF.

Pls help me to solve the issue.

Thanks,

Rajendra.

7 REPLIES 7
Read only

Former Member
0 Likes
1,240

Hi

Read the messages in table L_RETURN, here you should understand what's missing to create the order correctly.

Max

Read only

0 Likes
1,240

Hi Max Bianchi,

Below is the error i got in l_return.

E VP 112 Please enter sold-to party or ship-to party

E V4 219 Sales document was not changed

Actualy i have 2 item datas in my flat file.but i cant see the 1st item line in the l_order_items_IN,l_order_schedules_IN but i can see both the line items in l_order_conditions_IN.so what will be problem.

Thanks,

Rajendra.

Read only

Former Member
0 Likes
1,240

Use this code, AG is for Ship to Party and WE for Ship to party internally,

  • Sold to Party

<b>l_order_partners-partn_role = 'AG'.</b>

  • Ship to Party

<b>l_order_partners-partn_role = 'WE'.</b>

Regards

Kathirvel

Read only

0 Likes
1,240

Hi Kathir,

No changes,Still i got the same error only.if anybody have the sample code which the SO is successful pls send me that will help me a lot.

Thanks,

Rajendra

Read only

0 Likes
1,240

Hi Raj

This is the sameple code which works fine for me,


REPORT  zkb_sales_order.

DATA: w_order_header_in TYPE bapisdhd1,
      i_order_partners TYPE TABLE OF bapiparnr,
      w_order_partners TYPE bapiparnr,
      i_return TYPE TABLE OF bapiret2,
      w_return TYPE bapiret2,
     i_order_items_in TYPE TABLE OF bapisditm,
     w_order_items_in TYPE  bapisditm,
     i_order_items_inx TYPE TABLE OF  bapisditmx,
     w_order_items_inx TYPE  bapisditmx,
    i_order_conditions_in TYPE TABLE OF bapicond,
    w_order_conditions_in TYPE bapicond,
    i_order_conditions_inx TYPE TABLE OF bapicondx,
    w_order_conditions_inx TYPE TABLE OF bapicondx.


CLEAR w_order_header_in.
w_order_header_in-doc_type  = 'ZSO'.
w_order_header_in-sales_org =  '1000'.
w_order_header_in-distr_chan = '01'.
w_order_header_in-division =  '01'.
w_order_header_in-req_date_h  = sy-datum.
w_order_header_in-sales_dist =   '000001'.

CLEAR: i_order_items_in,w_order_items_in.
w_order_items_in-material = 77.
w_order_items_in-salqtynum = 1.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    input  = w_order_items_in-material
  IMPORTING
    output = w_order_items_in-material.
APPEND w_order_items_in TO i_order_items_in.

* SP
CLEAR: i_order_partners,w_order_partners.
w_order_partners-partn_role = 'AG'.
w_order_partners-partn_numb = '2000016'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    input  = w_order_partners-partn_numb
  IMPORTING
    output = w_order_partners-partn_numb.
APPEND w_order_partners TO i_order_partners.

CLEAR: i_order_conditions_in,w_order_conditions_in.
w_order_conditions_in-itm_number =  '000010'.
w_order_conditions_in-cond_type  =   'PR00'.
w_order_conditions_in-cond_value =  100.
APPEND w_order_conditions_in TO i_order_conditions_in.

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
  EXPORTING
*   SALESDOCUMENTIN               =
    order_header_in               = w_order_header_in
*   ORDER_HEADER_INX              =
*   SENDER                        =
*   BINARY_RELATIONSHIPTYPE       =
*   INT_NUMBER_ASSIGNMENT         =
*   BEHAVE_WHEN_ERROR             =
*   LOGIC_SWITCH                  =
*   TESTRUN                       =
*   CONVERT                       = ' '
* IMPORTING
*   SALESDOCUMENT                 =
  TABLES
   return                        = i_return
   order_items_in                = i_order_items_in
*   ORDER_ITEMS_INX               =
    order_partners                = i_order_partners
*   ORDER_SCHEDULES_IN            =
*   ORDER_SCHEDULES_INX           =
   order_conditions_in           = i_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              =
          .

READ TABLE i_return INTO w_return WITH KEY type = 'E'.
IF sy-subrc NE 0.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
ENDIF.
LOOP AT i_return INTO w_return .
  WRITE: / w_return-type,
  w_return-id,
  w_return-number,
  w_return-message.
ENDLOOP.

Regards

Kathirvel

Read only

Former Member
0 Likes
1,240

Hi,body. I met a mistake like you and i have resolved it.

*----


  • Partner data SOLD TO PARTY

l_order_partners-ITM_NUMBER = DATA_TAB-POSNR.

l_order_partners-partn_role = 'SP'.

l_order_partners-partn_numb = DATA_TAB-kunnr1.

append l_ordeR_partners.

*----


you should not add ITM_NUMBER in l_order_partners.

please take out it and try it again.

Read only

Former Member
0 Likes
1,240

solved