Ansicht
Dokumentation
CATS_GUID_GET_KEY - Verknüpfung zwischen Guid und externem CATS-Key
General Material Data RFUMSV00 - Advance Return for Tax on Sales/PurchasesDiese Dokumentation steht unter dem Copyright der SAP AG.
Funktionalität
Der Funktionsbaustein verknüpft einen Schlüssel (GUID) mit dem externen Schlüssel des Arbeitszeitblattes (CATS).
Die Verknüpfung zwischen der GUID und dem externen CATS-Schlüssel (er besteht aus 3 Feldern: EXTSYSTEM, EXTAPPLICATION und EXTDOCUMENTNO) wird in der Tabelle CATS_GUID_KEY abgelegt.
Der Funktionsbaustein vergibt neuen GUIDs einen externen CATS-Schlüssel und liefert für alte GUIDs, die bereits einen Eintrag in der Tabelle CATS_GUID_KEY haben, den dazugehörigen externen CATS-Schlüssel zurück.
In der Eingabetabelle IMP_GUID_TAB werden alte und/oder neue GUIDs dem Funktionsbaustein übergeben, wobei alte GUIDs, die also bereits eine Verknüpfung zu einem externen CATS-Key haben, zusätzlich ein Kennzeichen (KEY_EXISTS = 'X') haben müssen. Weiterhin muß bei der Eingabe die externe Anwendung (IMP_APPL) spezifiziert sein.
Der Funktionsbaustein gibt eine Tabelle (EXP_GUID_TAB) aus, die für neue Sätze die GUID und den exteren CATS-Key enthält. Alte Sätze weisen darüberhinaus noch ein Kennzeichen (RECORD_MISSING) oder den CATS-Counter aus der Tabelle CATSDB aus. Ein Satz der EXP_GUID_TAB mit einer alten GUID hat das Kennzeichen RECORD_MISSING = 'X', wenn zu seinem externen CATS-Key in der Tabelle CATSDB kein passender Satz gefunden werden konnte. Passend in diesem Sinne sind CATSDB-Sätze, die neben dem richtigen externen CATS-Key auch noch den CATSDB-STATUS = '10', '20', '30' oder '40' haben. Konnte zu der alten GUID ein richtiger CATSDB-Satz gefunden werden, so sitzt RECORD_MISSING auf Blank und der COUNTER ist gefüllt.
Im Falle alter GUIDs wird dieser COUNTER mitgeliefert, weil eine Folgeverarbeitung über die CATS-Bapis oder den Funktionsbaustein CATS_EXTERNAL_INTERFACE darauf angewiesen ist.
Es können folgende Ausnahmesituationen auftreten:
KEY_MISSING:Zu einer GUID in der Import-Tabelle IMP_GUID_TAB, die das Kennzeichen KEY_EXISTS = 'X' hat (also eine alte GUID darstellt), konnte kein externer CATS-Schlüssel in der Tabelle CATS_GUID_TAB gefunden werden.
NUMBER_RANGE_ERROR: Beim Aufbau des externen CATS-Schlüssels konnte für die EXTDOCUMENTNO keine Nummer ermittelt werden.
ERROR_UPDATE: Beim Update neuer GUIDs in die Tabelle CATS_GUID_KEY ereignete sich ein Fehler. Typischerweise wurde in der Eingabetabelle eine alte GUID ohne das Kennzeichen KEY_EXISTS übergeben. Da solch eine GUID als neue GUID interpretiert wird, scheitert ein INSERT auf die CATS_GUID_TAB.
NO_SYSTEM_FOUND: Es konnte kein logisches System ermittelt werden. Da das EXTSYSTEM Bestandteil des exterenen CATS-Schlüssels ist, wir die Verarbeitung unterbrochen.
Im Falle einer Ausnahmesituation wird die Ausgabetabelle geleert. Es finden keine Datenbankänderungen statt. Trat beim Einfügen eines Satzes in die Tabelle CATS_GUID_KEY ein Fehler auf (Ausnahme: ERROR_UPDATE), so obliegt es dem Aufrufer, ein ROLLBACK durchzuführen.
Weiterhin setzt der Funktionsbaustein kein COMMIT WORK ab.
Beispiel
Der Funktionsbaustein könnte im Umfeld folgenden Szenarios Bedeutung haben:
CATS wird als Schnittstelle zwischen System A und B benutzt. Im System A wird eine GUID vergeben, anhand derer im System B CATS-Sätze erzeugt werden sollen, die dann wieder in verschiedene Zielapplikationen übergeleitet werden sollen. Das System A kennt nur die GUID, nicht jedoch irgendwelche CATS-Keys. Neben dem Einfügen neuer Sätze (neue GUIDs) soll weiterhin die Möglichkeit einer Stornierung alter Sätze (alte GUIDs im Funktionsbaustein) gegeben sein.
(A) Neue Sätze (neue GUIDs).
Die Eingabetabelle IMP_GUID_TAB enthält lediglich die GUID, jedoch kein Kennzeichen KEY_EXISTS. Die neue GUID erhält einen externen CATS-Schlüssel und wird in die Datenbanktabelle CATS_GUID_KEY geschrieben. Die Ausgabetabelle EXP_GUID_TAB enthält die GUID und den externen Schlüssel. In der Folge kann mit diesem externen CATS-Schlüssel der Funktionsbaustein CATS_EXTERNAL_INTERFACE aufgerufen werden. Durch ihn wird ein CATS-Satz in die CATSDB eingefügt, der durch den externen CATS-Schlüssel wiedergefunden werden kann.
Die CATS-Bapis oder der Funktionsbaustein CATS_EXTERNAL_INTERFACE wird aufgerufen mit den Kontierungsinformationen und dem externen Schlüssel. Der CATS-Counter wird erst noch vergeben.
(B) Stornierung bereits im System B angelangter Sätze (alte GUIDs)
Die Eingabetabelle IMP_GUID_TAB enthält neben der GUID auch das Kennzeichen KEY_EXISTS = 'X'. Der Funktionsbaustein ermittelt aus der Tabelle CATS_GUID_KEY den externen CATS-Schlüssel und aus der Tabelle CATSDB den Counter. Die Ausgabetabelle beinhaltet neben der GUID und dem externen CATS-Schlüssel auch den Counter aus der CATSDB. Das Kennzeichen RECORD_MISSING ist nicht gesetzt, falls ein Counter gefunden werden konnte. Konnte kein entsprechender Counter zum externen Schlüssel in der CATSD ermittelt werden, so fehlt in der Ausgabetabelle EXP_GUID_TAB der Counter und das Kennzeichen RECORD_MISSING = 'X' sitzt.
Voraussetzung für die Stornierung der GUID über die CATS-Bapis oder den Funktionsbaustein CATS_EXTERNAL_INTERFACE ist der Counter aus der CATSDB. Fehlt also zur Storno-GUID der Counter, so kann die Stornierung nicht durchgeführt werden. Ansonsten wird der CATS_EXTERNAL_INTERFACE mit dem Counter, den Kontierungsparametern (des Originalsatzes) und dem externen Schlüssel versorgt. Weiterhin müssen die Felder CATSHOURS, BEGUZ, ENDUZ, ALLDF initial sein.
Hinweise
Weiterführende Informationen
Parameter
EXP_GUID_TABIMP_APPL
IMP_GUID_TAB
Ausnahmen
ERROR_UPDATEKEY_MISSING
NO_SYSTEM_FOUND
NUMBER_RANGE_ERROR
Funktionsgruppe
CATS_SERVICESBAL_S_LOG - Application Log: Log header data Fill RESBD Structure from EBP Component Structure
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 6829 Date: 20240523 Time: 184011 sap01-206 ( 77 ms )