SAP ISU_DEVICE_PREPARE Function Module for Service Function Module Preparation of Device
ISU_DEVICE_PREPARE is a standard isu device prepare SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used for Service Function Module Preparation of Device processing and below is the pattern details for this FM, showing its interface including any import and export parameters, exceptions etc. there is also a full "cut and paste" ABAP pattern code example, along with implementation ABAP coding, documentation and contribution comments specific to this or related objects.
See here to view full function module documentation and code listing for isu device prepare FM, simply by entering the name ISU_DEVICE_PREPARE into the relevant SAP transaction such as SE37 or SE38.
Function Group: ELIN
Program Name: SAPLELIN
Main Program: SAPLELIN
Appliation area: E
Release date: N/A
Mode(Normal, Remote etc): Normal Function Module
Update:

Function ISU_DEVICE_PREPARE pattern details
In-order to call this FM within your sap programs, simply using the below ABAP pattern details to trigger the function call...or see the full ABAP code listing at the end of this article. You can simply cut and paste this code into your ABAP progrom as it is, including variable declarations.CALL FUNCTION 'ISU_DEVICE_PREPARE'"Service Function Module Preparation of Device.
EXPORTING
* X_ABLEINH = "
* X_TE418 = "
* X_TE417 = "
* X_UPD_ONLINE = "Indicator: Update Online
* X_NO_DIALOG = "Indicator: no dialog
* X_AUFRUF = CO_CALLBY_ORDERS "
* X_KARENZPRFG = 'X' "
* X_EBENE = "
* X_GPLARTTS = ' ' "
* X_PM_ORDER = ' ' "Generate SM order
* X_ARBAUF = ' ' "
* X_ANLAGE = "
* X_ADATERZ = "
* X_PREP_ON_INTERNAL = ' ' "Indicator
* X_INST = "Category Definition for Entire Installation Structure
* X_AKTIV = "Indicator
* X_DPCORDER = "
* X_NO_BILL_PER = "
* X_NO_REGREL_CREATE = ' ' "
* X_AMI_SOURCESYST = "
* XT_SUBSCR_EGER_NEW = "
X_EQUNR = "
* X_GERAET = "
X_ADATSOLL = "Scheduled Meter Reading Date
X_ZUORDDAT = "
* X_ABRDATS = "Scheduled billing date
* X_ZUORDDATR = "
X_ABLESGR = "Meter Reading Reason
IMPORTING
Y_DB_UPDATE = "Indicator: data change
Y_EXIT_TYPE = "
CHANGING
* XY_OBJ = "
* XY_BP = "
TABLES
* XT_INSTTAB = "
* XT_NEW_EZWG = "
EXCEPTIONS
NOT_FOUND = 1 DEV_ALREADY_PREP = 10 FOREIGN_LOCK = 2 INTERNAL_ERROR = 3 INPUT_ERROR = 4 EXISTING = 5 NUMBER_ERROR = 6 GENERAL_FAULT = 7 NO_MRREL_REGISTERS = 8 BILLED_PERIOD = 9
Customer Function user exits
Below is a list of CUSTOMER FUNCTION exit user exits that are available within this program and maybe relevant for this FM.EXIT_SAPLELIN_001 IS-U: Customer-Specific Determination of Meter Reading Type
EXIT_SAPLELIN_002 IS-U: Customer-Specific Suppression of Interval Check
IMPORTING Parameters details for ISU_DEVICE_PREPARE
X_ABLEINH -
Data type: TE418-TERMSCHLOptional: Yes
Call by Reference: No ( called with pass by value option)
X_TE418 -
Data type: TE418Optional: Yes
Call by Reference: No ( called with pass by value option)
X_TE417 -
Data type: TE417Optional: Yes
Call by Reference: No ( called with pass by value option)
X_UPD_ONLINE - Indicator: Update Online
Data type: REGEN-UPD_ONLINEOptional: Yes
Call by Reference: No ( called with pass by value option)
X_NO_DIALOG - Indicator: no dialog
Data type: REGEN-NO_DIALOGOptional: Yes
Call by Reference: No ( called with pass by value option)
X_AUFRUF -
Data type: REL01-AUFRUF_VRBDefault: CO_CALLBY_ORDERS
Optional: Yes
Call by Reference: No ( called with pass by value option)
X_KARENZPRFG -
Data type: REGEN-UPD_ONLINEDefault: 'X'
Optional: Yes
Call by Reference: No ( called with pass by value option)
X_EBENE -
Data type: REL01-VB_EBENEOptional: Yes
Call by Reference: No ( called with pass by value option)
X_GPLARTTS -
Data type: REGEN-UPD_ONLINEDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
X_PM_ORDER - Generate SM order
Data type: REGEN-KENNZXDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
X_ARBAUF -
Data type: EABL-ARBAUFDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
X_ANLAGE -
Data type: EANL-ANLAGEOptional: Yes
Call by Reference: No ( called with pass by value option)
X_ADATERZ -
Data type: EABL-ADATERZOptional: Yes
Call by Reference: No ( called with pass by value option)
X_PREP_ON_INTERNAL - Indicator
Data type: REGEN-KENNZXDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
X_INST - Category Definition for Entire Installation Structure
Data type: ISU07_INSTALL_STRUCOptional: Yes
Call by Reference: No ( called with pass by value option)
X_AKTIV - Indicator
Data type: REGEN-KENNZXOptional: Yes
Call by Reference: No ( called with pass by value option)
X_DPCORDER -
Data type: REGEN-KENNZXOptional: Yes
Call by Reference: No ( called with pass by value option)
X_NO_BILL_PER -
Data type: REGEN-KENNZXOptional: Yes
Call by Reference: No ( called with pass by value option)
X_NO_REGREL_CREATE -
Data type: REGEN-KENNZXDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
X_AMI_SOURCESYST -
Data type: E_AMI_SOURCESYSTOptional: Yes
Call by Reference: No ( called with pass by value option)
XT_SUBSCR_EGER_NEW -
Data type: T_V_EGEROptional: Yes
Call by Reference: No ( called with pass by value option)
X_EQUNR -
Data type: EGERS-EQUNROptional: No
Call by Reference: No ( called with pass by value option)
X_GERAET -
Data type: V_EGER-GERAETOptional: Yes
Call by Reference: No ( called with pass by value option)
X_ADATSOLL - Scheduled Meter Reading Date
Data type: TE418-ADATSOLLOptional: No
Call by Reference: No ( called with pass by value option)
X_ZUORDDAT -
Data type: TE418-ZUORDDATOptional: No
Call by Reference: No ( called with pass by value option)
X_ABRDATS - Scheduled billing date
Data type: TE417-ABRDATSOptional: Yes
Call by Reference: No ( called with pass by value option)
X_ZUORDDATR -
Data type: TE417-ZUORDDATOptional: Yes
Call by Reference: No ( called with pass by value option)
X_ABLESGR - Meter Reading Reason
Data type: TE418-ABLESGROptional: No
Call by Reference: No ( called with pass by value option)
EXPORTING Parameters details for ISU_DEVICE_PREPARE
Y_DB_UPDATE - Indicator: data change
Data type: REGEN-DB_UPDATEOptional: No
Call by Reference: No ( called with pass by value option)
Y_EXIT_TYPE -
Data type: REGEN-EXIT_TYPEOptional: No
Call by Reference: No ( called with pass by value option)
CHANGING Parameters details for ISU_DEVICE_PREPARE
XY_OBJ -
Data type: ISU17_METERREADOptional: Yes
Call by Reference: No ( called with pass by value option)
XY_BP -
Data type: REA00-BREAKOptional: Yes
Call by Reference: No ( called with pass by value option)
TABLES Parameters details for ISU_DEVICE_PREPARE
XT_INSTTAB -
Data type: ISU17_METERDOCU_INSTTABOptional: Yes
Call by Reference: No ( called with pass by value option)
XT_NEW_EZWG -
Data type: EZWGOptional: Yes
Call by Reference: No ( called with pass by value option)
EXCEPTIONS details
NOT_FOUND -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
DEV_ALREADY_PREP -
Data type:Optional: No
Call by Reference: Yes
FOREIGN_LOCK -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
INTERNAL_ERROR - Internal Error
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
INPUT_ERROR - Error During Entry Check
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
EXISTING - Object Already Exists
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NUMBER_ERROR - Error in number assignment
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
GENERAL_FAULT - General Error
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NO_MRREL_REGISTERS -
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
BILLED_PERIOD -
Data type:Optional: No
Call by Reference: Yes
Copy and paste ABAP code example for ISU_DEVICE_PREPARE Function Module
The ABAP code below is a full code listing to execute function module POPUP_TO_CONFIRM including all data declarations. The code uses the original data declarations rather than the latest in-line data DECLARATION SYNTAX but I have included an ABAP code snippet at the end to show how declarations would look using the newer method of declaring data variables on the fly. This will allow you to compare and fully understand the new inline method. Please note some of the newer syntax such as the @DATA is not available until a later 4.70 service pack (SP8), which i why i have stuck to the origianl for this example.| DATA: | ||||
| lv_xy_obj | TYPE ISU17_METERREAD, " | |||
| lv_not_found | TYPE ISU17_METERREAD, " | |||
| lv_x_ableinh | TYPE TE418-TERMSCHL, " | |||
| lt_xt_insttab | TYPE STANDARD TABLE OF ISU17_METERDOCU_INSTTAB, " | |||
| lv_y_db_update | TYPE REGEN-DB_UPDATE, " | |||
| lv_x_te418 | TYPE TE418, " | |||
| lv_dev_already_prep | TYPE TE418, " | |||
| lv_x_te417 | TYPE TE417, " | |||
| lv_x_upd_online | TYPE REGEN-UPD_ONLINE, " | |||
| lv_x_no_dialog | TYPE REGEN-NO_DIALOG, " | |||
| lv_x_aufruf | TYPE REL01-AUFRUF_VRB, " CO_CALLBY_ORDERS | |||
| lv_x_karenzprfg | TYPE REGEN-UPD_ONLINE, " 'X' | |||
| lv_x_ebene | TYPE REL01-VB_EBENE, " | |||
| lv_x_gplartts | TYPE REGEN-UPD_ONLINE, " SPACE | |||
| lv_x_pm_order | TYPE REGEN-KENNZX, " SPACE | |||
| lv_x_arbauf | TYPE EABL-ARBAUF, " SPACE | |||
| lv_xy_bp | TYPE REA00-BREAK, " | |||
| lv_x_anlage | TYPE EANL-ANLAGE, " | |||
| lt_xt_new_ezwg | TYPE STANDARD TABLE OF EZWG, " | |||
| lv_y_exit_type | TYPE REGEN-EXIT_TYPE, " | |||
| lv_foreign_lock | TYPE REGEN, " | |||
| lv_x_adaterz | TYPE EABL-ADATERZ, " | |||
| lv_x_prep_on_internal | TYPE REGEN-KENNZX, " SPACE | |||
| lv_x_inst | TYPE ISU07_INSTALL_STRUC, " | |||
| lv_x_aktiv | TYPE REGEN-KENNZX, " | |||
| lv_x_dpcorder | TYPE REGEN-KENNZX, " | |||
| lv_x_no_bill_per | TYPE REGEN-KENNZX, " | |||
| lv_x_no_regrel_create | TYPE REGEN-KENNZX, " SPACE | |||
| lv_x_ami_sourcesyst | TYPE E_AMI_SOURCESYST, " | |||
| lv_xt_subscr_eger_new | TYPE T_V_EGER, " | |||
| lv_x_equnr | TYPE EGERS-EQUNR, " | |||
| lv_internal_error | TYPE EGERS, " | |||
| lv_x_geraet | TYPE V_EGER-GERAET, " | |||
| lv_input_error | TYPE V_EGER, " | |||
| lv_existing | TYPE V_EGER, " | |||
| lv_x_adatsoll | TYPE TE418-ADATSOLL, " | |||
| lv_x_zuorddat | TYPE TE418-ZUORDDAT, " | |||
| lv_number_error | TYPE TE418, " | |||
| lv_x_abrdats | TYPE TE417-ABRDATS, " | |||
| lv_general_fault | TYPE TE417, " | |||
| lv_x_zuorddatr | TYPE TE417-ZUORDDAT, " | |||
| lv_no_mrrel_registers | TYPE TE417, " | |||
| lv_x_ablesgr | TYPE TE418-ABLESGR, " | |||
| lv_billed_period | TYPE TE418. " |
|   CALL FUNCTION 'ISU_DEVICE_PREPARE' "Service Function Module Preparation of Device |
| EXPORTING | ||
| X_ABLEINH | = lv_x_ableinh | |
| X_TE418 | = lv_x_te418 | |
| X_TE417 | = lv_x_te417 | |
| X_UPD_ONLINE | = lv_x_upd_online | |
| X_NO_DIALOG | = lv_x_no_dialog | |
| X_AUFRUF | = lv_x_aufruf | |
| X_KARENZPRFG | = lv_x_karenzprfg | |
| X_EBENE | = lv_x_ebene | |
| X_GPLARTTS | = lv_x_gplartts | |
| X_PM_ORDER | = lv_x_pm_order | |
| X_ARBAUF | = lv_x_arbauf | |
| X_ANLAGE | = lv_x_anlage | |
| X_ADATERZ | = lv_x_adaterz | |
| X_PREP_ON_INTERNAL | = lv_x_prep_on_internal | |
| X_INST | = lv_x_inst | |
| X_AKTIV | = lv_x_aktiv | |
| X_DPCORDER | = lv_x_dpcorder | |
| X_NO_BILL_PER | = lv_x_no_bill_per | |
| X_NO_REGREL_CREATE | = lv_x_no_regrel_create | |
| X_AMI_SOURCESYST | = lv_x_ami_sourcesyst | |
| XT_SUBSCR_EGER_NEW | = lv_xt_subscr_eger_new | |
| X_EQUNR | = lv_x_equnr | |
| X_GERAET | = lv_x_geraet | |
| X_ADATSOLL | = lv_x_adatsoll | |
| X_ZUORDDAT | = lv_x_zuorddat | |
| X_ABRDATS | = lv_x_abrdats | |
| X_ZUORDDATR | = lv_x_zuorddatr | |
| X_ABLESGR | = lv_x_ablesgr | |
| IMPORTING | ||
| Y_DB_UPDATE | = lv_y_db_update | |
| Y_EXIT_TYPE | = lv_y_exit_type | |
| CHANGING | ||
| XY_OBJ | = lv_xy_obj | |
| XY_BP | = lv_xy_bp | |
| TABLES | ||
| XT_INSTTAB | = lt_xt_insttab | |
| XT_NEW_EZWG | = lt_xt_new_ezwg | |
| EXCEPTIONS | ||
| NOT_FOUND = 1 | ||
| DEV_ALREADY_PREP = 10 | ||
| FOREIGN_LOCK = 2 | ||
| INTERNAL_ERROR = 3 | ||
| INPUT_ERROR = 4 | ||
| EXISTING = 5 | ||
| NUMBER_ERROR = 6 | ||
| GENERAL_FAULT = 7 | ||
| NO_MRREL_REGISTERS = 8 | ||
| BILLED_PERIOD = 9 | ||
| . " ISU_DEVICE_PREPARE | ||
ABAP code using 7.40 inline data declarations to call FM ISU_DEVICE_PREPARE
The below ABAP code uses the newer in-line data declarations. This allows you to see the coding differences/benefits of the later inline syntax. Please note some of the newer syntax below, such as the @DATA is not available until 4.70 EHP 8.| "SELECT single TERMSCHL FROM TE418 INTO @DATA(ld_x_ableinh). | ||||
| "SELECT single DB_UPDATE FROM REGEN INTO @DATA(ld_y_db_update). | ||||
| "SELECT single UPD_ONLINE FROM REGEN INTO @DATA(ld_x_upd_online). | ||||
| "SELECT single NO_DIALOG FROM REGEN INTO @DATA(ld_x_no_dialog). | ||||
| "SELECT single AUFRUF_VRB FROM REL01 INTO @DATA(ld_x_aufruf). | ||||
| DATA(ld_x_aufruf) | = CO_CALLBY_ORDERS. | |||
| "SELECT single UPD_ONLINE FROM REGEN INTO @DATA(ld_x_karenzprfg). | ||||
| DATA(ld_x_karenzprfg) | = 'X'. | |||
| "SELECT single VB_EBENE FROM REL01 INTO @DATA(ld_x_ebene). | ||||
| "SELECT single UPD_ONLINE FROM REGEN INTO @DATA(ld_x_gplartts). | ||||
| DATA(ld_x_gplartts) | = ' '. | |||
| "SELECT single KENNZX FROM REGEN INTO @DATA(ld_x_pm_order). | ||||
| DATA(ld_x_pm_order) | = ' '. | |||
| "SELECT single ARBAUF FROM EABL INTO @DATA(ld_x_arbauf). | ||||
| DATA(ld_x_arbauf) | = ' '. | |||
| "SELECT single BREAK FROM REA00 INTO @DATA(ld_xy_bp). | ||||
| "SELECT single ANLAGE FROM EANL INTO @DATA(ld_x_anlage). | ||||
| "SELECT single EXIT_TYPE FROM REGEN INTO @DATA(ld_y_exit_type). | ||||
| "SELECT single ADATERZ FROM EABL INTO @DATA(ld_x_adaterz). | ||||
| "SELECT single KENNZX FROM REGEN INTO @DATA(ld_x_prep_on_internal). | ||||
| DATA(ld_x_prep_on_internal) | = ' '. | |||
| "SELECT single KENNZX FROM REGEN INTO @DATA(ld_x_aktiv). | ||||
| "SELECT single KENNZX FROM REGEN INTO @DATA(ld_x_dpcorder). | ||||
| "SELECT single KENNZX FROM REGEN INTO @DATA(ld_x_no_bill_per). | ||||
| "SELECT single KENNZX FROM REGEN INTO @DATA(ld_x_no_regrel_create). | ||||
| DATA(ld_x_no_regrel_create) | = ' '. | |||
| "SELECT single EQUNR FROM EGERS INTO @DATA(ld_x_equnr). | ||||
| "SELECT single GERAET FROM V_EGER INTO @DATA(ld_x_geraet). | ||||
| "SELECT single ADATSOLL FROM TE418 INTO @DATA(ld_x_adatsoll). | ||||
| "SELECT single ZUORDDAT FROM TE418 INTO @DATA(ld_x_zuorddat). | ||||
| "SELECT single ABRDATS FROM TE417 INTO @DATA(ld_x_abrdats). | ||||
| "SELECT single ZUORDDAT FROM TE417 INTO @DATA(ld_x_zuorddatr). | ||||
| "SELECT single ABLESGR FROM TE418 INTO @DATA(ld_x_ablesgr). | ||||
Search for further information about these or an SAP related objects