on 04-18-2006 2:14 PM
Hi, i need to change partner´s address... I´m trying using BAPI_SALESORDER_CHANGE, but i can´t do that works.
Somebody with an example to do that?
Check this one also...
this is also helpful to you..
REPORT Z_BAPI_SO_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.
Regards
vijay
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
check this BAPI..
REPORT ZTEST_BAPI .
Data: salesd like BAPIVBELN-VBELN.
data: it_BAPISDH1 type BAPISDH1.
data: it_BAPISDH1X type BAPISDH1X.
data: it_BAPIPARNR type BAPIPARNR occurs 0 with header line.
data: it_BAPIRET2 type BAPIRET2 occurs 0 with header line.
data: it_BAPIPARNRC type BAPIPARNRC occurs 0 with header line.
data: it_BAPISDITMX type BAPISDITMX occurs 0 with header line.
data: it_BAPISDITM type standard table of BAPISDITM with header line.
constants: c_bp(2) type c value 'BP'.
it_BAPISDH1X-UPDATEFLAG = 'U'.
it_BAPISDH1X-SALES_ORG = 'X'.
it_BAPISDH1X-DISTR_CHAN = 'X'.
it_BAPISDH1X-DIVISION = 'X'.
it_BAPISDH1X-PURCH_NO_C = 'X'.
it_BAPISDH1X-CUST_GROUP = 'X'.
it_BAPISDH1-SALES_ORG = '1000'.
it_BAPISDH1-DISTR_CHAN = '01'.
it_BAPISDH1-DIVISION = '00'.
it_BAPISDH1-PURCH_NO_C = 'Test1'.
***it_BAPIPARNR-PARTN_ROLE = 'RE'.
***it_BAPIPARNR-PARTN_NUMB = '0000000171'.
***it_BAPIPARNR-ITM_NUMBER = '00000'.
***append it_BAPIPARNR.
***it_BAPIPARNR-PARTN_ROLE = 'RE'.
***it_BAPIPARNR-PARTN_NUMB = '0000000179'.
***it_BAPIPARNR-ITM_NUMBER = '000000'.
***append it_BAPIPARNR.
it_BAPIPARNRC-DOCUMENT = '000000375'.
it_BAPIPARNRC-ITM_NUMBER = '000000'.
it_BAPIPARNRC-UPDATEFLAG = 'U'.
it_BAPIPARNRC-PARTN_ROLE = 'WE'.
it_BAPIPARNRC-P_NUMB_OLD = '0000000171'.
it_BAPIPARNRC-P_NUMB_NEW = '0000000179'.
***it_BAPIPARNRC-ADDRESS = '26324'.
it_BAPIPARNRC-ADDR_LINK = '0000000003'.
***it_BAPIPARNRC-REFOBJTYPE = 'BUS2032'.
***it_BAPIPARNRC-REFOBJKEY = '000000375'.
append it_BAPIPARNRC.
data PARTNERADDRESSES like BAPIADDR1 occurs 0 with header line.
PARTNERADDRESSES-ADDR_NO = '0000000003'.
PARTNERADDRESSES-NAME = 'Test Cust'.
PARTNERADDRESSES-STREET = '222nd AVE'.
PARTNERADDRESSES-NAME_2 = 'NEW Bldg A2'.
PARTNERADDRESSES-CITY = 'MILPITAS'.
***PARTNERADDRESSES-REGION = 'CA'.
PARTNERADDRESSES-POSTL_COD1 = '950351'.
PARTNERADDRESSES-COUNTRY = 'IN'.
PARTNERADDRESSES-LANGU = 'E'.
APPEND PARTNERADDRESSES. CLEAR PARTNERADDRESSES.
*it_BAPISDITMX-ITM_NUMBER = '00010'.
*it_BAPISDITMX-UPDATEFLAG = 'U'.
*it_BAPISDITMX-MATERIAL = 'X'.
*it_BAPISDITMX-CUST_GROUP = 'X'.
*append it_BAPISDITMX.
*it_BAPISDITM-ITM_NUMBER = '00010'.
*it_BAPISDITM-MATERIAL = '946'.
*append it_BAPISDITM.
break-point.
salesd = '0000000375'.
call function 'BAPI_SALESORDER_CHANGE'
exporting
salesdocument = salesd
ORDER_HEADER_IN = it_BAPISDH1
order_header_inx = it_BAPISDH1X
* SIMULATION =
* BEHAVE_WHEN_ERROR = ' '
* INT_NUMBER_ASSIGNMENT = ' '
* LOGIC_SWITCH =
tables
* ORDER_ITEM_IN = it_BAPISDITM
* ORDER_ITEM_INX = it_BAPISDITMX
* PARTNERS = it_BAPIPARNR
return = it_BAPIRET2
PARTNERCHANGES = it_BAPIPARNRC
PARTNERADDRESSES = PARTNERADDRESSES
* ORDER_CFGS_REF =
* ORDER_CFGS_INST =
* ORDER_CFGS_PART_OF =
* ORDER_CFGS_VALUE =
* ORDER_CFGS_BLOB =
* ORDER_CFGS_VK =
* ORDER_CFGS_REFINST =
* SCHEDULE_LINES =
* SCHEDULE_LINESX =
* ORDER_TEXT =
* ORDER_KEYS =
* CONDITIONS_IN =
* CONDITIONS_INX =
* EXTENSIONIN =
.
If sy-subrc = 0.
break-point.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT =
* IMPORTING
* RETURN =
.
endif.
Regards
vijay
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.