Sub-Outbar "Invoice" - Feld-Konfigurationen

Die Feld-Konfigurationen können zum Teil über die WEB-Konfiguration erfolgen. Die Anzeige und Anordnung der Kopf-Felder muss aus technischen Gründen über den Documents-Manager am Mappentypen erfolgen. Die Kopffeld-Konfiguration wird aus der Documents-Datenbank geladen.

Kopf-Felder

Die Anlage neuer Kopf-Felder sowie die Anordnung der Kopf-Felder und auch die Zuweisung der Felder zu den Registern muss über den Documents-Manager erfolgen!

image-1587987596011.png

 

Felder in die WEB-Oberfläche importieren

In der WEB-Konfiguration "Kopf-Felder" können die Felder über den Button "KOPFFELDER NEU LADEN" importiert werden. Die Feld-Attribute werden direkt aus den entsprechenden Documents-Datenbank-Tabellen ausgelesen. Die angezeigte Reihenfolge der Felder entspricht der Feld-Reihenfolge am Mappentypen. Die Zahlen in der Spalte "Sortierung" stammen aus der Documents-Datenbank. 

image-1587989793608.png

In der initialen Feld-Übersicht können pro Feld lediglich 2 Angaben konfiguriert werden. Zum einen kann über die Checkbox "In Workflow-Regeln verwenden?" konfiguriert werden, ob das Feld in der Feldliste bei den Workflow-Regeln gelistet wird. Hierdurch bleibt die Liste kurz und übersichtlich. Zum anderen kann über die Checkbox "SQL Insert?" festgelegt werden ob das Feld beim Speichern in die Datenbank-Tabelle "Invoice_Posting_Head" geschrieben wird. Die Tabellen-Spalte wird mit dem gleichnamigen Namen vorbelegt.

Beim Import von projektspezifischen Feldern (abgesehen von horizontalen Trennern) ist die Checkbox "SQL Insert?" automatisch gesetzt. Die Tabelle "Invoice_Posting_Head" muss entsprechend erweitert werden.

image-1587991523434.png

 

Alternativen

Über den Link "Alternativen öffnen" wird eine neue spezifische Ansicht geöffnet. Hier können alternative Eigenschaften für das Feld in Abhängigkeit zu Feldwerten definiert werden. Bei der Validierung soll der Anwender einen großen Teil der Feldwerte geändert werden können und in der Freigabe soll der Anwender oft gar keine Feldwerte ändern können. Einige Feldwerte sollen erst ab einem bestimmten Workflow-Schritt zu einer Pflicht-Angabe werden oder sollen nur in einem bestimmten Workflow-Schritt angezeigt werden.

image-1587994257421.png

Zu einem Feldwert können die folgenden Feld-Attribute gesetzt werden:

Die Einträge werden nach absteigender Priorisierung überprüft. Pro Eintrag können die Workflow ID, die Aktion und der Status sowie 2 beliebige Feldwerte abgefragt werden. Sobald bei einem Eintrag alle Feldwerte übereinstimmen werden die Attribute zum Eintrag übernommen. Statt der Feld-Angabe kann der Eintrag "Alle Felder" verwendet werden. Ein solcher Eintrag gilt übergreifend für alle Felder.

 

PropCache

Die Feldkonfiguration samt Alternativen werden im PropCache-Eintrag "FieldConfiguration" als Json-String festgehalten. Der PropCache wird bei einer Anpassungen über die WEB-Konfiguration automatisch geleert.

 

Feldkonfigurationen laden

Die passenden Feld-Attribute werden über die Funktion "setFieldAttributesByConfig" am DocFile-Objekt geladen. Diese Funktion wird zum einen nach jeder Weiterleitung der Mappe ausgeführt ("afterForwardFileScript") und kann manuell über die benutzerdefinierte Aktion "Feldkonfiguration laden" über die Aktionsliste ausgeführt werden.

image-1587995122144.png

 

