SAP ISH_CHECK_SERVICES_FOR_BILLING Function Module for
ISH_CHECK_SERVICES_FOR_BILLING is a standard ish check services for billing SAP function module available within SAP R/3 or S/4 Hana systems, depending on your version and release level. It is used to perform a specific ABAP function and below is the pattern details, 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 ish check services for billing FM, simply by entering the name ISH_CHECK_SERVICES_FOR_BILLING into the relevant SAP transaction such as SE37 or SE38.
Function Group: NBTG
Program Name: SAPLNBTG
Main Program: SAPLNBTG
Appliation area: N
Release date: N/A
Mode(Normal, Remote etc): Normal Function Module
Update:

Function ISH_CHECK_SERVICES_FOR_BILLING 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 'ISH_CHECK_SERVICES_FOR_BILLING'".
EXPORTING
* ABGERECHNET = ' ' "Billing days for billed services ->
* INFAL = ' ' "
* EVENT = ' ' "
EINRICHTUNG = "Institution
FALLNUMMER = "Case Number
* MSG_COLLECT = ' ' "Collect Messages
* MSG_SHOW = ' ' "Display messages
* STICHTAG = SY-DATUM "Key date for billing case without discharge
* REGELART = ' ' "
* AKTION = ' ' "
IMPORTING
TAGE_ABW = "Absence Days
ERRORS = "Number of Errors
HI_MSG = "highest message type determined (I, W or E)
INTEN_BEGDT = "Date of start of intensive care heart surgery
INTEN_ENDDT = "Date of end of intensive care surgery
INTEN_PAT = "ID intensive care patient for heart surgery
INTEN_TAGE = "Intensive care days for heart surgery
NS_DAYS = "No. post-discharge treatment days
GVDI = "
PRAEOP_TAGE = "Pre-operative days in intensive care heart surgery
PRAEP_TAGE = "
APS_INTEN = "Dep. per diem heart surgery intensive care
PS_DAT = "Date at which MLS for flat rate per case reached
VORTAGE = "
RNFAL = "Output structure billing days case
TAGE = "Length of stay w/o pre-op. days for int.care.pat.
VS_DAYS = "Pre-admission treatment days
PAT_NNAME = "Patient Name
PAT_VNAME = "Patient First Name
DRG_CASE = "
GVD_BEG = "
GVDI_DAT = "Date at which MLS for intensive care reached
GVDI_TAGE = "No. days exceeded for intensive care heart surgery
GVD_DAT = "Date from which post-disch. treatment days billed
GVD_TAGE = "No. of days exceeded for flat rate per case
HERZCHIR_AUFN = "Date of admission to heart surgery
WARNINGS = "Number of warning messages
TABLES
INBEWTAB = "Movements for Case
INLEITAB = "Services for case
* ERNLSR = "
* ERNLRF = "
EXCEPTIONS
NO_AUFN_FOUND = 1 NO_EINRICHTUNG = 2 NO_FALLNUMMER = 3
IMPORTING Parameters details for ISH_CHECK_SERVICES_FOR_BILLING
ABGERECHNET - Billing days for billed services ->
Data type: NPDOK-XFELDDefault: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)
INFAL -
Data type: NFALDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
EVENT -
Data type: TN02E-EVENTDefault: SPACE
Optional: Yes
Call by Reference: No ( called with pass by value option)
EINRICHTUNG - Institution
Data type: NFAL-EINRIOptional: No
Call by Reference: No ( called with pass by value option)
FALLNUMMER - Case Number
Data type: NFAL-FALNROptional: No
Call by Reference: No ( called with pass by value option)
MSG_COLLECT - Collect Messages
Data type: NPDOK-XFELDDefault: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)
MSG_SHOW - Display messages
Data type: NPDOK-XFELDDefault: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)
STICHTAG - Key date for billing case without discharge
Data type: NBEW-BWEDTDefault: SY-DATUM
Optional: Yes
Call by Reference: No ( called with pass by value option)
REGELART -
Data type: TNT3-RGARTDefault: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)
AKTION -
Data type: TNRS2-AKTIONDefault: ' '
Optional: Yes
Call by Reference: No ( called with pass by value option)
EXPORTING Parameters details for ISH_CHECK_SERVICES_FOR_BILLING
TAGE_ABW - Absence Days
Data type: SY-INDEXOptional: No
Call by Reference: No ( called with pass by value option)
ERRORS - Number of Errors
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
HI_MSG - highest message type determined (I, W or E)
Data type: MESG-MSGTYOptional: No
Call by Reference: No ( called with pass by value option)
INTEN_BEGDT - Date of start of intensive care heart surgery
Data type: SY-DATUMOptional: No
Call by Reference: No ( called with pass by value option)
INTEN_ENDDT - Date of end of intensive care surgery
Data type: SY-DATUMOptional: No
Call by Reference: No ( called with pass by value option)
INTEN_PAT - ID intensive care patient for heart surgery
Data type: NPDOK-XFELDOptional: No
Call by Reference: No ( called with pass by value option)
INTEN_TAGE - Intensive care days for heart surgery
Data type: SY-INDEXOptional: No
Call by Reference: No ( called with pass by value option)
NS_DAYS - No. post-discharge treatment days
Data type: SY-INDEXOptional: No
Call by Reference: No ( called with pass by value option)
GVDI -
Data type: NTPKD-GVDIHOptional: No
Call by Reference: No ( called with pass by value option)
PRAEOP_TAGE - Pre-operative days in intensive care heart surgery
Data type: SY-INDEXOptional: No
Call by Reference: No ( called with pass by value option)
PRAEP_TAGE -
Data type: SY-INDEXOptional: No
Call by Reference: No ( called with pass by value option)
APS_INTEN - Dep. per diem heart surgery intensive care
Data type: NORG-TALSTOptional: No
Call by Reference: No ( called with pass by value option)
PS_DAT - Date at which MLS for flat rate per case reached
Data type: SY-DATUMOptional: No
Call by Reference: No ( called with pass by value option)
VORTAGE -
Data type: NFAL-VORGROptional: No
Call by Reference: No ( called with pass by value option)
RNFAL - Output structure billing days case
Data type: RNLBTAGOptional: No
Call by Reference: No ( called with pass by value option)
TAGE - Length of stay w/o pre-op. days for int.care.pat.
Data type: SY-INDEXOptional: No
Call by Reference: No ( called with pass by value option)
VS_DAYS - Pre-admission treatment days
Data type: SY-INDEXOptional: No
Call by Reference: No ( called with pass by value option)
PAT_NNAME - Patient Name
Data type: NPAT-NNAMEOptional: No
Call by Reference: No ( called with pass by value option)
PAT_VNAME - Patient First Name
Data type: NPAT-VNAMEOptional: No
Call by Reference: No ( called with pass by value option)
DRG_CASE -
Data type: ISH_ON_OFFOptional: No
Call by Reference: No ( called with pass by value option)
GVD_BEG -
Data type: SY-DATUMOptional: No
Call by Reference: No ( called with pass by value option)
GVDI_DAT - Date at which MLS for intensive care reached
Data type: SY-DATUMOptional: No
Call by Reference: No ( called with pass by value option)
GVDI_TAGE - No. days exceeded for intensive care heart surgery
Data type: SY-INDEXOptional: No
Call by Reference: No ( called with pass by value option)
GVD_DAT - Date from which post-disch. treatment days billed
Data type: SY-DATUMOptional: No
Call by Reference: No ( called with pass by value option)
GVD_TAGE - No. of days exceeded for flat rate per case
Data type: SY-INDEXOptional: No
Call by Reference: No ( called with pass by value option)
HERZCHIR_AUFN - Date of admission to heart surgery
Data type: SY-DATUMOptional: No
Call by Reference: No ( called with pass by value option)
WARNINGS - Number of warning messages
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
TABLES Parameters details for ISH_CHECK_SERVICES_FOR_BILLING
INBEWTAB - Movements for Case
Data type: VNBEWOptional: No
Call by Reference: No ( called with pass by value option)
INLEITAB - Services for case
Data type: NLEIOptional: No
Call by Reference: No ( called with pass by value option)
ERNLSR -
Data type: RNLSROptional: Yes
Call by Reference: No ( called with pass by value option)
ERNLRF -
Data type: RNLRFOptional: Yes
Call by Reference: No ( called with pass by value option)
EXCEPTIONS details
NO_AUFN_FOUND - Admission cannot be determined
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NO_EINRICHTUNG - Institution not found
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
NO_FALLNUMMER - Case number not found
Data type:Optional: No
Call by Reference: No ( called with pass by value option)
Copy and paste ABAP code example for ISH_CHECK_SERVICES_FOR_BILLING 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: | ||||
| lt_inbewtab | TYPE STANDARD TABLE OF VNBEW, " | |||
| lv_tage_abw | TYPE SY-INDEX, " | |||
| lv_abgerechnet | TYPE NPDOK-XFELD, " ' ' | |||
| lv_no_aufn_found | TYPE NPDOK, " | |||
| lv_infal | TYPE NFAL, " SPACE | |||
| lv_errors | TYPE NFAL, " | |||
| lv_hi_msg | TYPE MESG-MSGTY, " | |||
| lv_inten_begdt | TYPE SY-DATUM, " | |||
| lv_inten_enddt | TYPE SY-DATUM, " | |||
| lv_inten_pat | TYPE NPDOK-XFELD, " | |||
| lv_inten_tage | TYPE SY-INDEX, " | |||
| lv_ns_days | TYPE SY-INDEX, " | |||
| lv_gvdi | TYPE NTPKD-GVDIH, " | |||
| lv_praeop_tage | TYPE SY-INDEX, " | |||
| lv_praep_tage | TYPE SY-INDEX, " | |||
| lv_event | TYPE TN02E-EVENT, " SPACE | |||
| lt_inleitab | TYPE STANDARD TABLE OF NLEI, " | |||
| lv_aps_inten | TYPE NORG-TALST, " | |||
| lv_no_einrichtung | TYPE NORG, " | |||
| lv_ps_dat | TYPE SY-DATUM, " | |||
| lv_vortage | TYPE NFAL-VORGR, " | |||
| lv_rnfal | TYPE RNLBTAG, " | |||
| lv_tage | TYPE SY-INDEX, " | |||
| lv_vs_days | TYPE SY-INDEX, " | |||
| lv_pat_nname | TYPE NPAT-NNAME, " | |||
| lv_pat_vname | TYPE NPAT-VNAME, " | |||
| lv_drg_case | TYPE ISH_ON_OFF, " | |||
| lt_ernlsr | TYPE STANDARD TABLE OF RNLSR, " | |||
| lv_gvd_beg | TYPE SY-DATUM, " | |||
| lv_einrichtung | TYPE NFAL-EINRI, " | |||
| lv_no_fallnummer | TYPE NFAL, " | |||
| lt_ernlrf | TYPE STANDARD TABLE OF RNLRF, " | |||
| lv_gvdi_dat | TYPE SY-DATUM, " | |||
| lv_fallnummer | TYPE NFAL-FALNR, " | |||
| lv_gvdi_tage | TYPE SY-INDEX, " | |||
| lv_msg_collect | TYPE NPDOK-XFELD, " ' ' | |||
| lv_gvd_dat | TYPE SY-DATUM, " | |||
| lv_msg_show | TYPE NPDOK-XFELD, " ' ' | |||
| lv_gvd_tage | TYPE SY-INDEX, " | |||
| lv_stichtag | TYPE NBEW-BWEDT, " SY-DATUM | |||
| lv_regelart | TYPE TNT3-RGART, " ' ' | |||
| lv_herzchir_aufn | TYPE SY-DATUM, " | |||
| lv_aktion | TYPE TNRS2-AKTION, " ' ' | |||
| lv_warnings | TYPE TNRS2. " |
|   CALL FUNCTION 'ISH_CHECK_SERVICES_FOR_BILLING' " |
| EXPORTING | ||
| ABGERECHNET | = lv_abgerechnet | |
| INFAL | = lv_infal | |
| EVENT | = lv_event | |
| EINRICHTUNG | = lv_einrichtung | |
| FALLNUMMER | = lv_fallnummer | |
| MSG_COLLECT | = lv_msg_collect | |
| MSG_SHOW | = lv_msg_show | |
| STICHTAG | = lv_stichtag | |
| REGELART | = lv_regelart | |
| AKTION | = lv_aktion | |
| IMPORTING | ||
| TAGE_ABW | = lv_tage_abw | |
| ERRORS | = lv_errors | |
| HI_MSG | = lv_hi_msg | |
| INTEN_BEGDT | = lv_inten_begdt | |
| INTEN_ENDDT | = lv_inten_enddt | |
| INTEN_PAT | = lv_inten_pat | |
| INTEN_TAGE | = lv_inten_tage | |
| NS_DAYS | = lv_ns_days | |
| GVDI | = lv_gvdi | |
| PRAEOP_TAGE | = lv_praeop_tage | |
| PRAEP_TAGE | = lv_praep_tage | |
| APS_INTEN | = lv_aps_inten | |
| PS_DAT | = lv_ps_dat | |
| VORTAGE | = lv_vortage | |
| RNFAL | = lv_rnfal | |
| TAGE | = lv_tage | |
| VS_DAYS | = lv_vs_days | |
| PAT_NNAME | = lv_pat_nname | |
| PAT_VNAME | = lv_pat_vname | |
| DRG_CASE | = lv_drg_case | |
| GVD_BEG | = lv_gvd_beg | |
| GVDI_DAT | = lv_gvdi_dat | |
| GVDI_TAGE | = lv_gvdi_tage | |
| GVD_DAT | = lv_gvd_dat | |
| GVD_TAGE | = lv_gvd_tage | |
| HERZCHIR_AUFN | = lv_herzchir_aufn | |
| WARNINGS | = lv_warnings | |
| TABLES | ||
| INBEWTAB | = lt_inbewtab | |
| INLEITAB | = lt_inleitab | |
| ERNLSR | = lt_ernlsr | |
| ERNLRF | = lt_ernlrf | |
| EXCEPTIONS | ||
| NO_AUFN_FOUND = 1 | ||
| NO_EINRICHTUNG = 2 | ||
| NO_FALLNUMMER = 3 | ||
| . " ISH_CHECK_SERVICES_FOR_BILLING | ||
ABAP code using 7.40 inline data declarations to call FM ISH_CHECK_SERVICES_FOR_BILLING
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 INDEX FROM SY INTO @DATA(ld_tage_abw). | ||||
| "SELECT single XFELD FROM NPDOK INTO @DATA(ld_abgerechnet). | ||||
| DATA(ld_abgerechnet) | = ' '. | |||
| DATA(ld_infal) | = ' '. | |||
| "SELECT single MSGTY FROM MESG INTO @DATA(ld_hi_msg). | ||||
| "SELECT single DATUM FROM SY INTO @DATA(ld_inten_begdt). | ||||
| "SELECT single DATUM FROM SY INTO @DATA(ld_inten_enddt). | ||||
| "SELECT single XFELD FROM NPDOK INTO @DATA(ld_inten_pat). | ||||
| "SELECT single INDEX FROM SY INTO @DATA(ld_inten_tage). | ||||
| "SELECT single INDEX FROM SY INTO @DATA(ld_ns_days). | ||||
| "SELECT single GVDIH FROM NTPKD INTO @DATA(ld_gvdi). | ||||
| "SELECT single INDEX FROM SY INTO @DATA(ld_praeop_tage). | ||||
| "SELECT single INDEX FROM SY INTO @DATA(ld_praep_tage). | ||||
| "SELECT single EVENT FROM TN02E INTO @DATA(ld_event). | ||||
| DATA(ld_event) | = ' '. | |||
| "SELECT single TALST FROM NORG INTO @DATA(ld_aps_inten). | ||||
| "SELECT single DATUM FROM SY INTO @DATA(ld_ps_dat). | ||||
| "SELECT single VORGR FROM NFAL INTO @DATA(ld_vortage). | ||||
| "SELECT single INDEX FROM SY INTO @DATA(ld_tage). | ||||
| "SELECT single INDEX FROM SY INTO @DATA(ld_vs_days). | ||||
| "SELECT single NNAME FROM NPAT INTO @DATA(ld_pat_nname). | ||||
| "SELECT single VNAME FROM NPAT INTO @DATA(ld_pat_vname). | ||||
| "SELECT single DATUM FROM SY INTO @DATA(ld_gvd_beg). | ||||
| "SELECT single EINRI FROM NFAL INTO @DATA(ld_einrichtung). | ||||
| "SELECT single DATUM FROM SY INTO @DATA(ld_gvdi_dat). | ||||
| "SELECT single FALNR FROM NFAL INTO @DATA(ld_fallnummer). | ||||
| "SELECT single INDEX FROM SY INTO @DATA(ld_gvdi_tage). | ||||
| "SELECT single XFELD FROM NPDOK INTO @DATA(ld_msg_collect). | ||||
| DATA(ld_msg_collect) | = ' '. | |||
| "SELECT single DATUM FROM SY INTO @DATA(ld_gvd_dat). | ||||
| "SELECT single XFELD FROM NPDOK INTO @DATA(ld_msg_show). | ||||
| DATA(ld_msg_show) | = ' '. | |||
| "SELECT single INDEX FROM SY INTO @DATA(ld_gvd_tage). | ||||
| "SELECT single BWEDT FROM NBEW INTO @DATA(ld_stichtag). | ||||
| DATA(ld_stichtag) | = SY-DATUM. | |||
| "SELECT single RGART FROM TNT3 INTO @DATA(ld_regelart). | ||||
| DATA(ld_regelart) | = ' '. | |||
| "SELECT single DATUM FROM SY INTO @DATA(ld_herzchir_aufn). | ||||
| "SELECT single AKTION FROM TNRS2 INTO @DATA(ld_aktion). | ||||
| DATA(ld_aktion) | = ' '. | |||
Search for further information about these or an SAP related objects