Positions-Felder - Feldkonfiguration
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.
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.
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 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.
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.
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.
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.
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.
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.
No Comments