Ansicht
Dokumentation

FC_TOTALS_SELECT_FROM_ITAB - Selektion von Summensätzen/Belegen aus interner Tabelle

FC_TOTALS_SELECT_FROM_ITAB - Selektion von Summensätzen/Belegen aus interner Tabelle

Addresses (Business Address Services)   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Funktionalität

Hinsichtlich der Performance optimierte Ermittlung des Saldos von Summensätzen/Belegen.

  1. 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.
    1. 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.)
    2. 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.
    3. 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
    4. 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.
    5. 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.
    6. 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.
    7. 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).
    8. E_SIGN
      Flag. Wenn gesetzt, werden die Werte mit Vorzeichen gemäß Positionskatalog multipliziert. Die Position muß dann auch in IT_FIELDS enthalten sein.
    9. 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.
    10. E_SUMCG
      Flag. Analog E_SUMIT für Konsolidierungskreise
    11. 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.
    12. 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.
  2. Output
    IT_DATA
    Interne Tablle mit beliebiger Struktur. Die in IT_FIELDS und IT_KFIG angeforderten Felder sind gefüllt.
  3. Exceptions
    Die Exceptions deuten allesamt auf Fehler des aufrufenden Programms hin und sollten deshalb nicht abgefangen werden.
  4. 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.
  5. 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:
    1. 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').
    2. 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_ECMCA
E_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_WRONG
FIELDS_MISSING
KFIG_MISSING

Funktionsgruppe

FC0D

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