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

Sales Order Bapi Using schedule lines?

Former Member
0 Likes
3,297

How to add the schedule line in the  bapi BAPI_SALESORDER_CREATEFROMDAT2

.Schedule lines item delivery dates and quantity is given below in item flat file .How to add those to bapi..In which loop??And which structure to pass

This is flat files

header

AUARTVKORGVTWEGSPARTKUNNR
OR100010002000
OR100010002000
OR300010002000
OR100010002000
OR200010002000
OR200010002000

ITem

POSNRMATNRZMENGWERKSdelivery date1quantity1deliverydate2quantity2
10M-1010100028.05.2012505.06.20125
20M-1112100028.05.2012605.06.20126
30M-1215100028.05.2012805.06.20127
10M-115100028.05.2012505.06.20120
20M-1210100028.05.2012505.06.20125
30HP0120100028.05.2012105.06.201219
40M-1412100028.05.2012205.06.201210
10M-1016200028.05.2012305.06.201213
20M-1514100028.05.2012405.06.201210
30HP-0111100028.05.2012505.06.20126

Form bapi_data.

loop at it_bapi_det into wa_alv_grid.

  lv_count = lv_count + 10.

  clear wa_bapi_header.

  wa_bapi_header-doc_type = 'OR'.

  wa_bapi_header-sales_org = wa_alv_grid-vkorg.

  wa_bapi_header-distr_chan = wa_alv_grid-vtweg.

  wa_bapi_header-division = wa_alv_grid-spart.

  wa_bapi_header-ref_doc = wa_alv_grid-vbeln.

  wa_bapi_header-refdoc_cat = 'B'.

call function 'CONVERSION_EXIT_AUART_INPUT'

  exporting

    input         = wa_bapi_header-doc_type

importing

   output        = wa_bapi_header-doc_type

          .

  wa_bapi_item-itm_number = lv_count.

  wa_bapi_item-material   = wa_alv_grid-matnr.

  wa_bapi_item-target_qty = wa_alv_grid-kwmeng.

  wa_bapi_item-ref_doc    = wa_alv_grid-vbeln.

  wa_bapi_item-ref_doc_it = lv_count.

  wa_bapi_item-ref_doc_ca = 'B'.

  append wa_bapi_item to it_bapi_item.

  clear wa_bapi_item.

  wa_bapi_itemx-itm_number = lv_count.

  wa_bapi_itemx-material   = 'X'.

  wa_bapi_itemx-target_qty = 'X'.

  wa_bapi_itemx-ref_doc    = 'X'.

  wa_bapi_itemx-ref_doc_it = 'X'.

  wa_bapi_itemx-ref_doc_ca = 'X'.

  append wa_bapi_itemx to it_bapi_itemx.

  clear wa_bapi_itemx.

  wa_bapi_partner-partn_role = 'AG'.

  wa_bapi_partner-partn_numb = wa_alv_grid-kunnr.

  append wa_bapi_partner to it_bapi_partner.

  clear wa_bapi_partner.

  at end of vbeln.

    clear lv_count.

    perform bapi_so_create.

  endat.

endloop.

Endform.

form bapi_so_create .

wa_bapi_headerx-doc_type = 'X'.

wa_bapi_headerx-sales_org = 'X'.

wa_bapi_headerx-distr_chan = 'X'.

wa_bapi_headerx-division = 'X'.

call function 'BAPI_SALESORDER_CREATEFROMDAT2'

  exporting

*   SALESDOCUMENTIN               =

    order_header_in               = wa_bapi_header

*   ORDER_HEADER_INX              = wa_bapi_headerx

*   SENDER                        =

*   BINARY_RELATIONSHIPTYPE       =

*   INT_NUMBER_ASSIGNMENT         =

*   BEHAVE_WHEN_ERROR             =

*   LOGIC_SWITCH                  =

*   TESTRUN                       =

   convert                       = 'X'

* IMPORTING

*   SALESDOCUMENT                 =

  tables

   return                        = it_bapi_return1

   order_items_in                = it_bapi_item

   order_items_inx               = it_bapi_itemx

    order_partners                = it_bapi_partner

*   ORDER_SCHEDULES_IN            =

*   ORDER_SCHEDULES_INX           =

*   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              =

          .

append lines of it_bapi_return1 to it_bapi_return2.

call function 'BAPI_TRANSACTION_COMMIT'

* EXPORTING

*   WAIT          =

* IMPORTING

*   RETURN        =

          .

endform.                    " BAPI_SO_CREATE


Moderator message : Search for available information, discussion locked.

Message was edited by: Vinod Kumar

2 REPLIES 2
Read only

ShyamPindiproli
Active Participant
0 Likes
1,866



* Fill schedule lines

lt_schedules_in-itm_number = '000010'.

lt_schedules_in-sched_line = '0001'.

lt_schedules_in-req_qty = p_menge.

APPEND lt_schedules_in.

* Fill schedule line flags

lt_schedules_inx-itm_number = '000010'.

lt_schedules_inx-sched_line = '0001'.

lt_schedules_inx-updateflag = 'X'.

