Individuelle Prüfungen

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:

  1. Öffnen Sie die Anwendung „Individuelle Meldungen“.
  2. 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.“
  1. Öffnen Sie die Anwendung „Individuelle Prüfungen“.
  2. Wählen Sie die Hook-Contract-Implementierung „Vertriebsauftrag (com.cisag.app.sales.order.hook.log.SalesOrder)“ aus.
  3. Führen Sie die Aktion „Neu“ aus.
    • Im Feld „Prüffunktionen“ wird für jede Prüffunktion eine leere Funktionsdefinition erzeugt.
  4. 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);

}

  1. 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 „Custo­mizing“ keine Einstellungen fest­zulegen.

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 Dokumen­tation „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.

Czy ten artykuł był pomocny?