bestehenden Prüfungen zu einem Business Entity ergänzen. Dabei wirken diese ergänzten Prüfungen nur auf der OLTP-Datenbank, auf der sie erfasst wurden.
Nachfolgend ist beschrieben, wie die Anwendung „Individuelle Prüfungen“ aufgebaut ist und wie Sie Prüfungen erfassen.
1 Begriffsbestimmung
Hook
Hooks sind Java-Klassen in Namensräumen des Hook-Anbieters. Ein Hook wird in einer Java-Klasse implementiert, die selbst die Hook-Schnittstelle implementiert.
Hook Contract
Ein Hook ist eine Schnittstelle, mit der vorhandener Programmcode unabhängig von einem Release und damit konfliktfrei erweitert werden kann. Hooks werden beispielsweise verwendet, wenn in einer Adaptierung oder einer App für eine Business-Object-Erweiterung zusätzliche Prüfungen durchgeführt werden müssen, die die vorhandenen Prüfungen ergänzen.
Hook-Contract-Definition
Eine Hook-Contract-Definition enthält zusammengehörige Hooks, z. B. alle Hooks auf Business-Entity-Ebene eines bestimmten Business Entitys. Erst durch eine Hook-Contract-Definition sind die Hooks zur Implementierung freigegeben.
Hook-Anbieter
Ein Hook-Anbieter stellt Hooks zur Verfügung, die von einem Hook-Verwender implementiert werden können. Der Hook-Anbieter definiert Methoden in einer Java-Klasse (Hook).
Hook-Contract-Implementierung
In der Hook-Contract-Implementierung werden die zu implementierenden Hooks und die jeweilige Implementierungsklasse angegeben. Die Hook-Contract-Implementierung bezieht sich immer auf eine Hook-Contract-Definition, in der die implementierbaren Hooks enthalten sind.
Hook-Verwender
Ein Hook-Verwender implementiert die Hooks, die von einem Hook-Anbieter definiert wurden.
2 Anwendungsbeschreibung
Mit der Anwendung „Individuelle Prüfungen“ erfassen Sie Prüfungen für die OLTP-Datenbank, an der Sie sich angemeldet haben. Diese Prüfungen können auf keiner anderen OLTP-Datenbank genutzt werden.
Eine individuelle Prüfung erweitert die Prüfung eines bestimmten Business Entitys. Diese erweiterte Prüfung wird in allen Ein- und Ausgabekanälen verwendet, also sowohl in den Dialog-Anwendungen als auch beim Import oder Export. Sie können das Ergebnis dieser individuellen Prüfungen als individuelle Meldung ausgeben. Diese individuelle Meldung wird gemeinsam mit den Meldungen, die in der Repository-Datenbank erfasst sind, im jeweiligen Kontext angezeigt.
Hinweis:
Beachten Sie, dass eine fehlerhafte individuelle Prüfung die Bearbeitung eines Business Entitys verhindern kann. Sie können also beispielsweise mit einer unnötig ausgegebenen Fehlermeldung auslösen, dass keine Vertriebsaufträge erfasst oder bearbeitet werden können.
2.1 Identifikationsbereich
Im Identifikationsbereich wählen Sie den Hook Contract aus, den Sie mit einer individuellen Prüfung ergänzen möchten.
Feld | Erläuterung |
Hook Contract | Das Feld „Hook Contract“ enthält die Bezeichnung und in Klammern den vollqualifizierten Namen eines Hook Contracts. Mit einem Hook Contract wird das zugehörige Business Entity unter Umständen bereits geprüft. Sie ergänzen den ausgewählten Hook Contract durch eine individuelle Prüfung. Zur Auswahl stehen nicht alle Hook Contracts, sondern nur jene, für die eine individuelle Prüfung erfasst werden kann. |
2.2 Arbeitsbereich
Im Arbeitsbereich erfassen Sie die individuelle Prüfung für den ausgewählten Hook Contract.
Feld | Erläuterung |
Prüffunktionen | Im Feld „Prüffunktionen“ werden die Prüffunktionen für die Prüfung erfasst. Die Anzahl der Prüffunktionen sowie deren Namen und Parameter hängen von dem jeweiligen Business Entity ab. In den implementierten Hooks für Prüfungen (Validation) sind die Prüffunktionen festgelegt. Wenn Sie eine individuelle Prüfung erfassen, dann wird in diesem Feld für jede Prüffunktion eine leere Funktionsdefinition erzeugt. Für individuelle Prüfungen steht Ihnen die Variable „environment.userGuid“ zur Verfügung. Diese enthält die GUID des Benutzers, der die Prüfung ausführt. |
2.3 Verfügbare Funktionen
Sie können alle Funktionen und Befehle der System-Skriptsprache mit den Verwendungskontexten ALL und OLTP in den individuellen Prüfungen verwenden. In den Dokumentationen „System-Skriptsprache: Allgemeine Funktionen“, „System-Skriptsprache: OLTP-Funktionen“ und „System-Skriptsprache: Workflow-Funktionen“ sind die verfügbaren Funktionen der System-Skriptsprache beschrieben.
2.4 Benutzerdefinierte Felder
Ausgewählte Business Entitys bieten die Möglichkeit, benutzerdefinierte Felder mit einer individuellen Prüfung zu prüfen. In diesem Fall wird eine Funktion mit dem Prefix „validateExtension_“ angeboten, die Sie implementieren können.
Der Parameter „view“ enthält die Objektsicht des Business Entitys, zu dem die benutzerdefinierten Felder gehören. Der Parameter „extension“ enthält die benutzerdefinierten Felder.
Für jedes Attribut X der benutzerdefinierten Felder existieren die folgenden Attribute im Parameter „extension“:
Attribut | Beschreibung |
X_val | Wert des benutzerdefinierten Feldes mit dem technischen Namen X. Der Datentyp von X_val wird durch das benutzerdefinierte Feld festgelegt. |
X_id | Meldungsidentifikation des benutzerdefinierten Feldes mit dem technischen Namen X. |
Beispiel:
Individuelle Prüfung für die benutzerdefinierten Felder des Basis-Artikels.
function validateExtension_EXTItem(
view as DataView(com.cisag.app.general.item.model.Item),
extension as Extension_EXTItem)
{
if (extension.PRICE_val:amount>1000) {
sendMessage(extension.PRICE_id,”PRICE_TOO_HIGH”,
format(extension.PRICE_val:amount))
}
}
3 Beispiel: Neue Pflichtfeldprüfung
Sie können beispielsweise ein Feld mit einer individuellen Prüfung zu einem Pflichtfeld deklarieren. Im folgenden Beispiel wird das Feld „Fremdbelegnummer“ in der Anwendung „Vertriebsaufträge“ bei der Vertriebs-Auftragsart „100“ zum Pflichtfeld erklärt. Wenn die Fremdbelegnummer fehlt, wird eine Fehlermeldung ausgegeben. Die Fremdbelegnummer bekommt jedoch keine graue Ecke, um anzuzeigen, dass dieses Feld nun ein Pflichtfeld ist.
Vorgehensweise
Erfassen Sie in diesem Beispiel die individuelle Prüfung wie folgt:
- Öffnen Sie die Anwendung „Individuelle Meldungen“.
- Erfassen Sie eine neue Meldung:
- Meldung: „VA-0001“
- Meldungstyp: „Fehler“
- Meldungs-Kurztext: „Fremdbelegnummer muss angegeben werden.“
- Meldungs-Langtext: „Die Vertriebs-Auftragsart „{0}“ erfordert die Angabe einer Fremdbelegnummer.“
- Öffnen Sie die Anwendung „Individuelle Prüfungen“.
- Wählen Sie die Hook-Contract-Implementierung „Vertriebsauftrag (com.cisag.app.sales.order.hook.log.SalesOrder)“ aus.
- Führen Sie die Aktion „Neu“ aus.
- Im Feld „Prüffunktionen“ wird für jede Prüffunktion eine leere Funktionsdefinition erzeugt.
- Erfassen Sie die die folgende Prüffunktion:
function validateHeader(
persistent as DataView(com.cisag.app.sales.order.model.SalesOrder),
current as DataView(com.cisag.app.sales.order.model.SalesOrder))
{
if (current->Type:code=”100″ AND
current:customerOrderData.purchaseOrder=””)
sendMessage(current:customerOrderData.purchaseOrder,
“VA-0001”,current->Type:code);
}
- Speichern Sie die Daten.
- Die Prüfung ist aktiv.
4 Hook Contracts für individuelle Prüfungen vorbereiten
Damit individuelle Prüfungen zu einem Business Entity erfasst werden können, muss der zugehörige Hook Contract dafür vorbereitet werden. Zunächst muss für das Business Entity ein Prüf-Hook existieren. Implementieren Sie mit einer Hook-Contract-Implementierung den Prüf-Hook. Die implementierende Java-Klasse muss von der Klasse com.cisag.pgm.base.CisCustomizableAdapter abgeleitet werden. In der „JavaDoc“-Dokumentation zu dieser Klasse ist das Vorgehen beschrieben.
Für diese Vorbereitung benötigen Sie Kenntnisse in der Java-Entwicklung und deren Einbindung in das ERP-System.
Hinweis:
Prüfen Sie, ob bereits Implementierungen desselben Prüf-Hooks für andere Business Entitys existieren. Fassen Sie gleiche Implementierungen in einer abstrakten Basisklasse zusammen.
5 Customizing
Für die Anwendung „Individuelle Prüfungen“ sind in der Anwendung „Customizing“ keine Einstellungen festzulegen.
6 Business Entitys
Für die Anwendung „Individuelle Prüfungen“ ist das nachfolgende Business Entity relevant, das Sie beispielsweise verwenden, um
- Berechtigungen zu vergeben,
- Aktivitätsdefinitionen einzurichten oder
- Daten zu importieren oder zu exportieren.
Individuelle Prüfung
com.cisag.sys.tools.validation.obj.UserValidation
7 Berechtigungen
Berechtigungen können sowohl mithilfe der Berechtigungsrollen. Das Berechtigungskonzept können Sie in der Technischen Dokumentation „Berechtigungen“ nachlesen.
7.1 Spezielle Fähigkeiten
Für die Anwendung „Individuelle Prüfungen“ bestehen keine speziellen Fähigkeiten.
7.2 Organisations-Zuordnungen
Für die Anwendung „Individuelle Prüfungen“ ist eine Organisations-Zuordnung nicht erforderlich.
7.3 Besonderheiten
Für die Anwendung „Individuelle Prüfungen“ bestehen keine Besonderheiten.
7.4 Berechtigungen für Geschäftspartner
Die Anwendung „Individuelle Prüfungen“ ist für Geschäftspartner nicht freigegeben.