SAPF104 is a standard Executable ABAP Report available within your SAP system (depending on your version and release level). It is used for This report program posts provisions for doubtful receivables...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 SAPF104 into the relevant SAP transactions such as SE38 or SE80
Below is a list of transaction codes which are relevant to this SAP report
F104 - ABAP/4 Reporting: Receivables Prov.
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: AKONTO = Reconciliation Account
Selection Text: B-BLART = Posting document type
Selection Text: B-BLDAT = Document date
Selection Text: B-BUDAT = Posting date
Selection Text: B-BUPEM = Posting period
Selection Text: B-INPUT = Generate postings
Selection Text: B-MODE = Posting Mode
Selection Text: B-NAME = File in case of error
Selection Text: BELNR = Document Number
Selection Text: B_BLART = Document Type of the Posting
Selection Text: B_BLDAT = Document Date
Selection Text: B_BUDAT = Posting Date
Selection Text: B_BUPEM = Posting Period
Selection Text: B_INPUT = Generate Postings
Selection Text: TITLE = Additional heading
Selection Text: STICHTAG = Key date
Selection Text: RSMET = Provision method
Selection Text: P_UMSKZ = Special G/L indicator
Selection Text: P_NETTO = Calculate net
Selection Text: PAR_VAR4 = Layout
Selection Text: PAR_VAR3 = Layout
Selection Text: PAR_VAR2 = Layout
Selection Text: PAR_VAR1 = Layout
Selection Text: MIKFICHE = Print microfiche line
Selection Text: LISTSEP = Separate list
Selection Text: FOR_CUR = in Transaction Currency
Selection Text: B_NAME = File in case of error
Selection Text: B_MODE = Posting Mode
Title: Provisions for Doubtful Receivables
Text Symbol: ST1 = Tax Amount
Text Symbol: 441 = Cr. Acct
Text Symbol: 440 = Dr. Acct
Text Symbol: 439 = Messages
Text Symbol: 438 = Postings
Text Symbol: 437 = Totals
Text Symbol: 436 = Configure
Text Symbol: 435 = Doubtful Receivables
Text Symbol: 007 = Company code totals
No INCLUDES are used within this REPORT code!
No SAP DATABASE tables are accessed within this REPORT code!
INITIALIZE_STRUCTURE CALL FUNCTION 'INITIALIZE_STRUCTURE' EXPORTING i_n_fill = 0 CHANGING c_workarea = gs_header EXCEPTIONS invalid_type = 1 OTHERS = 2.
INITIALIZE_STRUCTURE CALL FUNCTION 'INITIALIZE_STRUCTURE' EXPORTING i_n_fill = 0 CHANGING c_workarea = gs_item EXCEPTIONS invalid_type = 1 OTHERS = 2.
REUSE_ALV_HIERSEQ_LIST_DISPLAY CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY' EXPORTING i_callback_program = gv_repid it_fieldcat = gt_fieldcat1 is_variant = gs_variant i_tabname_header = gc_tabname1 i_tabname_item = gc_tabname2 is_keyinfo = gs_keyinfo i_save = gc_save TABLES t_outtab_header = gt_header t_outtab_item = gt_item.
INITIALIZE_STRUCTURE CALL FUNCTION 'INITIALIZE_STRUCTURE' EXPORTING i_n_fill = 0 CHANGING c_workarea = gs_totals EXCEPTIONS invalid_type = 1 OTHERS = 2.
REUSE_ALV_LIST_DISPLAY CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' "#EC * EXPORTING i_callback_program = gv_repid it_fieldcat = gt_fieldcat_totals is_variant = gs_variant it_sort = gt_sort i_save = gc_save TABLES t_outtab = gt_totals EXCEPTIONS program_error = 1 OTHERS = 2.
INITIALIZE_STRUCTURE CALL FUNCTION 'INITIALIZE_STRUCTURE' EXPORTING i_n_fill = 0 CHANGING c_workarea = gs_postings EXCEPTIONS invalid_type = 1 OTHERS = 2.
REUSE_ALV_LIST_DISPLAY CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING i_callback_program = gv_repid it_fieldcat = gt_fieldcat_postings is_variant = gs_variant i_save = gc_save TABLES t_outtab = gt_postings EXCEPTIONS program_error = 1 OTHERS = 2.
INITIALIZE_STRUCTURE CALL FUNCTION 'INITIALIZE_STRUCTURE' EXPORTING i_n_fill = 0 CHANGING c_workarea = gs_err_bseg EXCEPTIONS invalid_type = 1 OTHERS = 2.
REUSE_ALV_LIST_DISPLAY CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING i_callback_program = gv_repid it_fieldcat = gt_fieldcat_err_bseg is_variant = gs_variant i_save = gc_save TABLES t_outtab = gt_err_bseg EXCEPTIONS program_error = 1 OTHERS = 2.
DETERMINE_DUE_DATE CALL FUNCTION 'DETERMINE_DUE_DATE' EXPORTING i_faede = x_faede IMPORTING e_faede = x_faede EXCEPTIONS OTHERS = 1.
FI_CURRENCY_INFORMATION CALL FUNCTION 'FI_CURRENCY_INFORMATION' "n1758333 EXPORTING "n1758333 I_BUKRS = bsid-bukrs "n1758333 IMPORTING "n1758333 E_X001 = gs_x001 "n1758333 EXCEPTIONS "n1758333 OTHERS = 3. "n1758333
POSTING_INTERFACE_END CALL FUNCTION 'POSTING_INTERFACE_END'.
POSTING_INTERFACE_START CALL FUNCTION 'POSTING_INTERFACE_START' * EXPORTING I_FUNCTION = 'C' EXPORTING i_function = func i_mode = b_mode i_group = b_name i_user = user i_xbdcc = 'X' EXCEPTIONS OTHERS = 4.
POSTING_INTERFACE_DOCUMENT CALL FUNCTION 'POSTING_INTERFACE_DOCUMENT' EXPORTING i_tcode = transaction IMPORTING e_msgid = sy-msgid e_msgty = sy-msgty e_msgno = sy-msgno e_msgv1 = sy-msgv1 e_msgv2 = sy-msgv2 e_msgv3 = sy-msgv3 e_msgv4 = sy-msgv4 e_subrc = lf_esubrc TABLES t_ftpost = ftpost t_blntab = xblntab t_fttax = xfttax EXCEPTIONS error_message = 4 OTHERS = 4.
CALCULATE_TAX_FROM_GROSSAMOUNT CALL FUNCTION 'CALCULATE_TAX_FROM_GROSSAMOUNT' EXPORTING i_bukrs = ibukrs i_mwskz = imwskz i_waers = iwaers i_wrbtr = iwrbtr IMPORTING e_fwste = mwsts EXCEPTIONS OTHERS = 5.
REUSE_ALV_VARIANT_F4 CALL FUNCTION 'REUSE_ALV_VARIANT_F4' EXPORTING is_variant = ls_variant i_save = gc_save IMPORTING e_exit = l_exit es_variant = l_variant_help EXCEPTIONS not_found = 1 program_error = 2 OTHERS = 3.
REUSE_ALV_VARIANT_EXISTENCE CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE' EXPORTING i_save = gc_save CHANGING cs_variant = ls_variant EXCEPTIONS wrong_input = 1 not_found = 2 program_error = 3 OTHERS = 4.
REUSE_ALV_EVENTS_GET CALL FUNCTION 'REUSE_ALV_EVENTS_GET' "#EC * EXPORTING i_list_type = 0 IMPORTING et_events = xt_events EXCEPTIONS list_type_wrong = 1 OTHERS = 2.
FAGL_BATCH_HEADING_PERFORM CALL FUNCTION 'FAGL_BATCH_HEADING_PERFORM' EXPORTING is_bhdgd = bhdgd.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = lt_line.
REUSE_ALV_COMMENTARY_WRITE CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = lt_line.
REUSE_ALV_COMMENTARY_WRITE CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING it_list_commentary = lt_line.
REUSE_ALV_FIELDCATALOG_MERGE CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' "#EC * EXPORTING i_program_name = gv_repid i_internal_tabname = gc_tabname1 i_structure_name = gc_structure1 CHANGING ct_fieldcat = gt_fieldcat1 EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3.
REUSE_ALV_FIELDCATALOG_MERGE CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' "#EC * EXPORTING i_program_name = gv_repid i_internal_tabname = gc_tabname2 i_structure_name = gc_structure2 CHANGING ct_fieldcat = gt_fieldcat1 EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3.
REUSE_ALV_HIERSEQ_LIST_DISPLAY CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY' EXPORTING i_callback_program = gv_repid i_callback_pf_status_set = gc_set_pf_status i_callback_user_command = gc_handle_event_user_command it_fieldcat = gt_fieldcat1 is_layout = ls_layout it_events = lt_events is_variant = gs_variant i_tabname_header = gc_tabname1 i_tabname_item = gc_tabname2 is_keyinfo = gs_keyinfo i_save = gc_save TABLES t_outtab_header = gt_header t_outtab_item = gt_item.
REUSE_ALV_FIELDCATALOG_MERGE CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' EXPORTING i_program_name = gv_repid i_structure_name = gc_structure2 CHANGING ct_fieldcat = gt_fieldcat_totals EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3.
REUSE_ALV_LIST_DISPLAY CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING i_callback_program = gv_repid it_fieldcat = gt_fieldcat_totals is_variant = gs_variant it_sort = gt_sort it_events = lt_events is_layout = ls_layout i_save = gc_save TABLES t_outtab = gt_totals EXCEPTIONS program_error = 1 OTHERS = 2.
REUSE_ALV_FIELDCATALOG_MERGE CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' "#EC * EXPORTING i_program_name = gv_repid i_structure_name = gc_structure3 CHANGING ct_fieldcat = gt_fieldcat_postings EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3.
REUSE_ALV_LIST_DISPLAY CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING i_callback_program = gv_repid it_fieldcat = gt_fieldcat_postings is_variant = gs_variant it_events = lt_events is_layout = ls_layout i_save = gc_save TABLES t_outtab = gt_postings EXCEPTIONS program_error = 1 OTHERS = 2.
REUSE_ALV_FIELDCATALOG_MERGE CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE' "#EC * EXPORTING i_program_name = gv_repid i_structure_name = gc_structure2 CHANGING ct_fieldcat = gt_fieldcat_err_bseg EXCEPTIONS inconsistent_interface = 1 program_error = 2 OTHERS = 3.
REUSE_ALV_LIST_DISPLAY CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY' EXPORTING i_callback_program = gv_repid it_fieldcat = gt_fieldcat_err_bseg is_variant = gs_variant it_events = lt_events is_layout = ls_layout i_save = gc_save TABLES t_outtab = gt_err_bseg EXCEPTIONS program_error = 1 OTHERS = 2.
BAL_LOG_CREATE CALL FUNCTION 'BAL_LOG_CREATE' EXPORTING i_s_log = gs_log IMPORTING e_log_handle = gs_log_handle EXCEPTIONS log_header_inconsistent = 1 OTHERS = 2.
BAL_LOG_MSG_ADD_FREE_TEXT CALL FUNCTION 'BAL_LOG_MSG_ADD_FREE_TEXT' EXPORTING i_log_handle = gs_log_handle i_msgty = gc_i i_probclass = gc_4 i_text = iv_free_text.
BAL_DSP_PROFILE_SINGLE_LOG_GET CALL FUNCTION 'BAL_DSP_PROFILE_SINGLE_LOG_GET' IMPORTING e_s_display_profile = gs_display_profile.
BAL_DSP_LOG_PRINT CALL FUNCTION 'BAL_DSP_LOG_PRINT' EXPORTING i_s_list_append = gc_x i_s_display_profile = gs_display_profile i_t_log_handle = gt_log_handle.
BAL_DSP_LOG_DISPLAY CALL FUNCTION 'BAL_DSP_LOG_DISPLAY' EXPORTING i_s_display_profile = gs_display_profile i_t_log_handle = gt_log_handle EXCEPTIONS profile_inconsistent = 1 internal_error = 2 no_data_available = 3 no_authority = 4 OTHERS = 5.
BAL_LOG_REFRESH CALL FUNCTION 'BAL_LOG_REFRESH' EXPORTING i_log_handle = gs_log_handle EXCEPTIONS log_not_found = 1 OTHERS = 2.
FI_SPLIT_ACTIVATION CALL FUNCTION 'FI_SPLIT_ACTIVATION' EXPORTING id_cocd = i_bukrs IMPORTING ed_active = eflag.
FI_SPLIT_EXCHANGE_RATE_DIFF CALL FUNCTION 'FI_SPLIT_EXCHANGE_RATE_DIFF' EXPORTING cleared_item = l_item currency_type = '10' forex_total = lkdf IMPORTING forex_data = t_forex EXCEPTIONS internal_error = 1 OTHERS = 2.
FI_SPLIT_MOVE_TO_BATCH_INPUT CALL FUNCTION 'FI_SPLIT_MOVE_TO_BATCH_INPUT' EXPORTING company_code = p_bukrs gl_account_number = l_saknr id_budat = p_budat x_bs_account = l_xbilk add_acct_ass = p_addaa TABLES batch_input_data = lt_ftpost.
CONVERT_TO_LOCAL_CURRENCY CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' EXPORTING DATE = id_stidat FOREIGN_AMOUNT = id_bubefw FOREIGN_CURRENCY = id_forcur LOCAL_CURRENCY = is_x001-hwae2 TYPE_OF_RATE = is_x001-kuty2 IMPORTING LOCAL_AMOUNT = cv_werthw2 .
CONVERT_TO_LOCAL_CURRENCY CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY' EXPORTING DATE = id_stidat FOREIGN_AMOUNT = id_bubefw FOREIGN_CURRENCY = id_forcur LOCAL_CURRENCY = is_x001-hwae3 TYPE_OF_RATE = is_x001-kuty3 IMPORTING LOCAL_AMOUNT = cv_werthw3 .
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 SAPF104 or its description.
SAPF104 - Provisions for Doubtful Receivables SAPF104 - Provisions for Doubtful Receivables SAPF103 - Transfer Posting for Doubtful Receivables SAPF103 - Transfer Posting for Doubtful Receivables SAPF101A - Balance Sheet Supplement - OI - Analysis by ........ (Old) SAPF101A - Balance Sheet Supplement - OI - Analysis by ........ (Old)