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 for Sales Order

Former Member
0 Likes
1,078

Hi guys,

I have a requirement wherein i need to create a sales order using a BAPI. but the problem is to create a sales order i need to pass contract as a reference.

Please help me on how do i go about this?

Thanks and regards,

Frank

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
976

Have you tried it yet?

If it works please mark question as answered...

Regards,

Michael

Hi guys,

I have a requirement wherein i need to create a sales order using a BAPI. but the problem is to create a sales order i need to pass contract as a reference.

Please help me on how do i go about this?

Thanks and regards,

Frank

6 REPLIES 6
Read only

Former Member
0 Likes
976

Pls Try

BAPI_SALESORDER_CREATEFROMDATA

MOhan.

Read only

Former Member
0 Likes
976

but how/where do i pass contract as a reference??

Read only

0 Likes
976

First of all:

Do NOT USE BAPI_SALESORDER_CREATEFROMDATA, that FM is obsolete!

Use BAPI_SALESORDER_CREATEFROMDAT1 instead.

To build a reference to your contract you have to supply ORDER_HEADER_IN.

Here´s a sample:

MOVE:

gs_vbak-vbeln TO ls_bapisdhd1-refobjkey,

gs_vbak-vbeln TO ls_bapisdhd1-ref_doc,

gs_vbak-vbtyp TO ls_bapisdhd1-refdoc_cat,

gs_vbak-auart TO ls_bapisdhd1-refdoctype.

Should work, at least it does for me...

Regards,

Michael

Read only

Former Member
0 Likes
977

Have you tried it yet?

If it works please mark question as answered...

Regards,

Michael

Read only

Former Member
0 Likes
976

bapi 'BAPI_SALESORDER_CREATEFROMDAT2' to create a sales order with reference to contract.

Regards.

Read only

Former Member
0 Likes
976

Hi michael,

I have used the following code...

REPORT zcreate_sales_order.

TYPE-POOLS: truxs.

DATA : g_lin TYPE i.

DATA : BEGIN OF it_itab OCCURS 0,

material LIKE vbap-matnr, " Material

desc LIKE vbap-arktx, " Description

tgtqty LIKE vbap-zmeng, " Target Qty

plant LIKE vbap-werks, " Plant

prftcnt LIKE vbap-prctr, " Profit Center

END OF it_itab.

DATA: wa_itab LIKE LINE OF it_itab.

DATA: it_header LIKE bapisdhd1 OCCURS 0 WITH HEADER LINE, " Contract Header

it_headerx LIKE bapisdhd1x OCCURS 0 WITH HEADER LINE, " Update Header

it_item LIKE bapisditm OCCURS 0 WITH HEADER LINE, " Contract Item

it_itemx LIKE bapisditmx OCCURS 0 WITH HEADER LINE, " Update Contract

it_partner LIKE bapiparnr OCCURS 0 WITH HEADER LINE, " Partner

it_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE, " Error

it_datain LIKE bapictr OCCURS 0 WITH HEADER LINE, " Start & End Dates

it_datainx LIKE bapictrx OCCURS 0 WITH HEADER LINE. " Update Dates

DATA: wa_header LIKE LINE OF it_header,

wa_headerx LIKE LINE OF it_headerx,

wa_item LIKE LINE OF it_item,

wa_itemx LIKE LINE OF it_itemx,

wa_partner LIKE LINE OF it_partner,

wa_return LIKE LINE OF it_return,

wa_datain LIKE LINE OF it_datain,

wa_datainx LIKE LINE OF it_datainx.

DATA: g_vbeln LIKE bapivbeln-vbeln.

DATA: it_rawdata TYPE truxs_t_text_data.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

PARAMETERS: p_ordtyp LIKE vbak-auart OBLIGATORY,

p_salorg LIKE vbak-vkorg OBLIGATORY,

p_dstch LIKE vbak-vtweg OBLIGATORY,

p_div LIKE vbak-spart OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

PARAMETERS: p_soldto LIKE kuagv-kunnr OBLIGATORY,

p_shipto LIKE kuwev-kunnr OBLIGATORY,

p_pono LIKE vbkd-bstkd, "

p_podt LIKE vbkd-bstdk, "

p_prcdt LIKE vbkd-prsdt, "

p_salper LIKE m_debis-kunnr.

SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK w1 WITH FRAME TITLE text-003.

PARAMETERS : p_file LIKE rlgrap-filename.

SELECTION-SCREEN END OF BLOCK w1.

SELECTION-SCREEN BEGIN OF BLOCK w2 WITH FRAME TITLE text-004.

PARAMETERS : test AS CHECKBOX DEFAULT 'X'.

SELECTION-SCREEN END OF BLOCK w2.

----


  • (Event)- At Selection-Screen *

----


AT SELECTION-SCREEN.

PERFORM selection_screen.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

PERFORM selection_screen_f4.

START-OF-SELECTION.

  • Upload data from Excel File into Internal Table