Zusätzlich oder alternativ können die Attribute "In Ansicht darstellen?" und "Schreibgeschützt?" bei jedem Zugriff auf die Mappe aktualisiert werden ("decreaseFieldRightOnFileViewScript"). Hierdurch können Felder abhängig von anderen Feldwerten ausgeblendet werden oder einen Schreibschutz erhalten. Bereits ausgeblendete Felder können durch das Skript nicht wieder angezeigt werden! Für die Aktivierung des Skripts muss der Parameter "Kopf-Feld Konfiguration" ("HeadFieldConfigSettings" - 2. Parameter-Wert) aktiviert werden.

Einen Sonderfall stellen die technischen Felder auf den Registern "Workflow", "Gentable" und "Rights" dar. Auf diese Felder haben die Benutzer nur lesenden Zugriff. Lediglich die Benutzer der Gruppe "WorkflowError" können Feldwerte bearbeiten, wenn die Feldbearbeitung über die Feld-Konfiguration zugelassen wird. Die Register "Gentable" und "Rights" sehen in der Standard-Auslieferung generell nur Mitglieder der Gruppe "WorkflowError". Dies kann jedoch projektspezifisch über das User-Exit Skript "Invoice__UserExit_DF_HideRegisterOnFileView" angepasst werden.

 

Positions-Felder

Die Positions-Felder werden im sogenannten Gentable dargestellt. für die Aktivierung muss die Eigenschaft "hasInvoicePlugin" am Mappentypen gesetzt sein. Technisch wird die komplette Tabellen-Struktur in das Feld "Gentable" geschrieben. Der Aufbau bzw. die Darstellung des Gentable wird über eine XML-Struktur definiert. Diese XML wird über die Eigenschaft "gentableDefScriptName" über ein Skript generiert (Invoice_DF_GentableDefScriptName). Die genaue Funktionsweise kann in der Hersteller Dokumentation "GenTable Administration" vom Hersteller Otris nachgelesen werden.

 

Gentable Konfiguration

Über diese WEB-Konfiguration können sowohl die ganz allgemeinen Einstellungen sowie alle optionalen Eigenschaften für das Gentable gesetzt werden, welche zum Aufbau der Gentable-XML verwendet werden.. An den allgemeinen Einstellungen müssen keine Anpassungen vorgenommen werden. Es sollten auch nur Anpassungen vorgenommen werden, wenn man genau weiß was man tut. Unter den XML-Einstellungen können die globalen Einstellungen der Konfigurationsdatei vorgenommen werden. Die Beschreibung zu den einzelnen technischen Namen muss der oben genannten Hersteller-Dokumentation entnommen werden. An dieser Stelle werden nur 2 Werte kurz erläutert. Über den Eintrag "fieldName" wird das Feld zum Speichern der Gentable-Werte angegeben und über den Eintrag "storeFormat" kann entschieden werden, ob die Tabellen-Struktur als "xml" oder "json" gespeichert werden soll.

image-1588064019899.png

 

Positions-Felder

Über diese Konfiguration werden die Definitionen zu den einzelnen Gentable-Spalten angegeben. In der Standard-Sortierung der WEB-Konfiguration werden zuerst die aktiven Felder nach aufsteigender "Sortierung" gelistet. Im Standard sind bereits ca. 200 vorkonfigurierte Felder enthalten.

image-1588064615156.png

Durch einen Doppel-Klick auf einen Eintrag bzw. durch einen Klick auf das Stift-Symbol im rechten Bereich öffnet sich die Standard-Feldkonfiguration. Diese Feld-Konfiguration greift, solange keine spezifische und für eine Rechnung zutreffende Alternative definiert wurde. Über den Button "Neuer Eintrag" können projektspezifische Positions-Felder konfiguriert werden. Neben dem technischen Feldnamen muss die Übersetzung und eine Nummer für die Sortierung angegeben werden. Über die Checkbox "Aktiv?" wird die Verwendung der Spalte aktiviert bzw. deaktiviert. Bei aktiven Feldern wird zudem die Aktivierungsbedingung geprüft. Als Beispiel für eine solche Bedingung wird bei einigen Feldern der Wert "%HasOrder%=true" ausgeliefert. Die Checkbox "HasOrder" im Kopf gibt an, ob es sich um eine Rechnung mit Bestellbezug handelt oder nicht. Durch eine solche Bedingung können Gentable-Spalten in Abhängigkeit von Kopf-Feldwerten ein- oder ausgeblendet werden.

