03-24-2010 8:58 PM
I am trying to reverse a meter reading in a similar way as:
T-code EL37
--> Writing installation --> Executing
--> Selecting reading --> Reversing
but instead of using the transaction, doing it directly in a program.
I made some research and found these FMs:
ISU_METERREAD_CANCEL, ISU_O_METERREAD_OPEN
but I haven't been successful in reversing the meter reading using these FMs.
Does anybody knows what to pass to these FMs or any other FM to reverse a meter reading, or how to reverse a meter reading (in code)?
Thanks.
03-31-2010 2:28 PM
Hi,
Check this code:
CALL FUNCTION 'ISU_O_METERREAD_OPEN'
EXPORTING
x_anlage = l_anlage
x_adatsoll = l_adatsoll
x_ablbelnr = l_ablbelnr
x_ablesgr = l_ablesgr
x_select2 = '2'
x_wmode = '6'
x_upd_online = space
x_no_dialog = 'X'
x_aufruf = '01'
x_karenzprfg = 'X'
IMPORTIN
y_obj = ls_obj
EXCEPTIONS
not_found = 1
foreign_lock = 2
internal_error = 3
input_error = 4
existing = 5
number_error = 6
general_fault = 7
system_error = 8
manual_abort = 9
gasdat_not_found = 10
no_mrrel_registers = 11
internal_warning = 12
not_authorized = 13
not_qualified = 14
anpstorno_not_allowed = 15
already_billed = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
l_error = 'X'.
ELSE.
ls_obj-contr-no_change = space.
ls_obj-contr-no_other = space.
ls_obj-contr-enq_done = 'X'.
CALL FUNCTION 'ISU_O_METERREAD_ACTION'
EXPORTING
x_okcode = 'PSAV'
CHANGING
xy_obj = ls_obj
EXCEPTIONS
cancelled = 1
failed = 2
action_not_supported = 3
system_error = 4
input_error = 5
not_allowed = 6
not_customized = 7
reestimation_failed = 8
path_invalid = 9
date_invalid = 10
internal_error = 11
general_fault = 12
OTHERS = 13.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
l_error = 'X'.
ELSE.
CLEAR tb_eabl.
REFRESH tb_eabl.
CALL FUNCTION 'ISU_O_METERREAD_ACTION'
EXPORTING
x_okcode = 'SAVE'
TABLES
yt_eabl_delete = tb_eabl
CHANGING
xy_obj = ls_obj
EXCEPTIONS
cancelled = 1
failed = 2
action_not_supported = 3
system_error = 4
input_error = 5
not_allowed = 6
not_customized = 7
reestimation_failed = 8
path_invalid = 9
date_invalid = 10
internal_error = 11
general_fault = 12
OTHERS = 13.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
l_error = 'X'.
ENDIF.
ENDIF.
ENDIF.
IF l_error IS INITIAL.
COMMIT WORK AND WAIT.
ENDIF.
Edited by: xavier kerouanton on Mar 31, 2010 3:28 PM
Edited by: xavier kerouanton on Mar 31, 2010 3:31 PM