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 in creating sales order using BAPI's...?

Former Member
0 Likes
314

Hi Guru's,

i had generated the sales order using the BAPI..but could please guide me how to declare the data declaratin same fields as globally and how to move internal table and how to append ....

thanks in advance...

REPORT z_bapi_salesorder_create.

  • Sales document type

PARAMETERS: p_auart TYPE auart OBLIGATORY.

  • Sales organization

PARAMETERS: p_vkorg TYPE vkorg OBLIGATORY.

  • Distribution channel

PARAMETERS: p_vtweg TYPE vtweg OBLIGATORY.

  • Division.

PARAMETERS: p_spart TYPE spart OBLIGATORY.

  • Sold-to

PARAMETERS: p_sold TYPE kunnr OBLIGATORY.

  • Ship-to

PARAMETERS: p_ship TYPE kunnr OBLIGATORY.

  • Material

PARAMETERS: p_matnr TYPE matnr OBLIGATORY.

  • Quantity.

PARAMETERS: p_menge TYPE kwmeng OBLIGATORY.

  • Plant

PARAMETERS: p_plant TYPE werks_d OBLIGATORY.

  • Data declarations.

DATA: v_vbeln LIKE vbak-vbeln.

DATA: header LIKE bapisdhead1.

DATA: headerx LIKE bapisdhead1x.

DATA: item LIKE bapisditem OCCURS 0 WITH HEADER LINE.

DATA: itemx LIKE bapisditemx OCCURS 0 WITH HEADER LINE.

DATA: partner LIKE bapipartnr OCCURS 0 WITH HEADER LINE.

DATA: return LIKE bapiret2 OCCURS 0 WITH HEADER LINE.

DATA: lt_schedules_inx TYPE STANDARD TABLE OF bapischdlx

WITH HEADER LINE.

DATA: lt_schedules_in TYPE STANDARD TABLE OF bapischdl

WITH HEADER LINE.

  • Start-of-selection.

START-OF-SELECTION.

  • Header data

  • Sales document type

header-doc_type = p_auart.

headerx-doc_type = 'X'.

  • Sales organization

header-sales_org = p_vkorg.

headerx-sales_org = 'X'.

  • Distribution channel

header-distr_chan = p_vtweg.

headerx-distr_chan = 'X'.

  • Division

header-division = p_spart.

headerx-division = 'X'.

headerx-updateflag = 'I'.

  • Partner data

  • Sold to

partner-partn_role = 'AG'.

partner-partn_numb = p_sold.

APPEND partner.

  • Ship to

partner-partn_role = 'WE'.

partner-partn_numb = p_ship.

APPEND partner.

  • ITEM DATA

itemx-updateflag = 'I'.

  • Line item number.

item-itm_number = '000010'.

itemx-itm_number = 'X'.

  • Material

item-material = p_matnr.

itemx-material = 'X'.

  • Plant

item-plant = p_plant.

itemx-plant = 'X'.

  • Quantity

item-target_qty = p_menge.

itemx-target_qty = 'X'.

APPEND item.

APPEND itemx.

  • 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.

  • 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.

call FUNCTION 'BAPI_TRANSACTION_COMMIT'.

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

ENDIF.

1 REPLY 1
Read only

Former Member
0 Likes
279

&----


*& Report ZAREPAS30

&----


REPORT zarepas30.

DATA : gs_vbeln TYPE vbak-vbeln,

gs_order_header_in TYPE bapisdhd1,

gs_order_header_inx TYPE bapisdhd1x,

gt_order_items_in TYPE STANDARD TABLE OF bapisditm,

gwa_itab1 TYPE bapisditm,

gt_order_items_inx TYPE STANDARD TABLE OF bapisditmx,

gwa_itab2 TYPE bapisditmx,

gt_order_partners TYPE STANDARD TABLE OF bapiparnr,

gwa_itab3 TYPE bapiparnr,

gt_return TYPE STANDARD TABLE OF bapiret2,

gwa_itab4 TYPE bapiret2.