image-1588065025054.png

Es stehen alle Gentable-Feldtypen zur Verfügung. Je nach Feldtyp ändert sich die Anzeige. Bei String-Feldtypen kann zum Beispiel eine maximale Eingabelänge definiert werden und bei numerischen Werten kann die Anzahl der Nachkommastellen definiert werden. Ein Feld kann als Pflichtfeld deklariert werden und kann einen Schreibschutz erhalten oder lediglich angezeigt werden. Technische Felder können über die Checkbox "In Ansicht darstellen?" auch komplett ausgeblendet werden. Zudem kann für jedes Feld eine Standard-Feld-Breite sowie eine maximale Feld-Breite definiert werden und es kann eine Vorbelegung bei der Erstellung neuer Zeilen festgelegt werden.

Die Positions-Felder sollten immer in die Datenbank-Tabelle "Invoice_Posting_Pos" geschrieben werden. Nur so funktioniert ohne Datenverlust auch der umgekehrte Weg aus der Datenbank in das Gentable-Feld. Für alle ausgelieferten Gentable-Spalten existiert bereits eine Spalten mit dem technischen Gentable-Spalten-Namen. Die Spalte "ID" hat in diesem Fall eine Sonderstellung. In der Tabelle ist die "ID"-Spalte eine Auto-Inkrement-Zeile. Wenn eine neue Gentable-Zeile in die Tabelle geschrieben wird, dann wird die erzeugte "ID" zurück in die gleichnamige Gentable-Spalte "ID" geschrieben. Sobald eine Gentable-Zeile einer ID zugeordnet wurde werden nur noch UPDATE-Befehle ausgeführt.

image-1588075828232.png

JavaScript Events

Über die weiteren Register können zusätzliche Einstellungen konfiguriert werden. Unter "EVENTS" können bis zu 3 Javascript-Events definiert werden. Die zur Verfügung stehenden Events können aus einer Auswahlliste ausgewählt werden. Die ausgelieferten Funktionen befinden sich in der Documents-Installation unter "..\DEXPRO\ScriptExits\DexLib\". Damit die hier enthaltenen Dateien bei einem Invoice-Update überschrieben werden können, sollten diese Dateien nicht angepasst werden.

Projektspezifische Anpassungen müssen in die Datei "..\DEXPRO_ClientExits\DexClientExits.jsp" geschrieben werden.

 

image-1588152500362.png

 

Autocomplete

Die Autocomplete-Funktion ruft das Documents-User-Exit-Skript "DEXPRO__UserExit_Autocomplete" auf. Das Skript wird unverschlüsselt ausgeliefert und kann im Projekt beliebig angepasst werden. Bei den Autocomplete-Einstellungen können beim Aufruf Kopffelder als Skript-Parameter mitgegeben.

image-1588155104030.png

 

Sonstiges

Um die kompletten Funktionen des Gentable abbilden zu können gibt es auf dem Register "Sonstiges" noch die Möglichkeit eine CSS-Klasse für die Spalte zu definieren und Bedingungen ("conditions") zu definieren. Bei den Bedingungen können Zeilen in Abhängigkeit von Feldwerten ausgeblendet werden oder einen Schreibschutz erhalten. Genaueres hierzu findet sich in der Gentable-Administrations-Dokumentation.

 

Alternativen

Wie bei den Kopf-Feldern können zu einem Feld sogenannten "Alternativen" definiert werden. Diese Alternativen werden über einen numerischen Wert priorisiert und werden nach absteigender Priorisierung überprüft. Pro Priorität können die Standard-Felder "Workflow", "Aktion" und "Status" abgefragt werden und es können zusätzlich 2 beliebige Feldwerte herangezogen werden. Sobald alle Angaben einer Alternative zutreffen, ersetzen die Angaben aus der Alternative die Standard-Werte. Weitere Alternativen werden nicht mehr überprüft!

