2008 Mar 17 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 ....
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
2008 Mar 17 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
2008 Mar 17 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
| User | Count |
|---|---|
| 6 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |