RFVIHKDR is a standard Executable ABAP Report available within your SAP system (depending on your version and release level). It is used for This program imports the settlement results from an external settlement company (heating costs) and archives the data in a transparent table...see full standard documentation available for this report. Also check out the submitted Comments related to this SAP report and the details below to see which OBJECTS it interacts with such as TABLES, FUNCTION MODULES, INCLUDES ETC.
If you would like to execute this report or see the full code listing simply enter RFVIHKDR into the relevant SAP transactions such as SE38 or SE80
Below is a list of transaction codes which are relevant to this SAP report
FOHD - Import D-tape
This report can be called from another progam/report simply by using the ABAP SUBMIT statement, see below for example ABAP code snipts of how to do this.
Selection Text: WHICH2 = Server
Selection Text: WHICH1 = Local
Selection Text: P_UPDAT = Update DB entries
Selection Text: P_SHEIZZ = DME Settlement Unit
Selection Text: P_DIRECT = Fill database table directly
Selection Text: P_DEM = Currency symbol
Selection Text: HKOST_MD = Read from diskette/magnet.tape
Selection Text: FLG_DEL = Delete old DB entries
Selection Text: D_NAME = File Name
Title: Import D-Tape Settlement Results; Heating Expenses Data Exchange
Text Symbol: SL1 = Details on D-Tape
Text Symbol: SL2 = Import File
Text Symbol: SL3 = Without data medium exch.
Text Symbol: SL4 = Other Data
Text Symbol: SNG = Records Unchanged:
Text Symbol: SWA = Records with Warning:
Text Symbol: UE1 = Import settlement results (D-Tape)
Text Symbol: UE2 = Overview of All Settled RA/RUs
Text Symbol: UED = CoCd BE no. RU no. Lease-Out Tenant Stt. to
Text Symbol: UEF = Error Log
Text Symbol: UEH = Overall Costs Incl. VAT Payments Made Apport.Loss Risk Balance New AP From Amount
Text Symbol: UFZ = Error Messages
Text Symbol: SGS = Records Written:
Text Symbol: 001 = Company Code.......
Text Symbol: 002 = Tenant
Text Symbol: 003 = Stt. Identification
Text Symbol: 004 = Settlement Period
Text Symbol: 006 = Receiv.
Text Symbol: 007 = Credit
Text Symbol: 008 = Tenant
Text Symbol: 009 = Incl. STX
Text Symbol: 900 = Advance Pmnt
Text Symbol: DAT = Enter end of settlement period
Text Symbol: DIR = VIAK11 Direct
Text Symbol: EIH = Unit
Text Symbol: EIN = Unit
Text Symbol: FET = Incorrect Records
Text Symbol: OBJ = Select Real Estate Objects
INCLUDE IFVIHKAB_ALV.
INCLUDE RFVICNGP.
INCLUDE IFVIHZ10_FORM.
INCLUDE IFRE_CHECK_RE_CLASSIC.
No SAP DATABASE tables are accessed within this REPORT code!
DATASET_NAME_DETERMINE CALL FUNCTION 'DATASET_NAME_DETERMINE' EXPORTING file_identifier = rec_typ_d IMPORTING ds_name = d_name tipzz = tipzz EXCEPTIONS identifier_not_definied = 01 instpar_notfound = 02 no_file_description = 03.
MESSAGES_INITIALIZE CALL FUNCTION 'MESSAGES_INITIALIZE'.
GET_EUROCODES_CONVERSION_40 CALL FUNCTION 'GET_EUROCODES_CONVERSION_40' IMPORTING eurowaers = cur_bukrs_eur EXCEPTIONS OTHERS = 1 .
FVI4_READ_VIMI01 CALL FUNCTION 'FVI4_READ_VIMI01' EXPORTING * I_MANDT = SY-MANDT i_bukrs = viak11_direct-bukrs i_swenr = viak11_direct-swenr i_smenr = viak11_direct-smenr * I_REFRESH = ' ' IMPORTING e_vimi01 = vimi01 EXCEPTIONS not_found = 1 OTHERS = 2.
MESSAGES_SHOW CALL FUNCTION 'MESSAGES_SHOW' EXPORTING line_from = zeile_von line_to = zeile_bis object = text-fet show_linno = true EXCEPTIONS inconsistent_range = 01 no_messages = 02.
MESSAGES_SHOW CALL FUNCTION 'MESSAGES_SHOW' EXPORTING line_from = zeile_von line_to = zeile_bis object = text-fet show_linno = true EXCEPTIONS inconsistent_range = 01 no_messages = 02.
MV_CHECK_ACTIVE CALL FUNCTION 'MV_CHECK_ACTIVE' EXPORTING objnr = par_vimimv-snks smive = par_vimimv-smive EXCEPTIONS mv_not_active = 01 status_failure = 02.
MESSAGES_GIVE CALL FUNCTION 'MESSAGES_GIVE' TABLES t_mesg = par_error_tab.
VV_NUMFIELD_ASCII_CONVERT CALL FUNCTION 'VV_NUMFIELD_ASCII_CONVERT' EXPORTING input_field_char = file_field IMPORTING export_field = par_viak11-besaldo.
VV_NUMFIELD_ASCII_CONVERT CALL FUNCTION 'VV_NUMFIELD_ASCII_CONVERT' EXPORTING input_field_char = file_field IMPORTING export_field = par_viak11-begskst.
VV_NUMFIELD_ASCII_CONVERT CALL FUNCTION 'VV_NUMFIELD_ASCII_CONVERT' EXPORTING input_field_char = file_field IMPORTING export_field = par_viak11-bevazlg.
VV_NUMFIELD_ASCII_CONVERT CALL FUNCTION 'VV_NUMFIELD_ASCII_CONVERT' EXPORTING input_field_char = file_field IMPORTING export_field = par_viak11-beumawa.
VV_NUMFIELD_ASCII_CONVERT CALL FUNCTION 'VV_NUMFIELD_ASCII_CONVERT' EXPORTING input_field_char = file_field IMPORTING export_field = par_viak11-benvozl.
VV_NUMFIELD_ASCII_CONVERT CALL FUNCTION 'VV_NUMFIELD_ASCII_CONVERT' EXPORTING input_field_char = file_field IMPORTING export_field = par_viak11-bemwstg.
VV_NUMFIELD_ASCII_CONVERT CALL FUNCTION 'VV_NUMFIELD_ASCII_CONVERT' EXPORTING input_field_char = file_field IMPORTING export_field = par_viak11-besaldo.
VV_NUMFIELD_ASCII_CONVERT CALL FUNCTION 'VV_NUMFIELD_ASCII_CONVERT' EXPORTING input_field_char = file_field IMPORTING export_field = par_viak11-begskst.
VV_NUMFIELD_ASCII_CONVERT CALL FUNCTION 'VV_NUMFIELD_ASCII_CONVERT' EXPORTING input_field_char = file_field IMPORTING export_field = par_viak11-bevazlg.
VV_NUMFIELD_ASCII_CONVERT CALL FUNCTION 'VV_NUMFIELD_ASCII_CONVERT' EXPORTING input_field_char = file_field IMPORTING export_field = par_viak11-beumawa.
VV_NUMFIELD_ASCII_CONVERT CALL FUNCTION 'VV_NUMFIELD_ASCII_CONVERT' EXPORTING input_field_char = file_field IMPORTING export_field = par_viak11-benvozl.
VV_NUMFIELD_ASCII_CONVERT CALL FUNCTION 'VV_NUMFIELD_ASCII_CONVERT' EXPORTING input_field_char = file_field IMPORTING export_field = par_viak11-bemwstg.
FVI4_READ_VIOB01 CALL FUNCTION 'FVI4_READ_VIOB01' EXPORTING * I_MANDT = SY-MANDT i_bukrs = par_bukrs i_swenr = par_swenr * I_REFRESH = ' ' IMPORTING e_viob01 = viob01 EXCEPTIONS not_found = 1 OTHERS = 2.
VIAK11_VERBUCHER CALL FUNCTION 'VIAK11_VERBUCHER' EXPORTING satz_kz = db_op upd_viak11 = par_viak11 EXCEPTIONS record_delete_failed = 01 record_insert_failed = 02 record_update_failed = 03 unknown_db_operation = 04.
DATE_2D_TO_4D_CONVERSION * call function 'DATE_2D_TO_4D_CONVERSION' * exporting * jahreszahl = jahr_2 * importing * jahreszahl = jahr_4 * exceptions * invalid_value = 01.
CONVERT_DATE_TO_INTERNAL CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL' EXPORTING date_external = zw_datum IMPORTING date_internal = zw_aufb EXCEPTIONS date_external_is_invalid = 1 OTHERS = 2 .
MESSAGE_STORE CALL FUNCTION 'MESSAGE_STORE' EXPORTING arbgb = msg_id msgty = msg_typ msgv1 = par_1 msgv2 = par_2 msgv3 = par_3 msgv4 = par_4 txtnr = msg_nr zeile = zeile_msg EXCEPTIONS message_type_not_valid = 01 not_active = 02.
ADDRESS_ASSIGN CALL FUNCTION 'ADDRESS_ASSIGN' EXPORTING adr_in = adrme function = adr_me_funkt objekttyp = adr_me_objtyp IMPORTING adrwa_out = me_adresse EXCEPTIONS address_not_found = 01 illegal_function = 02 no_address_assigned = 03.
ADDRESS_TEXT CALL FUNCTION 'ADDRESS_TEXT' EXPORTING sans1 = me_adresse IMPORTING adr_text = ja_adrtext.
REAL_ESTATE_PARTNER_DATA_READ CALL FUNCTION 'REAL_ESTATE_PARTNER_DATA_READ' EXPORTING i1_roletyp = con_roletyp-hauptmieter i1_sobjekt = loc_sobjekt i1_snumobj = con_snumobj-immo i_lines = 1 i_date = sy-datum i_kz_no_address = 'X' IMPORTING e_adrs = loc_adrs EXCEPTIONS OTHERS = 5.
FVAU_AUTHORITY_CHECK CALL FUNCTION 'FVAU_AUTHORITY_CHECK' EXPORTING object = auth_object authpar = authpar EXCEPTIONS no_authority = 1 invalid_object = 2 OTHERS = 3.
FILE_VALIDATE_NAME CALL FUNCTION 'FILE_VALIDATE_NAME' EXPORTING logical_filename = con_fname CHANGING physical_filename = ds_name EXCEPTIONS OTHERS = 1.
FILE_VALIDATE_NAME CALL FUNCTION 'FILE_VALIDATE_NAME' EXPORTING logical_filename = con_fname CHANGING physical_filename = ds_name EXCEPTIONS OTHERS = 1.
UPLOAD * CALL FUNCTION 'UPLOAD' * EXPORTING * filename = filename * filetype = 'BIN' * silent = 'M' * IMPORTING * cancel = cancel * act_filename = filename * TABLES * data_tab = tab_rf61dbd * EXCEPTIONS * conversion_error = 1 * invalid_table_width = 2 * invalid_type = 3 * no_batch = 4 * unknown_error = 5 * OTHERS = 6.
CALL FUNCTION 'GUI_UPLOAD' EXPORTING FILENAME = ld_filename FILETYPE = 'BIN' * HAS_FIELD_SEPARATOR = ' ' * HEADER_LENGTH = 0 * READ_BY_LINE = 'X' IMPORTING FILELENGTH = ld_filelength * HEADER = TABLES data_tab = tab_rf61dbd EXCEPTIONS FILE_OPEN_ERROR = 1 FILE_READ_ERROR = 2 NO_BATCH = 3 GUI_REFUSE_FILETRANSFER = 4 INVALID_TYPE = 5 NO_AUTHORITY = 6 UNKNOWN_ERROR = 7 BAD_DATA_FORMAT = 8 HEADER_NOT_ALLOWED = 9 SEPARATOR_NOT_ALLOWED = 10 HEADER_TOO_LONG = 11 UNKNOWN_DP_ERROR = 12 ACCESS_DENIED = 13 DP_OUT_OF_MEMORY = 14 DISK_FULL = 15 DP_TIMEOUT = 16 OTHERS = 17 .
WS_QUERY * call function 'WS_QUERY' * exporting * query = 'FE' "// File Exist * filename = FILENAME * importing * return = rc.
WS_UPLOAD * call function 'WS_UPLOAD' * exporting ** codepage = * filename = FILENAME * filetype = 'BIN' ** line_exit = ** user_form = ** user_prog = ** importing ** filelength = * tables * data_tab = TAB_RF61DBD * exceptions * file_open_error = 1 "// handle here * file_read_error = 2 "// handle here * conversion_error = 3 "// handle outside * invalid_table_width = 4 "// handle outside * invalid_type = 5 "// handle outside * no_batch = 6 "// handle outside * unknown_error = 7 "// handle outside * others = 99.
UPLOAD * CALL FUNCTION 'UPLOAD' * EXPORTING * filename = filename * filetype = 'ASC' * silent = 'M' * IMPORTING * cancel = cancel * act_filename = filename * TABLES * data_tab = tab_rf61dds * EXCEPTIONS * conversion_error = 1 * invalid_table_width = 2 * invalid_type = 3 * no_batch = 4 * unknown_error = 5 * OTHERS = 6.
GUI_UPLOAD CALL FUNCTION 'GUI_UPLOAD' EXPORTING FILENAME = ld_filename FILETYPE = 'ASC' * HAS_FIELD_SEPARATOR = ' ' * HEADER_LENGTH = 0 * READ_BY_LINE = 'X' IMPORTING FILELENGTH = ld_filelength * HEADER = TABLES data_tab = tab_rf61dds EXCEPTIONS FILE_OPEN_ERROR = 1 FILE_READ_ERROR = 2 NO_BATCH = 3 GUI_REFUSE_FILETRANSFER = 4 INVALID_TYPE = 5 NO_AUTHORITY = 6 UNKNOWN_ERROR = 7 BAD_DATA_FORMAT = 8 HEADER_NOT_ALLOWED = 9 SEPARATOR_NOT_ALLOWED = 10 HEADER_TOO_LONG = 11 UNKNOWN_DP_ERROR = 12 ACCESS_DENIED = 13 DP_OUT_OF_MEMORY = 14 DISK_FULL = 15 DP_TIMEOUT = 16 OTHERS = 17 .
POPUP_TO_CONFIRM_STEP CALL FUNCTION 'POPUP_TO_CONFIRM_STEP' EXPORTING textline2 = textline2 textline1 = textline1 titel = titel IMPORTING answer = answer.
FVI4_READ_VIOB01 CALL FUNCTION 'FVI4_READ_VIOB01' EXPORTING * I_MANDT = SY-MANDT i_bukrs = ls_viak11_direct-bukrs i_swenr = ls_viak11_direct-swenr * I_REFRESH = ' ' IMPORTING e_viob01 = ls_viob01 EXCEPTIONS not_found = 1 OTHERS = 2.
FVI4_READ_VIMI01 CALL FUNCTION 'FVI4_READ_VIMI01' EXPORTING * I_MANDT = SY-MANDT i_bukrs = ls_viak11_direct-bukrs i_swenr = ls_viak11_direct-swenr i_smenr = ls_viak11_direct-smenr * I_REFRESH = ' ' IMPORTING e_vimi01 = ls_vimi01 EXCEPTIONS not_found = 1 OTHERS = 2.
FVI4_READ_VIMI01 CALL FUNCTION 'FVI4_READ_VIMI01' EXPORTING * I_MANDT = SY-MANDT i_bukrs = ls_viak11_direct-bukrs i_swenr = ls_viak11_direct-swenr i_smenr = ls_viak11_direct-smenr * I_REFRESH = ' ' IMPORTING e_vimi01 = ls_vimi01 EXCEPTIONS not_found = 1 OTHERS = 2.
CONVERT_TO_LOCAL_CURRENCY CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' EXPORTING date = sy-datum foreign_amount = ls_viak11_direct-besaldo foreign_currency = ls_viak11_direct-swhrkond local_currency = ld_curr_to IMPORTING local_amount = ld_besaldo EXCEPTIONS OTHERS = 1.
CONVERT_TO_LOCAL_CURRENCY CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' EXPORTING date = sy-datum foreign_amount = cs_viak11-besaldo " Betrag D-Satz foreign_currency = id_curr_from " Währ D-Satz local_currency = id_curr_to " Währ ME/MV IMPORTING local_amount = ld_besaldo " Betrag viak11 EXCEPTIONS OTHERS = 1.
CONVERT_TO_LOCAL_CURRENCY CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' EXPORTING date = sy-datum foreign_amount = cs_viak11-begskst " Betrag D-Satz foreign_currency = id_curr_from " Währ D-Satz local_currency = id_curr_to " Währ ME/MV IMPORTING local_amount = ld_begskst " Betrag viak11 EXCEPTIONS OTHERS = 1.
CONVERT_TO_LOCAL_CURRENCY CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' EXPORTING date = sy-datum foreign_amount = cs_viak11-bevazlg " Betrag D-Satz foreign_currency = id_curr_from " Währ D-Satz local_currency = id_curr_to " Währ ME/MV IMPORTING local_amount = ld_bevazlg " Betrag viak11 EXCEPTIONS OTHERS = 1.
CONVERT_TO_LOCAL_CURRENCY CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' EXPORTING date = sy-datum foreign_amount = cs_viak11-beumawa " Betrag D-Satz foreign_currency = id_curr_from " Währ D-Satz local_currency = id_curr_to " Währ ME/MV IMPORTING local_amount = ld_beumawa " Betrag viak11 EXCEPTIONS OTHERS = 1.
CONVERT_TO_LOCAL_CURRENCY CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' EXPORTING date = sy-datum foreign_amount = cs_viak11-benvozl " Betrag D-Satz foreign_currency = id_curr_from " Währ D-Satz local_currency = id_curr_to " Währ ME/MV IMPORTING local_amount = ld_benvozl " Betrag viak11 EXCEPTIONS OTHERS = 1.
CONVERT_TO_LOCAL_CURRENCY CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' EXPORTING date = sy-datum foreign_amount = cs_viak11-bemwstg " Betrag D-Satz foreign_currency = id_curr_from " Währ D-Satz local_currency = id_curr_to " Währ ME/MV IMPORTING local_amount = ld_bemwstg " Betrag viak11 EXCEPTIONS OTHERS = 1.
Although this basic information may have limited use it does provide an easy to find location to store any knowledge about this program/report.
The contribute/comments section below therefore offer's an opportunity for anyone to add additional information. This can be anything from useful hints, tips and screen shots to relevant SAP notes or anything else you feel is relevant to this report.
This will then be available for everyone to easily find by simply searching on the report name RFVIHKDR or its description.
RFVIHKDR - Import D-Tape Settlement Results; Heating Expenses Data Exchange RFVIHKDR - Import D-Tape Settlement Results; Heating Expenses Data Exchange RFVIHKAR - Heating Expenses Settlement - Read A-Tape (Evaluation Groups) RFVIHKAR - Heating Expenses Settlement - Read A-Tape (Evaluation Groups) RFVIHKAB - documentation and ABAP source code RFVIHKAB - documentation and ABAP source code