image-1591280133112.png

Bei der Anlage neuer Alternativen sieht man zusätzlich zu den Optionen den Standardwert zum Feld. Es müssen nur die Werte angegeben werden, welche vom Standard abweichen!

image-1591280408551.png

 

Gentable-Schaltflächen

Oberhalb der Positionsdaten (Gentable) können Buttons angezeigt werden, welche über die WEB-Konfiguration "Gentable Schaltflächen" konfiguriert werden können. Im Standard werden einige solcher Buttons zum Beispiel zur Anlage neuer Zeilen oder zum Kopieren oder Löschen bestehender Zeilen ausgeliefert. Diese Schaltflächen werden in der angegebenen Priorisierungs-Reihenfolge angezeigt und können optional statt einer Beschriftung mit einem Icon versehen werden. Ein Button muss eine spezifische Funktion ausführen.

image-1591280753094.png

Über das Stift-Symbol im rechten bereich können bestehende Einträge verändert werden und über die Mülltonne können bestehende Einträge wieder gelöscht werden. Über den Button "NEUER EINTRAG" kann ein Button hinzugefügt werden.

Durch einen Doppelklick auf einen Schaltflächen-Eintrag öffnet sich eine neue Ansicht, über die man Buttons bei bestimmten Feldwert-Kombinationen ein- bzw. ausblenden kann.

image-1591281138433.png

Gentable Konfiguration

Über diese Konfiguration können sehr spezifische Wert angegeben werden, welche zum Aufbau der XML-Struktur verwendet werden. Die Konfiguration unterteilt sich auf 2 Register.

Auf dem Register "ALLGEMEINE EINSTELLUNGEN" befinden sich größtenteils die Angaben, welche nicht angepasst werden sollten! Lediglich der Eintrag "UtilOutXml" kann bei Supportfällen temporär auf "true" gesetzt werden, um die generierte XML-Struktur in das Documents-Log auszugeben. Die Einstellung darf aus Performance-Gründen nie lange aktiv sein!

image-1591281505639.png

Die Einträge vom Register "XML-EINSTELLUNGEN" werden als Kopf-Werte in die XML-Struktur übernommen. Bei der Angabe "storeFormat" kann zum Beispiel angegeben werden ob die Gentable-Daten als JSON oder im XML-Format gespeichert werden. Die Beschreibung der einzelnen Angaben kann der Hersteller-Doku zur Gentable-Administration entnommen werden.

image-1591281602891.png

Suchfelder

Alle Positionsdaten werden im JSON-Format oder als XMl-Struktur in ein Feld geschrieben. Hierdurch kann zum Beispiel nicht spezifisch nach einer bestimmten Kostenstelle gesucht werden. Als Workaround wurden zusätzliche technische Suchfelder im Kopf angelegt. Über diese Konfiguration können bis zu 3 Positions-Felder angegeben werden, welche einem Kopffeld zugeordnet werden. Der Inhalt aus allen Zeilen von den angegebenen Spalten wird in das entsprechende Feld geschrieben und das Kopffeld kann entsprechend in der Suchmaske angezeigt werden.

image-1591282000211.png

Über diese Konfiguration können die Standard-Zuordnungen angepasst werden bzw. können projektspezifische Zuordnungen definiert werden.

Archiv-Zuordnung

Die XML-Struktur für den Aufbau des Gentable wird im Standard durch ein Skript generiert. Die Konfiguration wird aus den Datenbank-Tabellen ermittelt und als Schlüssel dient der Mappentyp-Name "Invoice". Bei Archiv-Mappen wird als Mappentyp-Name jedoch eine Angabe wie zum Beispiel "Instance=Default/ eex_Invoice" ausgegeben und somit kann die Gentable-Konfiguration nicht ermittelt werden.

Über die Zuordnung in dieser Tabelle kann ein Archiv-Mappentyp einem Mappentypen zugeordnet werden.

image-1591282771636.png