&----


  • Sales document type

PARAMETERS: p_auart TYPE auart OBLIGATORY.

  • Sales organization

PARAMETERS: p_vkorg TYPE vkorg OBLIGATORY.

  • Distribution channel

PARAMETERS: p_vtweg TYPE vtweg OBLIGATORY.

  • Division.

PARAMETERS: p_spart TYPE spart OBLIGATORY.

  • Requested Delivery Date

PARAMETERS: p_edatu TYPE edatu OBLIGATORY.

  • Sold-to

PARAMETERS: p_sold TYPE kunnr OBLIGATORY.

  • Ship-to

PARAMETERS: p_ship TYPE kunnr OBLIGATORY.

  • Material

PARAMETERS: p_matnr TYPE matnr OBLIGATORY.

  • Quantity.

PARAMETERS: p_menge TYPE kwmeng OBLIGATORY.

  • Plant

PARAMETERS: p_plant TYPE werks_d OBLIGATORY.

  • Start-of-selection.

START-OF-SELECTION.

  • Header data

  • Sales document type

gs_order_header_in-doc_type = p_auart.

gs_order_header_inx-doc_type = 'X'.

  • Sales organization

gs_order_header_in-sales_org = p_vkorg.

gs_order_header_inx-sales_org = 'X'.

  • Distribution channel

gs_order_header_in-distr_chan = p_vtweg.

gs_order_header_inx-distr_chan = 'X'.

  • Division

gs_order_header_in-division = p_spart.

gs_order_header_inx-division = 'X'.

  • Reguested Delivery Date

gs_order_header_in-req_date_h = p_edatu.

gs_order_header_inx-req_date_h = 'X'.

gs_order_header_inx-updateflag = 'I'.

  • Partner data

  • Sold to

gwa_itab3-partn_role = 'AG'.

gwa_itab3-partn_numb = p_sold.

APPEND gwa_itab3 TO gt_order_partners .

  • ship to

gwa_itab3-partn_role = 'WE'.

gwa_itab3-partn_numb = p_ship.

APPEND gwa_itab3 TO gt_order_partners .

  • ITEM DATA

gwa_itab2-updateflag = 'I'.

  • Line item number.

gwa_itab1-itm_number = '000010'.

gwa_itab2-itm_number = 'X'.

  • Material

gwa_itab1-material = p_matnr.

gwa_itab2-material = 'X'.

  • Plant

gwa_itab1-plant = p_plant.

gwa_itab2-plant = 'X'.

  • Quantity

gwa_itab1-target_qty = p_menge.

gwa_itab2-target_qty = 'X'.

APPEND gwa_itab1 TO gt_order_items_in.

APPEND gwa_itab2 TO gt_order_items_inx.

  • Line item number.

gwa_itab1-itm_number = '000020'.

gwa_itab2-itm_number = 'X'.

  • Material

gwa_itab1-material = p_matnr.

gwa_itab2-material = 'X'.

  • Plant

gwa_itab1-plant = p_plant.

gwa_itab2-plant = 'X'.

  • Quantity

gwa_itab1-target_qty = p_menge.

gwa_itab2-target_qty = 'X'.

APPEND gwa_itab1 TO gt_order_items_in.

APPEND gwa_itab2 TO gt_order_items_inx.

*****************************************************

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

order_header_in = gs_order_header_in

ORDER_HEADER_INX = gs_order_header_inx

IMPORTING

SALESDOCUMENT = gs_vbeln

tables

RETURN = gt_return

ORDER_ITEMS_IN = gt_order_items_in

ORDER_ITEMS_INX = gt_order_items_inx

order_partners = gt_order_partners.

*****************************************************

  • Check the return table.

LOOP AT gt_return into gwa_itab4 WHERE type = 'E' OR type = 'A'.

EXIT.

ENDLOOP.

IF sy-subrc = 0.

WRITE: / 'Error occured while creating sales order '.

ELSE.

    • Commit the work.

  • CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

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

ENDIF.