17:43 Uhr
Änderungsbelege zu Systemstatus (JEST) bei Innenaufträgen per Query auswerten
Grundsätzlich beschreibt der Systemstatus den Lebenslauf eines Innenauftrags. Sobald hier der Status ABGS Abgeschlossen gesetzt wurde, könnenweder Buchungen noch sonstige Änderungen vorgenommen werden. Teilweise kann aber auch unabhängig vom Lebenszyklusstatus auch eine Sperre im Auftragsstamm durch BEARBEITEN->SPERRE->SETZEN innerhalb der Stammdatenpflege (KO02) gesetzt werden. Dieses hat gegenüber den Status ABGS den Vorteil, dass Projekte durch entsperren wieder bebucht werden können. Ein Beispiel wäre ein Projekt, dass zwar über einen längeren Zeitraum läuft, dessen Fortführung aber durch eine Verlängerung des Projektgebers abhängig ist.
Exkurs Maschinelle Sammelbearbeitung Innenaufträge
Sollen mehrere Innenaufräge gesperrt werden (bzw. der Status geändert werden) bietet sich die Transaktion KOK4 an. Hier kann anhand einer Selektionsvariante für eine Vielzahl von Innenaufträgen über die Funktionsauswahl Aufträge gesperrt, entsperrt oder auch ein anderer Status gesetzt werden.
Problematisch ist diese Vorgehensweise jedoch, wenn die Sperre genutzt wird um keine weitere Buchungen mehr bei abgelaufenen Projekten zu ermöglichen. Teilweise kann es hier erforderlich sein, dass die Sperre (bspw. bei einen AfA-Lauf) in der KO02 zurück genommen wird oder für eine Plankopie über die Massenpflege KOK4 entfernt wird (siehe hierzu auch der Artikel "Plankopie Innenaufträge").
Innerhalb der Stammdatenansicht (KO03 oder KO02) kann über UMFELD->ÄNDERUNGSBELEGE->ZUM STATUS eine Änderungsbeleliste zum jeweiligen Status für den angezeigten Innenauftrag angezeigt werden. Hier wäre daher eine Liste mit Änderungen zu jeweiligen Status für eine Vielfalt von Innenaufträgen hilfreich.
Ausgangslage: Tabelle mit Änderungsbelegen zum Systemstatus
Diese Änderungsbelege sind in der Tabelle JCDS "Änderungsbelege für System-/Anwenderstatus (Tabelle JEST)" zu finden. Nun soll eine Query erstellt werden aus der eine Liste aller Sperren mit Änderungszeitpunkt und Änderungstransaktion erstellt werden.1. Infoset anlegen (SQ02)
Für die SAP Query müssen, wie auch im Artikel "SAP Query: Systemstatus CO Innenauftrag" beschrieben mehrere Tabellen miteinander verknüpft werden.AUFK - Auftragsstammdaten
JEST - Einzelstatus pro Objekt
TJ02 - Systemstatus
Ergänzend dazu wird noch folgende Tabelle für die Änderungsbelege benötigt.
JCDS - Änderungsbelege für System-/Anwenderstatus (Tabelle JEST)
Folgende Felder werden hierbei miteinander verknüpft.
Verknüpfungen
Hierbei steht <--> für einen normalen Join und >LO< für einen left outer join.
AUFK-OBJNR <-> JEST-OBJNR
Das Feld OBJNR hat in Tabellen eine besondere Funktion, da hier unterschiedliche Kontierungsobjekte festgehalten werden können. So werden beispielsweise Innenaufträge als OR* gespeichert, so dass hier eine entsprechende Verknüpfung erfolgen kann.
In der Tabelle JEST ist nun der vorhandene Status als Nummernfeld für jedes Objekt hinterlegt. In der Tabelle TJ02 erhalten wir allerdings auch die Bezeichnung dieses Status, so dass dieses Feld gerade bei der späteren Selektion sehr hilfreich ist.
Entsprechend legen wir als weitere Verknüpfung folgende an:
JEST-STAT <-> TJ02-ISTAT
Somit kann nachher in der Query auch über den Text bzw. die Beschreibung des Status verwendet werden.
Um nun eine Verknüpfung zu den Änderungsbelegen herzustellen wird noch die Tabelle JEST mit der Tabelle JCDS über folgende Felder miteinander verknüpft.
JEST-OBJNR <-> JCDS-OBJNR
JEST-STAT <-> JCDS-STAT
Schematisch sollte das Infoset nun wie folgt aussehen:

