Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

bapi for change sales order

Former Member
0 Likes
1,010

hi ,

can any body tell the name of bapi for change sales order.

Points will be rewarded .

5 REPLIES 5
Read only

Former Member
0 Likes
884

BAPI_SALESORDER_CHANGE - Sales order: Change Sales Order

Check these threads for related information.

Regards,

Maha

Read only

Former Member
0 Likes
884

HI,

USE THIS BAPI

BAPI_SALESORDER_CHANGE

Read only

Former Member
0 Likes
884

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.

Read only

Former Member
0 Likes
884

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.

Read only

Former Member
0 Likes
884

thanks for rewarding the point.