You are on page 1of 66

FAGL_CL_REGROUP Balance Sheet Supplement - OI - Analysis - SAP Report - ABAP Page 1 of 66

SAP ABAP Reports

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

FAGL_CL_REGROUP SAP Report - Balance Sheet Supplement - OI - Analysis

SAP Documentation for program FAGL_CL_REGROUP


TRANSACTION CODE: FAGLF101

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.

Sorted List of Items


The decision on whether to sort an account based on receivables or
payables depends on the balance sheet value of the account. This is
the balance on the account for each reconciliation account and
remaining term. If multiple accounts are linked through the same partner
company, the common balance sheet value of the account group
determines the type of sorted list. If the balance is positive, the sort for
receivables is used, otherwise the sort for payables. You define the sort
methods in Customizing. You can also create groups of accounts whose
common balance is used for the sorted list. The group used for
customers and vendors is the corporate group. For the G/L accounts,
there is a separate field in the G/L account master.
With credit memos that refer to an invoice, the due dates are read from that invoice.
Vendors with a debit balance and customer with a credit balance are determined separately for each point in the list because only
items with approximately the same remaining term can be added together.
The documents are summed under the current reconciliation account of the customer or vendor master. If a change is made, the
amounts are transferred from the old reconciliation account to the new reconciliation account.
Investments
In some countries (such as France), the investments must be reported separately. You can select this addtional reporting by
means of parameters. The investments are then reported for each reconciliation account as a total and transferred.
Postings
For each generated transfer posting, a cancelation posting is transferred to the session. With reconciliation accounts in the
vendor or customer area, an adjustment account is posted.
When a target company code is used, all items are grouped under the target company code and then processed. The selected
company codes, however, must have the same currency (such as local currency or group currency).
If a different valuation area is used, account determination for the transfer posting is run from within the selected valuation area.
Processing is in the currency of the assigned valuation area (such as US GAAP in group currency USD).

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

Includes used within report:

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

Tables used within report and the associated select statement:

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

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.

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.

Text pool values

Selection Text: GESBER = D .


Selection Text: DK_WBRSL = D .
Selection Text: DKONTO = D .
Selection Text: BUKRS = D .
Selection Text: BELNR = D .
Selection Text: AKONTO = D .
Selection Text: UMBWM = Use valuations
Selection Text: STICHTAG = Balance Sheet Key Date
Selection Text: SKONTO = G/L Account Number
Selection Text: P_ZBUKRS = Target Company Code
Selection Text: P_SSALDO = G/L Accounts Group Definition
Selection Text: P_SBLART = Reversal Document Type
Selection Text: P_LVARS = Totals List Variant
Selection Text: P_LVAR = List Variant
Selection Text: P_KSALDO = Vendor Group Definition
Selection Text: P_FILE = Generate File
Selection Text: P_DSALDO = Customer Group Definition
Selection Text: KONTOART = Account Type (D/K/S)
Selection Text: KK_UMSKZ = Special General Ledger Vendor
Selection Text: DK_UMSKZ = Special Gen. Ledger Customer
Selection Text: INV_KZ = D .
Selection Text: XALTKT = D .
Selection Text: WV_BWERT = D .
Selection Text: VERBUND = D .
Selection Text: TITLE = D .
Selection Text: P_VBUND = D .
Selection Text: P_SBUPEM = D .
Selection Text: P_SBUDAT = D .
Selection Text: P_METHD = D .
Selection Text: P_FLNAM = D .
Selection Text: P_CHG_AC = D .
Selection Text: P_BWBER = D .
Selection Text: P_BLDAT = D .
Selection Text: P_BLART = D .
Selection Text: P_BKTXT = D .
Selection Text: P_BBUPEM = D .
Selection Text: P_BBUDAT = D .
Selection Text: PA_WAERS = D .
Selection Text: PAR_BNAM = D .
Selection Text: PAR_BI = D .
Selection Text: KKONTO = D .
Title: Balance Sheet Supplement - OI - Analysis
Text Symbol: S14 = Group
Text Symbol: 114 = Amount in LC
Text Symbol: 112 = Exchange Rate
Text Symbol: 111 = Amount Valuated
Text Symbol: 102 = Key Date
Text Symbol: 082 = Totals List
Text Symbol: 080 = List
Text Symbol: 045 = Spool Number:
Text Symbol: 044 = Messages for FAGLF101
Text Symbol: 037 = SAP (EU 93 F/S Guidelines)
Text Symbol: 036 = Payables within 1 Year
Text Symbol: 035 = Receivables within 1 Year
Text Symbol: 030 = Only single values permitted
Text Symbol: 020 = Reverse Posting FAGLF101
Text Symbol: 019 = B/S Adjustment FAGLF101
Text Symbol: 013 = Dynamic Selections
Text Symbol: 006 = Error when opening file
Text Symbol: 005 = Number of Data Records:
Text Symbol: 004 = Generated File:
Text Symbol: 003 = Selections
Text Symbol: 002 = Postings
Text Symbol: 001 = Parameters
Text Symbol: S12 = Error in Field Assignment COBL -> GLU1
Text Symbol: 500 = Balance Sheet Supplement - OI Analysis per &1
Text Symbol: 403 = Ledger Group
Text Symbol: 402 = Incorrect posting
Text Symbol: 271 = Active
Text Symbol: 270 = Free Selections
Text Symbol: 265 = Changed Partner: Old &1 New &2
Text Symbol: 264 = Inv. Trnsfr Pstng
Text Symbol: 263 = Changed Reconcil.Acct: Old &1 New &2
Text Symbol: 244 = Posting in Ledger
Text Symbol: 243 = Postings in Batch Input Session
Text Symbol: 242 = Posting Proposal
Text Symbol: 241 = Postings Generated
Text Symbol: 240 = Error when opening the session
Text Symbol: 200 = No 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 12 of 66

Text Symbol: 121 = Indic. A00


Text Symbol: 120 = Prev.rec.led
Text Symbol: 119 = Old Partner
Text Symbol: 118 = Local Crcy
Text Symbol: 116 = Account
Text Symbol: 115 = Amount in FC

ABAP code for SAP Report FAGL_CL_REGROUP

REPORT fagl_cl_regroup
* line-count 65(0)
MESSAGE-ID fr
NO STANDARD PAGE HEADING.

TYPE-POOLS: slis, glt0.


*
TABLES:
BHDGD, FIMSG,SSCRFIELDS,
KNA1, KNB1,
LFA1, LFB1,
SKA1, SKB1, SKAT,
T001, T001A,
BKPF, BSEG, BSID, BSAD, BSIS, BSAS, BSIK, BSAK,
X001, T003, T030HB, T030U, T030B
T033, T033T, BSBW,
T074, RFPDO3.

TABLES: T044L, T044KT, T044LH, "FOR RASTERUNG


T044LT.
*
DATA: akonts LIKE bseg-hkont, "rec. account and partner from
vbunds LIKE bseg-vbund, "masterdata
xhkom LIKE bseg-xhkom, "flag:G/L acc. assigned manually
xbuv(1). "flag:clearing acc. for ccode

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.

* TABLES FOR GRID


DATA: BEGIN OF x_t044ld OCCURS 10,
gtdatum LIKE sy-datum,
END OF x_t044ld.

DATA: BEGIN OF x_t044l OCCURS 10,


xdeb1 LIKE t044l-xdeb1,
gtdatum LIKE sy-datum,
duevl LIKE t044l-duevl,
tunit LIKE t044l-tunit,
ktosl LIKE t044l-ktosl,
postar LIKE t044l-postar,
postap LIKE t044l-postap,
postgl LIKE t044l-postgl,
END OF x_t044l.

* 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.

* table for all documents of one account


DATA: BEGIN OF belege OCCURS 300,
zbukr LIKE bkpf-bukrs,
ldgrp LIKE bkpf-ldgrp,
koart LIKE bseg-koart,
konto(10),
* results of classification probably the keys of T044f
duevl LIKE t044l-duevl,
tunit LIKE t044l-tunit,
gtdatum LIKE x_t044l-gtdatum,
xdeb1 LIKE t044l-xdeb1,
ktosl LIKE t044l-ktosl, "used for post docu
*
waers LIKE bkpf-waers,
gsber LIKE bseg-gsber.
*hier kommt der variable teil noch nicht realisert
* INCLUDE STRUCTURE RFSBEW_INCL.
INCLUDE STRUCTURE SL_INCL.
DATA:
gjahr LIKE bkpf-gjahr,
belnr LIKE bseg-belnr,
buzei LIKE bseg-buzei,
shkzg LIKE bseg-shkzg,
dmbtr LIKE glt0-hslvt,
wrbtr LIKE glt0-hslvt,
bdmbtr LIKE glt0-hslvt, "revalued amount 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 13 of 66

umskz LIKE bseg-umskz,


blart LIKE bkpf-blart,
budat LIKE bkpf-budat,
augdt LIKE bseg-augdt,
bdiff LIKE bseg-bdiff, "Summe allder diffs
hkont LIKE bseg-hkont,
vbund LIKE bseg-vbund,
bukrs LIKE bkpf-bukrs, "Originalbuchungskreis
xinve LIKE bseg-xinve, "investitionskennzeichen
rebzj LIKE bseg-rebzj,
rebzz LIKE bseg-rebzz,
rebzg LIKE bseg-rebzg,
zfbdt LIKE bseg-zfbdt,
zbd1t LIKE bseg-zbd1t,
zbd2t LIKE bseg-zbd2t,
zbd3t LIKE bseg-zbd3t,
netdt LIKE bsega-netdt,
avbund LIKE bseg-vbund, "old vbund
ahkont LIKE bseg-hkont, "altes hkont
hwtyp(1),
bdif2 LIKE bseg-bdif2,
bdif3 LIKE bseg-bdif3,
DMBE2 LIKE BSEG-DMBE2,
DMBE3 LIKE BSEG-DMBE3,

END OF belege.

* used for grouping the postings of one group eg. a account or


* KONZS
DATA: BEGIN OF sort_group,
zbukr LIKE bseg-bukrs,
bewgp LIKE skb1-bewgp,
koart LIKE bseg-koart,
hkont LIKE bseg-hkont,
vbund LIKE bseg-vbund,
konto LIKE belege-konto,
END OF sort_group.
DATA watage(8) TYPE p.
DATA: umbwm_tab LIKE rfpdo3-f101umbwm OCCURS 10 WITH HEADER LINE.

* fuer Pruefung Feld und Waehrung eines Waehrungstyps pro bukrs


DATA: BEGIN OF haus,
bukrs LIKE bseg-bukrs,
field(1), "in welchem feld steht die HW
waers LIKE tcurd-hwaer,
curtp LIKE x001-curt2,
END OF haus.
DATA: BEGIN OF zhaus.
INCLUDE STRUCTURE HAUS.
DATA: END OF zhaus.

DATA null LIKE bsbw-bwshb. "Nullwert


