2010 Feb 03 11:58 AM
Hello ISU-ABAP experts,
I have requirement to change the register group in in device modification programaticaly.
I have tried using functions ISU_S_DEVICEMOD_CHANGE and ISU_S_DEVICEMOD_PROVIDE without success.
Would anyone please share the code for this.
Regards
Satish
2010 Feb 03 7:08 PM
Hi,
this FM you mentioned above should work fine. Make sure you pass ISU_S_DEVICEMOD_CHANGE => X_DEVICE and X_MATNR as this will be the key reference for the device.
Then in the logic I noticed this test:
Line: 53 PERFORM input_check_zwgruppe CHANGING xy_obj.
-
IF sobj-contr-general-save_okcode <> co_change_reg_konfig
OR sobj-obj-disp-zwgruppe <> sobj-obj-disp_input-zwgruppe.
-
Try assigning the import parameter called sobj of type isu42_devmod and update the value in
sobj-obj-disp_input-zwgruppe.
This should work fine.
Thanks Nick.
2010 Feb 03 7:08 PM
Hi,
this FM you mentioned above should work fine. Make sure you pass ISU_S_DEVICEMOD_CHANGE => X_DEVICE and X_MATNR as this will be the key reference for the device.
Then in the logic I noticed this test:
Line: 53 PERFORM input_check_zwgruppe CHANGING xy_obj.
-
IF sobj-contr-general-save_okcode <> co_change_reg_konfig
OR sobj-obj-disp-zwgruppe <> sobj-obj-disp_input-zwgruppe.
-
Try assigning the import parameter called sobj of type isu42_devmod and update the value in
sobj-obj-disp_input-zwgruppe.
This should work fine.
Thanks Nick.
2010 Feb 04 1:10 PM
Thanks Nick.
I was working in the same lines.
Finally after lot of debugging of EG42 I managed to find the solution. The following worked for me.
FUNCTION Z_DEVICE_MODIFICATION_REGGRP.
*"----
""Local Interface:
*" IMPORTING
*" VALUE(X_DEVICE) TYPE REG42_INTERFACE-DEVICE OPTIONAL
*" VALUE(X_KEYDATE) TYPE REG42_INTERFACE-KEYDATE OPTIONAL
*" VALUE(X_ZWGRUPPE) TYPE E_ZWGRUPPE OPTIONAL
*" VALUE(X_WMODE) TYPE REGEN-WMODE OPTIONAL
*" VALUE(X_UPD_ONLINE) TYPE REGEN-UPD_ONLINE OPTIONAL
*" EXPORTING
*" REFERENCE(Y_DB_UPDATE) LIKE REGEN-DB_UPDATE
*" REFERENCE(Y_EXIT_TYPE) LIKE REGEN-EXIT_TYPE
*" CHANGING
*" REFERENCE(XY_INTEGRATION) TYPE ISU07_INTEGRATION_DATA
*" EXCEPTIONS
*" NOT_FOUND
*" INVALID
*" FOREIGN_LOCK
*" INPUT_ERROR
*" SYSTEM_ERROR
*" INTERNAL_ERROR
*" NOT_QUALIFIED
*" NOT_CUSTOMIZED
*" CANCELLED
*"----
data: obj type ISU42_DEVMOD,
auto type ISU42_DEVMOD_AUTO.
CALL FUNCTION 'ISU_O_DEVICEMOD_OPEN'
EXPORTING
X_DEVLOC = X_DEVLOC
X_INSTALLATION = X_INSTALLATION
X_DEVICE = X_DEVICE
X_MATNR = X_MATNR
X_DEVISION = X_DEVISION
X_EQUNR = X_EQUNR
X_KEYDATE = X_KEYDATE
X_WMODE = X_WMODE
X_PRORATE = X_PRORATE
X_TIMESLICES = X_TIMESLICES
X_UPD_ONLINE = X_UPD_ONLINE
X_NO_DIALOG = X_NO_DIALOG
X_AUTO = X_AUTO
X_NO_CHANGE = X_NO_CHANGE
X_NO_OTHER = X_NO_OTHER
X_NO_UPDATE = X_NO_UPDATE
IMPORTING
Y_OBJ = OBJ
y_auto = auto
CHANGING
XY_INTEGRATION = XY_INTEGRATION
EXCEPTIONS
NOT_FOUND = 1
INVALID = 2
FOREIGN_LOCK = 3
INPUT_ERROR = 4
SYSTEM_ERROR = 5
INTERNAL_ERROR = 6
NOT_QUALIFIED = 7
NOT_CUSTOMIZED = 8
CANCELLED = 9
OTHERS = 10.
OBJ-CONTR-GENERAL-NO_DIALOG = space.
OBJ-CONTR-GENERAL-upd_online = 'X'.
auto-contr-okcode = 'SAVE'.
AUTO-CONTR-USE-OKCODE = 'X'.
obj-auto = auto.
OBJ-CONTR-OPEN_DONE = 'X'.
READ TABLE obj-obj-disp_tab INTO obj-obj-disp
WITH KEY ab = obj-obj-disp-ab.
IF sy-subrc = 0.
obj-obj-disp-zwgruppe = X_ZWGRUPPE.
modify obj-obj-disp_tab from obj-obj-disp index sy-tabix.
endif.
CALL FUNCTION 'ISU_S_DEVICEMOD_CHANGE'
EXPORTING
X_DEVLOC =
X_INSTALLATION =
X_DEVICE = x_device
X_MATNR =
X_DEVISION =
X_EQUNR =
X_KEYDATE = x_keydate
X_WMODE = '2'
X_PRORATE = 'X'
X_TIMESLICES =
X_UPD_ONLINE = 'X'
X_NO_DIALOG = 'X'
X_AUTO = auto
X_OBJ = obj
X_NO_CHANGE =
X_NO_OTHER =
X_NO_UPDATE =
IMPORTING
Y_DB_UPDATE =
Y_EXIT_TYPE =
CHANGING
XY_INTEGRATION =
EXCEPTIONS
NOT_FOUND = 1
INVALID = 2
FOREIGN_LOCK = 3
INPUT_ERROR = 4
SYSTEM_ERROR = 5
INTERNAL_ERROR = 6
NOT_QUALIFIED = 7
NOT_CUSTOMIZED = 8
CANCELLED = 9
OTHERS = 10
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFUNCTION.
2011 Jun 22 4:34 PM
Hello Satish,
I saw your example of using the function module ISU_S_DEVICEMOD_CHANGE with no dialog option. I was wondering how you got the value for X_ZWGRUPPE. Since the function is not dialog. I would be processing multiple meters and changing the register group on each of them.
Your help is needed, Thanks, Bill