lt_schedules_inx-req_qty = 'X'.

APPEND lt_schedules_inx.

* Fill schedule lines

lt_schedules_in-itm_number = '000020'.

lt_schedules_in-sched_line = '0001'.

lt_schedules_in-req_qty = p_menge.

APPEND lt_schedules_in.

* Fill schedule line flags

lt_schedules_inx-itm_number = '000020'.

lt_schedules_inx-sched_line = '0001'.

lt_schedules_inx-updateflag = 'X'.

lt_schedules_inx-req_qty = 'X'.

APPEND lt_schedules_inx.

* Call the BAPI to create the sales order.

CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'

EXPORTING

sales_header_in = header

sales_header_inx = headerx

IMPORTING

salesdocument_ex = v_vbeln

TABLES

return = return

sales_items_in = item

sales_items_inx = itemx

sales_schedules_in = lt_schedules_in

sales_schedules_inx = lt_schedules_inx

sales_partners = partner.

* Check the return table.

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

EXIT.

ENDLOOP.

IF sy-subrc = 0.

WRITE: / 'Error in creating document'.

ELSE.

* Commit the work.

COMMIT WORK AND WAIT.

WRITE: / 'Document ', v_vbeln, ' created'.

ENDIF.

Check this sample code.

Regards,

Shyam

Read only

Former Member
0 Likes
1,866

Declare internal table like:

DATA: lw_vbeln            LIKE vbak-vbeln.
DATA: lw_hd1             LIKE bapisdhead1.
DATA: lw_hd1x            LIKE bapisdhead1x.
DATA: lt_itm               LIKE bapisditem  OCCURS 0 WITH HEADER LINE.
DATA: lt_itmx              LIKE bapisditemx OCCURS 0 WITH HEADER LINE.
DATA: lt_pr            LIKE bapipartnr  OCCURS 0 WITH HEADER LINE.
DATA: lt_ret             LIKE bapiret2    OCCURS 0 WITH HEADER LINE.
DATA: lt_schdlx   TYPE STANDARD TABLE OF bapischdlx
                          WITH HEADER LINE.
DATA: lt_schdl    TYPE STANDARD TABLE OF bapischdl
                          WITH HEADER LINE.

*populating header data

lw_hd1-doc_type = dc.
   lw_hd1-sales_org = '1111'.
   lw_hd1-distr_chan = '10'.
   lw_hd1-division = dev.

   IF lw_hd1-doc_type = 'TA'.
   lw_hd1-purch_no_c = 'By Verbal'.
   ELSE.
   lw_hd1-purch_no_c = ''.
   ENDIF.

   lw_hd1-purch_date = sy-datum.
   lw_hd1-price_date = sy-datum.
   lw_hd1-pmnttrms = 'C030'.

   lw_hd1x-updateflag = 'I'.
   lw_hd1x-doc_type = 'X'.
   lw_hd1x-sales_org = 'X'.
   lw_hd1x-distr_chan = 'X'.
   lw_hd1x-division = 'X'.
   lw_hd1x-purch_no_c = 'X'.
   lw_hd1x-purch_date = 'X'.
   lw_hd1x-price_date = 'X'.
   lw_hd1x-pmnttrms = 'X'.

*populating the partner data.

lt_pr-partn_role = 'AG'.
   lt_pr-partn_numb = '0000008000'.
   APPEND lt_pr.

*populating the Item data from itab to lt_itm.
   LOOP AT t_itab INTO w_itab.
     lt_itm-itm_number = sy-tabix.
     lt_itm-material = w_itab-matnr.
     lt_itm-comp_quant = w_itab-req_qty.
     lt_itm-plant = '2000'.
     lt_itm-val_type = w_itab-val_type.
     APPEND lt_itm.


     lt_schdl-itm_number = sy-tabix.
     lt_schdl-req_qty = w_itab-req_qty.
     APPEND lt_schdl.

ENDLOOP.

*populating the Item data check box
   lt_itmx-updateflag = 'I'.
   lt_itmx-material = 'X'.
   lt_itmx-comp_quant = 'X'.
   lt_itmx-plant = 'X'.
   lt_itmx-val_type = 'X'.
   lt_itmx-itm_number = 'X'.
   lt_itmx-val_type = 'X'.
   APPEND lt_itmx.

**populating the schedule line check box data
   lt_schdlx-updateflag = 'I'.
   lt_schdlx-itm_number = 'X'.
   lt_schdlx-req_qty = 'X'.
   APPEND lt_schdlx.

*After that call BAPI

CALL FUNCTION 'BAPI_SALESDOCU_CREATEFROMDATA1'
        EXPORTING
             sales_header_in     = lw_hd1
             sales_header_inx    = lw_hd1x
        IMPORTING
             salesdocument_ex    = lw_vbeln
        TABLES
             return              = lt_ret[]
             sales_items_in      = lt_itm[]
             sales_items_inx     = lt_itmx[]
             sales_schedules_in  = lt_schdl[]
             sales_schedules_inx = lt_schdlx[]
             sales_partners      = lt_pr[].