Manchmal entscheidet Testimony während eines Abspielens, dass ein Skript nicht ausgeführt werden kann oder soll. Diese werden mit Status “Abgebrochen” und Ergebnis “Kein Ergebnis” angezeigt.
Es gibt verschiedene Gründe, warum Testimony beschließen könnte, ein Skript abzubrechen. Diese werden im Folgenden erörtert.
Vorgängerskript fehlgeschlagen (LEAVE TO TRANSACTION)
Dieser Abbruchgrund tritt in bestimmten Fällen auf, wenn von einem Benutzer “verkettete Transaktionen” ausgeführt werden. In vielen Fällen führt das Ende der Bearbeitung einer Transaktion in SAP (z. B. durch Drücken der Schaltfläche “Zurück” oder “Speichern”) dazu, dass der Benutzer zum Einstiegsbild der Transaktion zurückkehrt. Dies wird in ABAP über den LEAVE TO TRANSACTION-Befehl realisiert. Wenn Testimony die Ausführungs-Queue für diese verketteten Transaktionen aufbaut, hat nur der erste Aufruf der Transaktion einen Schritt “Transaktion starten”. Die verbleibenden Transaktionen in der Kette werden von Testimony zwar als separate Skripte behandelt, haben aber keinen separaten Schritt “Transaktion starten”, da Testimony durch den Kontext der vorherigen Transaktion alle Informationen erhält, die es zur erneuten Ausführung der Transaktion benötigt.
Im obigen Beispiel sieht man, dass ein Benutzer die Transaktion LT03 ausgeführt hat, aber nur das erste Skript hat einen Schritt “Transaktion starten” (angezeigt durch das Symbol “Abspielen” im ersten Schritt). In diesem Fall hat der Benutzer die Transaktion gestartet (erster Schritt), einige Daten eingegeben (zweiter Schritt) und dann auf “Speichern” geklickt (dritter Schritt). Aufgrund des Befehls LEAVE TO TRANSACTION im SAP-Code für diese Transaktion wurde der Benutzer dann auf das Einstiegsbild von LT03 zurückgebracht. Dadurch wurde ein neues Skript in Testimony erstellt, allerdings ohne den Schritt “Transaktion starten”.
Eine Auswirkung dieser Methode zur Handhabung verketteter Transaktionen in Testimony ist, dass, wenn eines der Skripte in der Transaktion fehlschlägt oder einen Fehler aufweist, die verbleibenden Skripte in der Kette abgebrochen werden, da diese verbleibenden Skripte keinen Schritt “Transaktion starten” haben.
Dies ist im folgenden Beispiel zu sehen.
Hier sehen wir, dass der erste Schritt des ersten LT03-Skripts einen Fehler bei der Konnektivität aufwies. Wie üblich wurden die verbleibenden Schritte dieses Skripts abgebrochen, aber zusätzlich wurde auch das zweite Skript in der Kette aus den oben genannten Gründen abgebrochen.
Producer-Schritt fehlgeschlagen (dynamische ID)
Das dynamische ID-Verfahren von Testimony stellt sicher, dass in Fällen, in denen die Ausführung einer Transaktion von den Ergebnissen einer anderen Transaktion abhängt, die beiden Transaktionen miteinander verknüpft werden. Dies geift z.B. in dem Fall, dass ein Skript ein Dokument anlegt und ein nachfolgendes Skript dieses Dokument ändert. Das dynamische ID-Verfahren macht solche Verkettungen möglich:
- Die verknüpften Skripte werden in der richtigen Reihenfolge ausgeführt, so dass das Anlegen von Dokumenten immer vor der Änderung ausgeführt wird.
- Wenn die Dokumentennummer, die beim Anlegen des Dokuments beim Abspielen generiert wird, sich von der Nummer unterscheidet, die in der Aufzeichnung generiert wurde, verwendet die nachfolgende Transkation die neue Nummer anstelle der alten Nummer (so dass das richtige Dokument geändert wird)
- Wenn das Skript zum Anlegen von Dokumenten beim Abspielen fehlschlägt, wird das nachfolgende Skript zur Änderung ebenfalls abgebrochen, um zu vermeiden, dass unnötigerweise versucht wird, ein Dokument zu ändern, von dem Testimony weiß, dass es nicht existiert.
Im dritten Fall würde die Transaktion zum Ändern des Dokuments den Status “Abgebrochen” mit Sub-Status “Producer-Schritt fehlgeschlagen (dynamische ID)” und Ergebnis von “Kein Ergebnis” erhalten.
Im obigen Beispiel wurde die Transaktion VL02N mit dem Sub-Status “Producer-Schritt fehlgeschlagen (dynamische ID)” abgebrochen.
Wir können überprüfen, welcher Producer-Schritt dies verursacht hat, indem wir den Bildschirm zur Untersuchung des abgebrochenen Skripts aufrufen.
Der Bereich Skriptverknüpfungen unten links im Bild zeigt alle Objekte oder Skripts an, die mit diesem Skript verknüpft sind. Hier sehen wir, dass es eine Verknüpfung “Dynamische ID – Verbraucher” gibt, die zeigt, dass dieses Skript der Konsument eines anderen Skripts ist. Durch Klicken auf dieses Element in der Liste der Verknüpfungen, werden folgende Details angezeigt (von oben nach unten gelesen):
- Das aktuelle Skript / der aktuelle Schritt (“Konsumentenschritt – Schritt-/Skriptdetails”)
- Der Producer, d.h. das Skript / der Schritt, von dem dieser Schritt abhängig ist (“Producer-Schritte/Skripte”)
- Alle anderen Skripte, die von diesem Producer abhängig sind (“Andere Konsumenten von Producers”)
Im obigen Beispiel sehen wir also, dass das Skript zu VL02N abgebrochen wurde, weil es von der zuvor ausgeführten Transaktion VL01N abhängig war, die den Status “Fehler” hat. Da dieses Producer-Skript fehlschlug, wurden sowohl die Transaktion VL02N als auch LT03 und VF01 abgebrochen.
Hinterlasse einen Kommentar.