Professional Documents
Culture Documents
Home | Useful Links | Ads by Google Sap ABAP Jobs Sap Consultant Jobs ABAP Project
Comments (0) Share |
Search for SAP Function modules, ABAP Reports, SAP Tables and Transaction Codes...
Search
DESCRIPTION
This report structures the payables and receivables into a sorted list
(such as the 4th EU Directive) and executes transfer postings.
Additional adjustment postings are required in the following cases:
Vendors with a debit balance and customers with a credit balance
Changed reconciliation accounts or partners (VBUND)
Investment reporting
All accounts are processed that are carried with open item
management.
PRECONDITION
If you want to generate the sorted list taking foreign currency adjustments into account, you must first execute foreign currency
valuation with report FAGL_FC_VALUATION.
To generate a sorted list of open items, you need a sort method. Edit a method:
IF DEVICE = 'SCREEN'
Execute function
ENDIF
For the report FAGL_CL_REGROUP to make the desired adjustment postings, you must specify the adjustment accounts and
the accounts for reporting the receivables and payables by remaining term and the customers with a credit balance or vendors
with a debit balance:
IF DEVICE = 'SCREEN'
Execute function
ENDIF
Check the accounts for the transfer posting with changed reconciliation accounts:
IF DEVICE = 'SCREEN'
Execute function
ENDIF
If investments are reported and posted separately, you must also determine the accounts for that:
IF DEVICE = 'SCREEN'
Execute function
ENDIF
The necessary posting keys are provided in the standard system.
OUTPUT
The main list shows the items read and sorted.
The posting list shows the postings transferred to the batch input session.
The message list shows you the errors and other events.
Documentation extract taken from SAP system, Copyright (c) SAP AG
INCLUDE SBAL_CONSTANTS.
INCLUDE RFEPOSC5.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - ABAP Page 2 of 66
T044L
SELECT * FROM t044l WHERE methd = p_methd.
T033
SELECT SINGLE * FROM t033 WHERE bwber = p_bwber.
T003
SELECT SINGLE * FROM t003 WHERE blart = p_blart.
T003
SELECT SINGLE * FROM t003 WHERE blart = p_sblart.
T001
SELECT SINGLE * FROM t001 WHERE bukrs = p_zbukrs.
T001
SELECT * FROM t001 WHERE bukrs IN bukrs.
T001
* check whether new G/L is activated for all selected company codes
SELECT bukrs FROM t001 INTO TABLE gt_bukrs
WHERE bukrs IN bukrs.
T033
SELECT SINGLE * FROM t033 WHERE bwber = p_bwber.
T001
SELECT * FROM t001 INTO TABLE lt001 WHERE bukrs IN bukrs.
(ITAB)
SELECT * FROM (itab)
INTO bsid
WHERE bukrs = lt001-bukrs
AND kunnr IN dkonto
* AND waers IN waehrung
AND bstat = space
AND augdt IN st_augdt
AND budat LE stichtag
AND hkont IN akonto
AND belnr IN belnr ORDER BY PRIMARY KEY.
KNA1
SELECT SINGLE * FROM kna1 WHERE kunnr = belege-konto.
KNB1
SELECT SINGLE * FROM knb1 WHERE kunnr = belege-konto
AND bukrs = belege-bukrs.
KNA1
SELECT SINGLE kunnr FROM kna1 INTO kna1-kunnr
WHERE kunnr = knb1-kunnr
AND (kna1_clauses-where_tab).
KNB1
SELECT SINGLE kunnr FROM knb1 INTO knb1-kunnr
WHERE kunnr = knb1-kunnr
AND bukrs = bsid-bukrs
AND (knb1_clauses-where_tab).
(ITAB)
SELECT * FROM (itab)
INTO bsik
WHERE bukrs = lt001-bukrs
AND lifnr IN kkonto
* AND waers IN waehrung
AND bstat = space
AND augdt IN st_augdt
AND budat LE stichtag
AND hkont IN akonto
AND belnr IN belnr ORDER BY PRIMARY KEY.
LFA1
SELECT SINGLE * FROM lfa1 WHERE lifnr = belege-konto.
LFB1
SELECT SINGLE * FROM lfb1 WHERE lifnr = belege-konto
AND bukrs = belege-bukrs.
LFA1
SELECT SINGLE lifnr FROM lfa1 INTO lfa1-lifnr
WHERE lifnr = lfb1-lifnr
AND (lfa1_clauses-where_tab).
LFB1
SELECT SINGLE lifnr FROM lfb1 INTO lfb1-lifnr
WHERE lifnr = lfb1-lifnr
AND bukrs = bsik-bukrs
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - ABAP Page 3 of 66
AND (lfb1_clauses-where_tab).
SKB1
SELECT * FROM skb1
WHERE bukrs = lt001-bukrs
AND saknr IN skonto
AND xopvw = 'X'. "#EC CI_SGLSELECT
T001
SELECT SINGLE * FROM t001 WHERE bukrs = skb1-bukrs.
SKA1
SELECT SINGLE vbund FROM ska1 INTO ska1-vbund
WHERE saknr = skb1-saknr
AND ktopl = t001-ktopl.
SKA1
SELECT SINGLE saknr FROM ska1 INTO ska1-saknr
WHERE saknr = skb1-saknr
AND (ska1_clauses-where_tab).
SKB1
SELECT SINGLE saknr FROM skb1 INTO skb1-saknr
WHERE saknr = skb1-saknr
AND bukrs = skb1-bukrs
AND (skb1_clauses-where_tab).
BSIS
SELECT * FROM bsis
INTO CORRESPONDING FIELDS OF TABLE belege
PACKAGE SIZE max_read
WHERE bukrs = skb1-bukrs
AND hkont = skb1-saknr
AND budat LE stichtag
AND wrbtr NE 0 "not fbb1
AND belnr IN belnr.
BSAS
SELECT * FROM bsas
INTO CORRESPONDING FIELDS OF TABLE belege
PACKAGE SIZE max_read
WHERE bukrs = skb1-bukrs
AND hkont = skb1-saknr
AND budat LE stichtag
AND augdt GT stichtag
AND wrbtr NE 0 "not fbb1
AND belnr IN belnr.
BSEG
SELECT SINGLE * FROM bseg
WHERE bukrs = belege-bukrs
AND belnr = belege-belnr
AND gjahr = belege-gjahr
AND buzei = belege-buzei
AND (bseg_clauses-where_tab).
BKPF
SELECT SINGLE * FROM bkpf
WHERE bukrs = belege-bukrs
AND belnr = belege-belnr
AND gjahr = belege-gjahr
AND (bkpf_clauses-where_tab).
BSEG
SELECT SINGLE * FROM bseg
WHERE bukrs = belege-bukrs
AND belnr = belege-belnr
AND gjahr = belege-gjahr
AND buzei = belege-buzei.
BSEG
* select additional fields from bseg
IF sl_incl_ccode_active <> space.
T074
SELECT SINGLE * FROM T074 WHERE KTOPL = LT001-KTOPL
AND koart = belege-koart
AND umskz = belege-umskz
AND hkont = akonts.
T001
SELECT SINGLE * FROM t001 WHERE bukrs = i_bukrs.
FAGL_BSBW_HISTRY
SELECT * FROM fagl_bsbw_histry
INTO TABLE lt_histry_delta
WHERE bukrs = belege-bukrs
AND belnr = belege-belnr
AND gjahr = belege-gjahr
AND buzei = belege-buzei
AND curtp = p_curtp1
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - ABAP Page 4 of 66
FAGL_BSBW_HISTRY
SELECT * FROM fagl_bsbw_histry INTO ls_histry
WHERE bukrs = belege-bukrs
AND belnr = belege-belnr
AND gjahr = belege-gjahr
AND buzei = belege-buzei
AND curtp = p_curtp1
AND bwber = p_bwber
AND methd = umbwm_tab
AND reverse_id = ' '
AND datum <= stichtag
AND datum >= ls_histry_delta-datum
AND fcv_status = SPACE
ORDER BY datum descending.
FAGL_BSBW_HISTRY
SELECT * FROM fagl_bsbw_histry INTO ls_histry
WHERE bukrs = belege-bukrs
AND belnr = belege-belnr
AND gjahr = belege-gjahr
AND buzei = belege-buzei
AND curtp = p_curtp1
AND bwber = p_bwber
AND methd = umbwm_tab
AND reverse_id = ' '
AND datum <= stichtag
AND fcv_status = SPACE
ORDER BY datum descending.
BSEG
SELECT SINGLE zfbdt
zbd3t
zbd2t
zbd1t
xinve
FROM bseg
INTO CORRESPONDING FIELDS OF bseg
WHERE bukrs = belege-bukrs
AND belnr = belege-rebzg
AND gjahr = belege-rebzj
AND buzei = belege-rebzz.
KNA1
SELECT SINGLE * FROM kna1 WHERE kunnr = belege-konto.
LFA1
SELECT SINGLE * FROM lfa1 WHERE lifnr = belege-konto.
T001
SELECT SINGLE * FROM t001 WHERE bukrs = sort_group-zbukr.
T044KT
SELECT SINGLE * FROM t044kt WHERE spras = sy-langu
AND methd = p_methd
AND duevl = iduevl
AND tunit = itunit
AND xdeb1 = ixdeb1.
KNA1
SELECT SINGLE * FROM kna1 WHERE kunnr = ibelege-konto.
LFA1
SELECT SINGLE * FROM lfa1 WHERE lifnr = ibelege-konto.
T001
SELECT SINGLE ktopl FROM t001 INTO ktopl
WHERE bukrs = ibelege-bukrs.
T001
SELECT SINGLE * FROM t001 WHERE bukrs = postings-bukrs.
T001
SELECT SINGLE * FROM t001 WHERE bukrs = postings-bukrs.
T001
SELECT SINGLE * FROM t001 WHERE bukrs = postings-bukrs.
T030B
SELECT SINGLE * FROM t030b WHERE ktosl = postings-ktosl.
T001
SELECT SINGLE * FROM t001 WHERE bukrs = postings-bukrs.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - ABAP Page 5 of 66
T003
SELECT SINGLE * FROM t003 WHERE blart = postings-blart.
T030B
SELECT SINGLE * FROM t030b WHERE ktosl = iktosl.
T030U
SELECT SINGLE * FROM t030u WHERE ktopl = t001-ktopl
AND bwber = p_bwber
AND hkont = ihkont
AND ktosl = iktosl.
T030U
SELECT SINGLE * FROM t030u WHERE ktopl = t001-ktopl
AND bwber = space
AND hkont = ihkont
AND ktosl = iktosl.
T044L
SELECT * FROM t044l
WHERE methd = p_methd.
T044LH
SELECT SINGLE * FROM t044lh WHERE methd = standard.
T030W
SELECT * FROM t030w WHERE ktosl = ialt.
T030U
SELECT * FROM t030u WHERE ktosl = ialt. "#EC CI_GENBUFF
T030B
SELECT * FROM t030b WHERE ktosl = ialt.
T001
SELECT SINGLE * FROM t001 WHERE bukrs = t001-bukrs.
T001
SELECT * FROM t001 WHERE bukrs IN bukrs.
T001
SELECT SINGLE * FROM t001 WHERE bukrs = '0000'.
BSEG
SELECT SINGLE * FROM bseg WHERE bukrs = belege-bukrs
AND belnr = belege-belnr
AND gjahr = belege-gjahr
AND buzei = belege-buzei.
T001U
SELECT * FROM t001u INTO wa_t001u WHERE vbukr IN bukrs.
TBSL
SELECT SINGLE * FROM tbsl INTO wa_tbsl
WHERE bschl = x_t001u_bs-bschl.
BSEG
SELECT SINGLE xhkom FROM bseg INTO wa_xhkom
WHERE bukrs = p_bukrs
AND belnr = p_belnr
AND gjahr = p_gjahr
AND buzei = p_buzei.
SKA1
SELECT SINGLE * FROM ska1 INTO CORRESPONDING FIELDS OF t_ska1
WHERE saknr = ikto
AND ktopl = t001-ktopl.
Function Modules used within report and the associated call statement:
BUKRS_AUTHORITY_CHECK
CALL FUNCTION 'BUKRS_AUTHORITY_CHECK'
EXPORTING
xdatabase = 'B'
TABLES
xbukreis = bukrs.
DETERMINE_DUE_DATE
CALL FUNCTION 'DETERMINE_DUE_DATE'
EXPORTING
i_faede = x_faede
IMPORTING
e_faede = x_faede
EXCEPTIONS
OTHERS = 1.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - ABAP Page 6 of 66
FI_CURRENCY_INFORMATION
CALL FUNCTION 'FI_CURRENCY_INFORMATION'
EXPORTING
i_bukrs = i_bukrs
IMPORTING
e_x001 = x001
EXCEPTIONS
OTHERS = 0.
READ_SKA1
CALL FUNCTION 'READ_SKA1'
EXPORTING
xktopl = ktopl
xsaknr = ska1-saknr
IMPORTING
xska1 = ska1
xskat = skat
EXCEPTIONS
OTHERS = 4.
FI_SPLIT_MOVE_TO_BATCH_INPUT
CALL FUNCTION 'FI_SPLIT_MOVE_TO_BATCH_INPUT'
EXPORTING
COMPANY_CODE = postings-bukrs
GL_ACCOUNT_NUMBER = ikto
ID_BUDAT = p_bbudat
X_BS_ACCOUNT = ska1-xbilk
ADD_ACCT_ASS = postings-addaa
ID_LDGRP = ld_ldgrp
TABLES
batch_input_data = lt_ftpost.
FI_FIELD_SELECTION_DETERMINE
CALL FUNCTION 'FI_FIELD_SELECTION_DETERMINE'
EXPORTING
i_bschl = pa_buschl
i_bukrs = pa_bukrs
i_saknr = pa_saknr
IMPORTING
e_faus1 = tbsl-faus1
e_faus2 = tbsl-faus2
EXCEPTIONS
error_message = 4
OTHERS = 4.
GET_FIELDTAB
CALL FUNCTION 'GET_FIELDTAB'
EXPORTING
tabname = 'SAPF100_OUTIN'
TABLES
fieldtab = inttab
EXCEPTIONS
OTHERS = 1.
FUNCTION_EXISTS
CALL FUNCTION 'FUNCTION_EXISTS'
EXPORTING
funcname = 'K_PCA_GET_BALANCE_FLAG'
EXCEPTIONS
function_not_exist = 1
OTHERS = 2.
K_PCA_GET_BALANCE_FLAG
CALL FUNCTION 'K_PCA_GET_BALANCE_FLAG'
EXPORTING
i_bukrs = ibukrs
IMPORTING
e_biact = eflag
EXCEPTIONS
OTHERS = 7.
POSTING_INTERFACE_START
CALL FUNCTION 'POSTING_INTERFACE_START'
EXPORTING
i_function = func
i_group = par_bnam
i_keep = 'X'
i_mode = mode
i_user = user
* create batch input when error occurs
*not i_xbdcc = 'X'
EXCEPTIONS
error_message = 1
OTHERS = 6.
POSTING_INTERFACE_END
CALL FUNCTION 'POSTING_INTERFACE_END'.
VALUATION_SL_POSTINGS
* CALL FUNCTION 'VALUATION_SL_POSTINGS'
* EXPORTING
* i_bwber = p_bwber
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - ABAP Page 7 of 66
* i_new_awref = g_new_awref
* i_comp = 'GL'
* IMPORTING
* e_awref = g_awref
* TABLES
* t_bkpf = t_bkpf
* t_bseg = t_bseg
* EXCEPTIONS
* error_message = 1
* OTHERS = 1.
POSTING_INTERFACE_DOCUMENT
CALL FUNCTION 'POSTING_INTERFACE_DOCUMENT'
EXPORTING
i_tcode = 'FBB1'
IMPORTING
e_subrc = subrc
e_msgid = fimsg-msgid
e_msgty = fimsg-msgty
e_msgno = fimsg-msgno
e_msgv1 = fimsg-msgv1
e_msgv2 = fimsg-msgv2
e_msgv3 = fimsg-msgv3
e_msgv4 = fimsg-msgv4
TABLES
t_ftpost = ftpost
t_blntab = xblntab
t_fttax = xfttax
EXCEPTIONS
error_message = 1
OTHERS = 9.
REUSE_ALV_LIST_DISPLAY
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = h_repid
i_callback_pf_status_set = h_set_pf_status
i_callback_user_command = h_user_command
i_default = 'X'
is_layout = t_slis_layout_alv
is_print = t_slis_print_alv
it_events = t_events[]
it_fieldcat = t_fieldcat[]
i_save = 'A'
is_variant = h_variant
TABLES
t_outtab = list_item
EXCEPTIONS
program_error =1
OTHERS = 2.
REUSE_ALV_FIELDCATALOG_MERGE
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = h_repid
i_internal_tabname = i_tab
i_inclname = h_repid "
i_client_never_display = 'X'
i_bypassing_buffer = 'X'
CHANGING
ct_fieldcat = ti_fieldcat[]
EXCEPTIONS
OTHERS = 3.
REUSE_ALV_EVENTS_GET
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 1
IMPORTING
et_events = t_event[]
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
REUSE_ALV_LIST_LAYOUT_INFO_GET
CALL FUNCTION 'REUSE_ALV_LIST_LAYOUT_INFO_GET'
IMPORTING
et_sort = t_slis_sort
EXCEPTIONS
OTHERS = 0.
REUSE_ALV_COMMENTARY_WRITE
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_list_top_of_page.
GET_FIELDTAB
* CALL FUNCTION 'GET_FIELDTAB'
* EXPORTING
* tabname = itabname
* TABLES
* fieldtab = inttab
* EXCEPTIONS
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - ABAP Page 8 of 66
* OTHERS = 1.
FAGL_SPLINFO_GET
CALL FUNCTION 'FAGL_SPLINFO_GET'
EXPORTING
ID_LDGRP = ld_ldgrp
ID_BUKRS = postings-bukrs
ID_BUDAT = postings-budat
ID_HKONT = postings-konto1
ID_BS_FIELDS = 'X'
IS_ADDAA = postings-addaa
IMPORTING
ES_SPLINFO = ld_splinfo.
FAGL_SPLINFO_GET
CALL FUNCTION 'FAGL_SPLINFO_GET'
EXPORTING
ID_LDGRP = ld_ldgrp
ID_BUKRS = postings-bukrs
ID_BUDAT = postings-budat
ID_HKONT = postings-konto2
ID_BS_FIELDS = 'X'
IS_ADDAA = postings-addaa
IMPORTING
ES_SPLINFO = ld_splinfo.
FAGL_POSTINGS_ALV
CALL FUNCTION 'FAGL_POSTINGS_ALV'
EXPORTING
i_headline = hd_txt
is_variant = h_variant
i_acc_principle = g_acc_principle
is_layout = t_slis_layout_alv
TABLES
t_doc_hdr_new = t_header
t_doc_lines_new = t_item
CHANGING
IE_BHDGD = bhdgd.
BAL_DSP_LOG_DISPLAY
BAL_DSP_LOG_PRINT
CALL FUNCTION 'BAL_DSP_LOG_DISPLAY'
* CALL FUNCTION 'BAL_DSP_LOG_PRINT'
* EXPORTING
* I_S_LOG_FILTER =
* I_T_LOG_CONTEXT_FILTER =
* I_S_MSG_FILTER =
* I_T_MSG_CONTEXT_FILTER =
* I_T_LOG_HANDLE =
* I_T_MSG_HANDLE =
* I_S_DISPLAY_PROFILE =
* I_AMODAL =''
EXCEPTIONS
OTHERS = 1.
FI_MESSAGES_ALV
CALL FUNCTION 'FI_MESSAGES_ALV'
EXPORTING
i_headline = text-044
is_variant = h_variant
is_layout = t_slis_layout_alv
EXCEPTIONS
OTHERS = 0.
FI_MESSAGE_COLLECT
CALL FUNCTION 'FI_MESSAGE_COLLECT'
EXPORTING
i_fimsg = fimsg
i_xappn = ' '
EXCEPTIONS
OTHERS = 0.
BAL_LOG_MSG_CUMULATE
CALL FUNCTION 'BAL_LOG_MSG_CUMULATE'
EXPORTING
* I_LOG_HANDLE =
i_s_msg = l_s_msg
i_compare_attributes = 'X'
i_compare_context = 'X'
i_compare_parameters = 'X'
* IMPORTING
* E_S_MSG_HANDLE =
* E_MSG_WAS_LOGGED =
* E_MSG_WAS_DISPLAYED =
EXCEPTIONS
log_not_found =0
msg_inconsistent = 2
* OTHERS =3
.
BAL_LOG_CREATE
CALL FUNCTION 'BAL_LOG_CREATE'
EXPORTING
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - ABAP Page 9 of 66
i_s_log = g_s_log
EXCEPTIONS
OTHERS = 1.
MONTH_PLUS_DETERMINE
CALL FUNCTION 'MONTH_PLUS_DETERMINE'
EXPORTING
months = t044l-duevl
olddate = x_t044l-gtdatum
IMPORTING
newdate = x_t044l-gtdatum.
MONTH_PLUS_DETERMINE
CALL FUNCTION 'MONTH_PLUS_DETERMINE'
EXPORTING
months = t044l-duevl
olddate = x_t044l-gtdatum
IMPORTING
newdate = x_t044l-gtdatum.
KPEP_MONI_INIT_RECORD
CALL FUNCTION 'KPEP_MONI_INIT_RECORD'
EXPORTING
ls_detail = ls_detail
LS_WITEM = ls_witem
* LS_APPL =
* LD_WORKLIST_FLAG = ' '
IMPORTING
ls_key = ls_key_static
TABLES
lt_selkrit = lt_selkrit
lt_param = lt_param.
KPEP_MONI_CLOSE_RECORD
CALL FUNCTION 'KPEP_MONI_CLOSE_RECORD'
EXPORTING
ls_key = ls_key_static
* LS_MESSAGE = ls_message
* LD_OBJECTS =
* LS_EXT =
* LS_RL =
LS_SCMA_EVENT = ls_scma_event
TABLES
lt_spool = gt_spono
CHANGING
ld_aplstat = ld_aplstat
EXCEPTIONS
* NO_ID_GIVEN = 1
OTHERS = 0.
FREE_SELECTIONS_INIT
CALL FUNCTION 'FREE_SELECTIONS_INIT'
EXPORTING
kind = 'T'
* Alte Abgrenzungen erscheinen wieder
expressions = fs_dyns-texpr
* FIELD_GROUPS_KEY =
* RESTRICTION =
* ALV =
* CURR_QUAN_PROG = SY-CPROG
* CURR_QUAN_RELATION =
IMPORTING
selection_id = selection_id
where_clauses = fs_dyns-clauses
expressions = fs_dyns-texpr
field_ranges = fs_dyns-trange
number_of_active_fields = fs_num
TABLES
tables_tab = tables_tab
fields_tab = fields
* FIELD_DESC =
* FIELD_TEXTS =
* EVENTS =
* EVENT_FIELDS =
fields_not_selected = fields_not
EXCEPTIONS
fields_incomplete =1
fields_no_join =2
field_not_found =3
no_tables =4
table_not_found =5
expression_not_supported = 6
incorrect_expression = 7
illegal_kind =8
area_not_found =9
inconsistent_area = 10
kind_f_no_fields_left = 11
kind_f_no_fields = 12
too_many_fields = 13
dup_field = 14
field_no_type = 15
field_ill_type = 16
dup_event_field = 17
node_not_in_ldb = 18
area_no_field = 19
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 10 of 66
OTHERS = 20
.
FREE_SELECTIONS_DIALOG
CALL FUNCTION 'FREE_SELECTIONS_DIALOG'
EXPORTING
selection_id = selection_id
title = 'Freie Selektion '(013)
* FRAME_TEXT =''
* STATUS =
* AS_WINDOW =''
* START_ROW =2
* START_COL =2
* NO_INTERVALS =''
* JUST_DISPLAY =''
* PFKEY =
* ALV =''
* TREE_VISIBLE = 'X'
* DIAG_TEXT_1 =
* DIAG_TEXT_2 =
* WARNING_TITLE =
IMPORTING
where_clauses = fs_dyns-clauses
expressions = fs_dyns-texpr
field_ranges = fs_dyns-trange
number_of_active_fields = fs_num
TABLES
fields_tab = fields
* FCODE_TAB =
fields_not_selected = fields_not
EXCEPTIONS
* internal_error =
* no_action =
* selid_not_found =
* illegal_status =
OTHERS = 0.
FI_LIST_VARIANTS_PREVIEW_ALV
CALL FUNCTION 'FI_LIST_VARIANTS_PREVIEW_ALV'
EXPORTING
i_repid = irepid
i_list_form = iform_name
TABLES
t_outtab = list_item.
FAGL_GET_LDGRP_FROM_VALU_AREA
CALL FUNCTION 'FAGL_GET_LDGRP_FROM_VALU_AREA'
EXPORTING
val_area = ibwber
IMPORTING
ledger_group = e_ldgrp
acc_principle = e_acc_principle
EXCEPTIONS
no_ledger_assignment =1
no_acc_principle_assignment = 2
OTHERS = 3.
CUSTOMIZED_MESSAGE
CALL FUNCTION 'CUSTOMIZED_MESSAGE'
EXPORTING
I_ARBGB = 'FR'
I_DTYPE = 'E'
I_MSGNR = '894'
I_VAR01 = ibwber.
FAGL_CHECK_GLFLEX_ACTIVE
CALL FUNCTION 'FAGL_CHECK_GLFLEX_ACTIVE'
EXPORTING
id_bukrs = cga_bukrs
IMPORTING
e_glflex_active = ld_active.
FI_SPLIT_ACTIVATION
CALL FUNCTION 'FI_SPLIT_ACTIVATION'
EXPORTING
id_cocd = i_bukrs
IMPORTING
ed_active = eflag.
FI_SPLIT_FROM_ITEM
CALL FUNCTION 'FI_SPLIT_FROM_ITEM'
EXPORTING
IS_ITEM = ls_spl_item
* ID_LEDGER =''
ID_BS_FIELDS = 'X'
IMPORTING
ET_SPLDOC = lt_spl_doc
EXCEPTIONS
* INTERNAL_ERROR =1
OTHERS = 2.
FAGL_GET_SPLITFIELDS_ACCIT
CALL FUNCTION 'FAGL_GET_SPLITFIELDS_ACCIT'
IMPORTING
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 11 of 66
ET_FIELDS_ACCIT = lt_fields_accit.
FAGL_TRANSFORM_ACCIT_TO_BSEG
CALL FUNCTION 'FAGL_TRANSFORM_ACCIT_TO_BSEG'
EXPORTING
id_accit_fieldname = lf_fieldname_accit
IMPORTING
ed_bseg_fieldname = lf_fieldname_bseg
EXCEPTIONS
NOT_FOUND =1
OTHERS = 2.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 12 of 66
REPORT fagl_cl_regroup
* line-count 65(0)
MESSAGE-ID fr
NO STANDARD PAGE HEADING.
DATA: BEGIN OF x_t001u_ka OCCURS 10, "table clearing acc. for ccodes
bukrs LIKE t001u-vbukr,
koart LIKE bseg-koart,
konto LIKE t001u-konts,
END OF x_t001u_ka.
* extra dimensions
DATA: BEGIN OF sl_incl. "these are the names in GL
INCLUDE STRUCTURE SAPF100_OUTIN.
DATA: END OF sl_incl.
DATA: sl_incl_ccode_active.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 13 of 66
END OF belege.
**********************************************
DATA: action(4).
* hold data for one mr record used in list
DATA: BEGIN OF mr,
koart LIKE bseg-koart,
konto LIKE belege-konto,
name1 LIKE kna1-name1,
END OF mr.
DATA: hwtyp2, hwtyp3.
CONSTANTS: act1 LIKE action VALUE 'BI2', " Rasterung
act2 LIKE action VALUE 'A00', "changed rec act
act3 LIKE action VALUE 'INV'. "Investments
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 14 of 66
* batch-input
DATA: BEGIN OF ftpost OCCURS 20.
INCLUDE STRUCTURE FTPOST.
DATA: END OF ftpost.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 15 of 66
DATA:
vbund LIKE bseg-vbund,
waers LIKE bkpf-waers,
wrbtr(12) TYPE p,
dmbtr(12) TYPE p,
hwaer LIKE tcurd-hwaer,
hwtyp(1),
gjahr LIKE bkpf-gjahr, "for gd23
dmbe1_t033(12) TYPE p,
dmbe2_t033(12) TYPE p,
dmbe3_t033(12) TYPE p,
END OF postings.
* F4 für INCL_FLD
DATA:
BEGIN OF f4tab OCCURS 0,
fieldname LIKE dfies-fieldname,
scrtext_l LIKE dfies-scrtext_l,
END OF f4tab.
*
* free selections. -------------------------------------------------
TYPE-POOLS: rsds.
DATA: fs_f1_icon LIKE smp_dyntxt. "f1 taste
DATA: lfa1_clauses TYPE rsds_where, lfa1_clauses_filled.
DATA: lfb1_clauses TYPE rsds_where, lfb1_clauses_filled.
DATA: bsik_clauses TYPE rsds_where, bsik_clauses_filled.
*-------------------------------------------------------------------
* Definition of fields/structures for ALV
*-------------------------------------------------------------------
INCLUDE <LINE>.
INCLUDE <ICON>.
*
DATA: h_variant LIKE disvariant.
DATA: selkey LIKE sy-tabix. "counter fuer Konten
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 16 of 66
* variabler teil
* INCLUDE STRUCTURE RFSBEW_INCL.
INCLUDE STRUCTURE SL_INCL.
DATA:
hwaer LIKE tcurd-hwaer,
END OF list_item_collect.
* application log
DATA: g_s_log TYPE bal_s_log,
g_log_handle TYPE balloghndl,
g_dummy TYPE c,
g_ident LIKE sy-uzeit,
g_e_msg TYPE boolean.
DATA: g_i_postok TYPE i.
* schedman----------------------------------------------------------
DATA: t_spono LIKE schedman_spool .
DATA: gt_spono LIKE t_spono OCCURS 0.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 17 of 66
*-------------------------------------------------------------------
* Select options and parameters
*-------------------------------------------------------------------
SELECTION-SCREEN FUNCTION KEY 1. "free selectons
*
SELECT-OPTIONS:
bukrs FOR bseg-bukrs.
PARAMETERS:
stichtag LIKE rfpdo-f100stag,
p_methd LIKE rfpdo3-f101methd, "Raster verwenden
p_bwber LIKE rfpdo3-allgbwbe. "Berwertungsbereich
*-------------------------------------------------------------------
* Subscreen 1020: Postings
*-------------------------------------------------------------------
SELECTION-SCREEN BEGIN OF SCREEN 1020 AS SUBSCREEN.
PARAMETERS: par_bi LIKE rfpdo1-allgbuch DEFAULT ' ',
par_bnam LIKE rfpdo-allgbina,
p_bldat LIKE rfpdo-allgedat,
p_blart LIKE rfpdo-allgblar DEFAULT 'SA',
p_bbudat LIKE rfpdo-allgbdat, "Buchungsdatum
p_bbupem LIKE rfpdo-allgbupe, "Buper-Monat
p_sblart LIKE rfpdo-allgblar, "Belegart storno
p_sbudat LIKE rfpdo-allgsdat, "Buchungsdatum storno
p_sbupem LIKE rfpdo-allgsbup, "Buper-Monat storno
pa_waers LIKE rfpdo3-f101waers, "post in TC
p_zbukrs LIKE rfpdo3-allgzbuk,
p_bktxt LIKE bkpf-bktxt.
SELECTION-SCREEN END OF SCREEN 1020.
*-------------------------------------------------------------------
* Subscreen 1060: Selections
*-------------------------------------------------------------------
SELECTION-SCREEN BEGIN OF SCREEN 1060 AS SUBSCREEN.
PARAMETERS: p_dsaldo LIKE rfpdo3-allggrup.
PARAMETERS: p_ksaldo LIKE rfpdo3-allggrup.
PARAMETERS: p_ssaldo LIKE rfpdo3-allggrup.
PARAMETERS: p_vbund LIKE rfpdo3-f101vbund DEFAULT 'X'.
PARAMETERS: p_chg_ac LIKE rfpdo3-f101chgrc "changed rec.accts.
DEFAULT 'X',
inv_kz LIKE rfpdo1-f100xlin. "post investments
PARAMETERS: p_curtp1 LIKE rfpdo3-sbewcurtp DEFAULT '10' NO-DISPLAY.
*-------------------------------------------------------------------
* Subscreen 1050: add. parameters
*-------------------------------------------------------------------
SELECTION-SCREEN BEGIN OF SCREEN 1050 AS SUBSCREEN.
SELECT-OPTIONS:
kontoart FOR bseg-koart, "Kontoart
verbund FOR bseg-vbund, "VBUND-Kennzeichen
kkonto FOR bseg-lifnr MATCHCODE OBJECT kred,
dkonto FOR bseg-kunnr MATCHCODE OBJECT debi,
akonto FOR lfb1-akont MATCHCODE OBJECT sako,
skonto FOR bseg-hkont MATCHCODE OBJECT sako,
gesber FOR bseg-gsber,
kk_umskz FOR bseg-umskz, "kreditoren mskennzei.
dk_umskz FOR bseg-umskz, "debitoren "Umskennzei.
wv_bwert FOR bseg-wverw,
belnr FOR bsid-belnr,
dk_wbrsl FOR knb1-wbrsl.
SELECTION-SCREEN END OF SCREEN 1050.
*free selections
PARAMETER:
fs_dyns TYPE rsds_type NO-DISPLAY,
fs_num LIKE sy-tfill NO-DISPLAY.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 18 of 66
inv_no.
FIELD-GROUPS: header,
daten. "Einzelbelege
************************************************************************
INITIALIZATION.
*TABS1010 = 'Parameter'.
tabs1060 = 'Parameter'(001).
tabs1020 = 'Buchungen'(002).
tabs1050 = 'Selektionen'(003).
par_bnam = sy-repid.
PERFORM setup_eg93.
* Setzen Default-Sichtag
stichtag = sy-datlo.
stichtag+6(2) = '01'.
stichtag = stichtag - 1.
********************************************************************
AT SELECTION-SCREEN OUTPUT.
PERFORM fs_set_sscrtexts_dynsel CHANGING fs_f1_icon.
sscrfields-functxt_01 = fs_f1_icon.
LOOP AT SCREEN.
IF p_file IS INITIAL AND screen-group1 = 'FIL'.
screen-output = 0.
screen-input = 0.
screen-invisible = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
*
AT SELECTION-SCREEN ON bukrs.
CALL FUNCTION BUKRS_AUTHORITY_CHECK
EXPORTING
xdatabase = 'B'
TABLES
xbukreis = bukrs.
*
AT SELECTION-SCREEN ON stichtag.
IF stichtag IS INITIAL.
MESSAGE e361.
ENDIF.
*
AT SELECTION-SCREEN ON umbwm.
LOOP AT umbwm.
IF umbwm-sign NE 'I' AND umbwm-option NE 'EQ'.
MESSAGE e600 WITH text-030.
ENDIF.
ENDLOOP.
*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_lvar.
h_variant-variant = p_lvar.
PERFORM f4_for_s_lvar(sapf100) CHANGING h_variant.
p_lvar = h_variant-variant.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 19 of 66
*
AT SELECTION-SCREEN ON p_methd.
IF p_methd NE space AND t044l-methd NE p_methd.
SELECT * FROM t044l WHERE methd = p_methd.
EXIT.
ENDSELECT.
IF sy-subrc NE 0.
MESSAGE e478 WITH p_methd.
ENDIF.
ENDIF.
*
AT SELECTION-SCREEN ON p_curtp1.
* PERFORM CHECK_CURTP(SAPF100) USING P_CURTP1.
*
AT SELECTION-SCREEN ON p_bwber.
IF p_bwber NE space.
SELECT SINGLE * FROM t033 WHERE bwber = p_bwber.
IF sy-subrc NE 0.
MESSAGE e058(00) WITH p_bwber space space space.
ELSE.
p_curtp1 = t033-curtp.
ENDIF.
ENDIF.
* Belegart
AT SELECTION-SCREEN ON p_blart.
IF par_bi <> space.
IF p_blart IS INITIAL.
MESSAGE e223.
ENDIF.
SELECT SINGLE * FROM t003 WHERE blart = p_blart.
IF sy-subrc <> 0.
MESSAGE e002(00).
ENDIF.
IF ( t003-xgsub = space OR t003-xmges = space )
AND flag_p_blart NE 'X'. .
* MESSAGE w297 WITH P_BLART.
flag_p_blart = 'X'.
ENDIF.
ENDIF.
*
AT SELECTION-SCREEN ON p_sblart. "Storno-Belegart
IF par_bi <> space AND NOT p_sblart IS INITIAL.
SELECT SINGLE * FROM t003 WHERE blart = p_sblart.
IF sy-subrc <> 0.
MESSAGE e002(00).
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON par_bnam.
* IF PAR_BI <> space and PAR_BNAM is initial.
* par_bnam = sy-repid.
* ENDIF.
*
AT SELECTION-SCREEN.
CASE sscrfields-ucomm.
WHEN 'SEL1'.
CLEAR: sy-ucomm, sscrfields-ucomm.
PERFORM free_selections.
CHECK 0 = 1.
WHEN 'FC01'. "function key
CLEAR: sy-ucomm, sscrfields-ucomm.
PERFORM free_selections.
CHECK 0 = 1.
WHEN 'CON1'. "Ausgabeliste konfigurieren
PERFORM list_config_list USING 'FAGL_CL_REGROUP'
'LISTE'. "which form
WHEN 'FILE'.
p_file = 'X'.
ENDCASE.
*
IF inv_only = 'X'. inv_kz = 'X'. ENDIF.
*
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 20 of 66
********************************************************************
START-OF-SELECTION.
CLEAR sy-msgno.
CLEAR g_i_postok.
* check whether new G/L is activated for all selected company codes
SELECT bukrs FROM t001 INTO TABLE gt_bukrs
WHERE bukrs IN bukrs.
PERFORM log_fimsg_create.
PERFORM schedman_start_stop USING 'START'.
*kommt noch PERFORM: flex_felder_erl_aufbauen USING 'RFSBEW_INCL'.
PERFORM free_selections_build.
********************************************************************
END-OF-SELECTION.
PERFORM acc_principle_set USING p_bwber
CHANGING gd_ldgrp
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 21 of 66
g_acc_principle.
PERFORM file_io USING 'O'.
PERFORM process_methods.
PERFORM posting.
PERFORM file_io USING 'C'.
PERFORM liste.
PERFORM schedman_start_stop USING 'STOP'.
* PERFORM LISTE.
* another call for a sum list
IF p_lvars <> space.
h_variant-variant = p_lvars.
p_lvarsum = 'X'.
NEW-PAGE.
REFRESH: t_fieldcat, t_slis_sort, t_events.
CLEAR: t_slis_layout_alv.
PERFORM liste.
IF sy-batch <> space.
MESSAGE s600 WITH text-082 sy-spono.
ENDIF.
ENDIF.
***********************************************************************
* Form routines
***********************************************************************
*---------------------------------------------------------------------*
* FORM SELECT_BSID *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> ITAB *
*---------------------------------------------------------------------*
FORM select_bsid USING itab TYPE c.
DATA: knx_sel.
RANGES: st_augdt FOR bseg-augdt OCCURS 1.
IF itab = 'BSID'.
ELSE.
st_augdt-low = stichtag.
st_augdt-sign = 'I'.
st_augdt-option = 'GT'.
APPEND st_augdt.
ENDIF.
IF bsid-umskz NE space.
CHECK bsid-umskz IN dk_umskz.
ENDIF.
bseg-rebzg = bsid-rebzg.
bseg-rebzj = bsid-rebzj.
bseg-rebzz = bsid-rebzz.
bseg-xcpdd = bsid-xcpdd.
belege-avbund = belege-vbund.
belege-ahkont = belege-hkont.
IF belege-konto NE knb1-kunnr
OR belege-bukrs NE knb1-bukrs.
SELECT SINGLE * FROM kna1 WHERE kunnr = belege-konto.
IF sy-subrc = 0.
vbunds = kna1-vbund.
ELSE.
vbunds = belege-vbund.
ENDIF.
SELECT SINGLE * FROM knb1 WHERE kunnr = belege-konto
AND bukrs = belege-bukrs.
IF sy-subrc = 0.
akonts = knb1-akont.
vbunds = kna1-vbund.
ELSE.
akonts = bsid-hkont.
ENDIF.
PERFORM check_buv USING vbunds
belege-bukrs
belege-koart
belege-konto
CHANGING xbuv.
* free selections
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 22 of 66
knx_sel = space.
IF kna1_clauses_filled = 'X'.
SELECT SINGLE kunnr FROM kna1 INTO kna1-kunnr
WHERE kunnr = knb1-kunnr
AND (kna1_clauses-where_tab).
IF sy-subrc <> 0. knx_sel = 'X'. ENDIF.
ENDIF.
CHECK knx_sel = space.
IF knb1_clauses_filled = 'X'.
SELECT SINGLE kunnr FROM knb1 INTO knb1-kunnr
WHERE kunnr = knb1-kunnr
AND bukrs = bsid-bukrs
AND (knb1_clauses-where_tab).
IF sy-subrc <> 0. knx_sel = 'X'. ENDIF.
ENDIF.
ENDIF.
CHECK knx_sel = space.
bseg-xcpdd = kna1-xcpdk.
IF NOT belege-vbund IS INITIAL AND xbuv = 'X'.
belege-vbund = belege-avbund.
ELSE.
belege-vbund = vbunds. "use master data
ENDIF.
CHECK belege-vbund IN verbund.
CHECK knb1-wbrsl IN dk_wbrsl.
sort_group-bewgp = space. "note 1174594
IF p_dsaldo NE space. PERFORM derive_f1. ENDIF.
ENDSELECT.
ENDFORM. "SELECT_BSID
IF bsik-umskz NE space.
CHECK bsik-umskz IN kk_umskz.
ENDIF.
bseg-rebzg = bsik-rebzg.
bseg-rebzj = bsik-rebzj.
bseg-rebzz = bsik-rebzz.
belege-avbund = belege-vbund.
belege-ahkont = belege-hkont.
IF belege-konto NE lfb1-lifnr
OR belege-bukrs NE lfb1-bukrs.
SELECT SINGLE * FROM lfa1 WHERE lifnr = belege-konto.
IF sy-subrc = 0.
vbunds = lfa1-vbund.
ELSE.
vbunds = belege-vbund.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 23 of 66
ENDIF.
SELECT SINGLE * FROM lfb1 WHERE lifnr = belege-konto
AND bukrs = belege-bukrs.
IF sy-subrc = 0.
akonts = lfb1-akont.
ELSE.
akonts = bsik-hkont.
ENDIF.
PERFORM check_buv USING vbunds
belege-bukrs
belege-koart
belege-konto
CHANGING xbuv.
lfx_sel = space.
IF lfa1_clauses_filled = 'X'.
SELECT SINGLE lifnr FROM lfa1 INTO lfa1-lifnr
WHERE lifnr = lfb1-lifnr
AND (lfa1_clauses-where_tab).
IF sy-subrc <> 0. lfx_sel = 'X'. ENDIF.
ENDIF.
CHECK lfx_sel = space.
IF lfb1_clauses_filled = 'X'.
SELECT SINGLE lifnr FROM lfb1 INTO lfb1-lifnr
WHERE lifnr = lfb1-lifnr
AND bukrs = bsik-bukrs
AND (lfb1_clauses-where_tab).
IF sy-subrc <> 0. lfx_sel = 'X'. ENDIF.
ENDIF.
ENDIF.
CHECK lfx_sel = space.
IF NOT belege-vbund IS INITIAL AND xbuv = 'X'.
belege-vbund = belege-avbund.
ELSE.
belege-vbund = vbunds. "use master data
ENDIF.
CHECK belege-vbund IN verbund.
bseg-xcpdd = lfa1-xcpdk.
sort_group-bewgp = space. "note 1174594
IF p_ksaldo NE space. PERFORM derive_f1. ENDIF.
ENDSELECT.
ENDFORM. "SELECT_BSIK
*---------------------------------------------------------------------*
* FORM SELECT_BSIS *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> ITAB *
*---------------------------------------------------------------------*
FORM select_bsis USING itab.
* free selections
skx_sel = space.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 24 of 66
IF ska1_clauses_filled = 'X'.
SELECT SINGLE saknr FROM ska1 INTO ska1-saknr
WHERE saknr = skb1-saknr
AND (ska1_clauses-where_tab).
IF sy-subrc <> 0. skx_sel = 'X'. ENDIF.
ENDIF.
CHECK skx_sel = space.
IF skb1_clauses_filled = 'X'.
SELECT SINGLE saknr FROM skb1 INTO skb1-saknr
WHERE saknr = skb1-saknr
AND bukrs = skb1-bukrs
AND (skb1_clauses-where_tab).
IF sy-subrc <> 0. skx_sel = 'X'. ENDIF.
ENDIF.
CHECK skx_sel = space.
*
SELECT * FROM bsis
INTO CORRESPONDING FIELDS OF TABLE belege
PACKAGE SIZE max_read
WHERE bukrs = skb1-bukrs
AND hkont = skb1-saknr
AND budat LE stichtag
AND wrbtr NE 0 "not fbb1
AND belnr IN belnr.
LOOP AT belege.
MOVE-CORRESPONDING belege TO bsis.
BELEGE-KONTO = BELEGE-HKONT.
belege-koart = 'S'.
belege-avbund = belege-vbund.
IF NOT belege-vbund IS INITIAL AND xbuv = 'X'.
belege-avbund = ska1-vbund. "no change of VBUND
ENDIF.
belege-ahkont = belege-hkont.
belege-vbund = ska1-vbund.
CHECK belege-vbund IN verbund.
sort_group-bewgp = space. "note 1174594
IF p_ssaldo NE space. PERFORM derive_f1. ENDIF.
PERFORM extract.
ENDLOOP.
ENDSELECT.
*
SELECT * FROM bsas
INTO CORRESPONDING FIELDS OF TABLE belege
PACKAGE SIZE max_read
WHERE bukrs = skb1-bukrs
AND hkont = skb1-saknr
AND budat LE stichtag
AND augdt GT stichtag
AND wrbtr NE 0 "not fbb1
AND belnr IN belnr.
LOOP AT belege.
MOVE-CORRESPONDING belege TO bsis.
BELEGE-KONTO = BELEGE-HKONT.
belege-koart = 'S'.
belege-avbund = belege-vbund.
IF NOT belege-vbund IS INITIAL AND xbuv = 'X'.
belege-avbund = ska1-vbund. "use master data
ENDIF.
belege-ahkont = belege-hkont.
belege-vbund = ska1-vbund.
CHECK belege-vbund IN verbund.
sort_group-bewgp = space. "note 1174594
IF p_ssaldo NE space. PERFORM derive_f1. ENDIF.
PERFORM extract.
ENDLOOP.
ENDSELECT.
ENDSELECT.
ENDLOOP.
ENDFORM. "SELECT_BSIS
*---------------------------------------------------------------------*
* FORM check_BUV *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> ivbund *
*---------------------------------------------------------------------*
FORM check_buv USING i_vbund i_bukrs i_koart i_konto CHANGING i_buv.
CLEAR i_buv.
CHECK i_vbund = space.
* check table x_t001u_ka for clearing account number
LOOP AT x_t001u_ka WHERE bukrs = i_bukrs
AND koart = i_koart
AND konto = i_konto.
EXIT.
ENDLOOP.
* flag: current account is clearing account for company code
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 25 of 66
IF sy-subrc = 0.
i_buv = 'X'.
ENDIF.
ENDFORM. "check_BUV
*---------------------------------------------------------------------*
* FORM EXTRACT *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM extract.
DATA: BEGIN OF x_faede.
INCLUDE STRUCTURE FAEDE.
DATA END OF x_faede.
CHECK:
belege-gsber IN gesber,
belege-wrbtr NE 0.
* free selections
IF bseg_clauses_filled = 'X'.
SELECT SINGLE * FROM bseg
WHERE bukrs = belege-bukrs
AND belnr = belege-belnr
AND gjahr = belege-gjahr
AND buzei = belege-buzei
AND (bseg_clauses-where_tab).
CHECK sy-subrc = 0.
ENDIF.
IF bkpf_clauses_filled = 'X'.
SELECT SINGLE * FROM bkpf
WHERE bukrs = belege-bukrs
AND belnr = belege-belnr
AND gjahr = belege-gjahr
AND (bkpf_clauses-where_tab).
CHECK sy-subrc = 0.
ENDIF.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 26 of 66
IMPORTING
e_faede = x_faede
EXCEPTIONS
OTHERS = 1.
IF sy-subrc = 0.
belege-netdt = x_faede-netdt.
ELSE.
belege-netdt = belege-zfbdt.
CLEAR fimsg.
fimsg-msgid = 'FR'.
fimsg-msgty = 'I'.
fimsg-msgno = '600'.
fimsg-msgv1 = belege-belnr.
fimsg-msgv2 = belege-bukrs.
fimsg-msgv3 = 'Fehler bei Fälligkeitsberechnung'(112).
PERFORM log_fimsg USING '02'
probclass_high.
ENDIF.
ELSE.
belege-netdt = belege-zfbdt.
ENDIF.
* bsega-netdt bestimmt.
IF belege-shkzg = 'H'.
belege-dmbtr = 0 - belege-dmbtr.
belege-wrbtr = 0 - belege-wrbtr.
belege-bdiff = 0 - belege-bdiff.
ENDIF.
* --------------------------------------------------------------------
belege-bdmbtr = belege-dmbtr + belege-bdiff.
belege-hwtyp = haus-field.
EXTRACT daten.
ENDFORM. "EXTRACT
*---------------------------------------------------------------------*
* FORM DERIVE_HAUSWAERS *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> I_BUKRS *
* --> I_CURT *
*---------------------------------------------------------------------*
FORM derive_hauswaers USING i_bukrs LIKE t001-bukrs
i_curt LIKE t001a-curtp
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 27 of 66
IF x001-curt2 = i_curt.
ihaus-waers = x001-hwae2. ihaus-field = '2'.
ELSEIF x001-curt3 = i_curt.
ihaus-waers = x001-hwae3. ihaus-field = '3'.
ELSE.
ihaus-waers = space. ihaus-field = space.
ENDIF.
ENDIF.
*---------------------------------------------------------------------*
* FORM BSBW_GET_ALL *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> IBWDIFF *
*---------------------------------------------------------------------*
FORM bsbw_get_all CHANGING ibwdiff LIKE bseg-bdiff.
DATA: sum_diff LIKE bseg-bdiff.
DATA: ls_histry LIKE fagl_bsbw_histry.
DATA: ls_histry_delta LIKE fagl_bsbw_histry.
DATA: lt_histry_delta TYPE TABLE OF fagl_bsbw_histry.
DATA: lf_ilines TYPE i.
LOOP AT umbwm_tab.
* Read valuation differences posted with delta logic
CLEAR lf_ilines.
IF umbwm_tab = '1'.
SELECT * FROM fagl_bsbw_histry
INTO TABLE lt_histry_delta
WHERE bukrs = belege-bukrs
AND belnr = belege-belnr
AND gjahr = belege-gjahr
AND buzei = belege-buzei
AND curtp = p_curtp1
AND bwber = p_bwber
AND methd = umbwm_tab
AND reverse_id = ' '
AND datum <= stichtag
AND ( fcv_status = 'V' OR
fcv_status = 'C' )
ORDER BY datum descending.
LOOP AT lt_histry_delta INTO ls_histry_delta.
ADD ls_histry_delta-bwshb TO sum_diff.
ADD 1 TO lf_ilines.
ENDLOOP.
ENDIF.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 28 of 66
ENDFORM. "BSBW_GET_ALL
*---------------------------------------------------------------------*
* FORM GET_ZFBDT *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM get_zfbdt.
SELECT SINGLE zfbdt
zbd3t
zbd2t
zbd1t
xinve
FROM bseg
INTO CORRESPONDING FIELDS OF bseg
WHERE bukrs = belege-bukrs
AND belnr = belege-rebzg
AND gjahr = belege-rebzj
AND buzei = belege-rebzz.
ENDFORM. "GET_ZFBDT
*---------------------------------------------------------------------*
* FORM DERIVE_F1 *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM derive_f1.
sy-subrc = 0.
sort_group-bewgp = space.
CASE belege-koart.
WHEN 'D'.
IF belege-konto NE kna1-kunnr.
SELECT SINGLE * FROM kna1 WHERE kunnr = belege-konto.
ENDIF.
IF sy-subrc = 0.
sort_group-bewgp = kna1-konzs.
ELSE.
sort_group-bewgp = space.
ENDIF.
WHEN 'K'.
IF belege-konto NE lfa1-lifnr.
SELECT SINGLE * FROM lfa1 WHERE lifnr = belege-konto.
ENDIF.
IF sy-subrc = 0.
sort_group-bewgp = lfa1-konzs.
ELSE.
sort_group-bewgp = space.
ENDIF.
* S has always an empty belege-konto - use bseg-hkont instead
WHEN 'S'.
* skb1 already read
sort_group-bewgp = skb1-bewgp.
ENDCASE.
ENDFORM. "DERIVE_F1
*---------------------------------------------------------------------*
FORM process_methods.
* setup grid
PERFORM grid_setup.
SORT.
LOOP.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 29 of 66
AT NEW sort_group-zbukr.
SELECT SINGLE * FROM t001 WHERE bukrs = sort_group-zbukr.
* parallele hauswaehrung des Zielbuchungskreises bestimmen
IF x001-bukrs NE sort_group-zbukr.
PERFORM derive_hauswaers USING sort_group-zbukr
t033-curtp
CHANGING haus.
ENDIF.
PERFORM split_set USING sort_group-zbukr
CHANGING split_flag.
ENDAT.
AT NEW sort_group.
* summen bilden für Rasterung
REFRESH belege.
ENDAT.
APPEND belege.
AT END OF sort_group.
PERFORM BELEGE_RASTERN TABLES BELEGE.
ENDAT.
ENDLOOP.
* add the list_collect to the list_item
CLEAR list_item.
LOOP AT list_item_collect.
MOVE-CORRESPONDING list_item_collect TO list_item.
APPEND list_item.
ENDLOOP.
ENDFORM. "PROCESS_METHODS
LOOP AT ibelege.
MOVE-CORRESPONDING ibelege TO t_total.
t_total-balance = ibelege-bdmbtr.
READ TABLE x_t044ld WITH KEY gtdatum = ibelege-netdt BINARY SEARCH.
CASE sy-subrc.
WHEN 0.
WHEN 4. sy-tabix = sy-tabix - 1.
WHEN 8. sy-tabix = sy-tabix - 1.
WHEN OTHERS. sy-tabix = 0.
ENDCASE.
IF sy-tabix = 0. ADD 1 TO sy-tabix. ENDIF. "immer rastern
IF sy-tabix <> 0 AND sy-subrc <> 0.
READ TABLE x_t044ld INDEX sy-tabix.
ENDIF.
t_total-gtdatum = x_t044ld-gtdatum.
ibelege-gtdatum = t_total-gtdatum.
MODIFY ibelege TRANSPORTING gtdatum.
COLLECT t_total.
ENDLOOP.
SORT t_total.
* now we have the balance per grid
* and we can sort the items in different piles
LOOP AT ibelege.
*=====================================================================
* Rasterung nach Laufzeit (KTOSL -> BI2)
*=====================================================================
* start processing for 'classification by time 'Rasterung'
IF p_methd NE space.
READ TABLE t_total WITH KEY gtdatum = ibelege-gtdatum
BINARY SEARCH.
x_t044l-xdeb1 = space.
IF sy-subrc NE 0.
ELSE.
* according to balance - setup the key
IF t_total-balance > 0.
x_t044l-xdeb1 = 'X'.
ELSEIF t_total-balance < 0.
x_t044l-xdeb1 = ' '.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 30 of 66
ELSEIF t_total-balance = 0.
IF ibelege-koart = 'K' AND ibelege-vbund IS INITIAL."H389320
x_t044l-xdeb1 = ' '.
ELSE.
x_t044l-xdeb1 = 'X'.
ENDIF.
ENDIF.
ENDIF.
* now get the grid according to
READ TABLE x_t044l WITH KEY
xdeb1 = x_t044l-xdeb1
gtdatum = ibelege-gtdatum
BINARY SEARCH.
IF sy-subrc = 0.
* ok
ELSE.
* correct the if it is not used for this account type
* eg koart D is not split in > 1 year and > 5 years
LOOP AT x_t044l WHERE
xdeb1 = x_t044l-xdeb1
AND gtdatum < ibelege-netdt. "<<<
* EXIT. "use last entry
ENDLOOP.
IF sy-subrc = 0.
* ok
ELSE.
*>> WRITE: / IBELEGE-BELNR, 'keine Zuordnung nach X_t044L'.
CLEAR: x_t044l.
ENDIF.
ENDIF.
ibelege-duevl = x_t044l-duevl.
ibelege-tunit = x_t044l-tunit.
ibelege-ktosl = x_t044l-ktosl.
ibelege-xdeb1 = x_t044l-xdeb1.
*
post_collect-hwaer = haus-waers.
*=====================================================================
* Geänderte(s) Abstimmkonto/Partnergesellschaft (KTOSL -> A00)
*=====================================================================
CLEAR list_item-flag_a00.
IF ibelege-ahkont NE ibelege-hkont OR
ibelege-avbund NE ibelege-vbund.
IF p_chg_ac NE space.
MOVE-CORRESPONDING ibelege TO chg_rec_collect.
IF NOT split_flag IS INITIAL.
PERFORM collect_tab_split USING ibelege act2. "A00
ELSE.
chg_rec_collect-dmbtr = ibelege-bdmbtr.
chg_rec_collect-hwaer = haus-waers.
IF pa_waers = space. "post in LC
chg_rec_collect-waers = chg_rec_collect-hwaer.
chg_rec_collect-wrbtr = ibelege-bdmbtr.
IF chg_rec_collect-hwtyp <> '1'.
chg_rec_collect-wrbtr = 0.
ENDIF.
ENDIF.
COLLECT chg_rec_collect.
ENDIF.
list_item-flag_a00 = 'X'.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 31 of 66
*=====================================================================
* Investitionen (KTOSL -> BI4)
*=====================================================================
IF ibelege-xinve NE space AND inv_kz NE space.
MOVE-CORRESPONDING ibelege TO invest_collect.
IF NOT split_flag IS INITIAL.
PERFORM collect_tab_split USING ibelege act3. "INV
ELSE.
invest_collect-dmbtr = ibelege-bdmbtr.
invest_collect-hwaer = haus-waers.
IF pa_waers = space.
invest_collect-waers = invest_collect-hwaer.
invest_collect-wrbtr = ibelege-bdmbtr. "H314431
IF invest_collect-hwtyp <> '1'.
invest_collect-wrbtr = 0.
ENDIF.
ENDIF.
COLLECT invest_collect.
ENDIF.
IF p_file <> space.
PERFORM file_transfer USING ibelege 'I'.
ENDIF.
ENDIF.
list_item-hwaer = haus-waers.
*-----------------------------------------------------------------------
* save for list
*-----------------------------------------------------------------------
PERFORM read_t044kt USING ibelege-duevl
ibelege-tunit
ibelege-xdeb1
CHANGING t044kt-txt30.
CLEAR list_item-txt30.
IF ibelege-ktosl NE SPACE.
list_item-txt30 = t044kt-txt30.
ENDIF.
list_item-name1 = mr-name1.
IF ibelege-konto NE mr-konto OR ibelege-koart NE mr-koart.
PERFORM mr_data_get USING ibelege
CHANGING mr.
list_item-name1 = mr-name1.
ENDIF.
list_item-bewgp = sort_group.
IF NOT p_lcoll IS INITIAL
AND ( list_item-flag_a00 = space AND list_item-ktosl = space ).
MOVE-CORRESPONDING ibelege TO list_item_collect.
list_item_collect-hwaer = haus-waers.
COLLECT list_item_collect.
ELSE.
MOVE-CORRESPONDING ibelege TO list_item. APPEND list_item.
WRITE ibelege-konto TO list_item-konto NO-ZERO.
ENDIF.
ENDLOOP.
ENDFORM. "BELEGE_RASTERN
*---------------------------------------------------------------------*
* FORM read_t044kt *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> iduevl *
* --> itunit *
* --> iXDEB1 *
* --> etxt *
*---------------------------------------------------------------------*
FORM read_t044kt USING iduevl LIKE belege-duevl
itunit LIKE belege-tunit
ixdeb1 LIKE belege-xdeb1
CHANGING etxt LIKE t044kt-txt30.
STATICS:
oduevl LIKE belege-duevl,
otunit LIKE belege-tunit,
oxdeb1 LIKE belege-xdeb1.
CHECK: oduevl <> iduevl OR otunit <> itunit
OR oxdeb1 <> ixdeb1.
oduevl = iduevl. otunit = itunit. oxdeb1 = ixdeb1.
SELECT SINGLE * FROM t044kt WHERE spras = sy-langu
AND methd = p_methd
AND duevl = iduevl
AND tunit = itunit
AND xdeb1 = ixdeb1.
IF sy-subrc = 0.
etxt = t044kt-txt30.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 32 of 66
ELSE.
etxt = text-200.
ENDIF.
ENDFORM. "read_t044kt
*
FORM mr_data_get USING ibelege STRUCTURE belege
CHANGING imr STRUCTURE mr.
STATICS: bukrs LIKE t001-bukrs.
STATICS: ktopl LIKE t001-ktopl.
CASE ibelege-koart.
WHEN 'D'.
SELECT SINGLE * FROM kna1 WHERE kunnr = ibelege-konto.
mr-name1 = kna1-name1.
WHEN 'K'.
SELECT SINGLE * FROM lfa1 WHERE lifnr = ibelege-konto.
mr-name1 = lfa1-name1.
WHEN OTHERS.
IF bukrs NE ibelege-bukrs.
SELECT SINGLE ktopl FROM t001 INTO ktopl
WHERE bukrs = ibelege-bukrs.
bukrs = t001-bukrs.
ENDIF.
CALL FUNCTION READ_SKA1
EXPORTING
xktopl = ktopl
xsaknr = ska1-saknr
IMPORTING
xska1 = ska1
xskat = skat
EXCEPTIONS
OTHERS = 4.
IF sy-subrc <> 0.
mr-name1 = space.
ELSE.
mr-name1 = skat-txt50.
ENDIF.
ENDCASE.
mr-koart = ibelege-koart.
mr-konto = ibelege-konto.
ENDFORM. "mr_data_get
PERFORM postings_overflow.
LOOP AT postings.
AT NEW bukrs.
SELECT SINGLE * FROM t001 WHERE bukrs = postings-bukrs.
PERFORM posting_hwtyp2 USING postings-bukrs
CHANGING hwtyp2
hwtyp3.
ENDAT.
post_line = 0.
* Belegzeile 1
PERFORM posting_linex USING
postings-bschl1
postings-konto1
CHANGING post_line.
*
IF postings-action = act2. "'A00'.
postings-vbund = postings-vbund2."use old vbund
ENDIF.
PERFORM posting_linex USING
postings-bschl2
postings-konto2
CHANGING post_line.
AT END OF post.
* finish one document
PERFORM posting_document USING 'POST'.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 33 of 66
post_line = 0.
ENDAT.
ENDLOOP.
ENDFORM. "POSTING
*---------------------------------------------------------------------*
* FORM posting_hwtyp2 *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> ibukrs *
* --> ihwtyp2 *
*---------------------------------------------------------------------*
FORM posting_hwtyp2 USING ibukrs
CHANGING ihwtyp2 TYPE c
ihwtyp3 TYPE c.
DATA: lhaus LIKE haus.
ihwtyp2 = space.
ihwtyp3 = space.
IF t033-curtp2 NE space.
PERFORM derive_hauswaers USING ibukrs
t033-curtp2
CHANGING lhaus.
IF haus-waers = lhaus-waers.
ihwtyp2 = lhaus-field.
ENDIF.
ENDIF.
IF t033-curtp3 NE space.
PERFORM derive_hauswaers USING ibukrs
t033-curtp3
CHANGING lhaus.
IF haus-waers = lhaus-waers.
ihwtyp3 = lhaus-field.
ENDIF.
ENDIF.
ENDFORM. "posting_hwtyp2
*---------------------------------------------------------------------*
* FORM post_line_hwtyp2 *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> ihwtyp *
* --> text_dmbtr *
*---------------------------------------------------------------------*
FORM post_line_hwtyp2 USING ihwtyp LIKE hwtyp2
text_dmbtr.
DATA: bseg_feld(12).
IF ihwtyp NE space.
CASE ihwtyp.
WHEN '1'.
bseg_feld = 'BSEG-DMBTR'.
bseg-dmbtr = ABS( postings-dmbtr ).
postings-dmbe1_t033 = postings-dmbtr.
MODIFY TABLE postings TRANSPORTING dmbe1_t033.
WHEN '2'.
bseg_feld = 'BSEG-DMBE2'.
bseg-dmbe2 = ABS( postings-dmbtr ).
postings-dmbe2_t033 = postings-dmbtr.
MODIFY TABLE postings TRANSPORTING dmbe2_t033.
WHEN '3'.
bseg_feld = 'BSEG-DMBE3'.
bseg-dmbe3 = ABS( postings-dmbtr ).
postings-dmbe3_t033 = postings-dmbtr.
MODIFY TABLE postings TRANSPORTING dmbe3_t033.
ENDCASE.
PERFORM setzen2 USING bseg_feld text_dmbtr.
ENDIF.
ENDFORM. "post_line_hwtyp2
*---------------------------------------------------------------------*
* FORM POSTING_BI2 *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM posting_bi2 USING iaction LIKE action.
* PERFORM POSTING_REDUCE_FLEX_FIELDS TABLES BU_WAERTAB
* fieldtab_glu1.
DATA: wa_text10(10) TYPE c.
CLEAR postings.
DELETE post_collect WHERE dmbtr = 0.
LOOP AT post_collect.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 34 of 66
AT NEW zbukr.
SELECT SINGLE * FROM t001 WHERE bukrs = postings-bukrs.
ENDAT.
AT END OF vbund.
post_now = 'X'.
ENDAT.
AT END OF waers.
IF pa_waers NE space.
post_now = 'X'.
ENDIF.
ENDAT.
postings-sgtxt = postings-ktosl.
PERFORM read_t044kt USING post_collect-duevl
post_collect-tunit
post_collect-xdeb1
CHANGING t044kt-txt30.
* POSTINGS-SGTXT = T044KT-TXT30.
WRITE postings-hkont TO wa_text10 NO-ZERO.
CONCATENATE t044kt-txt30 text-116 wa_text10
INTO postings-sgtxt SEPARATED BY space.
postings-budat = p_bbudat.
postings-monat = p_bbupem.
postings-blart = p_blart.
postings-bldat = p_bldat.
IF post_now = 'X'.
post_now = space.
ADD 1 TO post_count.
ENDIF.
postings-post = post_count.
postings-bktxt = p_bktxt.
IF postings-bktxt = space. postings-bktxt = text-019. ENDIF.
APPEND postings.
ENDLOOP.
* reversal
PERFORM posting_reversal USING iaction.
ENDFORM. "POSTING_BI2
*---------------------------------------------------------------------*
* FORM POSTING_REVERSAL *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> IACTION *
*---------------------------------------------------------------------*
FORM posting_reversal USING iaction LIKE action.
DATA: shkzgx LIKE postings-shkzg1.
DATA: last_count LIKE post_count.
last_count = post_count.
LOOP AT postings WHERE rev_flag = space AND action = iaction.
postings-rev_flag = 'X'.
postings-budat = p_sbudat.
postings-monat = p_sbupem.
postings-blart = p_sblart.
postings-bldat = p_bldat.
t030b-bschs = postings-bschl1.
shkzgx = postings-shkzg1.
postings-bschl1 = postings-bschl2.
postings-shkzg1 = postings-shkzg2.
postings-bschl2 = t030b-bschs.
postings-shkzg2 = shkzgx.
* "H337646..
postings-post = postings-post + last_count.
IF postings-post > post_count.
post_count = postings-post.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 35 of 66
ENDIF.
postings-bktxt = text-020.
APPEND postings.
ENDLOOP.
CLEAR postings.
ENDFORM. "POSTING_REVERSAL
*&--------------------------------------------------------------------*
*& Form Postings_overflow
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM postings_overflow.
l_max = 9999999999999.
LOOP AT postings WHERE dmbtr > l_max OR wrbtr > l_max.
postings_ov = postings.
IF postings-dmbtr > l_max.
postings-dmbtr = l_max.
ENDIF.
IF postings-wrbtr > l_max.
postings-wrbtr = l_max.
ENDIF.
MODIFY postings. "max
postings-dmbtr = postings_ov-dmbtr - postings-dmbtr.
IF postings-dmbtr < 0. postings-dmbtr = 0. ENDIF.
postings-wrbtr = postings_ov-wrbtr - postings-wrbtr.
IF postings-wrbtr < 0. postings-wrbtr = 0. ENDIF.
APPEND postings.
ENDLOOP.
SORT postings BY bukrs rev_flag action ktosl.
ENDFORM. "Postings_overflow
*---------------------------------------------------------------------*
* FORM POSTING_CHG_REC *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> IACTION *
*---------------------------------------------------------------------*
FORM posting_chg_rec USING iaction LIKE action.
DATA: text10(10).
* PERFORM POSTING_REDUCE_FLEX_FIELDS TABLES BU_WAERTAB
* fieldtab_glu1.
CLEAR postings.
DELETE chg_rec_collect WHERE dmbtr = 0.
ADD 1 TO post_count.
LOOP AT chg_rec_collect.
AT END OF vbund.
post_now = 'X'.
ENDAT.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 36 of 66
ENDIF.
CONDENSE postings-sgtxt.
postings-budat = p_bbudat.
postings-monat = p_bbupem.
postings-blart = p_blart.
postings-bldat = p_bldat.
IF post_now = 'X'.
post_now = space.
ADD 1 TO post_count.
ENDIF.
postings-post = post_count.
postings-bktxt = p_bktxt.
IF postings-bktxt = space. postings-bktxt = text-019. ENDIF.
APPEND postings.
ENDLOOP.
* reversal
PERFORM posting_reversal USING iaction.
ENDFORM. "POSTING_CHG_REC
*---------------------------------------------------------------------*
* FORM POSTING_INVEST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> IACTION *
*---------------------------------------------------------------------*
FORM posting_invest USING iaction LIKE action.
* PERFORM POSTING_REDUCE_FLEX_FIELDS TABLES BU_WAERTAB
* fieldtab_glu1.
CLEAR postings.
DELETE invest_collect WHERE dmbtr = 0.
ADD 1 TO post_count.
LOOP AT invest_collect.
AT END OF vbund.
post_now = 'X'.
ENDAT.
postings-sgtxt = text-264.
postings-budat = p_bbudat.
postings-monat = p_bbupem.
postings-blart = p_blart.
postings-bldat = p_bldat.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 37 of 66
IF post_now = 'X'.
post_now = space.
ADD 1 TO post_count.
ENDIF.
postings-post = post_count.
postings-bktxt = p_bktxt.
IF postings-bktxt = space. postings-bktxt = text-019. ENDIF.
APPEND postings.
ENDLOOP.
* reversal
PERFORM posting_reversal USING iaction.
ENDFORM. "POSTING_INVEST
*---------------------------------------------------------------------*
* FORM POSTING_LINEX *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> IBSL *
* --> IKTO *
* --> ILINE *
*---------------------------------------------------------------------*
FORM posting_linex USING
ibsl LIKE postings-bschl1
ikto LIKE postings-konto1
CHANGING ipost_line LIKE post_line.
ADD 1 TO ipost_line.
CLEAR bseg.
ftpost-stype = 'P'.
ftpost-count = ipost_line.
* IF ikto = space. ikto = '?'.ENDIF.
PERFORM setzen USING 'BSEG-BSCHL' ibsl. "postingsschl
PERFORM setzen USING 'BSEG-HKONT' ikto.
*
WRITE postings-dmbtr CURRENCY postings-hwaer NO-SIGN
TO text_dmbtr.
postings-dmbe1_t033 = postings-dmbe2_t033 = postings-dmbe3_t033 = 0.
PERFORM post_line_hwtyp2 USING postings-hwtyp text_dmbtr.
* post additional parallel currency if wanted
PERFORM post_line_hwtyp2 USING hwtyp2 text_dmbtr.
PERFORM post_line_hwtyp2 USING hwtyp3 text_dmbtr.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 38 of 66
ADD_ACCT_ASS = postings-addaa
ID_LDGRP = ld_ldgrp
TABLES
batch_input_data = lt_ftpost.
* Transfer add. acc. assignments to batch-input
LOOP AT lt_ftpost.
PERFORM setzen USING lt_ftpost-fnam
lt_ftpost-fval.
SPLIT lt_ftpost-fnam at '-' INTO l1 l2.
IF l2 <> space.
ASSIGN COMPONENT l2 OF STRUCTURE postings TO <addaa>.
IF sy-subrc = 0.
<addaa> = lt_ftpost-fval.
MODIFY postings.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
APPEND bseg TO t_bseg.
ENDFORM. "POSTING_LINEX
*---------------------------------------------------------------------*
* FORM POSTING_ADDITIONAL_FIELDS *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> POSTKEY *
* --> ACCOUNT *
*---------------------------------------------------------------------*
FORM posting_additional_fields USING postkey LIKE bseg-bschl
account LIKE bseg-hkont.
DATA: inhalt LIKE ftpost-fval.
CHECK account NE space. "not when dummy account set
CHECK account NE '?'. "not when dummy account set
CHECK postkey NE space.
PERFORM posting_add_selection USING postkey
t001-bukrs account 'BSEG-VALUT'
sy-subrc.
IF sy-subrc = 0.
WRITE stichtag TO inhalt DD/MM/YY.
PERFORM setzen2 USING 'BSEG-VALUT' inhalt.
bseg-valut = stichtag.
ENDIF.
*---------------------------------------------------------------------*
* FORM POSTING_ADD_SELECTION *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> PA_BUSCHL *
* --> PA_BUKRS *
* --> PA_SAKNR *
* --> PA_FELD *
* --> RETURN *
*---------------------------------------------------------------------*
FORM posting_add_selection USING pa_buschl LIKE bseg-bschl
pa_bukrs LIKE bseg-bukrs
pa_saknr LIKE bseg-hkont
pa_feld TYPE c
return LIKE sy-subrc.
DATA:char(1).
TABLES : TBSL.
CHECK: pa_saknr NE space AND pa_saknr NE '?'.
CALL FUNCTION FI_FIELD_SELECTION_DETERMINE
EXPORTING
i_bschl = pa_buschl
i_bukrs = pa_bukrs
i_saknr = pa_saknr
IMPORTING
e_faus1 = tbsl-faus1
e_faus2 = tbsl-faus2
EXCEPTIONS
error_message = 4
OTHERS = 4.
return = sy-subrc.
CHECK return = 0.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 39 of 66
*---------------------------------------------------------------------*
* FORM SETZEN2
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
* --> FELDNAME
* --> FELDINHALT
*---------------------------------------------------------------------*
FORM setzen2 USING feldname feldinhalt.
CHECK feldinhalt NE space.
ftpost-fnam = feldname.
ftpost-fval = feldinhalt.
APPEND ftpost.
ENDFORM. "SETZEN2
*---------------------------------------------------------------------*
* FORM posting_sl_FIELDS
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
FORM posting_sl_fields.
DATA: l_ftpost LIKE ftpost OCCURS 0.
MOVE-CORRESPONDING postings TO sl_incl.
PERFORM POSTING_SL_GENERAL TABLES L_FTPOST USING SL_INCL.
ENDFORM. "posting_sl_FIELDS
*---------------------------------------------------------------------*
* FORM posting_sl_general
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
* --> L_FTPOST
* --> ISTRUCT
*---------------------------------------------------------------------*
FORM POSTING_SL_GENERAL TABLES L_FTPOST STRUCTURE FTPOST
USING istruct LIKE sl_incl.
DATA: BEGIN OF fieldtab_glu1. " OCCURS 200.
INCLUDE STRUCTURE DFIES.
DATA: END OF fieldtab_glu1.
TABLES: COBL. "BECAUSE OF ASSIGN TABLE FIELD
STATICS: inttab LIKE fieldtab_glu1 OCCURS 10.
DATA: fn(60).
DATA: fg(60).
FIELD-SYMBOLS: <f1>, <f2>.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 40 of 66
ENDIF.
ENDLOOP.
ENDFORM. "posting_sl_FIELDS
*---------------------------------------------------------------------*
* FORM posting_sl_fields_active
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
* --> IBUKRS
* --> EFLAG
*---------------------------------------------------------------------*
FORM posting_sl_fields_active USING ibukrs LIKE t001-bukrs
CHANGING eflag TYPE c.
ENDFORM. "posting_sl_fields_active
*---------------------------------------------------------------------*
* FORM POSTING_DOCUMENT *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> I_MODE *
*---------------------------------------------------------------------*
FORM posting_document USING i_mode TYPE c.
STATICS: d00001_flag(1).
DATA: mode.
DATA: subrc LIKE sy-subrc.
DATA: func,
user LIKE apqi-userid.
DATA: text_datum(8).
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 41 of 66
ENDIF.
IF sy-subrc NE 0.
CLEAR fimsg.
fimsg-msgv1 = text-240.
fimsg-msgv2 = par_bnam.
fimsg-msgid = 'FR'.
fimsg-msgty = 'I'.
fimsg-msgno = '600'.
PERFORM log_fimsg USING '18'
probclass_high.
ENDIF.
d00001_flag = '1'.
ENDIF.
ELSE.
* already open
IF i_mode = 'CLOSE'.
* Mappe schliessen
IF g_ledger IS INITIAL.
CALL FUNCTION POSTING_INTERFACE_END .
ENDIF.
CLEAR fimsg.
IF par_bi NE space.
IF g_ledger IS INITIAL.
ENDIF.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 42 of 66
ENDIF.
WRITE postings-budat TO text_datum.
PERFORM setzen2 USING 'BKPF-BUDAT' text_datum. "Buchungsdatum
bkpf-budat = postings-budat.
WRITE p_bldat TO text_datum.
PERFORM: setzen2 USING 'BKPF-BLDAT' text_datum, "Belegdatum
setzen USING 'BKPF-BLART' postings-blart, "Belart
setzen USING 'BKPF-MONAT' postings-monat.
bkpf-bldat = p_bldat.
bkpf-monat = postings-monat.
PERFORM: setzen USING 'BKPF-WAERS' postings-waers,
setzen USING 'BKPF-BUKRS' postings-bukrs,
setzen USING 'BKPF-BKTXT' postings-bktxt.
IF postings-vbund NE space.
IF t003-blart NE postings-blart.
SELECT SINGLE * FROM t003 WHERE blart = postings-blart.
ENDIF.
IF t003-xmges NE space AND t003-xgsub = space.
PERFORM setzen USING 'BKPF-VBUND' postings-vbund.
ENDIF.
ENDIF.
APPEND bkpf TO t_bkpf.
EXIT. "create head
ENDIF.
IF i_mode = 'POST'.
* ENDIF.
IF sy-subrc NE 0 OR subrc NE 0.
lf_docnr = text-402.
lf_docnr+6 = fimsg-msgno.
CLEAR lf_gjahr.
MOVE-CORRESPONDING syst TO fimsg.
PERFORM log_fimsg USING '20'
probclass_high.
ELSE.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 43 of 66
IF par_bnam = SPACE.
ADD 1 TO g_i_postok.
GET PARAMETER ID 'BLN' FIELD lf_docnr.
GET PARAMETER ID 'GJR' FIELD lf_gjahr.
ENDIF.
ENDIF.
* tabelle buchung mit belegnummer füllen
post_index = postings-post.
LOOP AT postings WHERE post = post_index.
postings-belnr = lf_docnr.
postings-gjahr = lf_gjahr.
MODIFY postings.
ENDLOOP.
ENDIF. "Batch input wanted
ENDIF. "mode POST
ENDFORM. "POSTING_DOCUMENT
*---------------------------------------------------------------------*
* FORM READ_T030U *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> IPOS *
*---------------------------------------------------------------------*
FORM read_t030u USING iktosl LIKE postings-ktosl
ihkont LIKE postings-hkont.
CLEAR t030u.
SELECT SINGLE * FROM t030b WHERE ktosl = iktosl.
IF sy-subrc NE 0.
CLEAR fimsg.
fimsg-msgid = 'FR'.
fimsg-msgty = 'E'.
fimsg-msgno = '005'.
fimsg-msgv4 = t001-ktopl.
fimsg-msgv3 = p_bwber.
fimsg-msgv1 = iktosl.
fimsg-msgv2 = ihkont.
PERFORM log_fimsg USING '13'
probclass_high.
ENDIF.
CLEAR fimsg.
fimsg-msgid = 'FR'.
fimsg-msgty = 'E'.
fimsg-msgno = '005'.
fimsg-msgv4 = t001-ktopl.
fimsg-msgv3 = p_bwber.
fimsg-msgv1 = iktosl.
fimsg-msgv2 = ihkont.
PERFORM log_fimsg USING '13'
probclass_high.
ENDIF.
ENDIF.
ENDFORM. "READ_T030U
*---------------------------------------------------------------------*
* FORM LISTE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM liste.
caller = 'LISTE'.
h_variant-handle = '0001'.
h_repid = sy-repid.
h_tabname_item = 'LIST_ITEM'.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 44 of 66
ENDIF.
ENDFORM. "LISTE
*---------------------------------------------------------------------*
* FORM FILL_KEYINFO *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> E_KEYINFO *
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
* FORM LIST_FILL_FIELDCAT *
*---------------------------------------------------------------------*
* Feldkatalog für die gewünschte Ausgabe fuellen *
*---------------------------------------------------------------------*
* --> TI_FIELDCAT *
* --> I_ITEM *
* --> I_HEAD *
*---------------------------------------------------------------------*
FORM LIST_FILL_FIELDCAT TABLES TI_FIELDCAT STRUCTURE T_FIELDCAT
USING i_item TYPE slis_tabname
i_head TYPE slis_tabname.
* generate fieldcat
PERFORM LIST_MERGE_FIELDCAT TABLES TI_FIELDCAT
USING i_item.
* currency local
PERFORM:
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'DMBTR' 'LC',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'BDIFF' 'LC',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'BWDIFF' 'LC',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'BDMBTR' 'LC',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'BUBETR' 'LC'.
* transaction curreny
PERFORM:
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'WRBTR' 'TC',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'GBETR' 'TC'.
* hide the fields not to be shown
PERFORM:
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'ZBUKR' 'H',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'BEWGP' 'H',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'SELKEY' 'T'.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 45 of 66
* setup F1 Help
PERFORM:
LIST_SET_ATTRIBUTE TABLES TI_FIELDCAT "BEWERTETER BETRAG
USING i_item 'BDMBTR' 'ROLLNAME' 'BDMBTR',
LIST_SET_ATTRIBUTE TABLES TI_FIELDCAT
USING i_item 'WRBTR' 'ROLLNAME' 'WRBTR', "FW Betrag
LIST_SET_ATTRIBUTE TABLES TI_FIELDCAT
USING i_item 'DMBTR' 'ROLLNAME' 'DMBTR'. "HW Betrag
*---------------------------------------------------------------------*
* FORM LIST_MERGE_FIELDCAT *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> TI_FIELDCAT *
* --> I_TAB *
*---------------------------------------------------------------------*
FORM LIST_MERGE_FIELDCAT TABLES TI_FIELDCAT STRUCTURE T_FIELDCAT
USING i_tab TYPE slis_tabname.
CALL FUNCTION REUSE_ALV_FIELDCATALOG_MERGE
EXPORTING
i_program_name = h_repid
i_internal_tabname = i_tab
i_inclname = h_repid "
i_client_never_display = 'X'
i_bypassing_buffer = 'X'
CHANGING
ct_fieldcat = ti_fieldcat[]
EXCEPTIONS
OTHERS = 3.
IF sy-subrc NE 0.
MOVE-CORRESPONDING syst TO fimsg.
PERFORM log_fimsg USING '15'
probclass_low.
ENDIF.
ENDFORM. "LIST_MERGE_FIELDCAT
*---------------------------------------------------------------------*
* FORM LIST_SET_FIELD *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> TI_FIELDCAT *
* --> I_TABNAME *
* --> I_FIELDNAME *
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 46 of 66
* --> ACTION *
*---------------------------------------------------------------------*
FORM LIST_SET_FIELD TABLES TI_FIELDCAT STRUCTURE T_FIELDCAT
USING i_tabname TYPE slis_tabname
i_fieldname TYPE slis_fieldname
action TYPE c.
READ TABLE ti_fieldcat WITH KEY tabname = i_tabname
fieldname = i_fieldname.
IF sy-subrc = 0.
IF action = 'T'. "set tech field
ti_fieldcat-tech = 'X'.
ELSEIF action = 'NK'. "no key field
ti_fieldcat-key = space.
ELSEIF action = 'KY'. "is key field
ti_fieldcat-key = 'X'.
ELSEIF action = 'LC'. "set currency
ti_fieldcat-cfieldname = 'HWAER'.
ti_fieldcat-outputlen = 16.
ELSEIF action = 'TC'. "set currency
ti_fieldcat-cfieldname = 'WAERS'.
ti_fieldcat-outputlen = 16.
ELSEIF action = 'PC'. "set currency
ti_fieldcat-cfieldname = 'HWAER2'.
ti_fieldcat-outputlen = 16.
ELSEIF action = 'S'. "set field to display.
ti_fieldcat-no_out = space.
ELSEIF action = 'H'. "set field to NOT display.
t_fieldcat-no_out = 'X'.
IF t_fieldcat-key = 'X'.
t_fieldcat-key = ' '.
ENDIF.
ENDIF.
*---------------------------------------------------------------------*
* FORM LIST_SET_TEXT *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> TI_FIELDCAT *
* --> I_TABNAME *
* --> I_FIELDNAME *
* --> ITEXT *
*---------------------------------------------------------------------*
FORM LIST_SET_TEXT TABLES TI_FIELDCAT STRUCTURE T_FIELDCAT
USING i_tabname TYPE slis_tabname
i_fieldname TYPE slis_fieldname
itext TYPE c.
READ TABLE ti_fieldcat WITH KEY tabname = i_tabname
fieldname = i_fieldname.
IF sy-subrc = 0.
ti_fieldcat-reptext_ddic = itext.
ti_fieldcat-seltext_l = itext.
ti_fieldcat-seltext_m = itext.
ti_fieldcat-seltext_s = itext.
*---------------------------------------------------------------------*
* FORM list_set_attribute *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> TI_FIELDCAT *
* --> I_TABNAME *
* --> I_FIELDNAME *
* --> I_TARGET *
* --> I_VALUE *
*---------------------------------------------------------------------*
FORM LIST_SET_ATTRIBUTE TABLES TI_FIELDCAT STRUCTURE T_FIELDCAT
USING i_tabname TYPE slis_tabname
i_fieldname TYPE slis_fieldname
i_target TYPE c
i_value.
FIELD-SYMBOLS: <s>.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 47 of 66
ENDFORM. "LIST_SET_ATTRIBUTE
*---------------------------------------------------------------------*
* FORM REGISTER_EVENTS *
*---------------------------------------------------------------------*
* Definiton of Top-of-page *
* end of list *
* ........ *
*---------------------------------------------------------------------*
* --> T_EVENT *
*---------------------------------------------------------------------*
FORM LIST_REGISTER_EVENTS TABLES T_EVENT TYPE SLIS_T_EVENT.
ENDIF.
*---------------------------------------------------------------------*
* FORM LIST_SORTINFO_MAKE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> IT_SLIS_SORT *
*---------------------------------------------------------------------*
FORM list_sortinfo_make CHANGING it_slis_sort TYPE slis_t_sortinfo_alv.
DATA: rs_sort TYPE slis_sortinfo_alv,
spos LIKE rs_sort-spos.
CLEAR it_slis_sort.
*---------------------------------------------------------------------*
* FORM LIST_top_OF_LIST *
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 48 of 66
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM list_top_of_list. "#EC CALLED
*
bhdgd-inifl = '0'.
* Setzen Werte fuer Batch-Heading-Routine
bhdgd-lines = sy-linsz.
IF bhdgd-lines GT 254. bhdgd-lines = 254. ENDIF.
bhdgd-uname = sy-uname.
bhdgd-repid = sy-repid.
bhdgd-line1 = text-500.
bhdgd-line2 = title.
bhdgd-bukrs = space.
WRITE stichtag TO sy-msgv1 DD/MM/YY.
REPLACE '&1' WITH sy-msgv1 INTO bhdgd-line1.
* holen der sortinfo
CALL FUNCTION REUSE_ALV_LIST_LAYOUT_INFO_GET
IMPORTING
et_sort = t_slis_sort
EXCEPTIONS
OTHERS = 0.
ENDFORM. "LIST_top_OF_LIST
*---------------------------------------------------------------------*
* FORM LIST_TOP_OF_PAGE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM list_top_of_page. "#EC CALLED
bhdgd-bukrs = list_item-bukrs.
bhdgd-werte = bhdgd-bukrs.
PERFORM batch-heading(rsbtchh0).
CALL FUNCTION REUSE_ALV_COMMENTARY_WRITE
EXPORTING
it_list_commentary = gt_list_top_of_page.
ENDFORM. "LIST_TOP_OF_PAGE
*---------------------------------------------------------------------*
* FORM E04_COMMENT_BUILD *
*---------------------------------------------------------------------*
* Top-of-page Aufbau *
*---------------------------------------------------------------------*
* --> E04_LT_TOP_OF_PAGE *
*---------------------------------------------------------------------*
FORM list_top_build USING e04_lt_top_of_page TYPE slis_t_listheader.
DATA: ls_line TYPE slis_listheader.
*
LOOP AT e04_lt_top_of_page INTO ls_line.
IF ls_line-typ = 'A'. DELETE e04_lt_top_of_page. ENDIF.
ENDLOOP.
* Listenüberschrift: Typ H
CASE caller.
WHEN space.
REFRESH e04_lt_top_of_page.
CLEAR ls_line.
* ls_line-typ = 'H'.
* ls_line-info = sy-title.
* APPEND ls_line TO e04_lt_top_of_page.
* Kopfinfo: Typ S
CLEAR ls_line.
ls_line-typ = 'A'.
ls_line-info = text-102.
WRITE stichtag TO ls_line-info+50 DD/MM/YY. CONDENSE ls_line-info.
APPEND ls_line TO e04_lt_top_of_page.
ENDCASE.
ENDFORM. "LIST_TOP_BUILD
*---------------------------------------------------------------------*
* FORM LIST_END_OF_LIST *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM list_end_of_list. "#EC CALLED
*
IF p_lvarsum = 'X'. EXIT. ENDIF. "not for the sum report
IF NOT sy-spono IS INITIAL.
t_slis_layout_alv-list_append = 'X'.
IF caller = 'LISTE' AND NOT sy-batch IS INITIAL.
IF sy-batch <> space.
MESSAGE s600 WITH text-080 sy-spono.
ENDIF.
t_spono-spooltxt = text-080.
t_spono-spoolid = sy-spono. APPEND t_spono TO gt_spono.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 49 of 66
PERFORM druck_buchung.
* BALV with new spool no
PERFORM druck_meldung.
t_spono-spooltxt = text-044.
t_spono-spoolid = sy-spono. APPEND t_spono TO gt_spono.
IF sy-batch <> space.
COMMIT WORK.
MESSAGE s600 WITH text-044 sy-spono.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. "LIST_END_OF_LIST
*---------------------------------------------------------------------*
* FORM LIST_USER_COMMAND *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> I_UCOMM *
* --> I_SELFIELD *
*---------------------------------------------------------------------*
FORM list_user_command USING i_ucomm LIKE sy-ucomm
i_selfield TYPE slis_selfield. "#EC CALLED
WHEN 'POST'.
PERFORM druck_buchung.
WHEN 'LIST'.
CLEAR i_ucomm.
EXIT.
* perform liste.
WHEN 'ERRL'.
PERFORM druck_meldung.
* Back Exit Cancel
WHEN '&F03' OR '&F15' OR '&F12'.
CLEAR i_ucomm.
WHEN 'ZEIL'.
PERFORM user_command_zeil USING i_ucomm i_selfield.
WHEN '&IC1'.
PERFORM user_command_zeil USING i_ucomm i_selfield.
ENDCASE.
ENDFORM. " USER_COMMAND
*---------------------------------------------------------------------*
* FORM USER_COMMAND_ZEIL *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> I_UCOMM *
* --> I_SELFIELD *
*---------------------------------------------------------------------*
FORM user_command_zeil
USING i_ucomm LIKE sy-ucomm
i_selfield TYPE slis_selfield. "#EC CALLED
INCLUDE RFEPOSC5.
* DATA: BUZTAB-ZEILE LIKE SY-TABIX. " anzuzeigende Zeile
* end for dialog
REFRESH buztab.
ENDIF.
ENDIF.
IF buztab-zeile IS INITIAL.
MESSAGE e315(f4).
ENDIF.
x_nochange = space.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 50 of 66
buztab
x_commit.
IF x_commit = 'X'.
COMMIT WORK.
ENDIF.
ENDFORM. "USER_COMMAND_ZEIL
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> ITABNAME *
*---------------------------------------------------------------------*
*FORM flex_felder_erl_aufbauen USING itabname LIKE dfies-tabname.
* DATA: inttab LIKE fieldtab_glu1 OCCURS 10.
LOOP AT postings.
clear t_item. "note 1119122
AT NEW post.
h_flag = '1'.
ENDAT.
IF h_flag = '1'.
MOVE-CORRESPONDING postings TO t_header.
t_header-selkey = postings-post.
IF gd_ldgrp NE SPACE AND postings-ldgrp EQ SPACE.
ld_ldgrp = gd_ldgrp.
ELSEIF postings-ldgrp NE SPACE.
ld_ldgrp = postings-ldgrp.
ENDIF.
MOVE ld_ldgrp TO t_header-ldgrp.
APPEND t_header.
h_flag = '0'.
ENDIF.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 51 of 66
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 52 of 66
bhdgd-line1 = text-500.
bhdgd-line2 = title.
WRITE stichtag TO lf_text_c DD/MM/YY.
REPLACE '&1' WITH lf_text_c INTO bhdgd-line1.
ENDFORM. "DRUCK_BUCHUNG
*---------------------------------------------------------------------*
FORM druck_meldung.
* CATCH SYSTEM-EXCEPTIONS import_mismatch_errors = 8.
DATA: l_s_log TYPE bal_s_log.
IF 0 = 1.
ENDFORM. "DRUCK_MELDUNG
*---------------------------------------------------------------------*
* FORM LOG_FIMSG *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> ISORT *
*---------------------------------------------------------------------*
FORM log_fimsg_old USING isort LIKE fimsg-msort.
fimsg-msort = isort.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 53 of 66
l_s_msg-alsort = isort.
* define data of message for Application Log
l_s_msg-msgty = fimsg-msgty.
l_s_msg-msgid = fimsg-msgid.
l_s_msg-msgno = fimsg-msgno.
l_s_msg-msgv1 = fimsg-msgv1.
l_s_msg-msgv2 = fimsg-msgv2.
l_s_msg-msgv3 = fimsg-msgv3.
l_s_msg-msgv4 = fimsg-msgv4.
l_s_msg-probclass = i_probclass.
* ... see structure BAL_S_LOG or report SBAL_DEMO_02 for ...
* ... further data which can be added to a message ...
ENDFORM. "LOG_FIMSG
*---------------------------------------------------------------------*
* FORM log_fimsg_create *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM log_fimsg_create.
DATA:
g_s_log TYPE bal_s_log,
g_value TYPE i.
g_s_log-extnumber = text-044.
IF NOT sy-spono IS INITIAL.
WRITE: 'for Spool:'(045) TO g_s_log-extnumber+20.
CONDENSE g_s_log-extnumber.
WRITE: sy-spono TO g_s_log-extnumber+50.
CONDENSE g_s_log-extnumber.
ENDIF.
g_s_log-object = space.
g_s_log-subobject = space.
g_s_log-aldate = sy-datum. "wie in RSBTCHH0
g_s_log-altime = sy-uzeit.
g_s_log-aluser = sy-uname.
g_s_log-altcode = space.
g_s_log-alprog = sy-repid.
g_s_log-almode = space.
g_s_log-alprog = sy-repid.
* G_S_LOG-PARAMS = space.
ENDFORM. "log_fimsg_create
*&---------------------------------------------------------------------*
*& Form GRID_SETUP
*&---------------------------------------------------------------------*
* text
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 54 of 66
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM grid_setup.
CHECK p_methd NE space.
SELECT * FROM t044l
WHERE methd = p_methd.
MOVE-CORRESPONDING t044l TO x_t044l.
x_t044l-gtdatum = stichtag.
* use all documents
IF t044l-duevl = 0. x_t044l-gtdatum = '19000101'. ENDIF.
CASE t044l-tunit.:
WHEN '1'. "* in days
ADD t044l-duevl TO x_t044l-gtdatum .
WHEN '2'. "* in month
CALL FUNCTION MONTH_PLUS_DETERMINE
EXPORTING
months = t044l-duevl
olddate = x_t044l-gtdatum
IMPORTING
newdate = x_t044l-gtdatum.
ENDSELECT.
SORT: x_t044ld, x_t044l.
ENDFORM. " GRID_SETUP
*---------------------------------------------------------------------*
* FORM setup_eg93 *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM setup_eg93.
DATA: alt LIKE t044l-ktosl.
DATA: standard LIKE t044l-methd VALUE 'SAP'.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 55 of 66
DATA: ld_worklist_flag(1).
DATA: ls_detail LIKE schedman_detail_user.
DATA: lt_selkrit LIKE schedman_selkrit OCCURS 0 WITH HEADER LINE.
DATA: lt_param LIKE schedman_selkrit OCCURS 0 WITH HEADER LINE.
DATA: ls_witem LIKE scma_witem.
DATA: LS_SCMA_EVENT LIKE SCMA_EVENT.
DATA: ls_ext LIKE schedman_ext.
DATA: ls_message LIKE schedman_message,
ld_objects LIKE smmain-nr_of_objects,
ld_aplstat LIKE smmain-aplstat.
* muss in scmatasks
ls_detail-repid = sy-repid.
ls_detail-variante = sy-slset. "<<die variante
ls_detail-application = 'FI-GL'.
if PAR_BI = space.
ls_detail-TESTFLAG = 'X'.
endif.
* save some select-options
CLEAR lt_selkrit.
lt_selkrit-structure = 'BKPF'.
lt_selkrit-field = 'BUKRS'.
LOOP AT bukrs.
* lt_selkrit-entry = .
MOVE-CORRESPONDING bukrs TO lt_selkrit.
APPEND lt_selkrit.
ENDLOOP.
*
lt_param-entry = 1.
lt_param-optio = 'EQ'.
lt_param-structure = 'RFPDO'.
lt_param-field = 'F100STAG'.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 56 of 66
lt_param-low = stichtag.
APPEND lt_param.
*
IF title NE space.
lt_param-structure = 'RFPDO'.
lt_param-field = 'ALLGLINE'.
lt_param-low = title.
APPEND lt_param.
ENDIF.
*
lt_param-structure = 'RFPDO3'.
lt_param-field = 'F101METHD'.
lt_param-low = p_methd.
APPEND lt_param.
IF par_bnam NE space.
lt_param-structure = 'RFPDO'.
lt_param-field = 'ALLGBINA'.
lt_param-low = par_bnam.
APPEND lt_param.
ENDIF.
IF icommand = 'START'.
*.FILL INFORMATION FROM WORKFLOW-INCLUDE INTO STRUCTURE
clear ls_witem.
ls_witem-wf_witem = wf_witem.
ls_witem-wf_wlist = wf_wlist.
CALL FUNCTION KPEP_MONI_INIT_RECORD
EXPORTING
ls_detail = ls_detail
LS_WITEM = ls_witem
* LS_APPL =
* LD_WORKLIST_FLAG = ' '
IMPORTING
ls_key = ls_key_static
TABLES
lt_selkrit = lt_selkrit
lt_param = lt_param.
* ls_message-LOG_HANDLE = g_log_handle.
LD_APLSTAT = '0'.
LS_SCMA_EVENT-WF_EVENT = CS_WF_EVENTS-FINISHED. " continue the flow
if G_E_MSG ='X'.
ld_aplstat = '4'. "set status for schedman
LS_SCMA_EVENT-WF_EVENT = CS_WF_EVENTS-ERROR. " stop flow
IF sy-batch = 'X'.
MESSAGE s348(sy).
ENDIF.
ENDIF. "error occurred
LS_SCMA_EVENT-wf_witem = wf_witem.
LS_SCMA_EVENT-wf_okey = wf_okey.
ENDFORM. "schedman_start_stop
*---------------------------------------------------------------------*
* FORM free_selections
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
FORM free_selections.
*? DATA BEGIN OF P_TABLES OCCURS 10.
*? INCLUDE STRUCTURE RSDSTABS.
*? DATA END OF P_TABLES.
DATA BEGIN OF TABLES_TAB OCCURS 10.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 57 of 66
ds_expr_tab = ds_texpr-expr_tab.
fields-tablename = ds_texpr-tablename.
LOOP AT ds_expr_tab INTO ds_expr_tab_line
WHERE fieldname <> space.
fields-fieldname = ds_expr_tab_line-fieldname.
collect fields.
ENDLOOP.
ENDLOOP.
*** because these are already on the selection-screen nur bei 'F'
*FIELDS_NOT-TABLENAME = TABLES_TAB-PRIM_TAB.
*fields_not-FIELDNAME = 'BUKRS'. append fields_not.
*fields_not-FIELDNAME = 'WAERS'. append fields_not.
*fields_not-FIELDNAME = 'LIFNR'. append fields_not.
*fields_not-FIELDNAME = 'HKONT'. append fields_not.
*fields_not-FIELDNAME = 'KUNNR'. append fields_not.
*fields_not-FIELDNAME = 'BELNR'. append fields_not.
***
***
CALL FUNCTION FREE_SELECTIONS_INIT
EXPORTING
kind = 'T'
* Alte Abgrenzungen erscheinen wieder
expressions = fs_dyns-texpr
* FIELD_GROUPS_KEY =
* RESTRICTION =
* ALV =
* CURR_QUAN_PROG = SY-CPROG
* CURR_QUAN_RELATION =
IMPORTING
selection_id = selection_id
where_clauses = fs_dyns-clauses
expressions = fs_dyns-texpr
field_ranges = fs_dyns-trange
number_of_active_fields = fs_num
TABLES
TABLES_TAB = TABLES_TAB
fields_tab = fields
* FIELD_DESC =
* FIELD_TEXTS =
* EVENTS =
* EVENT_FIELDS =
fields_not_selected = fields_not
EXCEPTIONS
fields_incomplete = 1
fields_no_join = 2
field_not_found = 3
NO_TABLES = 4
table_not_found = 5
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 58 of 66
expression_not_supported = 6
incorrect_expression = 7
illegal_kind = 8
area_not_found = 9
inconsistent_area = 10
kind_f_no_fields_left = 11
kind_f_no_fields = 12
too_many_fields = 13
dup_field = 14
field_no_type = 15
field_ill_type = 16
dup_event_field = 17
node_not_in_ldb = 18
area_no_field = 19
OTHERS = 20
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CHECK sy-subrc = 0.
CALL FUNCTION FREE_SELECTIONS_DIALOG
EXPORTING
selection_id = selection_id
title = 'Freie Selektion '(013)
* FRAME_TEXT = ' '
* STATUS =
* AS_WINDOW = ' '
* START_ROW = 2
* START_COL = 2
* NO_INTERVALS = ' '
* JUST_DISPLAY = ' '
* PFKEY =
* ALV = ' '
* TREE_VISIBLE = 'X'
* DIAG_TEXT_1 =
* DIAG_TEXT_2 =
* WARNING_TITLE =
IMPORTING
where_clauses = fs_dyns-clauses
expressions = fs_dyns-texpr
field_ranges = fs_dyns-trange
number_of_active_fields = fs_num
TABLES
fields_tab = fields
* FCODE_TAB =
fields_not_selected = fields_not
EXCEPTIONS
* internal_error =
* no_action =
* selid_not_found =
* illegal_status =
OTHERS = 0.
ENDFORM. "free_selections
*&---------------------------------------------------------------------*
*& Form FS_SET_SSCRTEXTS_DYNSEL
*&---------------------------------------------------------------------*
* Text für Drucktaste
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fs_set_sscrtexts_dynsel CHANGING p_text " LIKE SSCRTEXTS-DYNSEL.
LIKE smp_dyntxt.
IF fs_num > 0.
WRITE fs_num TO l_text-icon_text(2).
MOVE 'active'(271) TO l_text-icon_text+3. "#EC *
ENDIF.
p_text = l_text.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 59 of 66
*----------------------------------------------------------------------*
FORM free_selections_build.
* free selections.
CLEAR bseg_clauses.
* MOVE 'BSEG' TO DS_CLAUSES-TABLENAME.
READ TABLE fs_dyns-clauses
WITH TABLE KEY tablename = 'BSEG' INTO bseg_clauses.
ENDFORM. "list_config_list
*---------------------------------------------------------------------*
* FORM acc_principle_set
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
* --> IBWBER
* --> E_LEDGER
* --> E_ACC_PRINCIPLE
*---------------------------------------------------------------------*
FORM acc_principle_set USING ibwber LIKE t033-bwber
CHANGING e_ldgrp LIKE gd_ldgrp
e_acc_principle TYPE accounting_principle.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 60 of 66
no_ledger_assignment = 1
no_acc_principle_assignment = 2
OTHERS = 3.
*
CASE sy-subrc.
WHEN 1.
MESSAGE i889 INTO g_dummy WITH e_acc_principle.
MOVE-CORRESPONDING syst TO fimsg.
PERFORM log_fimsg USING '01' probclass_low.
WHEN 2 OR 3.
IF 1 = 2. MESSAGE e894. ENDIF.
CALL FUNCTION CUSTOMIZED_MESSAGE
EXPORTING
I_ARBGB = 'FR'
I_DTYPE = 'E'
I_MSGNR = '894'
I_VAR01 = ibwber.
ENDCASE.
ENDFORM. "acc_principle_set
*&--------------------------------------------------------------------*
*& Form file_transfer
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->IBELEGE text
* -->IMODE text
*---------------------------------------------------------------------*
FORM file_transfer USING ibelege STRUCTURE belege
imode TYPE c.
END OF out.
STATICS: count TYPE i.
ENDCASE.
ADD 1 TO count.
ENDFORM. "file_transfer
*&--------------------------------------------------------------------*
*& Form file_io
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->IMODE text
*---------------------------------------------------------------------*
FORM file_io USING imode TYPE c.
CHECK p_file <> space.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 61 of 66
CASE imode.
WHEN 'O'.
OPEN DATASET p_flnam FOR OUTPUT IN BINARY MODE.
IF sy-subrc <> 0.
MESSAGE e600 WITH 'Fehler beim Öffnen der Datei'(006) p_flnam.
ENDIF.
WHEN 'C'.
CLOSE DATASET p_flnam.
MESSAGE i600 WITH 'Erzeugte Datei:'(004) p_flnam
INTO g_dummy.
MOVE-CORRESPONDING syst TO fimsg.
PERFORM log_fimsg USING '20'
probclass_none.
* report number of records
PERFORM file_transfer USING belege 'C'.
ENDCASE.
ENDFORM. "file_io
*for gl accounts master vbund is empty but line item vbund is filled
*then clear it
FORM check_buvs CHANGING ivbund.
CHECK ivbund <> space AND ska1-vbund IS INITIAL.
SELECT SINGLE * FROM bseg WHERE bukrs = belege-bukrs
AND belnr = belege-belnr
AND gjahr = belege-gjahr
AND buzei = belege-buzei.
* this is the case when cross company used
IF sy-subrc = 0 AND bseg-ktosl = 'BUV'.
ivbund = ska1-vbund.
ENDIF.
ENDFORM. "check_BUVs
*&---------------------------------------------------------------------*
*& Form get_clearing_accounts
*&---------------------------------------------------------------------*
* Read table T001U for account numbers used for clearing
* between company codes. Read table TBSL to determine KOART.
* -> fill x_t001u_ka
*----------------------------------------------------------------------*
FORM get_clearing_accounts.
DATA: BEGIN OF x_t001u_bs OCCURS 10, "table T001U with post.key
bukrs LIKE t001u-vbukr,
bschl LIKE t001u-bschs,
konto LIKE t001u-konts,
END OF x_t001u_bs.
IF wa_tbsl-koart NE space.
x_t001u_ka-bukrs = x_t001u_bs-bukrs.
x_t001u_ka-konto = x_t001u_bs-konto.
x_t001u_ka-koart = wa_tbsl-koart.
COLLECT x_t001u_ka.
ENDIF.
ENDLOOP.
ENDFORM. " get_clearing_accounts
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 62 of 66
*&---------------------------------------------------------------------*
*& Form check_xhkom
*&---------------------------------------------------------------------*
* Check whether G/L account number (rec. account) in BSEG-HKONT
* has been set assigned manually in the document line item
*----------------------------------------------------------------------*
FORM check_xhkom USING p_saknr p_hkont p_bukrs p_belnr p_gjahr p_buzei
CHANGING p_xhkom.
DATA: wa_xhkom LIKE bseg-xhkom.
*
CLEAR p_xhkom.
IF NOT p_saknr IS INITIAL AND p_saknr NE p_hkont.
SELECT SINGLE xhkom FROM bseg INTO wa_xhkom
WHERE bukrs = p_bukrs
AND belnr = p_belnr
AND gjahr = p_gjahr
AND buzei = p_buzei.
IF sy-subrc = 0.
p_xhkom = wa_xhkom.
ENDIF.
ENDIF.
ENDFORM. " check_xhkom
*&---------------------------------------------------------------------*
*& Form check_glflex_active
*&---------------------------------------------------------------------*
* Prüfung, ob GLFlex aktiv ist.
*----------------------------------------------------------------------*
FORM check_glflex_active USING cga_bukrs LIKE t001-bukrs
CHANGING cga_active TYPE c.
DATA: ld_active TYPE boole_d.
*&--------------------------------------------------------------------*
*& Form split_set
*&--------------------------------------------------------------------*
FORM split_set USING i_bukrs LIKE t001-bukrs
CHANGING eflag LIKE split_flag.
*&---------------------------------------------------------------------*
*& Form collect_posting_split
*&---------------------------------------------------------------------*
FORM collect_tab_split USING cps_belege STRUCTURE belege
cps_action TYPE c.
* Local data structures for split info in New G/L
DATA: ls_spl_item TYPE glt0_s_spl_doc,
lt_spl_doc TYPE glt0_t_spl_doc.
DATA: ld_spl_subrc LIKE sy-subrc.
DATA: BEGIN OF ls_lcamounts,
wrbtr TYPE wrbtr,
dmbtr TYPE dmbtr,
dmbe2 TYPE dmbe2,
dmbe3 TYPE dmbe3,
END OF ls_lcamounts.
CLEAR ls_spl_item.
REFRESH lt_spl_doc.
ls_spl_item-bukrs = cps_belege-bukrs.
ls_spl_item-gjahr = cps_belege-gjahr.
ls_spl_item-belnr = cps_belege-belnr.
ls_spl_item-buzei = cps_belege-buzei.
ls_spl_item-wrbtr = cps_belege-wrbtr.
ls_spl_item-dmbtr = cps_belege-bdmbtr.
* ls_spl_item-dmbe2 = cps_belege-dmbe2.
* ls_spl_item-dmbe3 = cps_belege-dmbe3.
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 63 of 66
EXPORTING
IS_ITEM = ls_spl_item
* ID_LEDGER = ' '
ID_BS_FIELDS = 'X'
IMPORTING
ET_SPLDOC = lt_spl_doc
EXCEPTIONS
* INTERNAL_ERROR = 1
OTHERS = 2.
ld_spl_subrc = sy-subrc.
ENDIF.
* If no split info is found append at least one entry for later collect
IF ld_spl_subrc <> 0 OR lt_spl_doc IS INITIAL.
APPEND ls_spl_item TO lt_spl_doc.
ENDIF.
* INV - Investitionen
WHEN act3.
MOVE-CORRESPONDING ls_spl_item TO invest_collect.
invest_collect-hwaer = haus-waers.
IF pa_waers = space. "post in LC
invest_collect-waers = invest_collect-hwaer.
invest_collect-wrbtr = ls_spl_item-dmbtr.
IF invest_collect-hwtyp <> '1'.
invest_collect-wrbtr = 0.
ENDIF.
ENDIF.
COLLECT invest_collect.
ENDCASE.
ENDLOOP.
ENDFORM. " collect_posting_split
*---------------------------------------------------------------------*
* FORM ska1_get
*---------------------------------------------------------------------*
FORM ska1_get USING ikto LIKE postings-hkont
CHANGING ebilk LIKE ska1-xbilk.
STATICS: begin of t_ska1 occurs 0,
saknr like ska1-saknr,
xbilk like ska1-xbilk,
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 64 of 66
end of t_ska1.
ebilk = space.
READ TABLE t_ska1 WITH KEY saknr = ikto BINARY SEARCH.
IF sy-subrc NE 0.
SELECT SINGLE * FROM ska1 INTO CORRESPONDING FIELDS OF t_ska1
WHERE saknr = ikto
AND ktopl = t001-ktopl.
IF sy-subrc = 0.
APPEND t_ska1.
SORT t_ska1.
ENDIF.
ENDIF.
ebilk = t_ska1-xbilk.
ENDFORM. "ska1_get
*---------------------------------------------------------------------*
* FORM get_split_fieldnames
*---------------------------------------------------------------------*
FORM get_split_fieldnames.
REFRESH gt_split_fieldnames.
ENDFORM. "get_split_fieldnames
*&---------------------------------------------------------------------*
*& Form CHECK_ENTRYVIEW_FIELD
*&---------------------------------------------------------------------*
FORM check_entryview_field USING p_fieldname TYPE fieldname
CHANGING p_record TYPE ANY.
FAGL_CLEAR_COST_ELEM FAGL_COFI_APPLLOG_DISP
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 65 of 66
Login
Add to
Subscribe in NewsGator Online
Add to My Yahoo!
Feedblitz
Add to Pageflakes
Add to Google
Add to
RSS Feed
RSS Icon
Login to IntenseDebate
Or create an account
Username or Email:
Password:
Forgot login?
OpenID
Cancel Login
Close WordPress.com
Username or Email:
Password:
Cancel Login
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010
FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - AB... Page 66 of 66
Close
Logged in as
Login to IntenseDebate
Login to WordPress.com
Login to OpenID
Name
Email
Website (optional)
Comments by IntenseDebate
Search for SAP Function modules, ABAP Reports, SAP Tables and Transaction Codes...
Search
Search Share |
http://www.se80.co.uk/sapreports/f/fagl/fagl_cl_regroup.htm 16/11/2010