SAP for Utilities Discussions
Connect with fellow SAP users to share best practices, troubleshoot challenges, and collaborate on building a sustainable energy future. Join the discussion.
cancel
Showing results for 
Search instead for 
Did you mean: 

EG42 Device Modification

Former Member
0 Kudos

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

1 ACCEPTED SOLUTION

i807822
Advisor
Advisor
0 Kudos

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.

View solution in original post

3 REPLIES 3

i807822
Advisor
Advisor
0 Kudos

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.

Former Member
0 Kudos

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.

Former Member
0 Kudos

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