DATA: flag_p_blart.

* Flag für G/L in mySAP-ERP


DATA: gt_split_fieldnames TYPE ttfieldname.
DATA: x_glflex_active. "X: new G/L is aktive
DATA: split_flag.
DATA: gt_bukrs TYPE fagl_t_bukrs,
gs_bukrs TYPE fagl_s_bukrs.

**********************************************
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

* extra table for postings -----------------------------------------


DATA:
BEGIN OF post_collect OCCURS 50, "Post the results
zbukr LIKE belege-zbukr,
ldgrp LIKE bkpf-ldgrp,
rev_flag, " Flag für Stornbuchung
* action LIKE action,
* results from screening
duevl LIKE t044l-duevl,
tunit LIKE t044l-tunit,
xdeb1 LIKE t044l-xdeb1,
koart LIKE bseg-koart,
ktosl LIKE t044l-ktosl, "used for posting
hkont LIKE bseg-hkont,
gsber LIKE bseg-gsber.
*hier kommt der Variable Teil
* INCLUDE STRUCTURE RFSBEW_INCL.

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

INCLUDE STRUCTURE SL_INCL.


DATA: addaa TYPE glt0_addaa.
DATA:
vbund LIKE bseg-vbund,
waers LIKE bkpf-waers,
wrbtr(12) TYPE p,
dmbtr(12) TYPE p,
hwaer LIKE tcurd-hwaer,
hwtyp(1),
END OF post_collect.

* table with changed rec. accounts. --------------------------------


DATA:BEGIN OF chg_rec_collect OCCURS 50, "Post the results
zbukr LIKE belege-zbukr,
ldgrp LIKE bkpf-ldgrp,
ahkont LIKE belege-ahkont,
avbund LIKE belege-avbund,
*
hkont LIKE bseg-hkont,
gsber LIKE bseg-gsber.
*hier kommt der Variable Teil
* INCLUDE STRUCTURE RFSBEW_INCL.
INCLUDE STRUCTURE SL_INCL.
DATA: addaa TYPE glt0_addaa.
DATA:
waers LIKE bkpf-waers,
vbund LIKE bseg-vbund,
wrbtr(12) TYPE p,
dmbtr(12) TYPE p,
hwaer LIKE tcurd-hwaer,
hwtyp(1),
koart LIKE bseg-koart,
END OF chg_rec_collect.

* collection table of investments ----------------------------------


DATA:BEGIN OF invest_collect OCCURS 50, "Post the results
zbukr LIKE belege-zbukr,
ldgrp LIKE bkpf-ldgrp,
hkont LIKE bseg-hkont,
gsber LIKE bseg-gsber.
*hier kommt der Variable Teil
* INCLUDE STRUCTURE RFSBEW_INCL.
INCLUDE STRUCTURE SL_INCL.
DATA: addaa TYPE glt0_addaa.
DATA:
waers LIKE bkpf-waers,
vbund LIKE bseg-vbund,
wrbtr(12) TYPE p,
dmbtr(12) TYPE p,
hwaer LIKE tcurd-hwaer,
hwtyp(1),
END OF invest_collect.

DATA: lt001 LIKE t001 OCCURS 0 WITH HEADER LINE.

* batch-input
DATA: BEGIN OF ftpost OCCURS 20.
INCLUDE STRUCTURE FTPOST.
DATA: END OF ftpost.

* table with all postings to be done / done ------------------------


DATA: BEGIN OF postings OCCURS 100,
bukrs LIKE belege-bukrs,
ldgrp LIKE bkpf-ldgrp,
rev_flag, " Flag für Stornbuchung
action(3),
ktosl LIKE t044l-ktosl, "used for posting

* additional data for posting


* curtp LIKE t001a-curtp,
bldat LIKE bkpf-bldat,
budat LIKE bkpf-budat,
monat LIKE bkpf-monat,
blart LIKE bkpf-blart,
belnr LIKE bkpf-belnr, "result from posting
post(6) TYPE p, "Zaehler / Schl. fuer Belege H398789
shkzg1 LIKE bseg-shkzg,
bschl1 LIKE bseg-bschl,
konto1 LIKE bseg-hkont,
shkzg2 LIKE bseg-shkzg,
bschl2 LIKE bseg-bschl,
konto2 LIKE bseg-hkont,
vbund2 LIKE bseg-vbund,
bktxt LIKE bkpf-bktxt,
sgtxt LIKE bseg-sgtxt,
hkont LIKE bseg-hkont,
gsber LIKE bseg-gsber.
*hier kommt der Variable Teil noch nicht realisiert
* INCLUDE STRUCTURE RFSBEW_INCL.
INCLUDE STRUCTURE SL_INCL.
DATA: addaa TYPE glt0_addaa.

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.

DATA: post_line LIKE ftpost-count, "zaehler buchungszeilen


post_count(6) TYPE p, "anzahl gebuchter Belege
post_now(1). "wenn buchen

*Definitions for postings in SL ------------------------------------


DATA: t_bkpf LIKE bkpf OCCURS 0.
DATA: t_bseg LIKE bseg OCCURS 0.
DATA g_new_awref TYPE boole.
DATA g_awref LIKE slpb-awref.
DATA: g_acc_principle TYPE accounting_principle.
DATA: g_ledger(20) TYPE c. " like t881-rldnr.
DATA: gd_ldgrp LIKE bkpf-ldgrp.

* F4 für INCL_FLD
DATA:
BEGIN OF f4tab OCCURS 0,
fieldname LIKE dfies-fieldname,
scrtext_l LIKE dfies-scrtext_l,
END OF f4tab.

*-------- for application log


SET EXTENDED CHECK OFF.
INCLUDE SBAL_CONSTANTS.
SET EXTENDED CHECK ON.

*
* 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.

DATA: kna1_clauses TYPE rsds_where, kna1_clauses_filled.


DATA: knb1_clauses TYPE rsds_where, knb1_clauses_filled.
DATA: bsid_clauses TYPE rsds_where, bsid_clauses_filled.

DATA: ska1_clauses TYPE rsds_where, ska1_clauses_filled.


DATA: skb1_clauses TYPE rsds_where, skb1_clauses_filled.
DATA: gt_callback LIKE ldbcb OCCURS 0 WITH HEADER LINE,
seltab TYPE rsparams OCCURS 0 WITH HEADER LINE.
DATA: bsis_clauses TYPE rsds_where, bsis_clauses_filled.

DATA: bseg_clauses TYPE rsds_where, bseg_clauses_filled.


DATA: bkpf_clauses TYPE rsds_where, bkpf_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

* type pool declarations


TYPE-POOLS: slis.
DATA: t_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
t_events TYPE slis_t_event WITH HEADER LINE,
t_event_exit TYPE slis_t_event_exit WITH HEADER LINE,
t_slis_sort TYPE slis_t_sortinfo_alv,
t_slis_layout_alv TYPE slis_layout_alv,
t_slis_print_alv TYPE slis_print_alv,
gt_list_top_of_page TYPE slis_t_listheader,
h_tabname_header TYPE slis_tabname ,
h_tabname_item TYPE slis_tabname ,
h_keyinfo TYPE slis_keyinfo_alv,

h_repid LIKE sy-repid,


h_user_command TYPE slis_formname,
h_set_pf_status TYPE slis_formname.
* zweite tabelle (Druck Buchungen)
DATA: caller(40).
DATA: p_lvarsum.
DATA: t2_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
* dritte tabelle Druck der Meldungen
DATA: t3_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.

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

DATA: BEGIN OF disp_fimsg OCCURS 5,


msgid LIKE fimsg-msgid,
msgty LIKE fimsg-msgty,
msgno LIKE fimsg-msgno,
text LIKE t100-text.
DATA: END OF disp_fimsg.

*------------- Main list -----------------------------------------------


* narrow table, because it may be a lot of documents
DATA: BEGIN OF list_item OCCURS 100,
ldgrp LIKE bkpf-rldnr,
zbukr LIKE bwpos-zbukr,
bewgp LIKE bwpos-gruppe,
vbund LIKE lfa1-vbund,
koart LIKE bseg-koart,
hkont LIKE lfb1-akont,
konto LIKE belege-konto,
name1 LIKE kna1-name1,
* results from screening
txt30 LIKE t044kt-txt30,
duevl LIKE t044l-duevl,
tunit LIKE t044l-tunit,
xdeb1 LIKE t044l-xdeb1,
ktosl LIKE t044l-ktosl, "used for posting
* hier kommen die Belege
waers LIKE bkpf-waers,
gsber LIKE bseg-gsber,
netdt LIKE bsega-netdt, "Falligketisd
gjahr LIKE bkpf-gjahr,
belnr LIKE bseg-belnr,
buzei LIKE bseg-buzei,
*
shkzg LIKE bseg-shkzg,
wrbtr(12) TYPE p,
dmbtr(12) TYPE p,
bdmbtr(12) TYPE p, "bewerteter Betrag
umskz LIKE bseg-umskz,
blart LIKE bkpf-blart,
budat LIKE bkpf-budat,
bdiff LIKE bwpos-bwshb_net, "neue bewdiff
xinve LIKE bseg-xinve,
ahkont LIKE bseg-hkont, "old value
avbund LIKE bseg-vbund, "old value
flag_a00, "changed rec account or partner
bukrs LIKE bkpf-bukrs. "Originalbuchungskreis
* variabler teil
* INCLUDE STRUCTURE RFSBEW_INCL.
INCLUDE STRUCTURE SL_INCL.
DATA:
hwaer LIKE tcurd-hwaer,
selkey LIKE sy-tabix,
END OF list_item.
*
DATA: BEGIN OF list_item_collect OCCURS 0,
ldgrp LIKE bkpf-rldnr,
zbukr LIKE bwpos-zbukr,
vbund LIKE lfa1-vbund,
koart LIKE bseg-koart,
hkont LIKE lfb1-akont,
waers LIKE bkpf-waers,
gsber LIKE bseg-gsber,
ahkont LIKE bseg-hkont, "old value
avbund LIKE bseg-vbund, "old value
bukrs LIKE bkpf-bukrs, "Originalbuchungskreis
*
shkzg LIKE bseg-shkzg,
wrbtr(12) TYPE p,
dmbtr(12) TYPE p,
bdmbtr(12) TYPE p, "bewerteter Betrag
bdiff LIKE bwpos-bwshb_net. "neue bewdiff

* 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

INCLUDE RKASMAWF. "< NECESSARY FOR WORKFLOW


INCLUDE SCHEDMAN_EVENTS. "EVENTS FOR WOKFLOW

*-------------------------------------------------------------------
* 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.

SELECT-OPTIONS: umbwm FOR rfpdo3-f101umbwm DEFAULT '1'


