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

order quantity in BAPI BAPI_SALESORDER_CREATEFROMDAT2

Former Member
0 Likes
3,576

Hi,

I'm using BAPI 'BAPI_SALESORDER_CREATEFROMDAT2' to create a sale order.

But the order quantity isn't upadate when I check the sales order number.

The field I used is target_qty in BAPISDITM.

Is the field wrong or some other problems?

Best Regards,

Rachel

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
2,041

Hi,

I created SO using BAPI_SALESDOCU_CREATEFROMDATA1. while filling the header and item data, i used to do the following,

If you are passing some value to 'target_qty', make sure that you are filling the sales_items_inx-req_qty with 'X'. then pass them to the tables import parameters. Please refer the following code.


  fs_sorder-doc_type  = w_auart.
  fs_sorderx-doc_type = c_flag.

  fs_sorder-sales_org  = w_vkorg.
  fs_sorderx-sales_org = c_flag.

  fs_sorder-distr_chan  = w_vtweg.
  fs_sorderx-distr_chan = c_flag.

  fs_sorder-division  = w_spart.
  fs_sorderx-division = c_flag.

  fs_sorderx-updateflag = c_flag.


  fs_partner-partn_role = c_pship.
  fs_partner-partn_numb = w_pship.
  APPEND fs_partner TO t_partner.

  fs_partner-partn_role = c_psold.
  fs_partner-partn_numb = w_psold.
  APPEND fs_partner TO t_partner.

  loop at t_mdata into fs_mdata.
    fs_item-itm_number  = fs_mdata-posnr.
    fs_itemx-itm_number = c_flag.
    fs_item-material    = fs_mdata-matnr.
    fs_itemx-material   = c_flag.
    fs_item-target_qty  = fs_mdata-kwmeng.
    fs_itemx-target_qty = c_flag.
    fs_item-item_categ  = fs_mdata-pstyv.
    fs_itemx-item_categ = c_flag.
    fs_itemx-updateflag = c_flag.
      APPEND fs_item TO t_item.
      APPEND fs_itemx TO t_itemx.

    fs_sline-ITM_NUMBER  = fs_mdata-posnr.
    fs_slinex-ITM_NUMBER = c_flag.
    fs_sline-SCHED_LINE  = c_sline.
    fs_slinex-SCHED_LINE = c_flag.
    fs_sline-REQ_QTY     = fs_mdata-kwmeng.
    fs_slinex-REQ_QTY    = c_flag.
      APPEND fs_sline TO t_sline.
      APPEND fs_slinex TO t_slinex.
  endloop.                             " Loop t_mdata

ENDFORM.                               " data_fill

*---------------------------------------------------------------------*
*  FORM CREATE_SO                                                     *
*---------------------------------------------------------------------*
*  This subroutine calls a BAPI BAPI_SALESDOCU_CREATEFROMDATA1 for    *
*  creating a sales document.                                         *
*---------------------------------------------------------------------*
*  There are no interface parameters to be passed to this subroutine. *
*---------------------------------------------------------------------*
FORM create_so .

  CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'
    EXPORTING
      sales_header_in     = fs_sorder
      sales_header_inx    = fs_sorderx
    IMPORTING
      salesdocument_ex    = w_sonum
    TABLES
      return              = t_return
      sales_items_in      = t_item
      sales_items_inx     = t_itemx
      sales_partners      = t_partner
      sales_schedules_in  = t_sline
      sales_schedules_inx = t_slinex.

ENDFORM.                               " create_SO

Hope this helps.

4 REPLIES 4
Read only

Former Member
0 Likes
2,042

Hi,

I created SO using BAPI_SALESDOCU_CREATEFROMDATA1. while filling the header and item data, i used to do the following,

If you are passing some value to 'target_qty', make sure that you are filling the sales_items_inx-req_qty with 'X'. then pass them to the tables import parameters. Please refer the following code.


  fs_sorder-doc_type  = w_auart.
  fs_sorderx-doc_type = c_flag.

  fs_sorder-sales_org  = w_vkorg.
  fs_sorderx-sales_org = c_flag.

  fs_sorder-distr_chan  = w_vtweg.
  fs_sorderx-distr_chan = c_flag.

  fs_sorder-division  = w_spart.
  fs_sorderx-division = c_flag.

  fs_sorderx-updateflag = c_flag.


  fs_partner-partn_role = c_pship.
  fs_partner-partn_numb = w_pship.
  APPEND fs_partner TO t_partner.

  fs_partner-partn_role = c_psold.
  fs_partner-partn_numb = w_psold.
  APPEND fs_partner TO t_partner.

  loop at t_mdata into fs_mdata.
    fs_item-itm_number  = fs_mdata-posnr.
    fs_itemx-itm_number = c_flag.
    fs_item-material    = fs_mdata-matnr.
    fs_itemx-material   = c_flag.
    fs_item-target_qty  = fs_mdata-kwmeng.
    fs_itemx-target_qty = c_flag.
    fs_item-item_categ  = fs_mdata-pstyv.
    fs_itemx-item_categ = c_flag.
    fs_itemx-updateflag = c_flag.
      APPEND fs_item TO t_item.
      APPEND fs_itemx TO t_itemx.

    fs_sline-ITM_NUMBER  = fs_mdata-posnr.
    fs_slinex-ITM_NUMBER = c_flag.
    fs_sline-SCHED_LINE  = c_sline.
    fs_slinex-SCHED_LINE = c_flag.
    fs_sline-REQ_QTY     = fs_mdata-kwmeng.
    fs_slinex-REQ_QTY    = c_flag.
      APPEND fs_sline TO t_sline.
      APPEND fs_slinex TO t_slinex.
  endloop.                             " Loop t_mdata

ENDFORM.                               " data_fill

*---------------------------------------------------------------------*
*  FORM CREATE_SO                                                     *
*---------------------------------------------------------------------*
*  This subroutine calls a BAPI BAPI_SALESDOCU_CREATEFROMDATA1 for    *
*  creating a sales document.                                         *
*---------------------------------------------------------------------*
*  There are no interface parameters to be passed to this subroutine. *
*---------------------------------------------------------------------*
FORM create_so .

  CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'
    EXPORTING
      sales_header_in     = fs_sorder
      sales_header_inx    = fs_sorderx
    IMPORTING
      salesdocument_ex    = w_sonum
    TABLES
      return              = t_return
      sales_items_in      = t_item
      sales_items_inx     = t_itemx
      sales_partners      = t_partner
      sales_schedules_in  = t_sline
      sales_schedules_inx = t_slinex.

ENDFORM.                               " create_SO

Hope this helps.

Read only

Former Member
0 Likes
2,041

Hi,

Do you mean your sales order is missing only qty which was posted with the said BAPI ?

Thanks

Sudharshan

Read only

0 Likes
2,041

Hi,

only qty is missing.

And in 'BAPI_SALESORDER_CREATEFROMDAT1' , it seems that the quantity field is rec_qty.

Thank you very much.

Best Regards,

Rachel

Read only

Former Member
0 Likes
2,041

In Order to add the quantity populate the schedule field which will automatically populate the quantity in the Line item of thr sales tab. I am using the same and its owrking perfect.

it_schedule_in-itm_number = posnr.

it_schedule_in-req_qty = quantity.

APPEND it_schedule_in.

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

order_header_in = wa_bapisdhd1

int_number_assignment = 'X'

testrun = p_tstrun

IMPORTING

salesdocument = w_vbeln

TABLES

return = it_return

order_items_in = it_orders_in

order_schedules_in = it_schedule_in

order_partners = it_partners.

Cheers,

Murali.