Beim Erstellen eines Dokuments aus einem Geschäftsobjekt in IFS werden Attributwerte für das Dokument eingegeben. Die Dokumentenklasse wird verwendet, um anzugeben, zu welcher Kategorie das Dokument gehört, Format zur Angabe des Formats der in das Dokument eingecheckten Datei, und Sprachcode ist die Sprache, in der das Dokument geschrieben wird.
Diese Attribute können Standardwerte haben, die zentral für Dokumente festgelegt werden, die von einem beliebigen Objekt erstellt werden. Wenn der Anwender ein neues Dokument für ein Objekt erstellt, werden diese Standardwerte automatisch abgerufen.
Um verschiedene Standardwerte für verschiedene Arten von Geschäftsobjekten festzulegen, sollte die Seite Dokumentengrundlagen/Dokumentstandardwerte pro Objekttyp verwendet werden. Sie können sogar die Standardwerte basierend auf den Schlüsseln oder anderen Feldwerten des Geschäftsobjekts steuern.
Hinweis: Um Regeln für diese Funktion einzurichten, muss die Systemberechtigung DEFINE SQL erteilt werden. Das liegt daran, dass beim Erstellen von Regeln indirekt SQL erstellt wird, das von Anwendern ausgeführt wird. Es ist wichtig, darauf zu achten, kein ungültiges SQL zu erstellen, da dies zu einer Regel führt, die nicht funktioniert.
Zur Erklärung der Funktionen auf dieser Seite können die Felder grob in zwei Kategorien unterteilt werden: Bedingungsfelder und Attributfelder.
Bedingungsfelder
Ein Bedingungsfeld ist ein Feld, in dem ein Ausdruck definiert wird, der zum Abgleich mit den tatsächlichen Attributen verwendet wird, die der Anwender beim Erstellen eines Dokuments aus einem Objekt eingibt. Die Bedingungsfelder sind:
Die Bedingungsfelder enthalten Bedingungen in Form von Ausdrücken. Die Ausdrücke werden ausgewertet, wenn eine Regel mit den Dokumenten- und Objektattributen getestet wird.
Die Ausdrücke in den Feldern „LU-Name“ und „Schlüsselref.“ können einen festen Wert mit alphanumerischen Zeichen sowie Leerzeichen und Trennzeichen enthalten. Sie können auch standardmäßige SQL-Platzhalterzeichen (% und _) oder eine Kombination aus beidem enthalten. Es können auch mehrere Ausdrücke enthalten sein, die durch ein Semikolon (;) getrennt sind.
Der Ausdruck im Feld „Objektbedingung“ kann einen gültigen SQL-Ausdruck enthalten und ist daher sehr flexibel und leistungsstark. Normalerweise wird es verwendet, um ein bestimmtes Feld eines Objekts mit einem festen Wert abzugleichen. Wenn der LU-Name beispielsweise auf „EquipmentFunctional“ gesetzt ist, kann das Feld "Objektbedingung" einen Ausdruck wie den folgenden enthalten: mch_type = 'SYSTEM'. Ein solcher Ausdruck würde nur Ausstattungsobjekten entsprechen, bei denen das Feld „Mchtyp“ den Wert „SYSTEM“ hat. Erweiterte Bedingungen werden unterstützt, einschließlich logischer Operatoren wie AND und OR und Operatoren wie LIKE für eine Platzhalterabgleichung. SQL-Funktionen werden ebenfalls unterstützt, was bedeutet, dass Sie einen Ausdruck wie diesen haben könnten: SUBSTR(mch_type, 1, 1) = 'S'. Dieser Ausdruck würde alle Objekte abgleichen, bei denen das Feld „Mch Type“ mit dem Buchstaben S beginnt.
Hinweis: Die Bedingungsfelder LU-Name und Schlüsselreferenz müssen Werte haben. Wird kein Wert festgelegt, setzt das System den Platzhalter % in das Feld. Das Spaltenfeld „Objektbedingung“ kann optional verwendet werden und kann leer bleiben.
Welche Bedingungsfelder muss ich verwenden? Dies hängt davon ab, wie detailliert der Abgleich mit dem Objekt sein soll. In den meisten Fällen ist es ausreichend, den LU-Namen für den Objekttyp zu verwenden, der abgeglichen werden soll. In anderen Fällen kann mit einem der Schlüssel in der Schlüsselreferenz abgeglichen werden, und in anderen Fällen kann mit einem beliebigen Feld im Objekt abgeglichen werden, einschließlich benutzerdefinierter Felder und einschließlich der Verwendung von SQL-Ausdrücken.
Attributfelder
Die Attributfelder behalten die tatsächlichen Standardwerte bei, die für das Dokument festgelegt werden sollten. Für diese Felder muss ein Wert angegeben werden. Die Attributfelder sind:
Abgesehen von den Feldern in den beiden genannten Kategorien gibt es das Feld Konfigurationsnr. und Prio. Ersteres ist nur eine ID/Nummer, die verwendet werden kann, um auf eine bestimmte Regel zu verweisen. Letzteres wird unten erklärt.
Um die Notwendigkeit vieler Regeln zu verringern, können einigen der Ausdrücke in den Regeln dynamische Werte hinzugefügt werden. Dazu werden zwei verschiedene Arten von Platzhaltern für globale Variablen und Spalten-/Feldwerte verwendet. Im Folgenden wird die Verwendung dieser optionalen Funktion erläutert.
Globale variable Platzhalter
Optional können in den Feldern Schlüsselref., Objektbedingung und Dokumentenklasse globale variable Platzhalter verwendet werden. Ein Platzhalter für globale Variablen hat das folgende Format: #NAME#, wobei NAME der Name der globalen Variablen ist. Derzeit werden die Namen SITE und COMPANY unterstützt, und sie stehen für den Standardstandort des Benutzers sowie für seine Standardfirma.
Beispiel: Wenn Sie #SITE# an einer beliebigen Stelle in das Feld Dokumentenklasse eingeben, wird die Eingabe durch den Wert des Standardstandorts des Anwenders ersetzt, bevor der endgültige Standardwert der Dokumentenklasse festgelegt wird. Die Eingabe kann mit normalem Text kombiniert werden, sodass ein Ausdruck wie SPEC # SITE # zu SPEC70 ausgewertet wird, wenn der Standardstandort des Anwenders 70 ist. Firma funktioniert auf die gleiche Weise. Mehrere globale variable Platzhalter können bei Bedarf kombiniert werden.
In den Feldern Schlüsselreferenz und Objektbedingung funktioniert es ähnlich, aber der Zweck ist anders. Bei Verwendung im Feld Dokumentenklasse wird die globale Variable verwendet, um den Klassenwert selbst zu generieren, aber in den Feldern Schlüsselreferenz und Objektverknüpfung wird sie in der Bedingung verwendet, um eine übereinstimmende Regel zu finden. Beispiel: Angenommen, der folgende Ausdruck im Objektverknüpfungsfeld lautet: #SITE# = 70. Vor dem Testen dieser Regel wird #SITE# durch den Standardstandort des Anwenders ersetzt, sodass der für den Test verwendete Ausdruck 70 = 70 lautet (was immer der Fall ist), was bedeutet, dass eine Übereinstimmung für die Objektbedingung vorliegt. Die Verwendung im Feld „Schlüsselref.“ funktioniert auf die gleiche Weise.
Spaltenplatzhalter
Ein Spaltenplatzhalter bietet die Möglichkeit, auf einen Feld- (Spalten-) Wert aus dem verknüpften Objekt zuzugreifen und ihn auf die Dokumentenklasse und andere Felder anzuwenden. Die Syntax für Spaltenplatzhalter lautet: [COLUMN_NAME]. Die Spalte/das Feld muss in der Datenbankansicht vorhanden sein, die in Lösungsmanager/Objektverknüpfungen für den LU-Namen konfiguriert ist. Beispiel: Für eine Regel für den LU-Namen = EquipmentObject kann der Ausdruck [CONTRACT] (Standort) an einer beliebigen Stelle im Feld Dokumentenklasse verwendet werden. Angenommen, der Standort des Ausstattungsobjekts ist 10, wird der Ausdruck [VERTRAG] durch 10 ersetzt. Wie bei globalen variablen Platzhaltern können Spaltenplatzhalter mehrfach kombiniert und verwendet werden. Auch verschiedene Spalten desselben Objekts können gleichzeitig verwendet werden. Sie können auch mit globalen variablen Platzhaltern kombiniert werden.
Beim Testen der definierten Regeln werden sie gemäß einer berechneten Wertung ausprobiert, um festzustellen, ob sie mit einem bestimmten Objekt übereinstimmen. Eine Regel mit einer niedrigen Punktzahl erhält eine höhere Priorität. Die Regeln mit der höchsten Priorität (niedrigste Punktzahl) werden vor Regeln mit niedrigerer Priorität (höhere Punktzahl) getestet/angewendet.
Die Priorität für eine Regel ist umso höher, je spezifischer sie ist (niedrigerer Wert) und umso niedriger, je allgemeiner sie ist (hoher Wert).
Für jedes Bedingungsfeld in einer Regel, die ein Platzhalterzeichen enthält, gilt: Je allgemeiner das Feld wird (da es einem breiteren Bereich von Datensätzen entspricht), desto niedriger ist die Punktzahl und desto höher ist die Priorität. Ein Feldwert (z. B. PUMPE) ist sehr spezifisch und weist eine niedrige Punktzahl und eine hohe Priorität auf. Ein Feld, das Buchstaben oder Zahlen mit einem Platzhalterzeichen kombiniert, ist weniger spezifisch als ein Feld mit nur Buchstaben und Zahlen, aber spezifischer als ein Feld mit nur einem Platzhalterzeichen. Ein Feld, das mehrere Ausdrücke enthält, erhält eine niedrigere Priorität als ein Feld mit nur einem Ausdruck.
Da das Feld Objektbedingung sehr komplexe Ausdrücke enthalten kann, ist es nicht möglich, eine korrekte Bewertung/Priorität für Regeln zu berechnen, die es verwenden (der Ausdruck kann sehr spezifisch oder sehr allgemein sein.) Wenn eine Objektbedingung festgelegt wurde, wird die Bewertung so geändert, dass sie sehr niedrig ist.
In Fällen, in denen die Priorität zwischen Regeln gleich ist, vom System gesehen, oder wenn sie nicht den Erwartungen entsprechen, kann das optionale Feld Prio (standardmäßig ausgeblendet) verwendet werden, um die Bewertung und damit die Priorität zu beeinflussen. Wenn das System eine andere als die zu erwartende Regel verwendet, geben Sie einen numerischen Wert für das Feld Prio für die Regel ein, der eine höhere Priorität zugewiesen werden soll. Der Wert beeinflusst die Bewertung einer Regel. Je niedriger der Wert, desto höher die Priorität der Regel.
Um die Bewertung oder Priorität der Regeln besser zu verstehen, werden die Datensätze auf der Seite mit den Regeln mit der höchsten Priorität zuerst sortiert, wenn die Seite geladen wird. Auf diese Weise können Sie mit einem Wert für das Feld Prio experimentieren, bis die Priorität den Erwartungen entspricht. Wenn Sie die Priorität ändern, laden Sie die Seite erneut, um den neuen Auftrag anzuzeigen.
Wenn das Attribut Dokumentenklasse den Standardwert 100 für die aus dem Funktionsobjekt erstellten Dokumente haben soll, muss die Regel wie unten angegeben definiert werden. Und wählen Sie ein Format und eine Sprache aus.
Konfig.Nr. | LU-Name | Schlüsselref. | Objekt/Bedingung | Dokumentenklasse | Format | Sprachcode | Priorität |
1 | EquipmentFunctional | % | 100 | A3 | En | ||
2 | PlantObject | % | [KEYA01] SPEC | A3 | En | ||
3 | ManSuppInvoice | % | INVOICES_ #COMPANY# | A3 | En |
Oben wird Regel 1 bereits erläutert. Regel 2 verwendet einen Spaltenplatzhalter im Ausdruck für die zu verwendende Dokumentenklasse. Der Wert der Spalte/des Feldes KEYA01 des Entwurfsobjekts wird mit dem festen Text SPEC kombiniert, um die Standarddokumentenklasse zu bestimmen. Regel 3 verwendete einen globalen variablen Platzhalter, um die Standarddokumentenklasse zu definieren, die verwendet werden soll. Wenn die Standardfirma des Anwenders 20 ist, dann ist der verwendete Dokumentenklassenname INVOICES_20.
Je nach Schlüsselwert des Geschäftsobjekts kann es auch unterschiedliche Standardwerte geben. Im folgenden Beispiel wurde eine Sonderregel für Funktionsobjekte an einem bestimmten Standort definiert:
Konfig.Nr. | LU-Name | Schlüsselref. | Objekt/Bedingung | Dokumentenklasse | Format | Sprachcode | Priorität |
2 | EquipmentFunctional | CONTRACT = 20^MCH_CODE =%^ | 100 | A3 | En |
In der obigen Regel setzen wir Dokumentenklasse auf 100, Format auf A3 und Sprachcode auf en für ein Dokument, das für ein Funktionsobjekt an Standort 20 erstellt wurde.
Wenn abhängig vom Wert eines Felds im Geschäftsobjekt unterschiedliche Standardwerte verwendet werden sollen, kann das Feld Objektbedingung verwendet werden. Es ähnelt dem Abgleich mit Schlüsseln in der Schlüsselreferenz, ist jedoch allgemeiner, da alle Felder, auch benutzerdefinierte Felder, abgeglichen werden können. Außerdem werden alle Formen von SQL-Ausdrücken unterstützt (mehr oder weniger alles, was in eine WHERE-Bedingung geschrieben werden kann). Es können beispielsweise folgende Kontrollfunktionen ausgeführt werden:
Konfig.Nr. | LU-Name | Schlüsselref. | Objekt/Bedingung | Dokumentenklasse | Format | Sprachcode | Priorität |
2 | EquipmentFunctional | % | mch_name LIKE ‚Area %' | AREADOCS | A3 | En | |
5 | EquipmentFunctional | % | #SITE# = 70 | SITEX | A3 | En | |
3 | DocFolder | % | folder_name = 'Specifications' AND parent_folder_name NOT LIKE 'Project X' | SPECS | * | En | |
4 | DocFolder | % | folder_name = 'Specifications' AND parent_folder_name LIKE 'Project X' | SECRET | * | En |
Regel 2 oben entspricht Ausstattungsobjekten, bei denen der Objektname mit dem Wort Bereich beginnt. In Regel 3 werden Dokumentenordner mit dem Namen Spezifikationen abgeglichen, jedoch nicht die Ordner mit dem Namen Projekt X. Regel 4 ist die Regel für Dokumente, die mit dem geheimen Projekt X verknüpft sind. Regel 5 enthält einen globalen variablen Platzhalter, um zu prüfen, ob der Standardstandort des Anwenders 70 ist.
Nachfolgend finden Sie eine Liste von Regeln, die alle mit einer bestimmten Dokument-Objekt-Verknüpfung übereinstimmen (Die Dokumentenklasse und andere Informationen, die beim Erstellen eines Dokuments aus der Funktion „Anlagen“ verwendet werden). Einige der Regeln sind jedoch spezifischer als die anderen, und das gibt der Regel eine höhere Priorität, wenn das System eine der folgenden Optionen auswählt:
Konfig.Nr. | LU-Name | Schlüsselref. | Objekt/Bedingung | Dokumentenklasse | Format | Sprachcode | Priorität |
5 | EquipmentFunctional | CONTRACT = 20^MCH_CODE =%^ | 100 | A3 | En | ||
6 | EquipmentFunctional | % | mch_type LIKE '%SYSTEM' | 200 | * | En | |
4 | EquipmentFunctional | % | 300 | A1 | En | ||
3 | % | % | 400 | * | En |
Angesichts der obigen Regeln hat Regel 3 die niedrigste Priorität, da es sich um die allgemeinste Regel handelt. Regel 4 ist spezifischer, da es einen festen Wert für LU-Name gibt und sie daher eine höhere Priorität als Regel 3 hat. Regel 5 hat die höchste Priorität, da sie in den Bedingungsfeldern sehr spezifisch ist und vor den anderen Regeln ausprobiert wird. Regel 6 hat eine Objektbedingung festgelegt und hat ebenfalls eine hohe Priorität (aber niedriger als Regel 5).