NO INTERVALS.
PARAMETERS: p_lvar LIKE h_variant-variant
DEFAULT space,
* narrow list without docno
p_lcoll NO-DISPLAY ,
title LIKE rfpdo-allgline.
PARAMETERS: p_lvars LIKE h_variant-variant DEFAULT space.
PARAMETERS: xaltkt LIKE rfpdo1-allgaltk. "alternative ktonummer
* these two parameters are used to store the information in a file
* enter code '=file' in the okfield to activate - intermediate solution
PARAMETERS: p_file AS CHECKBOX MODIF ID fil,
p_flnam LIKE rfpdo-kqsufile MODIF ID fil.

SELECTION-SCREEN END OF SCREEN 1060.

*-------------------------------------------------------------------
* 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.

*select investments now with free selections, no extra


*parameters:
DATA: inv_only LIKE rfpdo1-f101invo,

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

INSERT sort_group-zbukr "evtl zielbukr


sort_group
INTO header.
INSERT belege
INTO daten.

SELECTION-SCREEN BEGIN OF TABBED BLOCK tabbl FOR 15 LINES.


* SELECTION-SCREEN TAB (15) TABS1010 USER-COMMAND UCOM1010
* DEFAULT SCREEN 1010.
SELECTION-SCREEN TAB (15) tabs1020 USER-COMMAND ucom1020
DEFAULT SCREEN 1020.
SELECTION-SCREEN TAB (15) tabs1050 USER-COMMAND ucom1050
DEFAULT SCREEN 1050.
SELECTION-SCREEN TAB (15) tabs1060 USER-COMMAND ucom1060
DEFAULT SCREEN 1060.
SELECTION-SCREEN END OF BLOCK tabbl.

************************************************************************
INITIALIZATION.

*TABS1010 = 'Parameter'.
tabs1060 = 'Parameter'(001).
tabs1020 = 'Buchungen'(002).
tabs1050 = 'Selektionen'(003).

par_bnam = sy-repid.

PERFORM setup_eg93.

*--alv used for F4


h_repid = sy-repid.
h_variant-report = h_repid.
h_variant-log_group = '0001'.

* Setzen Default-Sichtag
stichtag = sy-datlo.
stichtag+6(2) = '01'.
stichtag = stichtag - 1.

* icon freie selection


PERFORM fs_set_sscrtexts_dynsel CHANGING fs_f1_icon.
sscrfields-functxt_01 = fs_f1_icon.
* psb = fs_F1_icon-ICON_TEXT .

********************************************************************
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 = space AND


( sscrfields-ucomm = 'ONLI' or sscrfields-ucomm = 'PRIN' ).
CLEAR sscrfields-ucomm.
MESSAGE e055(00).
ELSEIF p_bwber IS NOT initial AND
( sscrfields-ucomm = 'ONLI' or sscrfields-ucomm = 'PRIN' ).
CLEAR sscrfields-ucomm.
PERFORM acc_principle_set using p_bwber
changing gd_ldgrp
g_acc_principle.
endif.

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

CHECK sscrfields-ucomm = 'ONLI' OR sscrfields-ucomm = 'PRIN'.


IF p_zbukrs NE space.
SELECT SINGLE * FROM t001 WHERE bukrs = p_zbukrs.
IF sy-subrc NE 0.
MESSAGE e817 WITH p_zbukrs.
ENDIF.
PERFORM derive_hauswaers USING t001-bukrs p_curtp1
CHANGING zhaus.
SELECT * FROM t001 WHERE bukrs IN bukrs.
PERFORM derive_hauswaers USING t001-bukrs p_curtp1
CHANGING haus.
CHECK haus-waers NE space. "no parallel currency
IF zhaus-waers NE haus-waers OR zhaus-field NE haus-field.
MESSAGE e181.
ENDIF.
ENDSELECT.
ENDIF.

********************************************************************
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.

LOOP AT gt_bukrs into gs_bukrs.


PERFORM check_glflex_active USING gs_bukrs-bukrs
CHANGING x_glflex_active.
IF x_glflex_active IS INITIAL.
MESSAGE e867 WITH gs_bukrs-bukrs 'SAPF101'.
RETURN.
ENDIF.
ENDLOOP.

* Check valuation area, error message if not specified


IF p_bwber = SPACE.
MESSAGE e014(FR).
ENDIF.

* ALV - save variant


h_variant-variant = p_lvar.
* setup currency
IF p_bwber = space.
t033-curtp = p_curtp1.
ELSE.
SELECT SINGLE * FROM t033 WHERE bwber = p_bwber.
ENDIF.

* setup the necessary valuations


LOOP AT umbwm.
umbwm_tab = umbwm-low. COLLECT umbwm_tab.
ENDLOOP.

PERFORM log_fimsg_create.
PERFORM schedman_start_stop USING 'START'.
*kommt noch PERFORM: flex_felder_erl_aufbauen USING 'RFSBEW_INCL'.
PERFORM free_selections_build.

* get account numbers used for clearing between comp.codes (T001U)


PERFORM get_clearing_accounts.

* Read split fields into gt_split_fieldnames


PERFORM get_split_fieldnames. "fill table gt_split_fieldnames

SELECT * FROM t001 INTO TABLE lt001 WHERE bukrs IN bukrs.


LOOP AT lt001.
PERFORM posting_sl_fields_active USING lt001-bukrs
CHANGING sl_incl_ccode_active.
*Debitoren
IF 'D' IN kontoart.
PERFORM select_bsid USING 'BSID'.
PERFORM select_bsid USING 'BSAD'.
ENDIF.
*Kreditoren
IF 'K' IN kontoart.
PERFORM select_bsik USING 'BSIK'.
PERFORM select_bsik USING 'BSAK'.
ENDIF.
ENDLOOP.
*Kreditoren
IF 'S' IN kontoart.
PERFORM select_bsis USING 'BSIS'.
* PERFORM select_bsis USING 'BSAS'.
ENDIF.

********************************************************************
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.

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.

IF bsid-umskz NE space.
CHECK bsid-umskz IN dk_umskz.
ENDIF.

MOVE-CORRESPONDING bsid TO belege.


belege-konto = bsid-kunnr.
belege-koart = 'D'.

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.

IF inv_only = 'X'. CHECK bsid-xinve = 'X'. ENDIF.


IF inv_no = 'X'. CHECK bsid-xinve = space. ENDIF.

PERFORM check_xhkom USING bsid-saknr


bsid-hkont
bsid-bukrs
bsid-belnr
bsid-gjahr
bsid-buzei
CHANGING xhkom.
PERFORM extract.

ENDSELECT.
ENDFORM. "SELECT_BSID

* read accounts payable


FORM select_bsik USING itab TYPE c.
DATA: lfx_sel.

RANGES: st_augdt FOR bseg-augdt OCCURS 1.


IF itab = 'BSIK'.
ELSE.
st_augdt-low = stichtag.
st_augdt-sign = 'I'.
st_augdt-option = 'GT'.
APPEND st_augdt.
ENDIF.

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.

IF bsik-umskz NE space.
CHECK bsik-umskz IN kk_umskz.
ENDIF.

MOVE-CORRESPONDING bsik TO belege.


belege-konto = bsik-lifnr.
belege-koart = 'K'.

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.

IF inv_only = 'X'. CHECK bsik-xinve = 'X'. ENDIF.


IF inv_no = 'X'. CHECK bsik-xinve = space. ENDIF.

PERFORM check_xhkom USING bsik-saknr


bsik-hkont
bsik-bukrs
bsik-belnr
bsik-gjahr
bsik-buzei
CHANGING xhkom.
PERFORM extract.

ENDSELECT.
ENDFORM. "SELECT_BSIK

*---------------------------------------------------------------------*
* FORM SELECT_BSIS *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> ITAB *
*---------------------------------------------------------------------*
FORM select_bsis USING itab.

CONSTANTS: max_read TYPE i VALUE 5000.


DATA: skx_sel.
CLEAR belege.
CLEAR lt001.
LOOP AT lt001.
PERFORM posting_sl_fields_active USING lt001-bukrs
CHANGING sl_incl_ccode_active.

SELECT * FROM skb1


WHERE bukrs = lt001-bukrs
AND saknr IN skonto
AND xopvw = 'X'. "#EC CI_SGLSELECT
IF t001-bukrs <> skb1-bukrs.
SELECT SINGLE * FROM t001 WHERE bukrs = skb1-bukrs.
ENDIF.
SELECT SINGLE vbund FROM ska1 INTO ska1-vbund
WHERE saknr = skb1-saknr
AND ktopl = t001-ktopl.

PERFORM check_buv USING ska1-vbund


skb1-bukrs
'S'
skb1-saknr
CHANGING xbuv.

* 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.

IF bseg_clauses_filled = space AND sl_incl_ccode_active <> space.


SELECT SINGLE * FROM bseg
WHERE bukrs = belege-bukrs
AND belnr = belege-belnr
AND gjahr = belege-gjahr
AND buzei = belege-buzei.
ENDIF.

* nachlesen bei rechnungsbezug


IF belege-rebzj NE '0000'.
PERFORM get_zfbdt.
belege-xinve = bseg-xinve.
ENDIF.
* select additional fields from bseg
IF sl_incl_ccode_active <> space.
MOVE-CORRESPONDING bseg TO sl_incl.
MOVE-CORRESPONDING sl_incl TO belege.
ENDIF.
*----------------------------------------------------------------------
* buchungskreis mit Zielbuchungskreis ueberschreiben
belege-zbukr = belege-bukrs.
IF p_zbukrs NE space.
belege-zbukr = p_zbukrs.
ENDIF.
* ----check for changed rec. account ---------------------------------
IF belege-koart NE 'S'
AND xhkom = space "kein willentlich geändertes Hkont
AND p_chg_ac NE space. "parameter on
IF belege-umskz NE space.
IF t074-umskz NE belege-umskz
OR t074-hkont NE akonts.
* Aktuelles Sonderhauptbuchkonto aus Tabelle 074 ermitteln
CLEAR T074.
SELECT SINGLE * FROM T074 WHERE KTOPL = LT001-KTOPL
AND koart = belege-koart
AND umskz = belege-umskz
AND hkont = akonts.
IF sy-subrc <> 0. t074-skont = space. ENDIF.
ENDIF.
IF t074-skont NE space.
belege-hkont = t074-skont. "neues sonderhauptbuchkonto
ENDIF.
ELSE.
belege-hkont = akonts. "use master data
ENDIF.
ENDIF. "kontoart
* --------------------------------------------------------------------

* Bestimmung der Faelligkeit und der Rasterpunkte


IF belege-koart NE 'S'.
MOVE-CORRESPONDING belege TO x_faede.
CALL FUNCTION DETERMINE_DUE_DATE
EXPORTING
i_faede = x_faede

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.

MOVE-CORRESPONDING belege TO sort_group.


