Ansicht
Dokumentation
FC_TOTALS_SELECT_FROM_ITAB - Selektion von Summensätzen/Belegen aus interner Tabelle
Addresses (Business Address Services) ABAP Short ReferenceDiese Dokumentation steht unter dem Copyright der SAP AG.
Funktionalität
Hinsichtlich der Performance optimierte Ermittlung des Saldos von Summensätzen/Belegen.
-
Input
Das Feld FIELDNAME der Tabellen IT_SEL, IT_FIELDS, IT_KFIG, IT_KFIG_PP sollten nach Möglichkeit mit Hilfe der Konstanten FC00_CON_TS_FLD gefüllt werden. -
IT_SEL
Selektionsbedingung als ECMCT/A-Feldname plus RANGE.
Sonderfälle:
Feldname für Periode ist POPER.
SUMIT: Feldname der Summenposition (nur für E_SUMIT = init.)
SUMIT: Feldname der SummenCG (nur für E_SUMCG = init.) -
IT_FIELDS
Feldnamen der Merkmale, die in IT_DATA gefüllt sein sollen z.B. RBUNIT, RITEM, ...
In IT_FIELDS-FIELDNAME steht der ECMCT-Feldname (bzw. POPER, SUMIT, SUMCG). Weicht der Feldname in IT_DATA hiervon ab, so ist in IT_FIELDS-DATAFIELD der IT_DATA-Feldname anzugeben. Für IT_FIELDS-FIELDNAME sind anstatt von Literalen die Konstanten der Feldleiste FC00_CON_TS_FLD zu verwenden.
Bsp.:
Feldnamen in IT_DATA: CONGR RITEM SITEM
IT_FIELDS: (FIELDNAME, DATAFIELD) =
(RCONGR, CONGR), (RITEM,), (SUBIT, SITEM)
Felder, die in IT_SEL mit I/EQ spezifiziert wurden, sind in IT_FIELDS redundant. -
IT_KFIG
Feldnamen der Kennzahlen, die in der IT_DATA gefüllt sein sollen.
IT_KFIG-FIELDNAME und IT_KFIG-DATAFIELD sind analog IT_FIELDS anzugeben.
mögliche Kennzahlen: KSL, HSL, TSL, MSL -
IT_KFIG_PP
Feldnamen von Kennzahlen, die in der IT_DATA mit kumulierten Vorperiodenwerten gefüllt werden sollen.
IT_KFIG_PP-FIELDNAME und IT_KFIG_PP-DATAFIELD sind analog IT_FIELDS anzugeben.
Wenn IT_KFIG_PP nicht initial ist, so muß folgendes gelten:
- Die Parameter E_PERID_CUM, E_SIGN, E_SUMIT, E_SUMCG, E_SUMVS, E_RVERS, E_RYEAR, E_PERID müssen initial sein.
- Zu jeder in IT_KFIG aufgeführten Kennzahlen muß es einen Eintrag zur gleichen Kennzahl in IT_KFIG_PP geben. Wenn E_KFIG_ALL gesetzt ist, muß es zu jeder der vier Kennzahlen einen Eintrag in IT_KFIG_PP geben.
- Die Selektionsbedingung zum Feld POPER muß ein Intervall bilden: POPER = (P1,P2) mit P1 < P2. -
E_FIELDS_ALL
Alle Merkmale von ECMCT werden selektiert. Die Angaben in IT_FIELDS sind irrelevant. Die Felder in IT_DATA müssen wie in der ECMCT heißen. -
E_KFIG_ALL
Alle Kennzahlen von ECMCT (HSL, KSL, TSL, MSL) werden selektiert. Die Angaben in IT_KFIG sind irrelevant. Die Felder müssen 'HSL', 'KSL', 'TSL' und 'MSL' heißen. -
E_PERID_CUM
Flag. Ist es gesetzt, so werden für alle gewünschten Perioden Werte selektiert, die in IT_DATA zurückgegebene Periode jedoch ist die größte in Selektionsbedingung Angeforderte (Default = 16). -
E_SIGN
Flag. Wenn gesetzt, werden die Werte mit Vorzeichen gemäß Positionskatalog multipliziert. Die Position muß dann auch in IT_FIELDS enthalten sein. -
E_SUMIT
Flag. Wenn gesetzt, so werden alle mitgegebenen Positionen als Summenpositionen interpretiert und es werden die Summenpositionen selbst sowie die zugehörigen untergeordneten Summen- und Wertpositionen selektiert. Mitgegebene Wertpositionen werden als nur sich selbst umfassende Summenpositionen interpretiert.
Anschließend werden Wertpositionen in die in IT_SEL mitgegebenen Summenpositionen verdichtet. (Die Position muß dann auch in IT_FIELDS enthalten sein.?) Die Ergebnismenge umfaßt nur die in IT_SEL angegebenen Positionen. Bei der Verdichtung von Summen- und Wertpositionen in übergeordnete Summenpositionen werden gegebenenfalls Aufrißinformationen zurückgenommen, sofern sie in IT_FIELDS angefordert wurden.
Wenn E_SUMIT gesetzt ist, darf daß Kunstfeld SUMIT nicht benutzt werden. -
E_SUMCG
Flag. Analog E_SUMIT für Konsolidierungskreise -
E_RVERS, E_RYEAR, E_PERID
Parameter zur Strukturauflösung von Konsolidierungskreisen. Werden benötigt, sobald in IT_SEL oder IT_FIELDS das Merkmal Konsolidierungskreis vorkommt. -
E_DATABASE
Sollen nicht Summensätze (ECMCT), sondern Belege (ECMCA) selektiert werden, so ist dieser Parameter gleich FC00_C_TS_DATABASE-DOCUMENTS zu setzen. Außer IT_KFIG_PP sind alle obigen Parameter zulässig. Als Feldnamen (FIELDNAME) können die Feldnamen der Tabelle ECMCA verwendet werden. -
Output
IT_DATA
Interne Tablle mit beliebiger Struktur. Die in IT_FIELDS und IT_KFIG angeforderten Felder sind gefüllt. -
Exceptions
Die Exceptions deuten allesamt auf Fehler des aufrufenden Programms hin und sollten deshalb nicht abgefangen werden. -
Levellogik
Wenn die Parameter zur Strukturauflösung und als Feld RCONGR oder SUMCG angegeben sind, so wird mit Levellogik selektiert. Ansonsten wird ohne Sonderlogik bezüglich der Level gearbeitet. -
Attribute
Navigationsattribute sind sowohl in IT_SEL als auch in IT_FIELDS möglich. Sie verhalten sich wie Felder, die in der Summendatenbank stehen mit folgender Ausnahme: Wenn das Navigationsattribut NX eines Feldes X in IT_SEL oder IT_FIELDS vorkommt, dann müssen das Feld X und die unabhängigen Felder zu X in IT_DATA enthalten sein, es sei denn es diese Felder werden durch IT_SEL auf Einzelwerte eingeschränkt: - X muß nicht in IT_DATA vorkommen, wenn die zugehörige Selektionsbedingung einen Einzelwert festlegt (d.h. IT_SEL hat einen Eintrag mit SIGN='I' und OPTION='EQ').
-
Die unabhängigen Felder zu X müssen nicht in IT_DATA vorkommen, wenn die zugehörige Selektionsbedingung jeweils einen Einzelwert festlegt.
Beispiel
- Beispiel zu E_SUMIT bzw. Feld SUMIT.
Gegeben sei folgender Positionskatalog:
I1 (Wert)
- BALANCE
- 1000 5
- 1010 4
- 1011 3
- 1030 2
Sei nun ITCLG = 'I1' und RITEM = '1000', '1011' in IT_SEL angegeben.
'RITEM' in
E_SUMIT IT_FIELDS: => ITEM Wert
----------------------------------------------------------------------
' ' nein ---- 8
----------------------------------------------------------------------
' ' ja 1000 5
1011 3
----------------------------------------------------------------------
'X' nein ---- 17
----------------------------------------------------------------------
'X' ja 1000 14
1011 3
Sei nun E_SUMIT = ' ' und ITCLG = 'I1' angegeben sowie
....IT_SEL........... ..IT_FIELS... Ausgabe..............
SUMIT RITEM Ausgabefelder => SUMIT RITEM Wert
-------------------------------------------------------------------
---- 1000,1011 - ---- ---- 8
-------------------------------------------------------------------
---- 1000,1011 RITEM ---- 1000 5
1011 3
-------------------------------------------------------------------
1000,1011 ---- - ---- ---- 17
-------------------------------------------------------------------
1000,1011 ---- SUMIT 1000 ---- 14
1011 ---- 3
-------------------------------------------------------------------
1000,1011 ---- SUMIT,RITEM 1000 1000 5
1000 1010 4
1000 1011 3
1000 1030 2
1011 1011 3
Zahlreiche weitere Kombinationsmöglichkeiten sind erlaubt.
- Beispiel zur Periodenselektion
- Periode: 1. POPER/I/EQ/012 liefert den Periodenwert,
2. POPER/I/BT/000/012 liefert den Year-To-Date-Wert.
Wird in IT_FIELDS das Feld POPER angegeben, so enthält IT_DATA im ersten Fall Sätze mit POPER=12. Im zweiten Fall enthält IT_DATA Sätze mit POPER=(0, 1, ..., 12), wenn E_PERID_CUM initial ist bzw. Sätze mit POPER=12, wenn E_POPER_CUM gesetzt ist.
- Beispiel zur Selektion von kumulierten Vorperiodenwerten
- Periode: 1. POPER/I/BT/000/006
- IT_KFIG: HSL/
- IT_KFIG_PP: HSL/HSLPP
IT_DATA enthält die beiden Wertfelder HSLPP und HSL. In das erstere wird die Summe der Perioden 000 bis 005 eingefüllt und in das letztere der Wert der Periode 006.
- Beispiel zur Selektion mit Attributen
- IT_FIELDS enthält RBUPTR__CNTRY
- IT_SEL enthält RBUNIT__CNTRY/I/EQ/DE
- IT_DATA muß dann natürlich ein FELD RBUPTR__CNTRY enthalten, aber zusätzlich auch RBUPTR und RDIMEN (wegen IT_FIELDS) sowie RBUNIT und RDIMEN (wegen IT_SEL). In IT_DATA wird dann das Land des Partners gefüllt. Selektiert werden alle Konsolidierungseinheiten mit Land = DE. Die Felder RDIMEN, RBUNIT und RBUPTR würden nur dann gefüllt, wenn sie ebenfalls in IT_FIELDS vorkämen.
- Weiteres Beispiel zur Selektion mit Attributen
- Wie das vorhergehende Beispiel mit dem Unterschied, daß IT_SEL zusätzlich den Eintrag RDIMEN/I/EQ/XY enthält.
- IT_DATA muß wie im vorhergehenden Beispiel definiert sein mit dem Unterschied, daß das Feld RDIMEN nicht enthalten sein muß, weil RDIMEN per IT_SEL auf einen Einzelwert eingeschränkt wurde.
Hinweise
Weiterführende Informationen
Parameter
ET_ECMCAE_COITP
E_PERID
E_PERID_CUM
E_RVERS
E_RYEAR
E_SIGN
E_SUMCG
E_SUMIT
E_SUMVS
IT_DATA
IT_FIELDS
IT_KFIG
IT_KFIG_PP
IT_SEL
I_DONE
Ausnahmen
FIELDNAME_WRONGFIELDS_MISSING
KFIG_MISSING
Funktionsgruppe
FC0DABAP Short Reference SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 11045 Date: 20240523 Time: 121132 sap01-206 ( 142 ms )