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