IF sort_group-bewgp NE space.
sort_group-konto = space.
sort_group-koart = space.
sort_group-hkont = space.
sort_group-vbund = space.
ELSEIF sort_group-vbund NE space.
IF p_vbund NE space.
sort_group-konto = space.
sort_group-koart = space.
sort_group-hkont = space.
sort_group-bewgp = space.
ENDIF.
ENDIF.
* modify for parallel currency ---------------------------------------
IF haus-bukrs NE belege-bukrs.
PERFORM derive_hauswaers USING belege-bukrs
t033-curtp
CHANGING haus.
* Bestimmen welche Daten benoetigt werden bei abweichendem Bereich
ENDIF.
CHECK haus-waers NE space.

* parallele Waehrung auf erste Hauswaehrung uebertragen


* jetzt gibt es nur noch FW und HW
IF haus-field NE '1'.
CASE belege-koart.
WHEN 'D'.
bseg-dmbe2 = bsid-dmbe2. bseg-dmbe3 = bsid-dmbe3.
WHEN 'K'.
bseg-dmbe2 = bsik-dmbe2. bseg-dmbe3 = bsik-dmbe3.
WHEN 'S'.
bseg-dmbe2 = bsis-dmbe2. bseg-dmbe3 = bsis-dmbe3.
ENDCASE.
IF haus-field = '2'.
belege-dmbtr = bseg-dmbe2.
ELSEIF haus-field = '3'.
belege-dmbtr = bseg-dmbe3.
ELSE.
haus-field = space. EXIT. "nicht verarbeiten
ENDIF.
ENDIF.
* get all differences
PERFORM bsbw_get_all CHANGING belege-bdiff.

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

CHANGING ihaus LIKE haus.


SELECT SINGLE * FROM t001 WHERE bukrs = i_bukrs.
ihaus-bukrs = t001-bukrs.
IF i_curt = '10'.
ihaus-waers = t001-waers. ihaus-field = '1'.
ELSE.
CLEAR x001.
* Bestimmen der Waehrungstypen in einem Buchungskreis.
CALL FUNCTION FI_CURRENCY_INFORMATION
EXPORTING
i_bukrs = i_bukrs
IMPORTING
e_x001 = x001
EXCEPTIONS
OTHERS = 0.

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.

ENDFORM. " DERIVE_HAUSWAERS

*---------------------------------------------------------------------*
* 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.

IF umbwm_tab = '1' AND lf_ilines > 0.


READ TABLE lt_histry_delta INDEX 1 INTO ls_histry_delta.
IF sy-subrc = 0.
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.
EXIT. " >>>>>>>> E X I T <<<<<<<<
ENDSELECT.
IF sy-subrc = 0.
ADD ls_histry-bwshb TO sum_diff.
ENDIF.
ENDIF.
ELSE.
SELECT * FROM fagl_bsbw_histry INTO ls_histry
WHERE bukrs = belege-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 - AB... Page 28 of 66

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.
EXIT. " >>>>>>>> E X I T <<<<<<<<
ENDSELECT.
IF sy-subrc = 0.
ADD ls_histry-bwshb TO sum_diff.
ENDIF.
ENDIF.
ENDLOOP.

* alte Bewertungsdifferenz in das richtige Feld setzen


ibwdiff = sum_diff.

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

* Belege werden nach Umsatzkennzeichen !


* Die umbuchen müssen dann aber pro Hkont geschehen

FORM BELEGE_RASTERN TABLES IBELEGE STRUCTURE BELEGE.


* totals for grid
DATA:
BEGIN OF t_total OCCURS 10,
gtdatum LIKE x_t044l-gtdatum,
* used for flex hauptbuch etc
* INCLUDE RFSBEW_INCL.
* gsber LIKE bseg-gsber,
balance(12) TYPE p, "balance in local currency
END OF t_total.

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.

* post_collect-action = act1 ."'BI2'. "rasterung


CASE ibelege-koart.
WHEN 'D'.
IF x_t044l-postar = space. ibelege-ktosl = space. ENDIF.
WHEN 'K'.
IF x_t044l-postap = space. ibelege-ktosl = space. ENDIF.
WHEN 'S'.
IF x_t044l-postgl = space. ibelege-ktosl = space. ENDIF.
ENDCASE.
IF ibelege-ktosl NE space.
MOVE-CORRESPONDING ibelege TO post_collect.
IF NOT split_flag IS INITIAL.
PERFORM collect_tab_split USING ibelege act1. "BI2
ELSE.
post_collect-dmbtr = ibelege-bdmbtr.
IF pa_waers = space. "post in LC
post_collect-waers = post_collect-hwaer.
post_collect-wrbtr = ibelege-bdmbtr.
IF post_collect-hwtyp <> '1'.
post_collect-wrbtr = 0.
ENDIF.
ENDIF.
COLLECT post_collect.
ENDIF.
IF p_file <> space.
PERFORM file_transfer USING ibelege ' '.
ENDIF.
ENDIF.
ENDIF. "end of classification

*=====================================================================
* 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

IF p_file <> space.


PERFORM file_transfer USING ibelege 'A'.
ENDIF.

ENDIF. "chg wanted


ENDIF.

*=====================================================================
* 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

* uses table posting and determines the accounts for it


FORM posting.
* PERFORM POSTING_REDUCE_FLEX_FIELDS TABLES BU_WAERTAB
* fieldtab_glu1.

IF p_bbudat IS INITIAL. p_bbudat = stichtag. ENDIF.


IF p_bldat IS INITIAL. p_bldat = stichtag. ENDIF.
IF p_sbudat IS INITIAL. p_sbudat = stichtag + 1. ENDIF.
IF p_sblart IS INITIAL. p_sblart = p_blart. ENDIF.

PERFORM posting_bi2 USING act1 . "'BI2'. "Rasterung


PERFORM posting_chg_rec USING act2 . "'A00'. "changed rec. accts
PERFORM posting_invest USING act3. "'INV'.

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.

PERFORM posting_document USING 'CLOSE'.

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.

MOVE-CORRESPONDING post_collect TO postings.


postings-bukrs = post_collect-zbukr.

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.

IF post_line GE 300 AND post_now = space. post_now = 'X'. ENDIF.

* create one posting


CHECK postings-ktosl NE space.
postings-action = iaction. "BI2'. "nur fuer rasterung
* account determination
PERFORM read_t030u USING postings-ktosl postings-hkont.
CHECK: NOT t030u-zielk IS INITIAL,
NOT t030u-korrk IS INITIAL.
IF postings-dmbtr > 0.
postings-konto1 = t030u-zielk.
postings-bschl1 = t030b-bschs. postings-shkzg1 = 'S'.
postings-konto2 = t030u-korrk.
postings-bschl2 = t030b-bschh. postings-shkzg2 = 'H'.
ELSE.
postings-konto1 = t030u-korrk.
postings-bschl1 = t030b-bschs. postings-shkzg1 = 'S'.
postings-konto2 = t030u-zielk.
postings-bschl2 = t030b-bschh. postings-shkzg2 = 'H'.
ENDIF.

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.

DATA: l_max LIKE postings-dmbtr.


DATA: postings_ov LIKE postings.

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.

MOVE-CORRESPONDING chg_rec_collect TO postings.


postings-bukrs = chg_rec_collect-zbukr.
AT NEW zbukr.
SELECT SINGLE * FROM t001 WHERE bukrs = postings-bukrs.
ENDAT.

AT END OF vbund.
post_now = 'X'.
ENDAT.

IF post_line GE 300 AND post_now = space. post_now = 'X'. ENDIF.

* create one posting


postings-action = iaction. "'A00'. "only changed rec. acts
postings-ktosl = 'A00'.
* account determination
IF chg_rec_collect-koart = 'S'.
t030u-korrk = chg_rec_collect-hkont.
SELECT SINGLE * FROM t030b WHERE ktosl = postings-ktosl.
ELSE.
PERFORM read_t030u USING postings-ktosl postings-hkont.
ENDIF.
postings-konto1 = t030u-korrk. "correcton account of new hkont
postings-vbund = postings-vbund.
IF chg_rec_collect-koart NE'S'.
PERFORM read_t030u USING postings-ktosl chg_rec_collect-ahkont.
ENDIF.
postings-konto2 = t030u-korrk.
postings-vbund2 = chg_rec_collect-avbund.
CHECK: NOT postings-konto2 IS INITIAL,
NOT postings-konto1 IS INITIAL.
*
IF postings-dmbtr > 0.
postings-bschl1 = t030b-bschs. postings-shkzg1 = 'S'.
postings-bschl2 = t030b-bschh. postings-shkzg2 = 'H'.
ELSE.
postings-bschl1 = t030b-bschh. postings-shkzg1 = 'H'.
postings-bschl2 = t030b-bschs. postings-shkzg2 = '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 36 of 66

ENDIF.

if CHG_REC_COLLECT-AHKONT <> CHG_REC_COLLECT-HKONT.


POSTINGS-SGTXT = TEXT-263.
WRITE CHG_REC_COLLECT-AHKONT TO TEXT10 NO-ZERO.
REPLACE '&1' WITH TEXT10 INTO POSTINGS-SGTXT.
WRITE CHG_REC_COLLECT-HKONT TO TEXT10 NO-ZERO.
REPLACE '&2' WITH TEXT10 INTO POSTINGS-SGTXT.
elseif POSTINGS-VBUND <> POSTINGS-VBUND2.
POSTINGS-SGTXT = TEXT-265.
WRITE POSTINGS-VBUND2 TO TEXT10 NO-ZERO.
REPLACE '&1' WITH TEXT10 INTO POSTINGS-SGTXT.
WRITE POSTINGS-VBUND TO TEXT10 NO-ZERO.
REPLACE '&2' WITH TEXT10 INTO POSTINGS-SGTXT.
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.

MOVE-CORRESPONDING invest_collect TO postings.


postings-bukrs = invest_collect-zbukr.
AT NEW zbukr.
SELECT SINGLE * FROM t001 WHERE bukrs = postings-bukrs.
ENDAT.

AT END OF vbund.
post_now = 'X'.
ENDAT.

IF post_line GE 300 AND post_now = space. post_now = 'X'. ENDIF.

* create one posting


postings-action = iaction. "'INV'. "only changed rec. acts
* account determination
IF postings-dmbtr > 0.
PERFORM read_t030u USING 'INS' postings-hkont.
ELSE.
PERFORM read_t030u USING 'INH' postings-hkont.
ENDIF.
postings-konto1 = t030u-korrk.
postings-konto2 = t030u-zielk.
CHECK: NOT postings-konto2 IS INITIAL,
NOT postings-konto1 IS INITIAL.
*
IF postings-dmbtr < 0.
postings-bschl1 = t030b-bschs. postings-shkzg1 = 'S'.
postings-bschl2 = t030b-bschh. postings-shkzg2 = 'H'.
ELSE.
postings-bschl1 = t030b-bschh. postings-shkzg1 = 'H'.
postings-bschl2 = t030b-bschs. postings-shkzg2 = 'S'.
ENDIF.

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.

DATA: text_dmbtr(16) TYPE c.


