03-17-2008 12:14 PM
hey all..
i realy need help on this...
BAPI_SALESORDER_CREATEFROMDAT2
i have items , quantities,plant ,location and customer for that order
now how am i supposed to call this bapi and what data should i pass with this..
its says i need partener table,item table and header data as essential elements to pass in this bapi.
can any one give me an exact idea how to call this badi ....
03-17-2008 12:18 PM
Hi,
Use the following program
*&---------------------------------------------------------------------*
*& Report ZDS_BAPI_SO
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZDS_BAPI_SO.
DATA: SALES_DOCU TYPE BAPIVBELN-VBELN.
DATA: WA_HEADER TYPE BAPISDHD1,
WA_PARTNER TYPE BAPIPARNR,
WA_ITEM TYPE BAPISDITM,
WA_RETURN TYPE BAPIRET2.
DATA: IT_PARTNER TYPE STANDARD TABLE OF BAPIPARNR,
IT_ITEM TYPE STANDARD TABLE OF BAPISDITM,
IT_RETURN TYPE STANDARD TABLE OF BAPIRET2.
WA_HEADER-DOC_TYPE = 'TA'.
WA_HEADER-SALES_ORG = '1000'.
WA_HEADER-DISTR_CHAN = '12'.
WA_HEADER-DIVISION = '00'.
WA_ITEM-MATERIAL = 'L-60F'.
APPEND WA_ITEM TO IT_ITEM.
WA_PARTNER-PARTN_ROLE = 'AG'.
WA_PARTNER-PARTN_NUMB = '0000001001'.
APPEND WA_PARTNER TO IT_PARTNER.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
* SALESDOCUMENTIN =
ORDER_HEADER_IN = WA_HEADER
* ORDER_HEADER_INX =
* SENDER =
* BINARY_RELATIONSHIPTYPE =
* INT_NUMBER_ASSIGNMENT =
* BEHAVE_WHEN_ERROR =
* LOGIC_SWITCH =
* TESTRUN =
* CONVERT = ' '
IMPORTING
SALESDOCUMENT = SALES_DOCU
TABLES
RETURN = IT_RETURN
ORDER_ITEMS_IN = IT_ITEM
* ORDER_ITEMS_INX =
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 SALES_DOCU IS NOT INITIAL.
WRITE:/'SO CREATED',SALES_DOCU.
ELSE.
LOOP AT IT_RETURN INTO WA_RETURN.
WRITE:/ WA_RETURN-MESSAGE.
ENDLOOP.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
* IMPORTING
* RETURN =
.
HTH
Regards,
Dhruv Shah
03-17-2008 12:24 PM
Hi,
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
ORDER_HEADER_IN = SDHD1
INT_NUMBER_ASSIGNMENT = 'X'
LOGIC_SWITCH = LOGIC_SWITCH
IMPORTING
SALESDOCUMENT = DOC_NUMBER
TABLES
RETURN = T_RET2
ORDER_ITEMS_IN = T_SDITM
ORDER_PARTNERS = T_PARNR
ORDER_SCHEDULES_IN = T_SCHDL
ORDER_CONDITIONS_IN = T_CND
ORDER_CCARD = T_CCARD
ORDER_TEXT = T_SDTEXT.
LOOP AT T_RET2 INTO RET2.
IF RET2-TYPE = C_MESSAGE_TYPE_ERROR OR
RET2-TYPE = C_MESSAGE_TYPE_ABORT.
MOVE-CORRESPONDING RET2 TO PE_RETURN1.
EXIT.
ENDIF.
ENDLOOP.
>>> OSS note begin: 483395.
IF NOT PE_RETURN1 IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
EXIT.
ENDIF.
<<< OSS note end: 483395.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = C_ACTIVE
IMPORTING
RETURN = RET2.
IF NOT RET2 IS INITIAL.
MOVE-CORRESPONDING RET2 TO PE_RETURN1.
EXIT.
ENDIF.
Better to get sample programs by clicking where used list.
B'coz u can understand all str and table population in sap program easily comparing in this sdn editor.
Once u check a sample program, I hope u can easily do it.
Regards,
Subbu