2007 Dec 17 7:26 AM
hi ,
can any body tell the name of bapi for change sales order.
Points will be rewarded .
hi ,
can any body tell the name of bapi for change sales order.
Points will be rewarded .
2007 Dec 17 7:33 AM
2007 Dec 17 7:33 AM
2007 Dec 17 7:45 AM
Hi Sanipan
try this bapi code for change sales order.
please reward points.
&----
*& Report ZSAN_BAPI_PURCHASE_ORDER *
*& *
&----
*& *
*& *
&----
REPORT ZSAN_BAPI_PURCHASE_ORDER .
DATA: HEADER LIKE BAPIMEPOHEADER,
" Header
HEADER_IND LIKE BAPIMEPOHEADERX,
" Header index
PO_ITEMS LIKE BAPIMEPOITEM OCCURS 0 WITH HEADER LINE,
" Item table
ITEMS_IND LIKE BAPIMEPOITEMX OCCURS 0 WITH HEADER LINE,
" Item index table
RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE
" Message Return table
.
SET PF-STATUS 'SANKET'.
**Initialize Header values
*HEADER-DOC_TYPE = 'NB'.
*HEADER-ITEM_INTVL = '00001'.
*HEADER-VENDOR = '0000001000'.
*HEADER-PURCH_ORG = '1000'.
*HEADER-PUR_GROUP = '001'.
*HEADER-CURRENCY = 'EUR'.
*HEADER-COMP_CODE = '1000'.
*HEADER-PMNTTRMS = '00001'.
*
**Initialize Index values
*HEADER_IND-DOC_TYPE = 'X'.
*HEADER_IND-ITEM_INTVL = 'X'.
*HEADER_IND-VENDOR = 'X'.
*HEADER_IND-PURCH_ORG = 'X'.
*HEADER_IND-PUR_GROUP = 'X'.
*HEADER_IND-CURRENCY = 'X'.
*HEADER_IND-COMP_CODE = 'X'.
*HEADER_IND-PMNTTRMS = 'X'.
*Initialize Header values
HEADER-DOC_TYPE = 'NB'.
HEADER-ITEM_INTVL = '00001'.
HEADER-VENDOR = '0000003020'.
HEADER-PURCH_ORG = '3000'.
HEADER-PUR_GROUP = '000'.
HEADER-CURRENCY = 'USD'.
*Initialize Index values
HEADER_IND-DOC_TYPE = 'X'.
HEADER_IND-ITEM_INTVL = 'X'.
HEADER_IND-VENDOR = 'X'.
HEADER_IND-PURCH_ORG = 'X'.
HEADER_IND-PUR_GROUP = 'X'.
HEADER_IND-CURRENCY = 'X'.
*Initialize Item values
PO_ITEMS-PO_ITEM = '00001'.
PO_ITEMS-MATERIAL = '100-100'.
PO_ITEMS-PLANT = '3000'.
PO_ITEMS-QUANTITY = '4'.
PO_ITEMS-NET_PRICE = '1'.
APPEND PO_ITEMS.
*Initialize Item index values
ITEMS_IND-PO_ITEM = '00001'.
ITEMS_IND-MATERIAL = 'X'.
ITEMS_IND-PLANT = 'X'.
ITEMS_IND-QUANTITY = 'X'.
PO_ITEMS-NET_PRICE = '1'.
APPEND ITEMS_IND.
*Initialize Item values
PO_ITEMS-PO_ITEM = '00002'.
PO_ITEMS-MATERIAL = '200-200'.
PO_ITEMS-PLANT = '3100'.
PO_ITEMS-QUANTITY = '20'.
PO_ITEMS-NET_PRICE = '3'.
APPEND PO_ITEMS.
*Initialize Item index values
ITEMS_IND-PO_ITEM = '00002'.
ITEMS_IND-MATERIAL = 'X'.
ITEMS_IND-PLANT = 'X'.
ITEMS_IND-QUANTITY = 'X'.
ITEMS_IND-NET_PRICE = 'X'.
APPEND ITEMS_IND.
*Initialize Item values
PO_ITEMS-PO_ITEM = '00003'.
PO_ITEMS-MATERIAL = '102-510'.
PO_ITEMS-PLANT = '3000'.
PO_ITEMS-QUANTITY = '20'.
PO_ITEMS-NET_PRICE = '246'.
APPEND PO_ITEMS.
*Initialize Item index values
ITEMS_IND-PO_ITEM = '00003'.
ITEMS_IND-MATERIAL = 'X'.
ITEMS_IND-PLANT = 'X'.
ITEMS_IND-QUANTITY = 'X'.
ITEMS_IND-NET_PRICE = 'X'.
APPEND ITEMS_IND.
*Create Production order
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
POHEADER = HEADER
POHEADERX = HEADER_IND
TABLES
RETURN = RETURN
POITEM = PO_ITEMS
POITEMX = ITEMS_IND.
*Commit BAPI
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
*Display PO number
FORMAT COLOR 6 INVERSE ON.
READ TABLE RETURN WITH KEY TYPE = 'S'.
IF SY-SUBRC <> 0.
WRITE: /,'Purchase Order not created'.
ELSE.
WRITE: /, RETURN-MESSAGE.
ENDIF.
FORMAT COLOR OFF INVERSE OFF.
2----
&----
*& Report ZSAN_BAPI_TEST1 *
*& *
&----
*& *
*& *
&----
REPORT ZSAN_BAPI_TEST1.
DATA: ORDER_HEADER LIKE BAPISDHEAD,
" Sales and Distribution Document Header
ORDERPARTNER LIKE BAPIPARTNR OCCURS 0 WITH HEADER LINE,
" SD Document Partner
ORDER_ITEM_IN LIKE BAPIITEMIN OCCURS 0 WITH HEADER LINE,
" Create SD Document Item
HEADER_IND LIKE BAPISDHEADX,
" Checkbox Fields for Sales and Distribution Document Header
RETURN LIKE BAPIRETURN1 OCCURS 0 WITH HEADER LINE,
" Return Parameter
W_ORDER LIKE BAPIVBELN-VBELN.
" Sales Document
*Initialize values
ORDER_HEADER-DOC_TYPE = 'TA'.
ORDER_HEADER-SALES_ORG = '5555'.
ORDER_HEADER-DISTR_CHAN = '55'.
ORDER_HEADER-DIVISION = '55'.
ORDERPARTNER-PARTN_NUMB = '0000003002'.
ORDERPARTNER-PARTN_ROLE = 'SP'.
APPEND ORDERPARTNER.
CLEAR ORDERPARTNER.
ORDER_ITEM_IN-MATERIAL = 'MAT1'.
ORDER_ITEM_IN-REQ_QTY = '2.000'.
APPEND ORDER_ITEM_IN.
CLEAR ORDER_ITEM_IN.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT1'
EXPORTING
ORDER_HEADER_IN = ORDER_HEADER
CONVERT_PARVW_AUART = 'X'
IMPORTING
SALESDOCUMENT = W_ORDER
RETURN = RETURN
TABLES
ORDER_ITEMS_IN = ORDER_ITEM_IN
ORDER_PARTNERS = ORDERPARTNER.
*Commit BAPI's process
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
FORMAT COLOR 6 INVERSE ON.
READ TABLE RETURN WITH KEY TYPE = 'E'.
IF SY-SUBRC = 0.
WRITE: 'Sales order not created' .
ELSE.
WRITE: ' Sales order NO.',W_ORDER COLOR 5, 'created successfully'.
ENDIF.
FORMAT COLOR OFF INVERSE OFF.
3----
&----
*& Report ZSAN_BAPI_PROFIT_CTR *
*& *
&----
*& *
*& *
&----
REPORT ZSAN_BAPI_PROFIT_CTR .
PARAMETERS: PR_CTR LIKE BAPI0015ID2-PROFIT_CTR,
VLD_TO LIKE BAPI0015_3-DATE.
DATA: PROFITCENTERID LIKE BAPI0015ID2 OCCURS 0 WITH HEADER LINE,
VALID_FORM LIKE BAPI0015_3-DATE,
VALID_TO LIKE BAPI0015_3-DATE,
BASICDATA LIKE BAPI0015_4 OCCURS 0 WITH HEADER LINE,
RETURN LIKE BAPIRET2 ,
PROFITCENTER LIKE BAPI0015ID2-PROFIT_CTR,
CONTROLLINGAREA LIKE BAPI0015ID2-CO_AREA.
*Fill PROFITCENTERID
PROFITCENTERID-PROFIT_CTR = PR_CTR.
PROFITCENTERID-CO_AREA = '1000'.
APPEND PROFITCENTERID.
*Fill VALID_FORM
VALID_FORM = '19940101'.
*Fill VALID_TO
VALID_TO = VLD_TO.
*Fill BASICDATA
BASICDATA-PRCTR_NAME = 'Sanket'.
BASICDATA-PRCTR_HIER_GRP = 'H1010'.
BASICDATA-IN_CHARGE = 'Sanket'.
APPEND BASICDATA.
*Get Profit center
CALL FUNCTION 'BAPI_PROFITCENTER_CREATE'
EXPORTING
PROFITCENTERID = PROFITCENTERID
VALIDFROM = VALID_FORM
VALIDTO = VALID_TO
BASICDATA = BASICDATA
IMPORTING
RETURN = RETURN
PROFITCENTER = PROFITCENTER
CONTROLLINGAREA = CONTROLLINGAREA.
*Commit BAPI
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
*Display profit center
FORMAT COLOR 6 INVERSE ON.
IF RETURN-TYPE = 'E'.
WRITE: /,RETURN-MESSAGE.
ELSE.
WRITE: /,RETURN-MESSAGE.
ENDIF.
FORMAT COLOR OFF INVERSE OFF.
2007 Dec 17 7:47 AM
Hi Sandipan
dont try the earlier code , try this code for change sales order for bapi.
and pls reward points.
REPORT Z_SALES_ORDER_CHANGE
NO STANDARD PAGE HEADING
LINE-SIZE 132
LINE-COUNT 65(0)
MESSAGE-ID ZZ.
TABLES: VBAP.
DATA:
V_FILEIN(90) TYPE C,
V_RECIN TYPE I,
V_RECVBAP TYPE I,
V_RECORDER TYPE I,
V_VBELN LIKE VBAP-VBELN,
ORDERHEADERINX LIKE BAPISDH1X.
DATA: BEGIN OF I_ORDERS OCCURS 0,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
BRGEW(18) TYPE C,
VOLUM(18) TYPE C,
END OF I_ORDERS.
DATA: BEGIN OF I_OUTPUT OCCURS 0,
VBELN LIKE VBAK-VBELN,
POSNR LIKE VBAP-POSNR,
GEWEI LIKE VBAP-GEWEI,
BRGEW LIKE VBAP-BRGEW,
VOLUM LIKE VBAP-VOLUM,
CKWGT TYPE C,
CKVOL TYPE C,
END OF I_OUTPUT.
DATA: BEGIN OF ORDERITEMIN OCCURS 0.
INCLUDE STRUCTURE BAPISDITM.
DATA: END OF ORDERITEMIN.
DATA: BEGIN OF ORDERITEMINX OCCURS 0.
INCLUDE STRUCTURE BAPISDITMX.
DATA: END OF ORDERITEMINX.
DATA: BEGIN OF RETURN OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA: END OF RETURN.
DATA: BEGIN OF BAPIRETURN OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA: END OF BAPIRETURN.
PARAMETERS:
P_PATH(45) TYPE C DEFAULT '/usr/users/ftpsapom/' LOWER CASE,
P_FNAME(32) TYPE C DEFAULT '/sweetjo.txt' LOWER CASE.
START-OF-SELECTION.
CONCATENATE PATH AND FILE NAME INTO ONE VARIABLE
CONCATENATE P_PATH P_FNAME INTO V_FILEIN.
OPEN DATASET
IF V_FILEIN IS INITIAL.
MESSAGE E002 WITH 'FILE' V_FILEIN 'DOES NOT CONTAIN ANY DATA!'.
& & & &
ELSE.
OPEN DATASET V_FILEIN
FOR INPUT
IN TEXT MODE.
IF SY-SUBRC = 0.
READ DATASET
DO.
READ DATASET V_FILEIN INTO I_ORDERS.
IF SY-SUBRC = 0.
APPEND I_ORDERS.
ELSE.
EXIT.
ENDIF.
ENDDO.
CLOSE DATASET
CLOSE DATASET V_FILEIN.
IF SY-SUBRC <> 0.
MESSAGE E002 WITH 'ERROR - CLOSING' V_FILEIN.
& & & &
ENDIF.
ELSE.
MESSAGE E002 WITH 'ERROR - COULD NOT OPEN' V_FILEIN.
& & & &
ENDIF.
ENDIF.
SORT AND REMOVE DUPLICATES FROM I_ORDERS
SORT I_ORDERS BY VBELN POSNR.
DELETE ADJACENT DUPLICATES FROM I_ORDERS.
POPULATE I_OUTPUT
LOOP AT I_ORDERS.
SHIFT I_ORDERS-POSNR LEFT DELETING LEADING SPACE.
CONCATENATE '0' I_ORDERS-POSNR INTO I_ORDERS-POSNR.
SELECT SINGLE BRGEW VOLUM
FROM VBAP
INTO (VBAP-BRGEW, VBAP-VOLUM)
WHERE VBELN = I_ORDERS-VBELN
AND POSNR = I_ORDERS-POSNR.
IF SY-SUBRC = 0.
IF VBAP-BRGEW = 0.
I_OUTPUT-CKWGT = 'X'.
ENDIF.
IF VBAP-VOLUM = 0.
I_OUTPUT-CKVOL = 'X'.
ENDIF.
I_OUTPUT-VBELN = I_ORDERS-VBELN.
I_OUTPUT-POSNR = I_ORDERS-POSNR.
I_OUTPUT-GEWEI = 'ST'.
I_OUTPUT-BRGEW = I_ORDERS-BRGEW.
I_OUTPUT-VOLUM = I_ORDERS-VOLUM.
APPEND I_OUTPUT.
CLEAR: I_OUTPUT.
ENDIF.
V_RECIN = V_RECIN + 1.
ENDLOOP.
POPULATE BAPI DATA AND RUN BAPI
CLEAR: ORDERHEADERINX, ORDERITEMIN, ORDERITEMINX,
RETURN, BAPIRETURN.
REFRESH: ORDERITEMIN, ORDERITEMINX, RETURN, BAPIRETURN.
ORDERHEADERINX-UPDATEFLAG = 'U'.
LOOP AT I_OUTPUT WHERE CKWGT = 'X' OR CKVOL = 'X'.
V_RECVBAP = V_RECVBAP + 1.
IF I_OUTPUT-VBELN <> V_VBELN AND SY-TABIX <> 1.
V_RECORDER = V_RECORDER + 1.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = V_VBELN
ORDER_HEADER_INX = ORDERHEADERINX
TABLES
RETURN = RETURN
ORDER_ITEM_IN = ORDERITEMIN
ORDER_ITEM_INX = ORDERITEMINX.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = BAPIRETURN.
WRITE OUT RETURN
LOOP AT RETURN.
WRITE: / RETURN.
ENDLOOP.
WRITE: / BAPIRETURN.
SKIP.
CLEAR: ORDERITEMIN, ORDERITEMINX,
RETURN, BAPIRETURN.
REFRESH: ORDERITEMIN, ORDERITEMINX, RETURN, BAPIRETURN.
ENDIF.
ORDERITEMIN-ITM_NUMBER = I_OUTPUT-POSNR.
ORDERITEMIN-UNTOF_WGHT = I_OUTPUT-GEWEI.
IF NOT I_OUTPUT-CKWGT IS INITIAL.
ORDERITEMIN-GROSS_WGHT = I_OUTPUT-BRGEW.
ORDERITEMINX-GROSS_WGHT = 'X'.
ENDIF.
IF NOT I_OUTPUT-CKVOL IS INITIAL.
ORDERITEMIN-VOLUME = I_OUTPUT-VOLUM.
ORDERITEMINX-VOLUME = 'X'.
ENDIF.
APPEND ORDERITEMIN.
ORDERITEMINX-ITM_NUMBER = I_OUTPUT-POSNR.
ORDERITEMINX-UNTOF_WGHT = 'X'.
ORDERITEMINX-UPDATEFLAG = 'U'.
APPEND ORDERITEMINX.
V_VBELN = I_OUTPUT-VBELN.
ENDLOOP.
RUN BAPI ON LAST ORDER
IF NOT ORDERITEMIN IS INITIAL.
V_RECORDER = V_RECORDER + 1.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = V_VBELN
ORDER_HEADER_INX = ORDERHEADERINX
TABLES
RETURN = RETURN
ORDER_ITEM_IN = ORDERITEMIN
ORDER_ITEM_INX = ORDERITEMINX.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = BAPIRETURN.
WRITE OUT RETURN
LOOP AT RETURN.
WRITE: / RETURN.
ENDLOOP.
WRITE: / BAPIRETURN.
SKIP.
ENDIF.
WRITE OUT RECORD COUNT FROM FILE
WRITE: / 'RECORD COUNT FROM FILE ', V_RECIN.
SKIP.
WRITE OUT RECORD COUNT FROM FILE
WRITE: / 'RECORD COUNT OF LINES TO CHANGE ', V_RECVBAP.
SKIP.
WRITE OUT RECORD COUNT FROM FILE
WRITE: / 'RECORD COUNT OF ORDERS TO CHANGE ', V_RECORDER.
SKIP.
TOP OF PAGE
TOP-OF-PAGE.
WRITE:/1(5) TEXT-H01, 6(8) SY-DATUM MM/DD/YY,
100(8) TEXT-H02, 126(8) SY-PAGNO.
WRITE:/1(5) TEXT-H03, 6(8) SY-UZEIT USING EDIT MASK '__:__:__',
20(77) TEXT-H04,
100(8) TEXT-H05, 108(25) SY-REPID.
WRITE:/1(6) TEXT-H06, 8(12) SY-UNAME,
20(4) TEXT-H07, 25(32) SY-HOST,
100(13) TEXT-H08, 121(8) SY-SYSID,
129 '/', 130(3) SY-MANDT.
ULINE.
SKIP.
2007 Dec 17 7:48 AM
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |