Eine gespeicherte Prozedur (Stored Procedure) ist eine in der Datenbank von SAP Business One abgelegte, vorab definierte Sammlung von SQL-Anweisungen, die systemrelevante oder geschäftsspezifische Logik ausführt und damit eine zentrale technologische Komponente der Datenbankarchitektur bildet.
SAP Business One unterscheidet Stored Procedures nach der Datenbank, in der sie gespeichert sind. In der SBOCOMMON Datenbank unterstützen sie die Verwaltung der Systemlandschaft. Dabei verwalten sie Metadaten und Systemobjekte, etwa durch das Einfügen (InsertClassDef) oder Löschen (DeleteClassDef) von Klassendefinitionen. Ferner existieren Prozeduren zur Lizenzverwaltung und Systemwartung, wie TmSp_CopyCompany oder TmSp_GetUsers. In den Firmendatenbanken steuern Stored Procedures hingegen die Buchungs- und Geschäftslogik. Dazu gehören unter anderem Routinen wie TmSp_GetDocVatTotals oder TmSp_ConvertGrpLine_OACT, die direkt in die Verarbeitung geschäftlicher Transaktionen eingebunden sind.
Insbesondere nutzen Fachexperten Stored Procedures, um die Standardfunktionalität von SAP Business One tiefgreifend anzupassen. Die Prozedur SBO_SP_TransactionNotification dient dabei zur Implementierung komplexer Validierungen. Wenn ein Benutzer versucht, einen Beleg hinzuzufügen, kann diese Prozedur ausgelöst werden und benutzerdefinierte Geschäftsregeln prüfen. Wird eine Regel verletzt, stoppt sie den Hinzufügevorgang; dadurch lassen sich beispielsweise Rabatte auf Zeilenebene prüfen, die das standardmäßige Genehmigungsverfahren auf Kopfebene nicht abdeckt. Zudem unterstützt SBO_SP_PostTransactionNotice nachgelagerte Aktivitäten, nachdem eine Transaktion erfolgreich in der Datenbank gebucht wurde.
Ausführung und Verwaltung:
Die Ausführung von Stored Procedures erfolgt über SQL. Das Command-Objekt der Data Interface Application Programming Interface (DI API) kann SQL Stored Procedures in der Firmendatenbank aufrufen. Außerdem können Anwender mit der Berechtigung „Volle Berechtigung“ das Fenster Execute Commands nutzen, um Stored Procedures auszuführen, die als Makros geschrieben wurden. Schließlich sind Stored Procedures auch für die Datenbankpflege relevant, da sie etwa zur Aktualisierung von Statistiken (sp_updatestats) eingesetzt werden und so dem Datenbank-Optimizer eine effiziente Ausführung von SQL-Anweisungen ermöglichen.
Abgrenzung und Wartungshinweis:
Stored Procedures gehören fest zur technischen Infrastruktur von SAP Business One. Fachanwender und Administratoren dürfen die vom System bereitgestellten Prozeduren deshalb weder umbenennen noch entfernen, da dies die ordnungsgemäße Funktion des Systems stören und Fehlermeldungen auslösen kann. Während Standardprozeduren systemseitige Aufgaben und Kernlogik abdecken, erweitern kundenseitig angepasste Prozeduren wie SBO_SP_TransactionNotification und SBO_SP_PostTransactionNotice die Geschäftslogik um individuelle Regeln und Folgeaktionen, ohne die zugrunde liegende Systemarchitektur zu verändern.