2. Query anlegen (SQ01)
Innerhalb der Query werden nun auf folgende Felder der einzelnen Tabellen Zugriff genommen bzw. in der Grundliste zugewiesen. Hierbei ist L als Listenfeld und S als Selektionsfeld zu verstehen.Die Felder werden hier in der Reihenfolge angeben, wie diese dann auch in der Query ausgegeben werden sollen:
Auftragsstammdaten AUFK
Innenauftragsnummer AUFK-AUFNR (S,L)
Kurztext AUFK-KTEXT (L)
Einzelstatus pro Objekt JEST
Einzelstatus eines Objekts JEST-STAT (L)
Systemstatus TJ02
Systemstatus TJ02-ISTAT (S)
Durch Verwendung des Systemstatus aus der Tabelle TJ02 wird in der F4 Auswahlhilfe der Query dann auch die Beschreibung ausgegeben.
Zusatzfeld bzw. Textfeld
Zusatzfeld:
"Text:Systemstatus" TEXT_TJ02_ISTAT (L)
Änderungsbelege für System-/Anwenderstatus (Tabelle JEST) JCDS
Datum (der Änderung) JCDS-UDATE (S, L)
Uhrzeit (der Änderung) JCDS-UTIME (L)
Änderungsnummer JCDS-CHGNR (L)
Benutzer JCDS-USNAM (L)
Transaktion die zur Änderung führte (Tcode) JCDS-CDTCODE (L)
Zusatzfeld bzw. Textfeld
Textfelder:
"Text:Transaktion, in der eine Änderung durchgeführt wurde" TEXT_JCDS_CDTCODE (L)
"Text:Kennzeichen: Status inaktiv" TEXT_JCDS_INACT (L)
Sortieren und Zwischensummen bilden
Da hier möglicherweise viele Änderungen am Status eines Objekes (im beschriebenen Fallbeispiel am Innenauftrag) auftreten werden ist es sinnvoll hier eine Sortierung über das Feld Innenauftrag/Auftrag vorzunehmen. Hierzu sollte das Feld Auftrags in die Sortierfelder gezogen werden. Hierzu kann in der Grundliste (Layoutdesign) der Beispieldatensatz (weißer Hintergrund)in die Sortierfleder gerzogen werden. Die Sortierfelder können über WERKZEUGE->SORTIERF. EIN/AUS ein bzw. ausgeblendet werden.Durch die Sortierung nach Zwischensummen bietet es sich, bei der Selektion nach SPERR Status an, über ein kundeneigenes Zusatzfeld angelegt werden.
Um lokale Felder zu definieren wird nicht direkt die Grundliste der Query bearbeitet (wo auch das Layoutdesign gepflegt wird) sondern innerhalb der Querypflege (Transaktion SQ01) mit "nächstes Bild (F6)" auf die Feldauswahl der Query gewechselt.
Über
BEARBEITEN->KURZBEZEICHNUNG
kann für die einzelnen Felder eine Kurzbezeichnung eingestellt werden. Nun werden rechts neben den Datenfeldern Eingabefelder für die Kurzbezeichnung angegeben. Hier bekommt nun folgendes Feld eine Kurzbezeichnung (in der Beschreibung ist die Bezeichnung, gefolgt von der angelegten Kurzbezeichnung und des dahinter technisch liegenden Tabellenfeldes angegeben):
Kennzeichen: Status inaktiv - INAKT (JCDS-INACT)
Diese Kurzbezeichnung ist notwendig, da wir auf diese dann Bezug nehmen, wenn wir ein eigens Feld mit einer Formel anlegen.
Dieses geht über
BEARBEITEN->LOKALES FELD->ANLEGEN
Dieses Lokale Feld wird dann in der Feldgruppe angelegt, in der wir uns gerade befinden. In unseren Fall also ebenfalls in der Feldgruppe der Tabelle JCDS bzw. der Bezeichnung der Feldgruppe "Änderungsbelege".
Hierbei wird das Feld CHANGE mit folgenden Eigenschaften angelegt:
Kurzbezeichnung: CHANGE
Feldbezeichnung: CHANGE
Überschrift: CHANGE
Eigenschaften wie: Rechenfeld Anzahl der Ziffern 31 (um einen Feldüberlauf Meldungsnummer. 0K051 zu vermeiden)
Berechnungsvorschrift:
Hier wird eine komplexe Berechnung mit folgenden Bedingungen hinterlegt:
- Bedingung: INAKT = ''
Formel: 1 - Sonst
-1
Berichtszuordnung
Sinnvollerweise sollte in der Query auch eine Absprungfunktion in die Funktion Innenauftrag anzeigen (KO03) bzw. Innenauftrag ändern (KO02) hinzugefügt werden.
Hierzu rufen wir wiederum über die SQ01 die Query für eine Änderung auf.
Über SPRINGEN->BERICHTSZUORDNUNG können Empfängerberichte definiert werden.
Über das „+“ (Zeile einfügen) können weitere Query eingefügt werden. Alternativ kann hier auch ein anderer Berichtstyp ausgewählt werden. Über "TR Transaktion" können hier auch die die Transaktionen KO03 und KO02 hinterlegt werden.
Handhabung der Query Änderungsbelege zum Auftragsstatus anzeigen
Nun werden die Daten entsprechend sortiert, so dass hier eine Sortierung erfolgt und direkt ersichtlich ist, welche Änderungen jeweils aktuell vorgenommen wurde. Sofern keine Selektion vorgenommen wurde werden alle Änderungen in ihrer zeitlichen Reihenfolge (über die Änderungsnummer bzw. auch Datum und Uhrzeit) unteirnander aufgeführt. Der aktuelle Status ist dann am Ende der Liste ersichtlich. Dabei ist darauf zu achten, dass wenn ein Status in der letzten Spalte (Kennzeichen Status: inaktiv) auf aktiv gesetzt ist, hier (im Beispiel für den Status I0043 Gesperrt) dieser Innenauftrag gesperrt ist. Eine Entsperrung ist als Gegenstück durch den Status inaktiv ersichtlich.Daneben kann über diese Query aber auch eine Auswertung über den Lebenszyklus (inklusive Zeitpunkten) des Innenauftrages (von EROF (eröffnet), FREI (freigegeben), TABG (technisch abgeschlossen) bis ABGS (abgeschlossen)) dargestellt werden.
Beim Aufruf der Query kann nun über ein Nummernintervall die Änderungen an den einzelnen Aufträgen ausgewertet werden oder alternativ nur Änderungen am Sperrkenzeichen (Systemstatus I0043 ) ausgewertet werden. Ferner ist es sinnvoll über das "Erstellungsdatum des Änderun" (JCDS-UPDATE) eine Einschränkung der Änderungsbelege auf das Vorjahr bis zum 31.12.9999 (bzw. laufendes Jahres) als Variante zur Query zu hinterlegen. Diese kann auch als Standardvariante zur Query im Feld Standard-Variante im Einstiegsbild der Querypflege in der SQ01 hinterlegt werden. Sehr beliebt ist bei mir in diesen Fall ja die Variante ALLGEMEIN.
Sofern das Feld CHANGE genutzt wird, ist bei der Auswertung eines Status bspw. I043 ein Handlungsbedarf gegeben wenn die Summe je Innenauftrag 0 ist, da hier eine Sperre gesetzt und wieder aufgehoben aber nicht erneut gesperrt wurde. Sollte jedoch über das Änerungsdatum eine Abfrage erfolgen kann ein Handlungsbedarf bei 1 gegeben sein :-) .
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.
ein Angebot von Espresso Tutorials

unkelbach.link/et.books/
unkelbach.link/et.reportpainter/
unkelbach.link/et.migrationscockpit/
Diesen Artikel zitieren:
Unkelbach, Andreas: »Änderungsbelege zu Systemstatus (JEST) bei Innenaufträgen per Query auswerten« in Andreas Unkelbach Blog (ISSN: 2701-6242) vom 6.2.2015, Online-Publikation: https://www.andreas-unkelbach.de/blog/?go=show&id=592 (Abgerufen am 13.2.2025)
4 Kommentare - Permalink - SAP
Artikel datenschutzfreundlich teilen
🌎 Facebook 🌎 Bluesky 🌎 LinkedIn