DATA: lt_ftpost LIKE ftpost occurs 0 with header line,
ld_ldgrp LIKE bkpf-ldgrp.
DATA: l1(30) TYPE c,
l2 LIKE l1.
FIELD-SYMBOLS: <addaa>.

* do not post if value = 0.


* IF postings-dmbtr = 0. ok = 1. EXIT. ENDIF.
IF ipost_line = 0.
PERFORM posting_document USING 'NEW'.
ENDIF.

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.

WRITE postings-wrbtr CURRENCY postings-waers NO-SIGN


TO text_dmbtr.
PERFORM setzen2 USING 'BSEG-WRBTR' text_dmbtr.
bseg-wrbtr = ABS( postings-wrbtr ).
PERFORM setzen USING 'BSEG-SGTXT' postings-sgtxt.
PERFORM setzen USING 'COBL-GSBER' postings-gsber.
IF t003-xgsub NE space AND t003-xmges NE space.
PERFORM setzen USING 'BSEG-VBUND' postings-vbund.
ENDIF.
* test
* additional fields
PERFORM posting_additional_fields USING ibsl ikto.
* fill additional fields from ledger
* PERFORM posting_flex_fields.
IF sl_incl_ccode_active <> space.
PERFORM posting_sl_fields.
ENDIF.

* Populate split information in document line


IF NOT postings-addaa IS INITIAL.
IF gd_ldgrp NE SPACE AND postings-ldgrp EQ SPACE.
ld_ldgrp = gd_ldgrp.
ELSEIF postings-ldgrp NE SPACE.
ld_ldgrp = postings-ldgrp.
ENDIF.

PERFORM ska1_get USING ikto CHANGING ska1-xbilk.


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

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.

PERFORM posting_add_selection USING postkey


t001-bukrs account 'BSEG-ZUONR'
sy-subrc.
IF sy-subrc = 0.
PERFORM setzen USING 'BSEG-ZUONR' stichtag.
ENDIF.

PERFORM posting_add_selection USING postkey


t001-bukrs account 'BSEG-ABPER'
sy-subrc.
IF sy-subrc = 0.
PERFORM setzen USING 'BSEG-ABPER' stichtag(6). "yyyymm
ENDIF.
ENDFORM. "POSTING_ADDITIONAL_FIELDS

*---------------------------------------------------------------------*
* 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

* remember, you can find the offset in table TMODU


CASE pa_feld.
WHEN 'BSEG-VALUT'. char = tbsl-faus1+5(1).
WHEN 'BSEG-ABPER'. char = tbsl-faus1+2(1).
* use the default from the master record
WHEN 'BSEG-ZUONR'. char = tbsl-faus1+0(1).
WHEN 'COBL-RMVCT'. char = tbsl-faus1+26(1).
WHEN OTHERS. return = 4.
ENDCASE.
* field not allowed
IF return = 0.
IF char = '-'. return = 4. ENDIF.
ENDIF.
ENDFORM. "POSTING_ADD_SELECTION
*---------------------------------------------------------------------*
* FORM SETZEN *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> FELDNAME *
* --> FELDINHALT *
*---------------------------------------------------------------------*
FORM setzen USING feldname feldinhalt.
CHECK feldinhalt NE space.
ftpost-fnam = feldname.
ftpost-fval = feldinhalt.
APPEND ftpost.
FIELD-SYMBOLS: <f1>.
ASSIGN TABLE FIELD (ftpost-fnam) TO <f1>.
IF sy-subrc = 0.
<f1> = ftpost-fval.
ENDIF.
ENDFORM. "SETZEN

*---------------------------------------------------------------------*
* 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>.

DESCRIBE TABLE inttab LINES sy-tfill.


IF sy-tfill = 0.
* create table with the extra field names
CALL FUNCTION GET_FIELDTAB
EXPORTING
tabname = 'SAPF100_OUTIN'
TABLES
fieldtab = inttab
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 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 40 of 66

MOVE-CORRESPONDING syst TO fimsg.


PERFORM log_fimsg USING '18'
probclass_high.
ENDIF.
ENDIF.
* post the values in BI using COBL-xxx
LOOP AT inttab INTO fieldtab_glu1.
CHECK fieldtab_glu1-fieldname <> 'NIX'.
CONCATENATE 'ISTRUCT' fieldtab_glu1-fieldname
INTO fn SEPARATED BY '-'.
ASSIGN (fn) TO <f1>.
IF fieldtab_glu1-fieldname CS 'PPRCT'.
fieldtab_glu1-fieldname = 'PPRCTR'.
ENDIF.
CONCATENATE 'COBL-' fieldtab_glu1-fieldname INTO fg.
ASSIGN TABLE FIELD (fg) TO <f2>.
IF sy-subrc = 0.
PERFORM setzen USING fg <f1>.
ELSE.
MESSAGE w600 WITH text-s12 fn fg INTO g_dummy.
MOVE-CORRESPONDING syst TO fimsg.
PERFORM log_fimsg USING '18'
probclass_high.

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.

CALL FUNCTION FUNCTION_EXISTS


EXPORTING
funcname = 'K_PCA_GET_BALANCE_FLAG'
EXCEPTIONS
function_not_exist = 1
OTHERS = 2.
CHECK sy-subrc = 0.

CALL FUNCTION K_PCA_GET_BALANCE_FLAG


EXPORTING
i_bukrs = ibukrs
IMPORTING
e_biact = eflag
EXCEPTIONS
OTHERS = 7.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

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).

DATA: BEGIN OF xblntab OCCURS 2.


INCLUDE STRUCTURE BLNTAB.
DATA: END OF xblntab.
DATA: BEGIN OF xfttax OCCURS 2.
INCLUDE STRUCTURE FTTAX.
DATA: END OF xfttax.
DATA: post_index LIKE post_count. "Identifikation fuer Posting
DATA: l_gjahr LIKE bkpf-gjahr.
data: lf_docnr like bkpf-belnr.
data: lf_gjahr like bkpf-gjahr.

IF d00001_flag NE '1' AND g_ledger = space.


CHECK i_mode NE 'CLOSE'. "EXIT if EMPTY
* open batch input session

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

IF par_bi NE space. "erst hier buchungen pruefen


user = sy-uname.
mode = 'N'.
* in Mappe ausgeben, falls eine Mappe angegeben wurde
IF par_bnam NE space.
func = 'B'.
ELSE.
func = 'C'. "this is direct input
ENDIF.

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.
IF sy-subrc = 1.
MOVE-CORRESPONDING syst TO fimsg.
PERFORM log_fimsg USING '18'
probclass_high.

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.

IF par_bnam NE space AND g_ledger = space.


fimsg-msgv1 = text-243.
fimsg-msgv2 = par_bnam.
ELSE.
fimsg-msgv1 = text-241.
fimsg-msgv2 = g_i_postok.
ENDIF.
ELSE.
fimsg-msgv2 = text-244.
fimsg-msgv1 = g_acc_principle.
fimsg-msgv3 = g_ledger.
ENDIF.
fimsg-msgid = 'FR'.
fimsg-msgty = 'I'.
fimsg-msgno = '600'.
PERFORM log_fimsg USING '18'
probclass_none.
ENDIF.
EXIT.
ENDIF.

ENDIF.

*-----------------------------called at first line ---------------------


* neuer Beleg erzeugen
IF i_mode = 'NEW'.
ADD 1 TO post_count. "number of documents
post_line = 0.
REFRESH ftpost.
REFRESH: t_bkpf, t_bseg. CLEAR bkpf.
* Belegkopf
ftpost-stype = 'K'.
ftpost-count = '1'.
IF gd_ldgrp NE SPACE AND postings-ldgrp = SPACE.
perform setzen2 using 'BKPF-LDGRP' gd_ldgrp.
ELSEIF postings-ldgrp NE SPACE.
perform setzen2 using 'BKPF-LDGRP' postings-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 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.

* use FBB1 for posting to allow historical values in parallel


* currencies
*
*----------------------------------------------------------------------

IF i_mode = 'POST'.

IF par_bi NE space. "erst hier buchungen pruefen


sy-subrc = 0. fimsg-msgv1 = space.
CLEAR: lf_docnr, lf_gjahr.

* IF g_ledger <> space.


* CALL FUNCTION 'VALUATION_SL_POSTINGS'
* EXPORTING
* i_bwber = p_bwber
* 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.
* IF sy-subrc = 0.
* LOOP AT t_bkpf INTO bkpf.
* l_gjahr = bkpf-gjahr.
* fimsg-msgv1 = bkpf-belnr.
* ENDLOOP.
* ELSE.
* subrc = 4.
* ENDIF.
*
* ELSE.

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.

* 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.

SELECT SINGLE * FROM t030u WHERE ktopl = t001-ktopl


AND bwber = p_bwber
AND hkont = ihkont
AND ktosl = iktosl.
IF sy-subrc NE 0.
SELECT SINGLE * FROM t030u WHERE ktopl = t001-ktopl
AND bwber = space
AND hkont = ihkont
AND 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.
ENDIF.
ENDFORM. "READ_T030U

*---------------------------------------------------------------------*
* FORM LISTE *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM liste.
caller = 'LISTE'.

h_variant-handle = '0001'.
h_repid = sy-repid.
h_tabname_item = 'LIST_ITEM'.

DESCRIBE TABLE t_fieldcat LINES sy-tfill.


IF sy-tfill = 0.

* determine the fieldcat


PERFORM LIST_FILL_FIELDCAT TABLES T_FIELDCAT
USING h_tabname_item
h_tabname_header.
* register the exit events for user_command
PERFORM LIST_REGISTER_EXIT_EVENTS TABLES T_EVENT_EXIT.

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

* register the list events


PERFORM LIST_REGISTER_EVENTS TABLES T_EVENTS.
PERFORM list_sortinfo_make CHANGING t_slis_sort.
ENDIF.
PERFORM list_top_build USING gt_list_top_of_page[].
t_slis_layout_alv-group_change_edit ='X'. "variable gruppenwechse
" fuer top of page
t_slis_layout_alv-get_selinfos ='X'. "get selopts
SET PF-STATUS 'LISTE'.
* geht nicht, ich kann die statistik nicht abschalten
* t_slis_print_alv-print = 'X'.
* t_slis_print_alv-no_print_selinfos = 'X'.
* t_slis_print_alv-no_print_listinfos = 'X'.
* t_slis_print_alv-no_coverpage = 'X'.
*** Display list ***
PERFORM check_default_variant(saplfalv) CHANGING h_variant
IF FOUND.
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.
IF sy-subrc NE 0.
MOVE-CORRESPONDING syst TO fimsg.
PERFORM log_fimsg USING '15'
probclass_high.

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'.

* set tech fields already in standard.


PERFORM:
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'RTCUR' 'T',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'RBUSA' 'T'.

* set key fiels (from ddic) to non keyfielsd


PERFORM:

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

LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'BUKRS' 'NK',


LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'GJAHR' 'NK',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'BELNR' 'NK',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'BUKRS' 'NK',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'BUZEI' 'NK',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'HWAER' 'NK',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'OBUKR' 'NK',
* key fields (would be KY)
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'ZBUKR' 'NK',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'HKONT' 'NK',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'KONTO' 'NK',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'WAERS' 'NK'.
PERFORM:
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'XDEB1' 'NK',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'TUNIT' 'NK',
LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM 'DUEVL' 'NK'.
* set all fields to tech fields, which are not selected.
* BUT ARE DEFINED IN LIST_ITEM THE INCLUDE RFSBEW_INC
* LOOP AT fieldtab_glu1.
* LOOP AT incl_fld WHERE low = fieldtab_glu1-fieldname.
* ENDLOOP.
* IF sy-subrc <> 0.
* PERFORM:
* LIST_SET_FIELD TABLES TI_FIELDCAT USING I_ITEM
* fieldtab_glu1-fieldname 'T'.
* ENDIF.
* ENDLOOP.

* setup the Text elements for the field not dictionary


PERFORM:
LIST_SET_TEXT TABLES TI_FIELDCAT USING I_ITEM 'BDMBTR' TEXT-111,
LIST_SET_TEXT TABLES TI_FIELDCAT USING I_ITEM 'DMBTR' TEXT-114,
LIST_SET_TEXT TABLES TI_FIELDCAT USING I_ITEM 'WRBTR' TEXT-115,
LIST_SET_TEXT TABLES TI_FIELDCAT USING I_ITEM 'KONTO' TEXT-116,
* LIST_SET_TEXT TABLES TI_FIELDCAT USING I_ITEM 'BEZUGSNR' TEXT-117,
LIST_SET_TEXT TABLES TI_FIELDCAT USING I_ITEM 'HWAER' TEXT-118,
LIST_SET_TEXT TABLES TI_FIELDCAT USING I_ITEM 'FLAG_A00' TEXT-121,
LIST_SET_TEXT TABLES TI_FIELDCAT USING I_ITEM 'AVBUND' TEXT-119,
LIST_SET_TEXT TABLES TI_FIELDCAT USING I_ITEM 'AHKONT' TEXT-120.

* 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

ENDFORM. " FILL_FIELDCAT_GEN

*---------------------------------------------------------------------*
* 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.

MODIFY ti_fieldcat INDEX sy-tabix.


ENDIF.

ENDFORM. " SET_TECH_FIELDS

*---------------------------------------------------------------------*
* 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.

MODIFY ti_fieldcat INDEX sy-tabix.


ENDIF.

ENDFORM. " SET_TECH_FIELDS

*---------------------------------------------------------------------*
* 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>.

DATA: name(30) VALUE 'ti_fieldcat-&'.


*REPLACE '&' WITH i_target INTO name.
READ TABLE ti_fieldcat WITH KEY tabname = i_tabname
fieldname = i_fieldname.
IF sy-subrc = 0.
* ASSIGN (name) TO <s>.
ASSIGN COMPONENT i_target OF STRUCTURE ti_fieldcat TO <s>.
<s> = i_value.

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

MODIFY ti_fieldcat INDEX sy-tabix.


ENDIF.

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.

* determine the events


CALL FUNCTION REUSE_ALV_EVENTS_GET
EXPORTING
i_list_type = 1
IMPORTING
et_events = t_event[]
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
IF sy-subrc NE 0.
MOVE-CORRESPONDING syst TO fimsg.
PERFORM log_fimsg USING '15'
probclass_low.

ENDIF.

* form name for end of list


READ TABLE t_event WITH KEY name = slis_ev_top_of_list.
IF sy-subrc EQ 0.
t_event-form = 'LIST_TOP_OF_LIST'. MODIFY t_event INDEX sy-tabix.
ENDIF.
* set top of list form
READ TABLE t_event WITH KEY name = slis_ev_top_of_page.
IF sy-subrc = 0.
t_event-form = 'LIST_TOP_OF_PAGE'. MODIFY t_event INDEX sy-tabix.
ENDIF.

READ TABLE t_event WITH KEY name = slis_ev_end_of_list.


IF sy-subrc EQ 0.
t_event-form = 'LIST_END_OF_LIST'. MODIFY t_event INDEX sy-tabix.
ENDIF.
ENDFORM. "LIST_REGISTER_EVENTS
*---------------------------------------------------------------------*
* FORM REGISTER_EXIT_EVENTS *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> T_EVENT *
*---------------------------------------------------------------------*
FORM LIST_REGISTER_EXIT_EVENTS TABLES T_EVENT TYPE SLIS_T_EVENT_EXIT.
h_set_pf_status = 'LIST_SET_PF_STATUS'.
h_user_command = 'LIST_USER_COMMAND'.

t_event-ucomm = '&F03'. t_event-before = 'X'. APPEND t_event.


t_event-ucomm = '&F15'. t_event-before = 'X'. APPEND t_event.
t_event-ucomm = '&F12'. t_event-before = 'X'. APPEND t_event.
ENDFORM. " REGISTER_EXIT_EVENTS

*---------------------------------------------------------------------*
* 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.

ADD 1 TO spos. rs_sort-spos = spos.


rs_sort-fieldname = 'ZBUKR'.
rs_sort-up = 'X'.
* rs_sort-subtot = 'X'.
rs_sort-group = '* '. "<<<new page
* rs_sort-group = 'UL'.
APPEND rs_sort TO it_slis_sort.
ENDFORM. " REGISTER_EXIT_EVENTS

*---------------------------------------------------------------------*
* 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

* used for dialog call from rfEPOSc5


CASE i_ucomm.

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.

*determine the current line


IF i_selfield-tabname = h_tabname_item.
READ TABLE list_item INDEX i_selfield-tabindex.
IF sy-subrc = 0.
buztab-zeile = list_item-buzei.
buztab-buzei = list_item-buzei.
buztab-bukrs = list_item-bukrs.
buztab-gjahr = list_item-gjahr.
buztab-belnr = list_item-belnr.
APPEND buztab.
buztab-zeile = list_item-buzei."anzuzeigende zeile

ENDIF.
ENDIF.

IF buztab-zeile IS INITIAL.
MESSAGE e315(f4).
ENDIF.
x_nochange = space.

CALL DIALOG 'RF_ZEILEN_ANZEIGE'


EXPORTING
buztab
buztab-zeile
tcode FROM 'FB03'
x_nochange
x_commit
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 50 of 66

buztab
x_commit.
IF x_commit = 'X'.
COMMIT WORK.
ENDIF.

ENDFORM. "USER_COMMAND_ZEIL

* wird aus ALV aufgruefen


FORM list_set_pf_status USING i_extab TYPE slis_t_extab. "#EC CALLED
REFRESH i_extab.
SET PF-STATUS 'LISTE' EXCLUDING i_extab.
ENDFORM. " list_set_pf_status

*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> ITABNAME *
*---------------------------------------------------------------------*
*FORM flex_felder_erl_aufbauen USING itabname LIKE dfies-tabname.
* DATA: inttab LIKE fieldtab_glu1 OCCURS 10.

* Feldtabelle für Flex hauptbuch aufbauen


* CALL FUNCTION 'GET_FIELDTAB'
* EXPORTING
* tabname = itabname
* TABLES
* fieldtab = inttab
* EXCEPTIONS
* OTHERS = 1.
* IF sy-subrc NE 0.
* MOVE-CORRESPONDING syst TO fimsg.
* PERFORM log_fimsg USING '10'.
* ENDIF.

* LOOP AT inttab INTO fieldtab_glu1.


* Texte scrtext_m
* IF fieldtab_glu1-scrtext_m IS INITIAL.
* IF NOT fieldtab_glu1-scrtext_s IS INITIAL.
* fieldtab_glu1-scrtext_m = fieldtab_glu1-scrtext_s.
* ELSEIF NOT fieldtab_glu1-scrtext_l IS INITIAL.
* fieldtab_glu1-scrtext_m = fieldtab_glu1-scrtext_l.
* ENDIF.
* ENDIF.
* APPEND fieldtab_glu1.
* ENDLOOP.
*eNDFORM.
FORM druck_buchung.

DATA: hd_txt TYPE slis_listheader-info.


* table contains document header
DATA: BEGIN OF header.
INCLUDE STRUCTURE FAGL_DOC_HDR_ALV.
DATA:
END OF header.

* table contains doc lines (subset of bseg)


DATA: BEGIN OF item.
INCLUDE STRUCTURE FAGL_DOC_LINE_ALV.
DATA: END OF item.
DATA: t_header LIKE header OCCURS 10 WITH HEADER LINE,
t_item LIKE item OCCURS 10 WITH HEADER LINE.
DATA: h_flag(1).
DATA: lf_text_c(50) TYPE c.
DATA: ld_ldgrp LIKE bkpf-ldgrp.
DATA: ld_splinfo type fagl_s_spl.

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.

postings-dmbtr = ABS( postings-dmbtr ).


postings-wrbtr = ABS( postings-wrbtr ).
postings-dmbe1_t033 = ABS( postings-dmbe1_t033 ).
postings-dmbe2_t033 = ABS( postings-dmbe2_t033 ).

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

postings-dmbe3_t033 = ABS( postings-dmbe3_t033 ).

MOVE-CORRESPONDING postings TO t_item.


CLEAR: t_item-dmbtr, t_item-dmbe2, t_item-dmbe3.
IF t033-curtp2 = '10' OR t033-curtp3 = '10'.
t_item-dmbtr = ABS( postings-dmbe1_t033 ).
ENDIF.
t_item-dmbe2 = postings-dmbe2_t033.
t_item-dmbe3 = postings-dmbe3_t033.
CASE postings-hwtyp.
WHEN '1'.
t_item-dmbtr = postings-dmbtr.
t_header-hwaer = postings-hwaer.
WHEN '2'.
t_item-dmbe2 = postings-dmbtr.
t_header-hwae2 = postings-hwaer.
WHEN '3'.
t_item-dmbe3 = postings-dmbtr.
t_header-hwae3 = postings-hwaer.
ENDCASE.
t_item-koart = 'S'.
t_item-belnr = header-belnr.
t_item-hkont = postings-konto1.
t_item-bschl = postings-bschl1.
t_item-selkey = t_header-selkey.
IF postings-shkzg1 = 'H'.
t_item-dmbtr = 0 - t_item-dmbtr.
t_item-dmbe2 = 0 - t_item-dmbe2.
t_item-dmbe3 = 0 - t_item-dmbe3.
t_item-wrbtr = 0 - t_item-wrbtr.
ENDIF.

