Business-Regeln und Skripteinbindungen
Geschäftsregeln sind serverseitige Aktionen, die während CRUD-Vorgängen (Create, Read, Update, Delete) für Instanzdatensätze ausgeführt werden können.
Einige bewährte Vorgehensweisen bei der Verwendung von Geschäftsregeln sind:
- Halten Sie die Business-Regeln kurz und spezifisch.
- Vermeiden Sie es, die Geschäftsregeln des Basissystems zu ändern.
- Verwenden Sie Skripteinbindungen anstelle von globalen Business-Regeln.
- Verwenden Sie Skripting nur bei Bedarf.
- Speichern Sie wiederverwendbare Skriptlogik in einer Skripteinbindung.
- Verwenden Sie Abfragen, um die Datensätze zu begrenzen, die innerhalb einer Geschäftsregel verarbeitet werden.
- Vermeiden Sie vom Client aufrufbare Business-Regeln, um die Effizienz beim Ausführen von Client-Skripts zu verbessern.
- Verwenden Sie immer eine Bedingung mit Geschäftsregeln, um zu steuern, wann die Geschäftsregel ausgeführt wird. Das Ausführen von Business-Regeln mit Bedingungen kann ebenfalls beim Debuggen helfen. Geschäftsregeln werden selten ohne Bedingungen ausgeführt.
Geschäftsregeln können so konfiguriert werden, dass sie vor oder nach einem Datenbankvorgang ausgeführt werden. Sie können auch so konfiguriert werden, dass sie asynchron ausgeführt werden und bevor ein Formular angezeigt oder eine Abfrage ausgeführt wird.
| Wert | Wird ausgeführt | Wann zu verwenden ist | Beispiel |
|---|---|---|---|
| Vor | Synchron vor dem Datenbankvorgang | Legen Sie Werte für das aktuelle Objekt als Teil des Speichervorgangs fest, oder aktualisieren Sie sie. Validieren und brechen Sie die Ausführung bei Bedarf ab. | Ein Entwickler möchte den Status des aktuellen Datensatzes basierend auf einer anderen Eingabe in diesem Datensatz festlegen. |
| Nach | Synchronisiert nach dem Datenbankvorgang | Lösen Sie Ereignisse und Benachrichtigungen nach der Datenbankaktualisierung aus, um auf das vorherige Objekt zuzugreifen oder etwas in der richtigen Reihenfolge auszuführen. Aktualisieren Sie andere zugehörige Datensätze als die Basistabelle, die aktualisiert wird, um auf das vorherige Objekt zuzugreifen oder etwas in der Reihenfolge auszuführen. | Ein Entwickler möchte Werte vom aktuellen Datensatz bis zu untergeordneten Datensätzen kaskadieren. |
| Async | Wird nach Abschluss des Datenbankvorgangs asynchron als separater Prozess ausgeführt | Die Ausführung des von der Regel ausgelösten Prozesses kann eine Weile dauern. Wenn der Benutzer, der den Vorgang ausgelöst hat, die Ausgabe nicht sofort benötigt. Lösen Sie Ereignisse, Benachrichtigungen oder zugehörige Datensatzaktualisierungen aus, wenn der Zugriff auf die vorherigen Werte des Datensatzes oder eine bestimmte Reihenfolge von Aktionen nicht erforderlich ist. | Ein Entwickler muss einen externen Prozess auslösen, der eine Weile dauern oder eine große Anzahl von Datensätzen aktualisieren kann. |
| Bildschirm | Wird bei jeder Anzeige des entsprechenden Formulars ausgeführt | Wird verwendet, um serverseitige Objekte für clientseitige Skripts verfügbar zu machen. | Ein Entwickler möchte Informationen über einen Benutzer, der dem aktuellen Datensatz zugeordnet ist, in das Objekt „g_scratchpad“ schreiben, um sie in einem clientseitigen Skript zu verwenden. |
Verwenden Sie Skripteinbindungen, um JavaScript-Funktionen und -Klassen zur Verwendung durch Serverskripts zu speichern. Jede Skripteinbindung definiert entweder eine Objektklasse oder eine Funktion, die in allen serverseitigen Skripts wiederverwendet werden kann.
Speichern Sie beliebigen Code, der an anderer Stelle verwendet werden muss, in einer Skripteinbindung. Rufen Sie die Skripteinbindung aus einer Business-Regel, einer UI-Aktion, einem Workflow-Skript, einer geskripteten REST-API usw. auf. Anstatt eine Geschäftsregel aus einer UI-Aktion oder eine UI-Aktion aus einer geskripteten REST API aufzurufen, fügen Sie den Code in eine Skripteinbindung ein, und rufen Sie die Skripteinbindung von beiden Seiten aus auf.
Das Beibehalten von Funktionen in einer Skripteinbindung ermöglicht das Testen der Funktion vor dem Bereitstellen der Funktion in anderen geskripteten Bereichen und reduziert so die allgemeine Entwicklungs- und Testzeit.
Weitere Informationen finden Sie unter Business Rules.