Kundenanforderungen sind oftmals der Beginn für eine lehrreiche Zeit. So war es auch mal wieder bei mir und ich möchte in diesem Artikel gern meine Erkenntnisse teilen.
Konkret ging es um die Anfrage für eine Überprüfung einer Charge in SAP Business One. Aufgrund eines bestimmten Kriteriums sollte ein Aktualisieren der Charge unter Umständen verhindert werden, zusammen mit einer aussagekräftigen Fehlermeldung. Eine Situation wie gemalt für eine Transaction Notification, kurz TN.
Die SQL-Abfrage dafür war schnell erstellt, nur leider funktionierte die Transaction Notification irgendwie nicht, denn obwohl das Kriterium erfüllt war, wurde einfach keine Fehlermeldung angezeigt, bzw. das Aktualisieren nicht verhindert.
Wie ich dann gelernt habe, gibt es in SAP Business One die Möglichkeit, die Transaction Notification für bestimmte Objekttypen zu deaktivieren. Mir war sehr wohl bewusst, dass sie komplett abschaltbar ist (in den Allgemeinen Einstellungen), aber das dies auch nur für einzelne Objekttypen funktioniert, war mir neu. Genauso wie der Umstand, dass dies für die Chargen standardmäßig schon geschehen ist, was die Ursache für die nicht kommende Fehlermeldung war.
Nach kurzer Recherche habe ich auch den entsprechenden SAP-Hinweis 1320484 dazu gefunden. In diesem, dass dafür die Tabelle CTNS in der jeweiligen Firmendatenbank zuständig ist und hier per INSERT / UPDATE es erlaubt ist die Konfiguration an die eigenen Wünsche anzupassen. Der Grund dafür ist, dass es keine Benutzeroberfläche für das Verwalten dieser Einstellungen gibt.

Ein Blick in die Tabelle verrät die Struktur und neben der AbsId und der ObjectId kann dann über die drei Enable Spalten angegeben werden, ob der entsprechende Objekttyp benachrichtigt werden soll (Y) oder nicht (N). Dabei gilt:
EnableAsyN | Benachrichtigung über die Tabelle SEVT (SBO-COMMON Datenbank) |
---|---|
EnableTn | Benachrichtigung über die Gespeicherte Prozedur SBO_SP_TRANSACTIONNOTIFICATION |
EnablePTn | Benachrichtigung über die Gespeicherte Prozedur SBO_SP_POSTTRANSACTIONNOTICE |
HINWEIS: Taucht die ObjectId nicht in der Tabelle CTNS auf, wird immer benachrichtigt.
Leider kann ich nichts dazu sagen, warum das so ist, das manche Objekttypen im Standard nicht benachrichtigt werden, ich finde es aber eine tolle Funktionalität dies selbst verwalten zu können.
Sie benötigen Hilfe?
Ich bin gerne für Sie da:

Sebastian Gerber ist SAP Business One Experte und bekannt aus LinkedIn Learning und video2brain. Darüber hinaus ist er Inhaber der Versino Ost GmbH und vom SAP Business One Fachverlag B1Publish.