IF NOT postings-addaa IS INITIAL.


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.
MOVE-CORRESPONDING ld_splinfo TO t_item.
ENDIF.
APPEND t_item.
*
t_item-hkont = postings-konto2.
t_item-bschl = postings-bschl2.
t_item-vbund = postings-vbund2.
t_item-selkey = t_header-selkey.
IF postings-shkzg2 = 'H'.
t_item-dmbtr = 0 - t_item-dmbtr.
t_item-dmbe2 = 0 - t_item-dmbe2.
t_item-dmbe3 = 0 - t_item-dmbe3.
t_item-wrbtr = 0 - t_item-wrbtr.
ELSE.
t_item-dmbtr = ABS( t_item-dmbtr ).
t_item-dmbe2 = ABS( t_item-dmbe2 ).
t_item-dmbe3 = ABS( t_item-dmbe3 ).
t_item-wrbtr = ABS( t_item-wrbtr ).
ENDIF.

IF NOT postings-addaa IS INITIAL.


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.
MOVE-CORRESPONDING ld_splinfo TO t_item.
ENDIF.
APPEND t_item.
ENDLOOP.
* setup header line
IF par_bi NE space.
IF par_bnam NE space.
concatenate text-243 par_bnam into
hd_txt separated by space. "postings in BI
ELSE.
if not gd_ldgrp is initial.
concatenate text-403 gd_ldgrp text-241 into
hd_txt separated by space. "posting genereated
else.
hd_txt = text-241.
endif.
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 52 of 66

ELSE. "posting proposal


if not gd_ldgrp is initial.
concatenate text-403 gd_ldgrp text-242
into hd_txt separated by space.
else.
hd_txt = text-242.
endif.
ENDIF.

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.

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.

ENDFORM. "DRUCK_BUCHUNG
*---------------------------------------------------------------------*
FORM druck_meldung.
* CATCH SYSTEM-EXCEPTIONS import_mismatch_errors = 8.
DATA: l_s_log TYPE bal_s_log.

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.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

IF 0 = 1.

CALL FUNCTION FI_MESSAGES_ALV


EXPORTING
i_headline = text-044
is_variant = h_variant
is_layout = t_slis_layout_alv
EXCEPTIONS
OTHERS = 0.
ENDIF.

ENDFORM. "DRUCK_MELDUNG

*---------------------------------------------------------------------*
* FORM LOG_FIMSG *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> ISORT *
*---------------------------------------------------------------------*
FORM log_fimsg_old USING isort LIKE fimsg-msort.
fimsg-msort = isort.

CALL FUNCTION FI_MESSAGE_COLLECT


EXPORTING
i_fimsg = fimsg
i_xappn = ' '
EXCEPTIONS
OTHERS = 0.
ENDFORM. "LOG_FIMSG_OLD
*ORM MSG_ADD USING VALUE(I_PROBCLASS) TYPE BAL_S_MSG-PROBCLASS.
FORM log_fimsg USING value(isort) TYPE bal_s_msg-alsort
value(i_probclass) TYPE bal_s_msg-probclass.

CHECK fimsg-msgno NE 0. CHECK fimsg-msgid NE space.


DATA:
l_s_msg TYPE bal_s_msg.

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 ...

* add this message to log file


* we do not specify I_LOG_HANDLE since we want to add this message
* to the default log. If it does not exist we do not care
* (EXCEPTIONS log_not_found = 0).
IF fimsg-msgty = 'E'. g_e_msg = 'X'. ENDIF.
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
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

ENDFORM. "LOG_FIMSG

*---------------------------------------------------------------------*
* FORM log_fimsg_create *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM log_fimsg_create.
DATA:
g_s_log TYPE bal_s_log,
g_value TYPE i.

* define some header data of this log

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.

CALL FUNCTION BAL_LOG_CREATE


EXPORTING
i_s_log = g_s_log
EXCEPTIONS
OTHERS = 1.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

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.

WHEN '3'. "* in years


t044l-duevl = t044l-duevl * 12." use month for calc.
CALL FUNCTION MONTH_PLUS_DETERMINE
EXPORTING
months = t044l-duevl
olddate = x_t044l-gtdatum
IMPORTING
newdate = x_t044l-gtdatum.
ENDCASE.
* with or w/o first day? "ab datum erhöhen
IF t044l-xincl = space.
x_t044l-gtdatum = x_t044l-gtdatum + 1.
ENDIF.
*
MOVE-CORRESPONDING x_t044l TO x_t044ld.
COLLECT: x_t044ld, x_t044l.

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'.

SELECT SINGLE * FROM t044lh WHERE methd = standard.


CHECK sy-subrc NE 0.

DELETE FROM t044l WHERE methd = standard.


DELETE FROM t044kt WHERE methd = standard. "#EC CI_NOFIRST
t044l-methd = standard.
t044l-xincl = space.
t044l-tunit = '3'.

t044l-ktosl = 'V00'. alt = 'VS1'.


t044l-xdeb1 = 'X'.
t044l-duevl = '0'.
t044l-postar = ' '. t044l-postap = 'X'. t044l-postgl = 'X'.
PERFORM setup_eg93_text USING t044l alt.
INSERT t044l.
t044l-ktosl = 'V01'. alt = 'VS2'.
t044l-xdeb1 = 'X'.
t044l-duevl = '1'.
t044l-postar = 'X'. t044l-postap = 'X'. t044l-postgl = 'X'.
PERFORM setup_eg93_text USING t044l alt.
INSERT t044l.
t044l-ktosl = 'V02'. alt = 'VH1'.
t044l-xdeb1 = ' '.
t044l-duevl = '0'.
t044l-postar = 'X'. t044l-postap = ' '. t044l-postgl = 'X'.
PERFORM setup_eg93_text USING t044l alt.
INSERT t044l.
t044l-ktosl = 'V03'. alt = 'VH2'.
t044l-xdeb1 = ' '.
t044l-duevl = '1'.
t044l-postar = 'X'. t044l-postap = 'X'.
PERFORM setup_eg93_text USING t044l alt.
INSERT t044l.
t044l-ktosl = 'V04'. alt = 'VH3'.
t044l-xdeb1 = ' '.
t044l-duevl = '5'.
t044l-postar = 'X'. t044l-postap = 'X'. "<<13.12.99 also A/R 5Yrs

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

PERFORM setup_eg93_text USING t044l alt.


INSERT t044l.
t044lh-methd = standard. INSERT t044lh.
t044lt-methd = t044lh-methd.
t044lt-spras = sy-langu.
t044lt-txt30 = text-037.
INSERT t044lt.
COMMIT WORK.
ENDFORM. "setup_eg93
*---------------------------------------------------------------------*
* FORM setup_eg93_text *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> it044l *
* --> ialt *
*---------------------------------------------------------------------*
FORM setup_eg93_text USING it044l STRUCTURE t044l ialt LIKE t030w-ktosl.
TABLES: T030W.

MOVE-CORRESPONDING it044l TO t044kt.


IF ialt = 'VS1'.
t044kt-spras = sy-langu.
t044kt-txt30 = 'Forderungen bis ein Jahr'(035).
INSERT t044kt.
ELSEIF ialt = 'VH1'.
t044kt-spras = sy-langu.
t044kt-txt30 = text-036.
INSERT t044kt.
ELSE.

SELECT * FROM t030w WHERE ktosl = ialt.


t044kt-spras = t030w-spras.
t044kt-txt30 = t030w-ltext.
INSERT t044kt.
ENDSELECT.
ENDIF.
SELECT * FROM t030u WHERE ktosl = ialt. "#EC CI_GENBUFF
t030u-ktosl = it044l-ktosl.
INSERT t030u.
ENDSELECT.
SELECT * FROM t030b WHERE ktosl = ialt.
t030b-ktosl = it044l-ktosl.
INSERT t030b.
ENDSELECT.
ENDFORM. "setup_eg93_text
*---------------------------------------------------------------------*
* FORM schedman_start_stop *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> icommand *
*---------------------------------------------------------------------*
FORM schedman_start_stop USING icommand TYPE c.
STATICS: ls_key_static LIKE schedman_key.

DATA: gs_key LIKE schedman_key.

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.

ELSEIF icommand = 'STOP'.


clear ls_scma_event.

* 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.

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.

IF sy-subrc <> 0. "#EC *


* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
COMMIT WORK.

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

INCLUDE STRUCTURE RSDSTABS.


DATA END OF TABLES_TAB.
*Felder obiger Tabellen
DATA: BEGIN OF fields OCCURS 10.
INCLUDE STRUCTURE RSDSFIELDS.
DATA: END OF fields.
DATA: BEGIN OF fields_not OCCURS 10.
INCLUDE STRUCTURE RSDSFIELDS.
DATA: END OF fields_not.

DATA:ds_expr_tab TYPE rsds_expr_tab.


DATA:ds_expr_tab_line LIKE rsdsexpr.

DATA: ds_texpr TYPE rsds_expr.

DATA: selection_id LIKE rsdynsel-selid.


* if x_ap <> space.
* credit
TABLES_TAB-PRIM_TAB = 'LFA1'. APPEND TABLES_TAB.
TABLES_TAB-PRIM_TAB = 'LFB1'. APPEND TABLES_TAB.
* TABLES_TAB-PRIM_TAB = 'BSIK'. APPEND TABLES_TAB.
* endif.
*
* if x_ar <> space.
TABLES_TAB-PRIM_TAB = 'KNA1'. APPEND TABLES_TAB.
TABLES_TAB-PRIM_TAB = 'KNB1'. APPEND TABLES_TAB.
* TABLES_TAB-PRIM_TAB = 'BSID'. APPEND TABLES_TAB.
* endif.

*if 'S' in koart.


TABLES_TAB-PRIM_TAB = 'SKA1'. APPEND TABLES_TAB.
TABLES_TAB-PRIM_TAB = 'SKB1'. APPEND TABLES_TAB.
* TABLES_TAB-PRIM_TAB = 'BSIS'. APPEND TABLES_TAB.
* endif.

TABLES_TAB-PRIM_TAB = 'BSEG'. APPEND TABLES_TAB.


TABLES_TAB-PRIM_TAB = 'BKPF'. APPEND TABLES_TAB.
* do not allow empty selection table
DESCRIBE TABLE TABLES_TAB LINES SY-TFILL.
IF sy-tfill = 0. MESSAGE e124. ENDIF.
* fill fields from previous fs_dyns in case it was in variant
LOOP AT fs_dyns-texpr INTO ds_texpr.

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.

DATA l_text LIKE smp_dyntxt.

MOVE: icon_fencing TO l_text-icon_id,


'Free selections'(270) TO l_text-text. "#EC *

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.

ENDFORM. " SET_SSCRTEXTS_DYNSEL


*&---------------------------------------------------------------------*
*& Form FREE_SELECTIONS_BUILD
*&---------------------------------------------------------------------*
* Build free selections
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 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.

IF sy-subrc = 0. bseg_clauses_filled = 'X'. ENDIF.


