Andreas Unkelbach
Logo Andreas Unkelbach Blog

Andreas Unkelbach Blog

ISSN 2701-6242

Artikel über Controlling und Berichtswesen mit SAP, insbesondere im Bereich des Hochschulcontrolling, aber auch zu anderen oft it-nahen Themen.


Werbung
Aktuelles von Andreas Unkelbach

unkelbach.link/et.reportpainter/

unkelbach.link/et.migrationscockpit/



Montag, 3. November 2014
19:31 Uhr

SAP Query ABAP Coding im Zusatzfeld für Verknüpfung Innenauftrag und Fond bzw. Finanzierungszweck oder auch Status GESPERRT bei Innenaufträgen

Ausgangslage:
Im Artikel "Query FI Einzelposten als Belegjournal - Belegsegment (BSEG) und Belegkopf (BKPF) verknüpfen" wurde durch Thomas auf eine Möglichkeit hingewiesen eine Query über eine Zusatztabelle zu erweitern:

Kommentar von Thomas
Wirklich eine Super Anleitung!

Mir hat noch die Kontenbezeichnung gefehlt.
Das lässt sich so realisieren:
SQ02
Zusätze (F5)
Knoten: BSEG
Anlegen
Zusatztabelle -> SKAT
SPRAS = SY-LANGU
KTOPL = 'XXXX' (4stelliger Kontoplan in einfachen Hochkomma)!
Wir arbeiten nur mit einem Kontenplan. Deshalb der Festwert.
SAKNR = BSEG-HKONT
(in diesem Fall noch "intern puffern anhaken"
Jetzt ist die Tabelle unter BSEG eingebunden und das Textfeld (SKAT-TXT20 oder TXT50) kann in das Belegsegment hineingezogen werden.
Gruß
Thomas

Zwischenzeitlich habe ich mich auch ein wenig mehr mit Zusatzfeldern beschäftigt und kann nun die Anforderungen aus 2011 (siehe Artikel "SAP Query Stammdaten PSM / CO Innenauftrag") dank des Codingvorschlages eines Kollegen ebenfalls erfüllen.


Es soll eine Stammdatenliste aus den beiden Modulen CO und PSM-FM (Innenauftrag und Fond) erstellt werden. Hierbei sollen in der Liste Laufzeit des Projektes (Arbeitsbeginn und Arbeitsende aus CO) der Finanzierungszweck (ein Stammdatenfeld aus Fond) und die Information ausgegeben werden, ob dieses Projekt gesperrt ist.

Grundsätzlich sind die Tabellen bekannt in denen diese Informationen stehen. Die Stammdaten der Fonds befinden sich in der Tabelle FMFINCODE und der Innenaufträge in AUFK. Allerdings ist das Feld FMFINCODE-FINCODE   (Fond) vom Typ Char mit einer Länge von 10 Zeichen und das Feld AUFK-AUFNR (Auftragsnummer) zwar auch vom Typ Char allerdings mit einer Länge von 12 Zeichen. Somit können beide Felder nicht verknüpft werden, da diese Werte nicht übereinstimmen.

Der Systenstatus ist zwar ebenfalls in einer Tabelle gespeichert (JEST - siehe Artikel "
SAP Query: Systemstatus CO Innenauftrag") allerdings sind hier mehrere Datenzeilen je Status vorhnaden und uns interessiert eigentlich nur der Status I0043 für gesperrt. Anders als 2011 vermutet bedarf es bei der Pflege von SAP Query aber keines Entwicklerschlüssel für die Nutzung von ABAP Code, so dass hier eine Möglichkeit besteht per Coding an die relevanten Informationen zu kommen. Die Umsetzung ist in diesem Artikel unter "Zusatzfeld GESPERRT bei gesperrten Innenaufträgen" erläutert.
 

Verknüpfung von PSM-FM Stammdaten von Fonds und CO Innenaufträgen

Um dieses zu verwirklichen legen wir ein Infoset für die CO Stammdaten an analog der Beschreibung im Artikel "Query Stammdaten CO Kontrolle Verantwortliche". In der späteren Verwendung des Infosets steht jedoch nicht mehr die Kontrolle der Verantwortlichen von Kostenstelle, Profit-Center und Innenauftrag im Vordergrund, sondern die Zusatzinformationen über Systemstatus und Stammdaten aus PSM-FM.

Infoset als View über AUFK, CSKS, CSKT, CEPC und CEPCT definieren

Innerhalb der Transaktion SQ02 wird folgendes Infoset definiert. Hierfür wird als Datenquelle ein Tabellen-Join über Tabelle AUFK angelgt.
Es werden folgende Tabellen miteinander in Beziehung gesetzt:
AUFK: Auftragsstammdaten
CSKS: Kostenstellenstammsatz
CSKT: Kostenstellenelemente (für die Texte)
CEPC: Stammdatentabelle von Profit Centern
CEPCT: Profit-Center-Stammdaten Texte

Verknüpfungsbedingungen:
Die vorgeschlagenen Verknüpfungsbedingungen seitens SAP sollte hier wieder entfernt werden und folgende Verknüpfungsbedingungen definiert werden.

Folgende Tabellenfelder werden hierbei miteinander verknüpft:

AUFK-KOSTV <-> CSKS-KOSTL
Hierdurch wird die Verantwortliche Kostenstelle des Innenauftrages mit den Stammdaten der Kostenstellen verknüpft.

CSKS-KOSTL <-> CSKT-KOSTL
Hierdurch werden die Stammdaten der Kostenstelle mit der Bezeichnung der Kostenstelle verknüpft.

AUFK-PRCTR <-> CEPC-PRCTR
Hierdurch wird das Profitcenter des Innenauftrages mit den Stammdaten der Profit-Center verknüpft.

CEPC-PRCTR <-> CEPCT-PRCTR
Hierdurch werden die Stammdaten der Profit-Center mit der Bezeichnung der Profit-Center verknüpft.

Etwas ausführlicher (inklusive Verknüpfung "Kostenrechnungskreis" KOKRS und "Datum gültig bis" DATBI sind die Verknüpfungen in folgender Zeichnung dargestellt:

Darstellung JOIN �ber AUFK und CO Stammdaten


Damit sind alle Verknüpfungen der Tabellen erfolgt. Der Einfachheit halber können nun alle Feldgruppen/Datenfelder übernommen werden. Dieses hat den Vorteil, dass dieses Infoset auch für weitere Queries zur Verfügung steht.

Erweiterung des Infoset über Zusatzfelder

Über die Schaltfläche Zusätze (F5) bzw. innerhalb der Transaktion SQ02 (Pflege des Infosets) über  SPRINGEN-> ZUSÄTZE ZUM KNOTEN können nicht nur wie von Thomas erwähnt Zusatztabellen in das Infoset aufgenommen werden sondern auch eigene Felder definiert werden. Hierzu kann im Register Zusätze die Schaltfläche Anlegen ausgewählt werden. Es erscheint eine Maske in der der Name des Zusatzfeldes angegeben werden soll (im folgenden Beispiel FINUSE)  und die Art der Zusatzinformation. Neben der schon angesprochenen Zusatztabelle sind dieses: Zusatzfeld, Zusatzstruktur und Coding. In unserem Beispiel soll ein Zusatzfeld mit den Namen FINUSE angelegt werden.

Dieses hat folgende Eigenschaften: Langtext und Überschrift haben beide Finanzierungszweck erhalten. Die Formatangabe wurde über LIKE-Referenz idenitsch zum Feld FMFINCODE-FINUSE gehalten. Damit entspricht dieses Feld den Formatangaben in der Tabelle FMFINCODE (Typ C (Character) Länge 016 Ausgabenlänge 016).

Damit ist das Feld angelegt, hat jedoch nur eine Datendefinition aber noch keine eigene Daten (anders bei der Zusatztabelle, die sich direkt aus der Datenbank einen passenden Datensatz liest.

Nachdem ein Feld jedoch angelegt ist kann über die Schaltfläche "Coding zum Zusatz" ein passendes ABAP Coding für das Feld hinterlegt werden über das wiederum eine Datenbankabfrage erfolgen kann. Hier habe ich dankenswerterweise von einen Kollegen ein passendes Coding erhalten um die Bezeichnung des Fonds (FMFINT-BEZEICH), Gültigkeitsdatum des Fond (FMFINCODE-DATAB und FMFINCODE-DATBIS) sowie Schlüssel/Nummer des Fond (FMFINCODE-FINCODE) zu erhalten, sofern ein Fond angelegt ist. Dieses Coding hatte ich mir als Vorlage genommen um auch den Finanzierungszweck auszulesen.

Zusatzfeld PSM-FM Finanzierungszweck aus Fond

Das Coding für das Feld FINUSE sieht dabei wie folgt aus (wobei statt BUK natürlich Ihr Buchungskreis im Coding hinterlegt sein sollte):

* Lokale Variablen definieren
DATA: L_FINZWECK type FMFINCODE-FINUSE.
DATA: L_FOND type FMFINCODE-FINCODE.
DATA: L_AUFTRAG type AUFK-AUFNR.
* Zuweisung von Variablen aus der Selektion
L_AUFTRAG = AUFK-AUFNR.
* Verschieben des gespeicherten Wertes in der Tabelle AUFK um 4 Zeichen
* HINTERGRUND:
* Das Fekd AUFK-AUFNR hat insgesamt 12 Zeichen.
* Die achtstellige Auftragsnummer wird mit 0000 aufgefüllt
* Durch die Verschiebung ist die Auftragsnummer direkt in der
* lokalen Variable gepseichert.
SHIFT L_AUFTRAG BY 4 PLACES LEFT.
L_FOND = L_AUFTRAG.
* Über die Selektabfrage hat nun das Feld Fond die richtige Länge
SELECT SINGLE finuse FROM fmfincode INTO L_FINZWECK
       WHERE fikrs = 'BUK'
         AND fincode = L_FOND.
* Abfangen eines Fehlers und Wertzuweisung in Zusatzfeld
IF sy-subrc <> 0.
  CLEAR finuse.
ELSE.
  finuse = L_FINZWECK.
ENDIF.

ACHTUNG: Länge der Auftragsnummer / Fondsnummer beachten!

Im oberen Coding gehen wir davon aus, dass Innenauftrag und Fond jeweils acht Stellen haben. Sollte die Auftragsnummer bzw. Fondcode nur siebenstellig sein ist die Zeile auf
SHIFT L_AUFTRAG BY 5 PLACES LEFT
anzupassen.

Zusatzfeld GESPERRT bei gesperrten Innenaufträgen

Als weitere Anforderung sollte in der Liste auch mitgegeben werden, ob ein Innenauftrag gesperrt ist oder nicht. Hierzu wurde ebenfalls ein Zusatzfeld angelegt. Dieses erhält als Langtext und Überschrift "Gesperrt" und die Eigenschaften Typ C (Character) und Länge, Ausgabelänge 001, da im Ergebnis nur ein X ausgegeben werden soll, wenn der Auftrag gesperrt ist. Das zugehörige Coding lautet wie folgt:

DATA: L_AUFKOBJ type AUFK-OBJNR.
DATA: L_TEMP type AUFK-OBJNR.
L_AUFKOBJ = AUFK-OBJNR.
SELECT  SINGLE objnr FROM JEST into L_TEMP
    WHERE stat = 'I0043'
    AND objnr = L_AUFKOBJ
    AND inact = 'X'.
IF sy-subrc <> 0.
GESPERRT = 'X'.
ELSE.
CLEAR GESPERRT.
ENDIF.


Die beiden Zusatzfelder können dann in eine eigene Feldgruppe ins Infoset übernommen werden und stehen damit einer Query zur Verfügung.

Bezüglich des Status eines Innenauftrages können über die ABAP Anweisung

CONCATENATE altenstring neuenstring INTO altenstring.

auch weitere Statuszustände in das Feld übernommen werden. Hierzu würde ein Feld STATUS definiert werden und über eine weitere Schleife über die Bedingung Where STAT = 'I0028' zum Beispiel das Merkmal ABRV in die Variable gespeichert werden. Die Anweisung könnte dann CONCATENATE status  ' ABRV ' INTO STATUS. lauten. Dieses war jedoch keine Anforderung für diese Liste. Ferner sind die einzelnen Phasen eines Innenauftrages auch in der Tabelle AUFK hinterlegt und könnten in der Query über ein kundeneigenes Feld verknüpft werden. Lediglich die Sperre des Innenauftrages ist hier nicht mitaufgeführt.

Die für die einzelnen Phasen eines Innenauftrages mittels X = JA markierten Felder sind:

  • AUFK-PHAS0 -  Phase 'Auftrag eröffnet'
  • AUFK-PHAS1 -  Phase 'Auftrag freigegeben'
  • AUFK-PHAS2 -  Phase 'Auftrag technisch abgeschlossen'
  • AUFK-PHAS3 -  Phase 'Auftrag abgeschlossen'
 

Berechtigungen für Zusatzfelder mit ABAP Coding

Für die Pflege von Zusatzcoding sind jedoch weiter gehende Basisberechtigungen erforderlich. Hierzu werden die Berechtigungen auf das Berechtigungsobjekt S_DEVELOP und die Berechtigungsfeldwerte Objekttyp PROG, Objektname AQ* sowie die Aktivitäten 01 und 02 geprüft. Da es sich hier um recht weitgehende Berechtigungen handelt, sollten diese auch nur im Entwicklungssystem vergeben werden. Die Berechtigungsprüfung erfolgt ebenfalls, wenn die Query, wie im Artikel "Transport von SAP Queries (DL/UL)" beschrieben, per Dateiupload ins Testsystem oder Produktivsystem transportiert werden soll. Das Infoset selbst lässt sich nach einem erfolgreichen Upload noch bearbeiten, lediglich das Coding ist durch die Berechtigungsprüfung vor weiteren Änderungen geschützt.
 

Query Stammdatenliste Innnenaufträge und verknüpfte Fonds

Innerhalb der Query werden nun auf folgende Felder der einzelnen Tabellen (bzw. Zusatzfelder) des Infosets Zugriff genommen beziehungsweise in der Grundliste zugewiesen. Hierbei ist L als Listenfeld und S als Selektionsfeld zu verstehen.

Die Felder werden hier in der Reihenfolge angegeben, wie diese dann auch in der Query ausgegeben werden sollen:

 

Auftragsstammdaten AUFK
Auftragsart (S) AUFK-AUART
Auftragsnummer (L,S) AUFK-AUFNR
Kurztext (L) AUFK-KTEXT
Verantwortliche Kostenstelle (L,S) AUFK-KOSTV
Kostenstellentexte CSKT
Beschreibung (L) CSKT-KTEXT
Auftragsstammdaten AUFK
Profitcenter (L,S)
AUFK-PRCTR
Profit-Center-Stammdaten Texte (CEPCT)
Allgemeine Bezeichnung (L) CEPCT-KTEXT
Zusatzfelder (die im Infoset angelegt wurden)
Finanzierungszweck (L,S)  FINUSE
Auftragsstammdaten AUFK
Arbeitsbeginn (L,S) AUFK-USER7
Arbeitsende (L) AUFK-USER8
Antragssteller (L) AUFK-USER0
Verantwortlicher (L) AUFK-USER2
Abteilung (L) AUFK-USER6
Externe Auftragsnummer (L) AUFK-AUFEX
Zusatzfelder (die im Infoset angelegt wurden)
Gesperrt (L)  GESPERRT
lokale Zusatzfelder

Lehreinheit  (L) 

Erweiterung: Lehreinheit aus Kostenstelle ableiten

Das lokale Zusatzfeld Lehreinheit wird im Artikel "Query über verantwortliche Kostenstelle des Innenauftrag - Bestimmung der Lehreinheit im Fachbereich durch Teil der Kostenstellennummer" noch beschrieben.

Der Vorteil dieser Query ist, dass in der Selektion nicht nur anhand der Innenauftragsnummer, Auftragsart
oder der verantwortlichen Kostenstellen selektiert werden kann sondern auch über den Finanzierungszweck inklusive einer Wertauswahlhilfe (F4), so dass hier direkt die gepflegten Finanzierungszwecke ausgelesen werden können.

Bei den Finanzierungszwecken selbst handelt es sich ebenfalls um Stammdaten die unter
Rechnungswesen > Public Sector Managament > Haushaltsmanagement > Stammdaten > Kontierungselemente > Fonds > Finanzierungszweck > gepflegt werden können (Transakton FM6I - Anlegen, FM6U - Ändern und FM6S Anzeigen).

Erweiterung: Merkmale der Klassifizierung

Eine erhebliche Erweiterung dieser Query ist im Artikel "SAP Query - Auswertung Merkmale der Klassifizierung am Beispiel Fonds in PSM-FM" beschrieben. Hier wird neben den Finanzierungszweck und den CO bzw. PSM-FM Stammdaten auch die Merkmale der Klassifizierung von Haushaltsfonds ausgewertet. Damit sollten alle relevanten Stammdaten von Innenaufträgen und damit verbundenen Fonds ausgewertet werden können.
 

Erweiterung: Weitere Zusatzfelder

Wie schon erwähnt besteht auch die Möglichkeit weitere Stammdaten aus den Fonds aus PSM - FM im Infoset per Coding aufzunehmen. Einige häufig angefragten Felder habe ich im Artikel "Weitere Zusatzfelder im Infoset mit ABAP Coding zur Verwendung in SAP Query über die Tabellen AUFK und FMFINCODE" beschrieben. Teilweise wurde hier auch das Coding der in diesen Artikel beschriebenen Felder noch optimiert.
 

Hinweis: Query Stammdaten CO Innenauftrag PSM-FM Fond

Dieser Artikel ist Teil einer Serie um Stammdaten von CO Innenaufträgen und PSM-FM Fonds miteinander zu verknüpfen.
  1. "SAP Query ABAP Coding im Zusatzfeld für Verknüpfung Innenauftrag und Fond bzw. Finanzierungszweck oder auch Status GESPERRT bei Innenaufträgen"
  2. "Query über verantwortliche Kostenstelle des Innenauftrag - Bestimmung der Lehreinheit im Fachbereich durch Teil der Kostenstellennummer"
  3. "SAP Query - Auswertung Merkmale der Klassifizierung am Beispiel Fonds in PSM-FM"
  4. "Weitere Zusatzfelder im Infoset mit ABAP Coding zur Verwendung in SAP Query über die Tabellen AUFK und FMFINCODE"

Eine Erweiterung des hier vorgestellten Coding hin zur Verwendung einer Zusatztabelle für die Einbindung der PSM-FM Stammdaten wie Finanzierungszweck ist im Artikel "Query über COEP, AUFK und FMFINCODE für Einzelposten Istkosten Innnenauftrag mit Stammdaten aus CO und PSM-FM sowie Spalten für Ertrag und Aufwand - Erster Teil Infoset als Datengrundlage" beschrieben.
 


Hinweis:

Eine kurze Einführung in das Thema SAP Query habe ich im Artikel
"Grundlagen Kurzeinführung und Handbuch SAP Query" beschrieben und hoffe Ihnen hier eine Einführung ins Thema bieten zu können.




Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionenzu finden. Mein Weiterbildungsangebot zu SAP Themen finden Sie auf unkelbach.expert.
Werbung
Aktuelle Schulungstermine Rechercheberichte mit SAP Report Painter

unkelbach.link/et.reportpainter/

Diesen und weitere Texte von Andreas Unkelbach finden Sie auf http://www.andreas-unkelbach.de


Mittwoch, 29. Oktober 2014
20:14 Uhr

Berichtslayout beim Report Writer - Nullwerte als Platzhalter ausgeben, wenn keine Buchung (Daten) vorhanden sind dank Formulardruck

Ausgangslage:

Innerhalb eines Berichtes in der Kostenstellenrechnung der Bericht unter
  • Kostenstellenrechnung
  • Infosystem
  • Berichte zur Kostenstellenrechnung
  • Plan/Ist Vergleich
  • Bereich: Kostenstellen (Transaktion S_ALR_87013612)
sollen nicht nur die Kostenstellen / Kostenarten ausgegeben werden auf denen auch eine entsprechende Buchung vorhanden ist sondern alle Kostenstellen/Kostenarten die selektiert wurden unabhängig davon ob darauf eine Buchung erfolgt ist oder nicht.

Nullzeilenbehandlung

Ein Beitrag auf dv-treff-community.de verwies dafür auf die Möglichkeit der Nullzeilenbehandlung, die im Berichtslayout vorhanden ist. Hierzu kann neben der im Artikel "Mehrjahresvergleich im ReportWriter/Painter mit variabler Spaltenanzahl je Jahr dank Variablen" beschriebenen Möglichkeit der Nullzeilen unterdrücken (im verlinkten Artikel für Nullspalten unterdrücken verwendet) auch die Option Formulardruck verwendet werden.

Diese Option ist entweder im Bericht über EINSTELLUNGEN-> BERICHTSLAYOUT oder innerhalb der Berichtserstellung unter FORMATIERUNGEN-> BERICHTSLAYOUT im Register ZEILEN zu finden.

Durch die Option des Formulardrucks werden nicht nur die in der Selektion gewählten Sets (im Beispiel sind dieses Kostenstellen- und Kostenartengruppen) nach vorhandenen Daten (also nur Kostenstellen/Kostenarten auf denen auch gebucht wurde) durchsucht sondern für nicht vorhandene Werte innerhalb der einzelnen Gruppen ein interner Datensatz mit Nullwerten angelegt. Hierdurch erhöht sich die Laufzeit des Berichtes entsprechend und es werden für alle selektierte Daten mindestens ein Nullwert ausgegeben.

Hierdurch hat der Bericht auch bei jedem Aufruf das gleiche Layout braucht dafür aber auch etwas mehr Zeit . Hier zeigt es sich wieder einmal "Gut Ding will Weile haben" gilt auch für die Anforderungen ans Berichtswesen im Controlling....

Da die Aktivierung des Formulardrucks erst nach erneuter Generierung des Berichtes funktioniert, ist dieses in den Standardberichten nicht möglich.

Report Writer Bericht über Transaktion ermitteln

Allerdings kann der zugrundeliegende Report Painter Bericht (im Beispiel der Bericht 1SKL-001  in der Bibliothek 1VK) als Vorlage für einen eigenen Bericht über die GRR1 angelegt werden. Nun ist es auch in diesem Bericht möglich den Formulardruck zu aktivieren. Der zugrundeliegende Bericht kann bspw. durch die Transaktion SE93 anhand der ursprünglichen Transaktion ermittelt werden. In der Transaktion wird die zugeordnete Berichtsgruppe aufgerufen. Alternativ können auch die mit einer Zahl beginnende Berichte innerhalb der passenden Berichtsbibliothek über die Transaktion GRR3 betrachtet werden.

Wie im Artikel "Parametertransaktion für Reporwriter" beschrieben kann dann für diesen Bericht eine kundeneigene Transaktion zum Beispiel als. Z_ALR_87013612 angelegt werden. Hierbei könnte die Berichtsgruppe 1SKL als ZSKL angelegt werden und ebenso verwendet werden.

Nachteil Formulardruck: Intervalle werden nicht aufgelöst

Der Nachteil der Verwendung des Formulardrucks ist jedoch, dass eine entsprechende Erstellung von internen Nullwerten nur innerhalb eines Sets (Gruppe) funktioniert. Sobald statt eines Sets (zum Beispiel Kostenstellengruppe) ein Intervall übergeben wird erscheint das Intervall als einzelne Zeile stat die einzelnen Kontierungsobjekte untereinnader darzustellen.

Soll also die Lehreinheit 101 mit den Kostenstellen 101000 bis 101004 ausgewertet werden muss eine entsprechende Kostenstellengruppe 101 angelegt werden. Ferner dürfen in dieser Kostenstellengruppe keine Intervalle sondern lediglich Einzelwerte eingetragen sein, da jede Zeile eines Sets auch entsprechend ausgewertet wird. Alternativ könnte man auch die Kostenstellen 101000 bis 101004 als Einzelwerte in der Selektion übernehmen.

Sofern die Kostenstellengruppe 101 die Kostenstellen 101000, 101001 sowie das Kostenstellenintervall 101002 - 101004 enthält aber nur auf den Kostenstellen 101000 und 101002 und 101004  Buchungen würde die Auswertung wie in den folgenden Tabellen dargestellt werden:
 
Kostenstelle Saldo
Berichtslayout mit Formulardruck
101000 1.000,00
101001 0
101002 ... 101004 2.0000
Summe 3.0000

Hier werden tatsächlich auch Kostenstellen (im Beispiel 101001) ausgegeben, obgleich hier keine Buchung erfolgt ist. Intervalle werden nicht aufgelöst
 
Kostenstelle Saldo
Berichtslayout ohne Formulardruck
101000 1.000,00
101002 1.500,00
101004   500,00
Summe 3.0000

Hier werden nur Kostenstellen ausgegeben auf denen auch tatsächlich gebucht wurde. Intervalle in der Gruppe werden auf ihre Einzelwerte aufgelöst.

Fazit:

Zwar ist die Umsetzung der Berichtsanforderung durchaus möglich, allerdings sollte sich die Nachteile (längere Laufzeit, keine Auflösung von Intervallen) im Vorfeld klar gemacht werden, da andernfalls der Bericht mehr Rückfragen als Antworten liefert.

Hinweis:

Eine kurze Einführung in das Thema Report Painter und Report Writer habe ich im Artikel "Grundlagen Kurzeinführung und Handbuch Report Painter Report Writer" beschrieben und hoffe Ihnen hier eine Einführung ins Thema bieten zu können.




Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionenzu finden. Mein Weiterbildungsangebot zu SAP Themen finden Sie auf unkelbach.expert.
Werbung

Steuersoftware für das Steuerjahr 2024

Lexware TAXMAN 2025 (für das Steuerjahr 2024)

WISO Steuer 2025 (für Steuerjahr 2024)


* Als Amazon-Partner verdiene ich an qualifizierten Käufen über Amazon.
Diesen und weitere Texte von Andreas Unkelbach finden Sie auf http://www.andreas-unkelbach.de


Samstag, 25. Oktober 2014
16:54 Uhr

Mehrjahresvergleich im ReportWriter/Painter mit variabler Spaltenanzahl je Jahr dank Variablen

Wie im Artikel "ReportWriter: Arbeiten mit Variablen (Kostenartengruppen erst beim Berichtsaufruf für Spalten selektieren)" beschrieben besteht die Möglichkeit durch Nutzung der Variablen 1GJAHLJ, 1GAHVJ, 1GAHVV  einen Dreijahresvergleich oder durch die Variablen 6PYEAR , 6PYR-1, 6PYR-2 , 6PYR-3 und 6PYR-4  einen Fünfjahresvergleich auf relativ einfache Weise zu ermöglichen.   

Dieses funktioniert auch relativ gut, weist aber Probleme auf, wenn man einen Berichtszeitraum größer als fünf Jahre betrachten möchte und möglicherweise manchmal auch weniger Jahre betrachten möchte. Sofern ein Zeitraum von 10 Jahren betrachtet wird ist es immer möglich, dass (zum Beispiel bei der Auswertung von Kostenarten) manche Zeilen nur in einen Jahr dargestellt werden und somit bei einer mehrmaligen Auswertung eines Fünfjahresbericht dieser nicht exakt übereinstimmt, da bestimmte Zeilen in einen Zeitraum nicht ausgegeben werden.

Grundüberlegung:
Es soll ein Zeitrum "von Geschäftsjahr" "bis Geschäftsjahr" ausgegeben werden und dabei für jedes Jahr dazwischen eine Spalte mit den einzelnen Jahreswerten ausgegeben werden. Hierbei sollen auch tatsächlich nur so viele Spalten ausgegeben werden, wie auch Jahre zwischen dem übergegeben "von Geschäftsjahr" und "bis Geschäftsjahr" liegen.
 

Variablen für Report Writer anlegen

Über die Transaktion GS11 (im SAP Menü unter Infosystem-> Ad-Hoc-Berichte-> Report Painter ->  Report Writer -> Variable -> Anlegen (Transaktion GS11)) können eigene Variablen angelegt werden.

Bei der Anlage einer Variable bekommen wir die Frage gestellt auf welches Bezugfeld sich die Variable beziehen soll. Hierbei kann es hilfreich sein, sich vorab schon vorhandene Variablen anzusehen. Je nach verwendeter Berichtsbibliothek können wir dabei auf unterschiedliche Tabellen Bezug nehmen. Für die Bibliothek 1VK wäre dieses zum Beispiel die Tabelle CCSS "Berichtstabelle Gemeinkostencontrolling" und das Feld GJAHR "Geschäftsjahr".

Innerhalb der Bibliothel 8A2 wird auf die Tabelle GLPCT "EC-PCA: Summentabelle" und das Feld RYEAR "Geschäftsjahr" Bezug genommen.

Im folgenden Beispiel möchten wir einen Mehrjahresvergleich innerhalb der Profit-Center-Rechnung durchführen. Daher werden alle folgenden Variablen mit Bezugsfeld  auf die Tabelle GLPCT und Feldname RYEAR angelegt. Bei allen folgenden Variablen handelt es sich um Formelvariablen. Neben einer Formelvariable kann hier auch eine Wertvariable (für einen festen Wert) oder eine Setvariable angelegt werden (hierdurch können Gruppen hinterlegt werden). Ein Beispiel für eine Setvariable wäre die Variable 6-AUFGR die innerhalb der Tabelle CCSS über das Feld AUFNR eine Auswertung von Innenauftragsnummern ermöglicht.

Variable für aktuellstes Geschäftsjahr über Benutzer-Exit (Userexit)

Die erste Variable die wir anlegen erhält die Bezeichnung ZPJAHR und soll das aktuellste Geschäftsjahr (entspricht "Bis Geschäftsjahr") darstellen. Hierzu haben wir im Einstiegsbild der Transaktion die Variablen ZPJAHR angegeben mit den Bezugsfeld GLPCT (Tabelle) und RYEAR (Feldname) sowie als Variablentyp FORMEL gewählt.

Im Folgenden Screen können wir dann die Beschreibung und eine Formel angegeben.

Als Beschreibung nehmen wir "aktuellstes Geschäftsjahr" und als Formel '#S001'.

Durch die Anweisung '#S001' wird das aktuelle Geschäftsjahr über den Benutzer-Exit S001 als Vorschlagswert ausgegeben.

Wertvariable für ältestes Geschäftsjahr

Als nächste Variable legen wir eine Wertvariable (ebenfalls über Tabelle GLPCT und RYEAR) mit der Bezeichnung ZPJAHRE an. Bei einer Wertvariable kann ein Vorschlagswert angegeben werden. Dieser könnte zum Beispiel auf 2007 gesetzt werden. Bei der späteren Verwendung im Bericht wird dann das aktuelle Jahr für die Variable ZPJAHR  vorgeschlagen (heute also 2014) und für die Variable ZPJAHRE das Jahr 2007. Dieses kann je nach Einrichtung natürlich auch auf ein anderes sinnvolles Datum gesetzt werden und später auch bei der Ausführung eines Berichtes überschrieben werden.

Hiermit haben wir unseren Auswertungszeitraum passend eingeschränkt. Da es aber auch sein kann, dass wir nur ein Jahr auswertn wollen, sei hier schon vorab darauf hingewiesen, dass es sich bei der Variable ZPJAHRE um eine Hilfsvariable handelt, die später im Bericht nur zur Selektion, aber nicht zur Ausgabe genutzt wird.

Formelvariablen für Einzelne Jahre abhängig von der Selektion

Die Überlegung hinter den folgenden Variablen ist, dass im Jahr 1999 keine Buchungen in SAP erfasst sind. Sollten Sie auch in 1999 schon in SAP gebucht haben, wäre hier ggf. das Jahr 1899 eine gute Idee.

Alle folgenden Variablen beziehen sich auf die Tabelle GLPCT und den Feldnamen RYEAR, In der folgenden Tabelle sind die Variable, Beschreibung und die dahinterliegende Formel aufgeführt. Die Formel zieht immer 1 von der vorherigen Variable ab, sofern der Abstand zwischen dem auszuwertenden Jahren noch der Bedingung der Variable entspricht. Ich denke, dass die Formeln selbst erklärend sein dürften. Die Variablen sind für 12 Jahre ausgelegt und können durch weitere Variablen natürlich erweitert werden.
 
Variable Beschreibung Formel
Formelvariablen für variablen Mehrjahresvergleich
Diese sind auch als "interne Variable" definiert
(Eingabefelder auf Selektionsbildern)
ZPJAHR aktuellstes Geschäftsjahr '#S001'
ZPJAHRE ältestes Geschäftsjahr Wertvariable (Vorschlagswert 2007)
ZPJR-01 Aktuellstes Geschäftsjahr - 1 IF (1+'ZPJAHR'-'ZPJAHRE')> 1
THEN 'ZPJAHR' -1
ELSE 1999
ZPJR-02 Aktuellstes Geschäftsjahr - 2 IF (1+'ZPJAHR'-'ZPJAHRE')> 2
THEN 'ZPJAHR' - 2
ELSE 1999
ZPJR-03 Aktuellstes Geschäftsjahr - 3 IF (1+'ZPJAHR'-'ZPJAHRE')> 3
THEN 'ZPJAHR' -3
ELSE 1999
ZPJR-04 Aktuellstes Geschäftsjahr - 4 IF (1+'ZPJAHR'-'ZPJAHRE')> 4
THEN 'ZPJAHR' -4
ELSE 1999
ZPJR-05 Aktuellstes Geschäftsjahr - 5 IF (1+'ZPJAHR'-'ZPJAHRE')> 5
THEN 'ZPJAHR' -5
ELSE 1999
ZPJR-06 Aktuellstes Geschäftsjahr - 6 IF (1+'ZPJAHR'-'ZPJAHRE')> 6
THEN 'ZPJAHR' -6
ELSE 1999
ZPJR-07 Aktuellstes Geschäftsjahr - 7 IF (1+'ZPJAHR'-'ZPJAHRE')> 7
THEN 'ZPJAHR' -7
ELSE 1999
ZPJR-08 Aktuellstes Geschäftsjahr - 8 IF (1+'ZPJAHR'-'ZPJAHRE')> 8
THEN 'ZPJAHR' -8
ELSE 1999
ZPJR-09 Aktuellstes Geschäftsjahr - 9 IF (1+'ZPJAHR'-'ZPJAHRE')> 9
THEN 'ZPJAHR' -9
ELSE 1999
ZPJR-10 Aktuellstes Geschäftsjahr - 10 IF (1+'ZPJAHR'-'ZPJAHRE')> 10
THEN 'ZPJAHR' -10
ELSE 1999
ZPJR-11 Aktuellstes Geschäftsjahr - 11 IF (1+'ZPJAHR'-'ZPJAHRE')> 11
THEN 'ZPJAHR' -11
ELSE 1999
ZPJR-12 Aktuellstes Geschäftsjahr - 12 IF (1+'ZPJAHR'-'ZPJAHRE')> 12
THEN 'ZPJAHR' -12
ELSE 1999

Die dahinterliegende Logik besagt, dass bei jeder Variable geprüft werden soll, ob eine Ausgabe noch erforderlich ist (der Berichtszeitraum sich also noch über die entsprechende Jahre zwischen ZPJAHR und ZPJAHRE erstreckt, oder ob alternativ das Jahr 1999 als Dummy verwendet werden soll.

Verwendung der Variablen im Report Painter


Nachdem diese Variablen definiert worden sind, können diese auch als Spalten im Reportpainter genutzt werden.

Hierfür werden folgende Berichtsspalten in der Bibliothek 8A2 über die Basiskennzahl "Betrag in PCTR-Hauswährung" für das Merkmal Geschäftsjahr angelegt.

Geschäftsjahr (Variable) ZPJAHR und als Beschreibung &ZPJAHR  so dass der Variablenwert als Spaltenbezeichnung ausgegeben wird.

In der nächsten Spalte wird das Merkmal Geschäftsjahr ebenfalls mit Variable markiert und die Variable ZPJAHRE zugewiesen. Hier wird als Beschreibung "&ZPJAHRE ausblenden" festgelegt.
Nachdem die Spalte angelegt wurde kann diese direkt markiert werden (auf die Spaltenüberschrift klicken) und über BEARBEITEN -> SPALTE -> AUSBLENDEN diese Spalte ausgeblendet werden.
Hierdurch wird diese Variable zwar im Selektionsbild erscheinen (um den Berichtszeitraum einzugrenzen) wird aber später in der Berichtsausgabe nicht erscheinen.

Die oben beschriebene Einbindung der Spalte ZPJAHRE für das Endjahr ist obsolet, da durch Bezug der einzelnen Variablen automatisch ZPJAHRE ebenfalls im Bericht mit eingebunden wird und damit im Selektionsbild aufgezeigt wird.

Als weitere Spalten legen wir dann für das Merkmal die Variablen ZPJR-01 bis ZPJR-12 mit entsprechender Bezeichnung (Kurz-, Mittel- und Langtext) von &ZPJR-01 bis &ZPJR-12 als einzelne Spalten an.



Insgesamt dürften nun im Report Painter 13 Spalten vorhanden sein, womit wir insgesamt auch 13 Jahre auswerten könnten. Sofern der Berichtszeitraum kürzer ist würde für die hinteren Tabellen kein Wert ausgegeben werden, da im Jahr 1999 (wir erinnern uns, dieses Jahr wurde in der Variable zugewiesen, wenn der Berichtszeitraum kürzer ist) keine Buchungen erfolgt sind.

Damit sind wir dem Berichtswunsch schon sehr nahe, allerdings sind leere Spalten eigentlich nicht sehr informativ. Daher können wir über:

FORMATIEREN-> BERICHTSLAYOUT

im Register Spalten festlegen über den Punkt Nullspaltenbehandlung bestimmen Nullspalten zu unterdrücken.

Fazit

Damit werden die leeren Spalten des Jahres 1999 nicht mehr angezeigt. Somit werden tatsächlich nur so viele Spalten ausgegeben, wie zwischen dem ältestens und den aktuellsten Geschäftsjahr liegen. Eine Ausnahme wäre nur der Fall, wenn mehr als 13 Jahre ausgewertet würden. Allerdings stellt sich auch die Frage, ob eine Jahresangebe von 99 Jahren außer bei bestimmten Gesellschaftsspielen als Altersangabe auch noch ein überschaubarer Zeitraum sein können. Insgesamt handelt es sich hierbei um einen sehr flexiblen Bericht, der sowohl für größere als auch kleinere Zeiträume geeignet ist.

Ein weiteres Beispiel kann eine Variable für das Quartal sein. Hier wird nur mit Formelvariablen gearbeitet. Hierbei wird die Variable QUARTAL als Wertvariable definiert und die einzelnen Perioden des Quartals mit folgenden Formeln versehen:
 
Variable Formel
Perioden des Quartals anzeigen
QPER1 ‘QUARTAL’ * 3 - 2
QPER2 ‘QUARTAL’ * 3 - 1
QPER3 ‘QUARTAL’ * 3

Gerade bei Zeiträumen zeigen solche Variablen einige neue und sicherlich spannende Möglichkeiten auf. Innerhalb des Berichtes müssen dann nur noch die Spalten mit den Variablen QPER1 bis QPER3 versehen werden und beim Berichtsaufruf wird dann im Selektionsbild die Variable QUARTAL abgefragt. In dieser Logik könnte die Variable ZPJAHRE, die wir im Report Painter Bericht ausgeblendet hatten, auch einfach nicht verwendet werden, da die anderen Variablen direkten Bezug zu ihr nehmen und damit diese über eine indirekte Definition ebenfalls abgefragt wird. Als Bonus könnte im Report dann auch noch die Summe von QPER1 bis QPER3 ermittelt werden und das Ergebnis des selektierten Quartals im Bericht mit ausgegeben werden.
 

Erweiterung für Gemeinkostencontrolling

Sollen statt Profit-Center lieber Innenaufträge oder Kostenstellen (bspw. über die Bibliothek 6o1 "Innenaufträge" oder 1VK "Kostenstellen - Vollkostenrechnung" ausgewertet werden bieten sich vergleichbare Variable mit Bezug auf die Tabelle CCSS "Berichtstabelle Gemeinkostencontrolling" und den Feld GJAHR "Geschäftsjahr" an. Entsprechend bietet es sich an die Variablen dann statt mit ZP für Profit-Center-Rechnung mit ZK oder ZI (gemeinsamer Nenner wäre wohl ZG für Gemeinkosten) beginnen zu lassen. Zwar beziehen sich die Variablen auf eine Tabelle, da diese aber zur reinen Wertermittlung herangezogen werden und dann in einen Merkmal der passenden Berichtstabelle verwendet werden könnten aber auch die ZP* Variablen in den anderen Bibliotheken verwendet werden.

Im Buch »Berichtswesen im SAP®-Controlling« bin ich ausführlich auf dies Thema eingegangen.
 
Berichtswesen im SAP®-Controlling
Verlag: Espresso Tutorials GmbH
1. Auflage
(01. Juni 2017) Paperback ISBN: 9783960127406

Für 19,95 € direkt bestellen

Oder als SAP Bibliothek-Flatrate *

Oder bei Amazon *
 
Vielleicht finden sich hier ja auch noch weitere Anregungen für den Aufbau eines Berichtswesen mit SAP nicht nur für CO im Buch.

Hinweis:

Eine kurze Einführung in das Thema Report Painter und Report Writer habe ich im Artikel "Grundlagen Kurzeinführung und Handbuch Report Painter Report Writer" beschrieben und hoffe Ihnen hier eine Einführung ins Thema bieten zu können.




Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionenzu finden. Mein Weiterbildungsangebot zu SAP Themen finden Sie auf unkelbach.expert.
Werbung
Aktuelles von Andreas Unkelbach

unkelbach.link/et.reportpainter/

unkelbach.link/et.migrationscockpit/

Diesen und weitere Texte von Andreas Unkelbach finden Sie auf http://www.andreas-unkelbach.de


Freitag, 24. Oktober 2014
16:15 Uhr

Bedingte Formatierung im Report Writer durch Definition von Schwellwerten

Neben der unter Formatierung Report Writer Berichte beschriebenen Formatierung von Werten in Spalten (Dezimalstellen, Skalierung, Vorzeichen, Einheit) oder Zeilen (Über-/Unterstreichung, Farbeinstellungen (Hervorhebung, Zwischensummen, ...) besteht unter gewissen Einschränkung auch die Möglichkeit wertabhängig eine Formatierung von Zeilen hervorzuheben. Zwar ist dieses nicht so komfortabel wie in Excel, jedoch kann es auf einen ersten Schritt helfen entsprechende Daten besonders hervorzuheben.

Dieses funktioniert über Schwellwertbedingungen innerhalb eines Berichtes möglich. Nach Aufruf des Bericht können über BEARBEITEN->SCHWELLWERT (STRG+F5) Schwellwertbedingungen für Abschnitte definiert werden.

Abhängig von einer Bezugsspalte können zwei Schwellwerte definiert werden.

Nehmen wir an, dass der Bericht aus drei Spalten besteht:
  1. Erlöse
  2. Kosten
  3. Saldo (Ergebnis)
Nun kann abhängig von der Spalte 3 "Saldo (Ergebnis)" eine Bedingung definiert werden. Hierbei können folgende Fälle unterschieden werden: < Kleiner, <= Kleiner oder gleich, > Größer und >= Größer oder gleich bezogen auf einen Schwellwert angegeben werden. Hierbei ist zu beachten, dass diese Schwellwerte sowohl positiv als auch negativ sein können. Bei der Eingabe dürfen jedoch keine Tausenderzeichen verwendet werden. Als Dezemaltrennzeichen werden sowohl Punkt als auch Komma unterstützt. Sofern der definierte Schwellwert definiert ist kann über die Zusätze wie folgt verfahren werden.
  • Nur ausgewählte Zellen drucken (dieses kann hilfreich sein, wenn nur negaitve Ergebnisse ausgedruckt werden sollen)
  • Ausgewählte Zellen hevorheben (rot)
  • Ausgewählte Zellen hervorheben (grün)
Bei der Hervorhebung ist darauf zu achten, dass die gesamte Berichtszeile eingefärbt wird. Sinnvollerweise kann über die Auswahl "Nur Detailzeilen" die (Zwischen-)Summenzeilen davon ausgenommen werden.

Neben der relativ eingeschränkten Möglichkeit der Formatierung ist ein weiterer Nachteil der Verwendung von Schwellwerten, dass diese nicht im Bericht gespeichert werden können sondern jedes Mal aufs Neue definiert werden müssen. Immerhin können diese nach Aufruf des Berichtes über Einstellungen->Einstellungen sichern für alle User gespeichert gespeichert werden. Hierdurch ist dann nur ein einmaliges Aufrufen der Berichte erforderlich und das entsprechende Sichern der Einstellungern.

Dieses unterscheidet Report Painter / Report Writer Berichte dann doch vom Recherchebericht in dem die Definitionen, wie im Artikel "Formatanzeige im Recherchebericht (Darstellung in 1 EUR)" beschrieben hinterlegt werden können.

Gerade bei umfangreichen Listen kann dieses aber dennoch ein nützliches Instrument sein einen schnellen Überblick zu erhalten.  Dafür dürfte diese Funktion auch in anderen Standardberichten (Plan/Ist/Abweichung Kostenstellen und vergleichbare) vorhanden und für eine schnelle Übersicht nutzbar sein. Alternativ bietet sich die Nachbearbeitung in Excel an, wie im Artikel "Excel: bedingte Formatierung mit Pfeilen (Darstellung Tendenzen bei Veränderungen)" beschrieben.

Hinweis:

Eine kurze Einführung in das Thema Report Painter und Report Writer habe ich im Artikel "Grundlagen Kurzeinführung und Handbuch Report Painter Report Writer" beschrieben und hoffe Ihnen hier eine Einführung ins Thema bieten zu können.




Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionenzu finden. Mein Weiterbildungsangebot zu SAP Themen finden Sie auf unkelbach.expert.
Werbung
Aktuelles von Andreas Unkelbach

unkelbach.link/et.reportpainter/

unkelbach.link/et.migrationscockpit/

Diesen und weitere Texte von Andreas Unkelbach finden Sie auf http://www.andreas-unkelbach.de


Samstag, 27. September 2014
17:39 Uhr

Grundlagen Finanzbuchhaltung - Customizing von Nummerkreis und Belegarten

Ausgangslage:
Während es in der Finanzbuchhaltung immer treu nach dem Motto geht "Keine Buchung ohne Beleg" erfolgt innerhalb SAP keine Buchung ohne eine entsprechende Belegnummer. Je nach Buchungsart (bspw. über die Transaktion FB60 Kreditorenrechnung buchen und der dort intern verwendeten Belegart KR werden entsprechende Belegnummern nach der erfolgreichen Buchung den Beleg zugeordnet. Der Aufbau einer solchen Belegnummer ist im Customizing über Nummernkreise festgelegt, die wiederum einzelnen Belegarten zugeordnet sind.
 

Belegarten und Nummernkreise im Customizing festlegen


Innerhalb des Customizing (Transaktion SPRO)  für die Finanzbuchhaltung werden unter
  • Finanzwesen (neu)
  • Grundeinstellung Finanzwesen (neu)
  • Beleg
  • Belegarten
  • Belegarten der Erfassungssicht definieren (Transaktion OBA7)
Die Einstellungen für die einzelnen Belegarten innerhalb der Finanzbuchhaltung festgelegt. Hierbei sind neben den erlaubten Kontoarten (Anlagen, Debitor, Kreditor, Material oder Sachkonto) auch entsprechende Nummernkreise und Berechtigungsgruppen hinterlegt. Die Nummernkreise sind hierdurch für die einzelnen Belegarten (bspw. KR für Kreditorenrechnung, AA für Anlagenbuchhaltung oder DG für Debitoren Gutschrift) hinterlegt.

Die einzelnen Nummernkreise werden ebenfalls im Customizing festgelegt und können über die Transaktion SPRO über den Menüpfad
  • Finanzwesen (neu)
  • Grundeinstellung Finanzwesen (neu)
  • Beleg
  • Belegnummernkreise
  • Belege in Erfassungssicht
  • Belegnummernkreis der Erfassungssicht definieren (Transaktion FBN1)
für jeden Buchungskreis definiert werden. Hierbei wird je Nummer des Nummernkreises (auf den in der Belegart Bezug genommen wird) ein Intervall hinterlegt. Innerhalb der Pflege der einzelnen Nummernkreise eines Buchungskreises erfolgen hierbei folgende Eingabemöglichkeiten:
  1. NR - Nummernkreisnummer
  2. Jahr - Bis Geschäftsjahr (bis wann ist der Nummernkreis gültig)
  3. von Nummer - als untere Grenze des Intervalls
  4. bis Nummer - als obere Grenze des Intervalls
  5. Nummernstand - aktueller Nummernstand, bei SAP interner Nummernvergabe
  6. EXT - Kz. für internen (' ') oder externen ('X') Nummernkreis (bei letzteren ist die Belegnummer in jeder Buchung mit anzugeben.Allerdings muss auch hier ein entsprechendes Intervall gepflegt werden.
Für die Belegnummernvergabe kann nun für jedes Jahr ein entsprechendes Intervall hinterlegt werden und diese Belegnummer dann auch für die Papierablage genutzt werden. Häufig bietet es sich daher auch an innerhalb des Nummernkreises das entsprechende Geschäftsjahr zum Beispiel für den Nummernkreis der Anlagenbuchhaltung 2014 das Intervall 1401000000 bis 1401999999 zu hinterlegen. Hier sollte man sich aber darüber klar sein ob die dann noch mögliche Anzahl an Belegen ausreichend ist. Eine andere Möglichkeit wäre die Belegnummern jahresübergreifend zu hinterlegen. Beides hat hier Vorteile und Nachteile.

Da in der Nummernkreispflege auch der aktuelle Nummernstand festgehalten wird ist es empfehlenswert diese Tabelle direkt im Produktivsystem über die Transaktion FBN1 zu pflegen.

Technisch betrachtet sind die Informationen zum Nummernkreis in der Tabelle NRIV - Nummernkreisintervalle hinterlegt. Es handelt sich hierbei um eine Customizingtabelle.

Auf Tabellenebene (über die Transaktion SE12 oder SE16 bzw. über eine Query können  die einzelnen Einstellungen zum Nummernkreis auch direkt aus der Tabelle ausgelesen werden.

Hierzu ist das Feld OBJECT "Name des Nummernkreisobjekts" mit RF_Beleg "Nummernkreise für den Buchhaltungsbeleg" und das Feld SUBOBJECT "Wert des Unterobjekts des Nummernkreisobjekts" mit dem entsprechenden Buchungskreis (bspw. BUKR) zu selektieren.

Nun erhält man eine Auflistung der Einstellungen für den Buchungskreis.
Es werden folgende Felder in der Tabelle ausgegeben:
  • NRRANGENR "Nummernkreisnummer"
  • TOYEAR "Bis-Geschäftsjahr"
  • FROMNUMBER "Von-Nummer"
  • TONUMBER "Bis-Nummer"
  • NRLEVEL "Nummernkreisstand"
  • EXTERNIND "Kz. für internen (' ') oder externen ('X') Nummernkreis"
Hierbei kann die Belegnummer insgesamt aus 20 Zeichen bestehen.

Bei der Vergabe von externen Intervallen ist entweder eine Angabe von Zeichen oder Zahlen möglich. Somit kann dieser Nummernkreis 000001 bis 999999 oder AAAAAA bis ZZZZZZ nicht aber AAAAAA bis 999999 umfassen.

Sofern jahresabhängig Nummernkreise gepflegt werden, sind diese im Rahmen des Geschäftsjahreswechsel jedes Jahr aufs Neue im Customizing zu hinterlegen.

Nummernkreise im Controlling pflegen

Ebenso wie Belege in der Finanzbuchhaltung sind auch die Belegnummern im Controlling einem Nummernkreis zugeordnet. Technisch betrachtet sind diese im Objekt RK_BELEG BUCH  "Nummernkreise CO-Beleg" hinterlegt. Diese Nummernkreise sind für einzelne Vorgänge im Controlling vorgesehen und sind im Customizing vergleichbar zu den Nummernkreise in der Finanzbuchhaltung aufgebaut.

Die Pflege der Nummernkreise für CO Belege ist im Customizing (Transaktion SPRO) unter
  • Controlling
  • Controlling Allgemein
  • Organisation
  • Nummernkreise für CO-Belege pflegen (Transaktion KANK)
bzw. über die Transaktion KANK "Intervallpflege: CO-Beleg)" zu finden.Allerdings sind hier keine Jahre angegeben sondern lediglich Nummernkreisnummern, Intervalle und die Kennzeichen für interne und externe Nummernvergabe.


 

Hinweis: Aktuelle Buchempfehlungen besonders SAP Fachbücher sind unter Buchempfehlungen inklusive ausführlicher Rezenssionenzu finden. Mein Weiterbildungsangebot zu SAP Themen finden Sie auf unkelbach.expert.
Werbung
Abschlussarbeiten im SAP S/4HANA Controlling (📖)

Für 29,95 € direkt bestellen

Oder bei Amazon ** Oder bei Autorenwelt

Diesen und weitere Texte von Andreas Unkelbach finden Sie auf http://www.andreas-unkelbach.de


<< Frühere Einträge Spätere Einträge >>



* Amazon Partnerlink/Affiliatelinks/Werbelinks
Als Amazon-Partner verdiene ich an qualifizierten Käufen über Amazon.
Hinauf






Logo Andreas-Unkelbach.de
Andreas Unkelbach Blog
ISSN 2701-6242

© 2004 - 2026 Andreas Unkelbach
Gießener Straße 75,35396 Gießen,Germany
andreas.unkelbach@posteo.de

UStID-Nr: DE348450326 - Kleinunternehmer im Sinne von § 19 Abs. 1 UStG

Andreas Unkelbach

Stichwortverzeichnis
(Tagcloud)


Aktuelle Infos (Abo)

Linkedin Bluesky

Facebook Mastodon

Amazon Autorenwelt Librarything

Buchempfehlung
Schnelleinstieg ins SAP®-Controlling (CO) – 2., erweiterte Auflage

29,95 € Amazon* Autorenwelt

Espresso Tutorials

unkelbach.link/et.reportpainter/

unkelbach.link/et.migrationscockpit/

Privates

Kaffeekasse 📖 Wunschliste