05-23-2014 10:24 AM
Hi.
I have appended my own custom structure (fields) to the WRF1 table. As part of a custom program I am developing I need to update the change pointer table whenever the user make a change to one of the custom fields. I have been asked to look into the BETRIEB_WRITE_DOCUMENT function module, but cannot find any documentation how to use this function module. Does anyone have any information? Or has anyone used this function module. The code below to call the fm is below. I suspect that the n_wrf1 & o_wrf1 exporting parameters are for the structure to contain the old & new data of the table wrf1.
call function 'BETRIEB_WRITE_DOCUMENT'
exporting
objectid = lv_objectid
tcode = sy-tcode
utime = sy-uzeit
udate = sy-datum
username = sy-uname
object_change_indicator = 'U'
planned_or_real_changes = 'R'
n_t001k = n_t001k
o_yt001k = o_yt001k
n_t001w = n_t001w
o_yt001w = o_yt001w
n_wrf1 = n_wrf1
o_ywrf1 = o_wrf1
upd_wrf1 = 'U'
tables
xt023w = xt023w
yt023w = yt023w
xt023x = xt023x
yt023x = yt023x
xwrf12 = xwrf12
ywrf12 = ywrf12
xwrf3 = xwrf3
ywrf3 = ywrf3
xwrf4 = xwrf4
ywrf4 = ywrf4
xwrf5 = xwrf5
ywrf5 = ywrf5
xwrf6 = xwrf6
ywrf6 = ywrf6.
Cheers.
05-23-2014 11:36 AM
Hi Tim,
Do a where-used search for the functional module. It might help to see how it is being called from other programs.
Thanks and Regards,
Kavya
05-23-2014 11:42 AM
Hi Kavya.
Thanks for replying. I tried that earlier & it's not being called by any other program.
Regards.
05-23-2014 11:53 AM
Hi Tim,
In my system(SAP ECC 6.0), it is being used in 4 FMs. Maybe those are not there in your system.
I've pasted the code for WEWU_CURRENCY_CONVERT_0303 FM below:
FUNCTION WEWU_CURRENCY_CONVERT_0303.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(PI_BATCH) LIKE SY-MARKY DEFAULT ' '
*" EXPORTING
*" VALUE(PE_COMWO) LIKE SY-MARKY
*" TABLES
*" PX_T_WEWU00 STRUCTURE WEWU00
*" PE_T_EWUERR STRUCTURE EWUERR OPTIONAL
*"----------------------------------------------------------------------
DATA: OBJECTID LIKE CDHDR-OBJECTID.
* TCODE LIKE CDHDR-TCODE,
* PLANNED_CHANGE_NUMBER LIKE CDHDR-PLANCHNGNR,
* UTIME LIKE CDHDR-UTIME,
* UDATE LIKE CDHDR-UDATE,
* USERNAME LIKE CDHDR-USERNAME,
* CDOC_PLANNED_OR_REAL LIKE CDHDR-CHANGE_IND,
* CDOC_UPD_OBJECT LIKE CDHDR-CHANGE_IND VALUE 'U',
* CDOC_NO_CHANGE_POINTERS LIKE CDHDR-CHANGE_IND.
DATA: SUBRC LIKE SY-SUBRC.
DATA: I_T001W_DUMMY LIKE T001W,
I_T001K_DUMMY LIKE T001K,
I_XWRF1 LIKE WRF1.
DATA: T_T023W_DUMMY LIKE FT023W OCCURS 1,
T_T023X_DUMMY LIKE FT023X OCCURS 1,
T_WRF12_DUMMY LIKE FWRF12 OCCURS 1,
T_WRF3_DUMMY LIKE FWRF3 OCCURS 1,
T_WRF4_DUMMY LIKE FWRF4 OCCURS 1,
T_WRF5_DUMMY LIKE FWRF5 OCCURS 1,
T_WRF6_DUMMY LIKE FWRF6 OCCURS 1.
* Tabelle PX_T_WEWU00 abarbeiten --------------------------------------*
LOOP AT PX_T_WEWU00.
*-- Tabelle WRF1 lesen --> *WRF1 --------------------------------------*
PERFORM WRF1_FUELLEN USING PX_T_WEWU00-WERKS SUBRC.
CHECK SUBRC EQ 0.
CHECK *WRF1-POSWS EQ PX_T_WEWU00-WRSVO.
*-- Update-Eintrag fuellen --> I_XWRF1 --------------------------------*
MOVE-CORRESPONDING *WRF1 TO I_XWRF1.
I_XWRF1-POSWS = PX_T_WEWU00-WRSNA.
*-- Aenderungsbelege fortschreiben ------------------------------------*
OBJECTID = PX_T_WEWU00-WERKS.
CALL FUNCTION 'BETRIEB_WRITE_DOCUMENT' IN UPDATE TASK
EXPORTING OBJECTID = OBJECTID
TCODE = SY-TCODE
UTIME = SY-UZEIT
UDATE = SY-DATUM
USERNAME = SY-UNAME
* PLANNED_CHANGE_NUMBER = PLANNED_CHANGE_NUMBER
* OBJECT_CHANGE_INDICATOR = CDOC_UPD_OBJECT
* PLANNED_OR_REAL_CHANGES = CDOC_PLANNED_OR_REAL
* NO_CHANGE_POINTERS = CDOC_NO_CHANGE_POINTERS
O_YT001K = I_T001K_DUMMY
N_T001K = I_T001K_DUMMY
* UPD_T001K = UPD_T001K
O_YT001W = I_T001W_DUMMY
N_T001W = I_T001W_DUMMY
* UPD_T001W = UPD_T001W
* UPD_T023W = UPD_T023W
* UPD_T023X = UPD_T023X
O_YWRF1 = *WRF1
N_WRF1 = I_XWRF1
UPD_WRF1 = UPDKZ_U
* UPD_WRF12 = UPD_WRF12
* UPD_WRF3 = UPD_WRF3
* UPD_WRF4 = UPD_WRF4
* UPD_WRF5 = UPD_WRF5
* UPD_WRF6 = UPD_WRF6
TABLES XT023W = T_T023W_DUMMY
YT023W = T_T023W_DUMMY
XT023X = T_T023X_DUMMY
YT023X = T_T023X_DUMMY
XWRF12 = T_WRF12_DUMMY
YWRF12 = T_WRF12_DUMMY
XWRF3 = T_WRF3_DUMMY
YWRF3 = T_WRF3_DUMMY
XWRF4 = T_WRF4_DUMMY
YWRF4 = T_WRF4_DUMMY
XWRF5 = T_WRF5_DUMMY
YWRF5 = T_WRF5_DUMMY
XWRF6 = T_WRF6_DUMMY
YWRF6 = T_WRF6_DUMMY.
*-- Update in WRF1 vornehmen ------------------------------------------*
* CALL FUNCTION 'LOCATION_UPDATE'
CALL FUNCTION 'LOCATION_UPDATE' IN UPDATE TASK
EXPORTING
I_WRF1 = I_XWRF1
I_YWRF1 = *WRF1
EXCEPTIONS
OTHERS = 0.
*-- Rückmeldung an Tabelle PX_T_WEWU00 --------------------------------*
PX_T_WEWU00-UMSTA = 'C'.
PX_T_WEWU00-BADAT = SY-DATUM.
MODIFY PX_T_WEWU00.
ENDLOOP.
* Commit anfordern ----------------------------------------------------*
PE_COMWO = YES.
ENDFUNCTION.
*----------------------------------------------------------------------*
* Tabelle WRF1 lesen --> *WRF1
*----------------------------------------------------------------------*
FORM WRF1_FUELLEN USING PI_WERKS LIKE T001W-WERKS
PE_SUBRC LIKE SY-SUBRC.
CALL FUNCTION 'LOCATION_SELECT_PLANT'
EXPORTING
I_WERKS = PI_WERKS
IMPORTING
O_T001W = *T001W
EXCEPTIONS
NO_VALID_PLANT = 01
PLANT_NOT_FOUND = 02
OTHERS = 03.
IF SY-SUBRC NE 0.
PE_SUBRC = 04.
ENDIF.
CALL FUNCTION 'LOCATION_WRF1_SELECT'
EXPORTING
I_LOCNR = *T001W-KUNNR
IMPORTING
A_WRF1 = *WRF1
EXCEPTIONS
NO_ENTRY_FOUND = 1
OTHERS = 2.
IF SY-SUBRC NE 0.
PE_SUBRC = 04.
ENDIF.
ENDFORM.
Regards,
Kavya