READ TABLE fs_dyns-clauses
WITH TABLE KEY tablename = 'BKPF' INTO bkpf_clauses.
IF sy-subrc = 0. bkpf_clauses_filled = 'X'. ENDIF.
*
READ TABLE fs_dyns-clauses WITH KEY 'LFA1' INTO lfa1_clauses.
IF sy-subrc = 0. lfa1_clauses_filled = 'X'. ENDIF.
READ TABLE fs_dyns-clauses WITH KEY 'LFB1' INTO lfb1_clauses.
IF sy-subrc = 0. lfb1_clauses_filled = 'X'. ENDIF.
* read table fs_dyns-clauses with key 'BSIK' into bsik_clauses.
* if sy-subrc = 0. bsik_clauses_filled = 'X'. endif.
READ TABLE fs_dyns-clauses WITH KEY 'KNA1' INTO kna1_clauses.
IF sy-subrc = 0. kna1_clauses_filled = 'X'. ENDIF.
READ TABLE fs_dyns-clauses WITH KEY 'KNB1' INTO knb1_clauses.
IF sy-subrc = 0. knb1_clauses_filled = 'X'. ENDIF.
* read table fs_dyns-clauses with key 'BSID' into bsid_clauses.
* if sy-subrc = 0. bsid_clauses_filled = 'X'. endif.
* Open items G/L
READ TABLE fs_dyns-clauses WITH KEY 'SKA1' INTO ska1_clauses.
IF sy-subrc = 0. ska1_clauses_filled = 'X'. ENDIF.
READ TABLE fs_dyns-clauses WITH KEY 'SKB1' INTO skb1_clauses.
IF sy-subrc = 0. skb1_clauses_filled = 'X'. ENDIF.
* read table fs_dyns-clauses with key 'BSIS' into bsis_clauses.
* if sy-subrc = 0. bsis_clauses_filled = 'X'. endif.
ENDFORM. "free_selections_build
*---------------------------------------------------------------------*
* FORM list_config_list
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
* --> IREPID
* --> IFORM_NAME
*---------------------------------------------------------------------*
FORM list_config_list USING irepid LIKE sy-repid
iform_name TYPE c.
DESCRIBE TABLE list_item LINES sy-tfill.
IF sy-tfill = 0.
GET PARAMETER ID 'BUK' FIELD t001-bukrs.
SELECT SINGLE * FROM t001 WHERE bukrs = t001-bukrs.
IF sy-subrc <> 0.
SELECT * FROM t001 WHERE bukrs IN bukrs.
EXIT.
ENDSELECT.
IF sy-subrc <> 0.
SELECT SINGLE * FROM t001 WHERE bukrs = '0000'.
ENDIF.
ENDIF.
MOVE-CORRESPONDING t001 TO list_item.
APPEND list_item.
APPEND list_item.
ENDIF.

CALL FUNCTION FI_LIST_VARIANTS_PREVIEW_ALV


EXPORTING
i_repid = irepid
i_list_form = iform_name
TABLES
t_outtab = list_item.
* IS_VARIANT =
REFRESH list_item.

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.

CALL FUNCTION FAGL_GET_LDGRP_FROM_VALU_AREA


EXPORTING
val_area = ibwber
IMPORTING
ledger_group = e_ldgrp
acc_principle = e_acc_principle
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 - 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.

DATA: BEGIN OF out,


bukrs LIKE belege-bukrs,
belnr LIKE belege-belnr,
buzei LIKE belege-buzei,
gjahr LIKE belege-gjahr,
hwtyp(1),
*
bdmbtr LIKE belege-bdmbtr,
wrbtr LIKE belege-wrbtr,
shkzg LIKE belege-shkzg,
ktosl LIKE belege-ktosl,
ahkont LIKE belege-ahkont,
avbund LIKE belege-avbund,

END OF out.
STATICS: count TYPE i.

MOVE-CORRESPONDING ibelege TO out.


*
CASE imode.
WHEN ' '.
TRANSFER out TO p_flnam.
* ktosl already there
WHEN 'I'.
* investments -----------------------------
IF ibelege-shkzg = 'S'.
out-ktosl = 'INS'.
TRANSFER out TO p_flnam.
ELSE.
out-ktosl = 'INH'.
ENDIF.
TRANSFER out TO p_flnam.

* changed rec. account --------------------


WHEN 'A'.
out-ktosl = 'INS'.
TRANSFER out TO p_flnam.
WHEN 'C'.
MESSAGE i600 WITH 'Anzahl der Datensätze:'(005) count
INTO g_dummy.
MOVE-CORRESPONDING syst TO fimsg.
PERFORM log_fimsg USING '20'
probclass_none.

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.

DATA: wa_tbsl TYPE tbsl,


wa_t001u TYPE t001u.

* read T001U for company codes


SELECT * FROM t001u INTO wa_t001u WHERE vbukr IN bukrs.
x_t001u_bs-bukrs = wa_t001u-vbukr.

IF wa_t001u-konts NE space. "debit account


x_t001u_bs-konto = wa_t001u-konts.
x_t001u_bs-bschl = wa_t001u-bschs.
COLLECT x_t001u_bs.
ENDIF.

IF wa_t001u-konth NE space. "credit account


x_t001u_bs-konto = wa_t001u-konth.
x_t001u_bs-bschl = wa_t001u-bschh.
COLLECT x_t001u_bs.
ENDIF.
ENDSELECT.

* read account type of posting key and fill table x_t001u_ka


REFRESH x_t001u_ka.
CLEAR: x_t001u_ka, wa_tbsl.

SORT x_t001u_bs BY bschl.

LOOP AT x_t001u_bs WHERE bschl NE space.


IF x_t001u_bs-bschl NE wa_tbsl-bschl.
SELECT SINGLE * FROM tbsl INTO wa_tbsl
WHERE bschl = x_t001u_bs-bschl.
IF sy-subrc <> 0.
CLEAR wa_tbsl.
ENDIF.
ENDIF.

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.

* Check status of GLFlex -----------------------------------------------


CALL FUNCTION FAGL_CHECK_GLFLEX_ACTIVE
EXPORTING
id_bukrs = cga_bukrs
IMPORTING
e_glflex_active = ld_active.

* Set activity flag ----------------------------------------------------


IF ld_active IS INITIAL.
CLEAR cga_active.
ELSE.
cga_active = 'X'.
ENDIF.
ENDFORM. " check_glflex_active

*&--------------------------------------------------------------------*
*& Form split_set
*&--------------------------------------------------------------------*
FORM split_set USING i_bukrs LIKE t001-bukrs
CHANGING eflag LIKE split_flag.

CALL FUNCTION FI_SPLIT_ACTIVATION


EXPORTING
id_cocd = i_bukrs
IMPORTING
ed_active = eflag.
ENDFORM. "split_set

*&---------------------------------------------------------------------*
*& 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.

IF NOT split_flag IS INITIAL.


CALL FUNCTION FI_SPLIT_FROM_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 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.

* Before collecting the amounts: Check assignment field of entry view


* whether the field is also defined as split field in order to
* initialize the value of the entry view assignemnt to avoid
* additional cumulation level:
* BUSINESS AREA (FIX FIELD GSBER IN INTERNAL TABLES)
IF ld_spl_subrc = 0 AND
NOT split_flag IS INITIAL AND
NOT lt_spl_doc[] IS INITIAL.
CASE cps_action.
WHEN act1.
PERFORM check_entryview_field USING 'GSBER'
CHANGING post_collect.
WHEN act2.
PERFORM check_entryview_field USING 'GSBER'
CHANGING chg_rec_collect.
WHEN act3.
PERFORM check_entryview_field USING 'GSBER'
CHANGING invest_collect.
ENDCASE.
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.

LOOP AT lt_spl_doc INTO ls_spl_item.


CASE cps_action.

* BI2 - Rasterung Laufzeit


WHEN act1.
MOVE-CORRESPONDING ls_spl_item TO post_collect.
post_collect-hwaer = haus-waers.
IF pa_waers = space. "post in LC
post_collect-waers = post_collect-hwaer.
post_collect-wrbtr = ls_spl_item-dmbtr.
IF post_collect-hwtyp <> '1'.
post_collect-wrbtr = 0.
ENDIF.
ENDIF.
COLLECT post_collect.

* A00 - Geändertes Abstimmkonto/Partnergesellschaft


WHEN act2.
MOVE-CORRESPONDING ls_spl_item TO chg_rec_collect.
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 = ls_spl_item-dmbtr.
IF chg_rec_collect-hwtyp <> '1'.
chg_rec_collect-wrbtr = 0.
ENDIF.
ENDIF.
COLLECT chg_rec_collect.

* 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.

DATA: lt_fields_accit TYPE ttfieldname,


lf_fieldname_accit TYPE fieldname.
DATA: lf_fieldname_bseg TYPE fieldname.

REFRESH gt_split_fieldnames.

CALL FUNCTION FAGL_GET_SPLITFIELDS_ACCIT


IMPORTING
ET_FIELDS_ACCIT = lt_fields_accit.

LOOP AT lt_fields_accit INTO lf_fieldname_accit.


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.
IF sy-subrc = 0.
APPEND lf_fieldname_bseg TO gt_split_fieldnames.
ELSE.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDLOOP.

ENDFORM. "get_split_fieldnames
*&---------------------------------------------------------------------*
*& Form CHECK_ENTRYVIEW_FIELD
*&---------------------------------------------------------------------*
FORM check_entryview_field USING p_fieldname TYPE fieldname
CHANGING p_record TYPE ANY.

FIELD-SYMBOLS: <fs_evfield> TYPE ANY.

READ TABLE gt_split_fieldnames WITH KEY = p_fieldname


TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
ASSIGN COMPONENT p_fieldname OF STRUCTURE p_record TO <fs_evfield>.
IF sy-subrc = 0.
CLEAR <fs_evfield>.
ENDIF.
ENDIF.

ENDFORM. " CHECK_ENTRYVIEW_FIELD

ENDFORM. " CHECK_ENTRYVIEW_FIELD

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

 This blog post


 All blog posts

Subscribe to this blog post's comments through...

 Add to
Subscribe in NewsGator Online


Add to My Yahoo!


Feedblitz


Add to Pageflakes


Add to Google


Subscribe with Bloglines




 Add to

RSS Feed
RSS Icon

Subscribe via email

Email Address Subscribe


Follow the discussion
Comments

Logging you in...


Close

Login to IntenseDebate

Or create an account

Username or Email:
Password:

Forgot login?

OpenID
Cancel Login
Close WordPress.com
Username or Email:
Password:

Lost your 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

Login with your OpenID

Or create an account using OpenID

OpenID URL: http://


Back
Cancel Login
Dashboard | Edit profile | Logout

 Logged in as

There are no comments posted yet. Be the first one!


Post a new comment

Enter text right


here!
Comment as a Guest, or login:

 Login to IntenseDebate
 Login to WordPress.com
 Login to OpenID

Name
Email
Website (optional)

Displayed next to your comments.

Not displayed publicly.

If you have a website, link to it here.


OpenID URL http://

Comment as a Guest or login using OpenID


Submit Comment
Subscribe to None

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

You might also like