PERFORM upload_data.

IF NOT it_itab[] IS INITIAL.

  • Put data from internal table to internal tables for BAPI

PERFORM fetch_data.

ELSE.

MESSAGE 'No data available in flat file' TYPE 'I'.

STOP.

ENDIF.

  • Call BAPI_CONTRACT_CREATEFROMDATA to create Contract

PERFORM call_bapi.

&----


*& Form selection_screen

&----


FORM selection_screen .

IF sy-ucomm EQ 'ONLI'.

IF test EQ 'X'.

MESSAGE 'Not All Errors can be caught in test run ' TYPE 'I'.

ENDIF.

IF p_file IS INITIAL.

MESSAGE 'Enter the file name' TYPE 'E'.

ENDIF.

ENDIF.

ENDFORM. " selection_screen

&----


*& Form selection_screen_f4

&----


FORM selection_screen_f4 .

CALL FUNCTION 'F4_FILENAME'

EXPORTING

program_name = syst-cprog

dynpro_number = syst-dynnr

field_name = 'P_FILE'

IMPORTING

file_name = p_file.

ENDFORM. " selection_screen_f4

&----


*& Form upload_data

&----


FORM upload_data .

DATA: l_filename TYPE string.

l_filename = p_file.

CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

EXPORTING

i_field_seperator = 'X'

  • I_LINE_HEADER =

i_tab_raw_data = it_rawdata

i_filename = p_file

TABLES

i_tab_converted_data = it_itab[]

EXCEPTIONS

conversion_failed = 1

OTHERS = 2

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

DESCRIBE TABLE it_itab LINES g_lin.

ENDFORM. " upload_data

&----


*& Form fetch_data

&----


FORM fetch_data .

*Fetching the Header Data from Selection Screen.

wa_header-doc_type = p_ordtyp.

wa_headerx-doc_type = 'X'.

wa_header-sales_org = p_salorg.

wa_headerx-sales_org = 'X'.

wa_header-distr_chan = p_dstch.

wa_headerx-distr_chan = 'X'.

wa_header-division = p_div.

wa_headerx-division = 'X'.

wa_header-purch_no_c = p_pono.

wa_headerx-purch_no_c ='X'.

wa_header-purch_date = p_podt.

wa_headerx-purch_date ='X'.

wa_header-price_date = p_prcdt.

wa_headerx-price_date ='X'.

wa_headerx-updateflag = 'I'.

APPEND wa_header TO it_header.

APPEND wa_headerx TO it_headerx.

*Fetching Partner Data

wa_partner-partn_role = 'AG'.

wa_partner-partn_numb = p_soldto.

APPEND wa_partner TO it_partner.

wa_partner-partn_role = 'WE'.

wa_partner-partn_numb = p_shipto.

APPEND wa_partner TO it_partner.

wa_partner-partn_role = 'ZP'.

wa_partner-partn_numb = p_salper.

IF NOT p_salper IS INITIAL.

APPEND wa_partner TO it_partner.

ENDIF.

*Fetching Item Data

LOOP AT it_itab INTO wa_itab.

wa_item-material = wa_itab-material.

wa_itemx-material = 'X'.

wa_item-target_qty = wa_itab-tgtqty.

wa_itemx-target_qty = 'X'.

wa_item-plant = wa_itab-plant.

wa_itemx-plant = 'X'.

wa_item-profit_ctr = wa_itab-prftcnt.

wa_itemx-profit_ctr = 'X'.

wa_itemx-updateflag = 'I'.

APPEND wa_item TO it_item.

APPEND wa_itemx TO it_itemx.

ENDLOOP.

ENDFORM. " fetch_data

&----


*& Form call_bapi

&----


FORM call_bapi .

READ TABLE it_header INDEX 1.

READ TABLE it_headerx INDEX 1.

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'

EXPORTING

  • SALESDOCUMENTIN =

order_header_in = it_header

order_header_inx = it_headerx

  • SENDER =

  • BINARY_RELATIONSHIPTYPE =

int_number_assignment = 'X'

  • BEHAVE_WHEN_ERROR =

  • LOGIC_SWITCH =

  • TESTRUN =

  • CONVERT = ' '

IMPORTING

salesdocument = g_vbeln

TABLES

return = it_return

order_items_in = it_item

order_items_inx = it_itemx

order_partners = it_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 =

.

IF it_return-type = 'S' AND test IS INITIAL.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

wait = ' '.

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

  • ENDIF.

ELSE.

IF it_return-type = 'S' AND test IS NOT INITIAL.

WRITE: /'No errors but Data not saved'.

ENDIF.

ENDIF.

IF it_return-type = 'E'.

LOOP AT it_return INTO wa_return.

WRITE: / wa_return-message .

ENDLOOP.

ENDIF.

ENDFORM. " call_bapi

-


But i am getting the following error..

Plant RM-U is not defined

Error in SALES_ITEM_IN 000000.