2008 Jan 15 2:45 PM
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
2008 Jan 17 10:46 AM
Have you tried it yet?
If it works please mark question as answered...
Regards,
Michael
Have you tried it yet?
If it works please mark question as answered...
Regards,
Michael
2008 Jan 15 2:49 PM
2008 Jan 15 2:56 PM
2008 Jan 15 4:52 PM
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
2008 Jan 17 10:46 AM
Have you tried it yet?
If it works please mark question as answered...
Regards,
Michael
2008 Jan 17 10:50 AM
bapi 'BAPI_SALESORDER_CREATEFROMDAT2' to create a sales order with reference to contract.
Regards.
2008 Jan 22 12:24 PM
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.
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |