Invoice Anwender-Handbuch

Anmeldung

Menüstruktur

Erklärt die Menüs in der Invoice Lösung. Bilder können, je nach Individualisierung und vorgenommenen Einstellungen, abweichen.

Menüstruktur

Übersichtsmenü

Nach dem einloggen in Documents, ist das Übersichtsmenü das erste Fenster, welches Sie sehen.

Im Zentrum des Übersichtsmenü ist das eingebundene Squeeze Dashboard zu sehen, welches Dokumente in Squeeze und deren Verarbeitungsstatusanzeigt.

Die Übersicht lässt sich auch durch klicken auf den "Bearbeiten" Button anpassen.

Doc_Übersicht.png

In der Kopfzeile beziehungsweise Toolbar Mitte sind Rückkehr zum Übersichtsmenü und die Suchleiste zu finden. 

Auf der rechten Seite der Kopfzeile finden sich Datei Upload, Nachrichten, Benachrichtigungen und Benutzerprofil. 

Documents Kopfzeile .png

Auf der linken Seite findet sich eine weitere Menü Spalte, die Outbar. Diese bietet eine Vielzahl von Ansichten und Einstellungsmethoden.  

Outbar_full.png

 

 

Menüstruktur

Kopfzeile

 

Das Kopfzeilen Menü beinhaltet folgende Funktionen:

  1. Das Haussymbol, welches jemanden ins Übersichtsmenü zurückbringt
  2. Die Suchleiste mit Auswahlmenü, Sucheingabe und erweiterter Suche
  3. Eine neue Session öffnen
  4. Ausgewählte Datei hochladen
  5. Nachrichten verschicken
  6. Benachrichtigunsfenster
  7. Benutzerprofil

Documents Kopfzeile .png

 

Menüstruktur

Benutzerprofil/Benutzermenü

Das Benutzerprofil stellt verschiede Möglichkeiten zum konfigurieren von Documents zur Verfügung und es kann sich von hier aus abgemeldet werden.

image-1721809123881.png

Benutzereinstellungen

In den Benutzereinstellungen lassen sich verschieden Individualisierungen vornehmen. Zu beachten ist, das Änderungen erst nach einer erneuten Anmeldung aktiv werden. Es lässt sich die Start-Outbar setzten, welche beim einloggen Standartmäßig angezeigt wird.

Benutzereinstellungen.png

Kennwort ändern

"Kennwort ändern" bietet die Funktion zum wechseln des Passwort. 

Es kann passieren, das vorhandene API Keys zurückgesetzt werden. 

Benutzer_Kennwort_ändern.png

Sprache

Im "Sprache wechseln" Fenster, lässt sich die Oberflächen Sprache ändern. Zurzeit stehen Deutsch und Englisch zur Verfügung.

Benutzer_Sprache.png

Abwesenheit

Im "Abwesenheit" Fenster, lässt sich einstellen, ob man derzeit im Haus beziehungsweise nicht im Haus ist. Es lässt sich der Zeitraum einstellen, in welchem man nicht im Haus ist und Stellvertreter für diesen Zeitraum. Mappen können an die Stellvertretung weitergeleitet werden. Zusätzlich lässt sich eine zuvor eingestellte Nachricht einrichten, welche an Versender verschickt wird.   

Abwesenheit_NoInfo.png

Persönlicher Ordner

Im Fenster "Persönliche Ordner" können neue Ordner erstellt werden oder nicht mehr benötigte Ordner gelöscht werden. Wenn ein Ordner ausgewählt wird (in der Abbildung beispielhaft Projekt 123) können weitere Einstellungen konfiguriert werden. Es kann der Ordnername verändert werden und Benachrichtigungen per E-Mail für dieses Ordner aktiviert werden. Es lassen sich außerdem verschiedene Filtereinstellungen vornehmen, um gewünschte Inhalte anzeigen zu lassen.

PersönlicherOrdner.png

E-Mail Optionen

In den E-Mail Optionen können Zusammenfassungen für Eingang und Abschluss von Vorgängen per E-Mail zugesendet werden. Der Zeitpunkt, zu welcher dieses Zusammenfassung verschickt werden soll, kann auch ausgewählt werden. Außerdem können Benachrichtigungen für Neue Mappe im Eingangskorb und Mappe zurück aus Versendung aktiviert werden.

E-Mail_Optionen.png

Info/Support

Das Info/Support Fenster bietet verschiedene technische Informationen wie Versionsnummern und Verbrauchtes Volume. Zusätzlich können hier Supportfälle gemeldet werden.

Info_Support.png

Menüstruktur

Suche/Suchleiste

Im Dropdown Menü auf der Linken Seite kann man die zu durchsuchende Kategorie auswählen.

In der Suchleiste kann man Suchbegriffe eingeben und nach diesen suchen.

Das rechte Symbol öffnet die "Erweiterte Suche.

Suchleiste.png

Erweiterte Suche

Die erweiterte Suche bietet eine konfigurierbare Suche und das speichern von individuellen Suchen. Auf der linken Seite kann man Suchquellen auswählen. Rechts daneben lassen sich die Mappentypen auswählen, welche durchsucht werden sollen. 

Rechts gibt es die Möglichkeit nach bestimmten Parametern beziehungsweise Werten zu suchen. Zusätzlich lassen sich Suchmaske und Trefferliste einstellen, u Suchergebnisse weiter einzugrenzen.

Erweiterte_Suche.png

 

 

 

Menüstruktur

Outbar/Linkes Menü

Ober Hälfte

Die Linke Menü Spalte oder Outbar lässt sich in drei Bereiche gliedern.Outbar_Top.png

In der ober Hälfte der Outbar, lässt sich die Outbar mit Hilfe des Pfeils einklappen.

Durch "+ Neue Mappe" lässt sich eine neue Mappe anlegen.

"Favoriten" lassen sich als Favoriten markierte Einträge finden.

"Eingang zeigt neu eingegangene Dokumente an.

"Aufgaben"

 "Zuletzt benutzt" zeigt eine Liste der zuletzt benutzten Dokumente an.

"Wiedervorlage"

"Gelöscht" beinhaltet gelöschte Dokumente.

"Gespeicherte Suchen" beinhaltet die aus "Erweiterter Suche" gespeicherter eigenen Suchen.

Mittlere Hälfte

Die mittlere Hälfte der Outbar variiert je nach Auswahl der der unteren Hälfte.Outbar_Mitte_Invoice.png

Untere Leiste

Die untere Leiste der Outbar bietet die möglich zwischen verschieden Ansichten der mittleren Outbar hälfte zu wechseln.

Es gibt Ordner, Mailroom, Invoice, Procurement, Administration, Dokumentenbaum und Reports. 

Outbar_unten.png

 

 

 

Menüstruktur

Rechnung öffnen

Es gibt unterschiedliche Möglichkeiten die gewünschte Rechnung zu finden:

Rechnung_auswählen.png

Menüstruktur

Die einzelnen Bereiche einer Rechnung

Es sollen kurz die einzelnen Bereiche benannt und gezeigt werden. Genauere Information folgen im nächsten Kapitel. Es gibt unterschiedliche Ansichtsmöglichkeiten, da jeder Benutzer sich seine gewünschte Ansicht einstellen kann. Daher kann die gezeigte Abbildung von der Ansicht bei jedem Benutzer abweichen. 

image-1721809756583.png

Menüstruktur

Funktionen der Rechnungsansicht

Im folgenden werden die möglichen Ansichtsarten erklärt, welche zur Verfügung stehen. Im abgebildet Beispiel ist der Squeeze Viewer als Standard eingestellt.  Dadurch wird die Mono View angezeigt. Im Zentrum ist der Squeeze Viewer zu sehen. Rechts oben ist die Registerleiste und darunter die Feldansicht. Unter dem Viewer ist "Gentable" also die Positionstabelle. Links sind weitere Rechnungen im Ordner Eingang zu sehen und die Outbar.

Standard_monoansicht.png

In der Kopfzeile über dem Viewer finden sich:

Kopfzeile.png

Durch klicken des DoubleView-Toggle.png Symbols lässt sich die Double-View oder Doppelansicht öffnen und schließen. Die Abbildung zeigt die Doppelansicht, in welcher der Viewer zusätzlich zu den Feldern angezeigt wird. 

doubleview.png

Mithilfe der Rot markierten Button lassen sich zurzeit nicht benötigte Bereiche einklappen und wieder ausklappen.

Ausblenden.png

Man kann die Mappe auch mit Hilfe des abkoppeln.png Symbols abkoppeln. 

abegekoppelt.png

 

 

 

Menüstruktur

Bearbeiten von Rechnungen

Mit Hilfe des Bearbeiten Buttons über den Viewer lassen sich Rechnungen bearbeiten.

Kopfzeile.png

Damit kommt man in die Ansicht zum bearbeiten. Man kann in der Feldansicht und in der Gentable Werte beziehungsweise Felder anpassen und Kommentare hinzufügen. Mit dem Button "Speichern" werden Änderungen übernommen. Mit dem Button "Abbrechen" werden Änderungen verworfen.

berarbeiten.png

Menüstruktur

Registerleiste

Die Registerleiste ist in der Rechnungsansicht zu sehen und bietet unterschiedliche Register an. Welches Register beim aufrufen eines Dokuments als Standard geöffnet wird, ist konfigurierbar.

Registerleiste.png

Register Eingangsrechnung

Bei Auswahl des Eingangsrechnungsregisters wird die Feldansicht angezeigt.

Register_Eingangsrechnung.png

Register Squeeze Viewer

Bei Auswahl des Squeeze Viewer Registers wird das Dokument im Squeeze Viewer angezeigt. Dabei ist an der rechten Seite die Feldansicht weiterhin verfügbar.

Register_SQZViewer.png

Register Dokument

In Register Dokument finden sich Anhänge des ausgewählten Dokuments.

Register Kreditor CSV

Standard Kontierung für für Kreditoren können hier als CSV Datei hinterlegt werden. Weitere Information zum Thema und Funktionen findet sich im Kapitel "Kreditor-CSV". 

Register Status

Im Register Status oder Log lassen sich Arbeitsschritte nachvollziehen und Fehler, Weiterleitungen oder Feldwertänderung nachvollziehen. 

Hier findet man auch die zugeteilte Squeeze ID.

Register_Status.png

Administration

Erläuterung der unterschiedlichen Administration Menüs

Administration

Administration Zugriff

In der unteren Leiste der Outbar lässt sich die Administration mit Hilfe des Zahnrads für verschiedene Kategorien öffnen. Diese Funktion steht nur Administratoren zur Verfügung. 

Outbar_Administration.png

Bei Auswahl der gewünschten Kategorie, ändern sich die Auswahlmöglichkeiten des mittleren Teils der Outbar.

 

Administration

Allgemein

Bei der Auswahl von bietet der mittlere Teil der Outbar die in der Abbildung gezeigten Funktionen.

Admin_Allgemein.png

Lizenz

Im Reiter "Lizenz" findet man den Hostnamen, das Ablaufdatum der Lizenz und Informationen über des verbrauchten Daten Volumens der einzelnen Module. Dabei handelt es sich um das Gesamtvolumen. Admin_Lizenz.png

Verbindungen

"Verbindungen" zeigt die Verbindung zu anderen Diensten und die Verbindungskonfigurationen. Hier finden sich auch Verbindungskonfigurationen zu Squeeze. Man kann die je nach gewählter Verbindung, die Verbindung prüfen, neue API-Keys erzeugen, Standardkonfigurationen laden, neue Verbindungen anlegen oder löschen. Die unter Abbildung zeigt als Beispiel die Verbindung zu Squeeze. Je nach ausgewählter Verbindung variieren die Felder.

admin_verbidung.png

Benutzer

Der Punkt "Benutzer" bietet eine Übersicht über die alle registrierten Benutzer. Man kann den Status der einzelnen Benutzer sehen (für genaueres siehe "Benutzer Status"), sowie den Lizenztyp. Man kann Login-Name, E-Mail, Vor- und Nachname sowie Telefon und Mobilnummer der Benutzer einsehen. Außerdem von welchen Benutzergruppen diese Mitglied sind.

Zusätzlich lassen sich in der Kopfzeile neue Benutzer anlegen(Benutzer_Anlegen.png), Benutzer synchronisieren(5.png) aktualisiert die Benutzermappen(otrUser) aus den Benutzeraccounts und der Button "Aktionen" bietet weitere Einstellungsmöglichkeiten.

Das Aktualisierung Symbol(6.png) auf der rechten Seite aktualisiert die Benutzerliste.

admin_benutzer2.png

Benutzer Status
Benutzer Lizenztypen

Benutzergruppen

In der Benutzergruppen Übersicht lassen sich alle Benutzergruppen sehen und verwalten. Es können neue Benutzergruppen hinzugefügt werden(7.png).

Admin_Benutzergruppen.png

Übersetzung

 

Stammdaten

Im Menüpunkt "Stammdaten" sind die vorhanden Stammdaten zu finden und neue Stammdaten können importiert werden.

Stammdaten.png

Tabellendaten exportieren

Mit diesem Menüpunkt lassen sich Tabellendaten exportieren und importieren.

Dokumenten-Struktur

In der Dokumenten-Struktur Übersicht ...

Dokumentenstruktur.png

Buchungsschnittstelle

 

Documents Property Cache

 

Job-Skripts

Im Fenster "Job-Skripts" finden sich die derzeit verfügbaren Jobs. Es Angaben, ab wann diese gültig sind und die geplanten Ausführungszeiträume. Zusätzlich lässt sich die Ausführungshäufigkeit und wann welcher Job zuletzt ausgeführt wurde. Die einzelnen Jobs können von hier aus manuell ausgeführt werden.

Admin_job.png

Logdateien

In der Log Ansicht lassen sich die Logdateien von verschiedenen Bereichen Anschauen, herunterladen und löschen. In der Konfiguration können die farbliche Darstellung der Highlights angepasst werden.

Admin_logs.png

 

 

Administration

Benutzer Übersicht

Wenn man in der Benutzerliste einen Benutzer auswählt, öffnet dich eine detailliertere Ansicht des ausgewählten Benutzers. Es können Grundlegende Daten wie Lizenztyp, Login-Name, E-Mail usw. gesetzt werden. Es können die Benutzergruppen definiert werden, welchen der ausgewählte Benutzer zugehören soll. Zusätzlich lassen sich unter "Einstellungen" der Status setzen. "Gesperrt" sperrt den Benutzer(3.png). "In Liste anzeigen" kann Benutzer aus Listen ausblenden(2.png). E-Mail-Benachrichtigung kann aktiviert werden. "Verwendung Gelesen-Knopf" biete die Funktion Vorgänge im Eingang als gelesen zu markieren, damit diese nicht mehr im Eingang angezeigt werden. Zum Schluss bietet "Max. gleichzeitige Session" die Konfiguration Möglichkeit an, die zeitgleichen Sessions des Benutzer zu definieren. 

Admin_Benutzerübersicht2.0.png

Modul-Konfiguration

Wird nur angezeigt, falls Otris Contract beziehungsweise Otris Corporate installiert ist. Durch gesetzt Haken werden Zugriffe auf dieses Modul gewährt. Admin zugriff auf diese Module kann dem Benutzer auch gegeben werden.

Admin_Benutzer_Modul.png

Status

Im Reiter "Status" lassen Aktionen nachvollziehen, welche auf dem ausgewählten Account durchgeführt wurden, zum Beispiel eine Passwort Änderung. Die Aktion selbst, der Zeitpunkt der ausgeführten Aktion und der Benutzer, welcher diese durchgeführt hat, können nachvollzogen werden.

Admin_Benutzer_Status.png

Administration

Benutzer hinzufügen/anlegen

Im Admin Benutzer Fenster lässt sich mit Hilfe des Benutzer_Anlegen.png Symbols ein neuer Benutzer anlegen.

Es öffnet sich eine leere Benutzer Übersicht, mit der der neue Benutzer angelegt wird. Beim Abschluss wird der Vorgang mit dem Speichern Button abgeschlossen und der neue Benutzer ist angelegt.

Admin_Benutzeranlegen.png

Administration Squeeze

Administration Squeeze

Übersicht

Im Fenster Squeeze unter Administration können die Einstellung zu Squeeze konfiguriert werden. Es kann die Verbindung zu Squeeze geprüft werden, Stammdaten eigesehen werden und Stapelklassen und Dokumentenklassen verwaltet werden. Außerdem gibt es die Möglichkeit Klassifizierungen zu trainieren und Dokumente zu importieren.      

outbar_squeeze.png

Zusätzlich kann das Squeeze Dashboard eingesehen werden, um Dokumente und deren Status in Squeeze einzusehen.

SQZ_Dashboard.png

Administration Squeeze

Verbindung

Im Menü "Verbindung" kann die Verbindung zu Squeeze geprüft werden, ein neuer API-Key erstellt oder Standardkonfigurationen wieder geladen werden. Außerdem kann man die URL des angebunden Squeeze Mandaten auslesen und den hinterlegten API-Key. Der Mappentyp und Feldname für Training werden hier auch gesetzt.

SQZ_Verbindung.png

Administration Squeeze

Stammdaten

Im Stammdaten Fenster, sind die unterschiedlichen Stammdaten aus Squeeze zu finden. Neben der Übersicht über die unterschiedlichen Stammdaten, können mit Hilfe des Buttons  neuer Eintrag.png eine neue Stammdatentabelle hinzugefügt werden. Zusätzlich können bestehende bearbeitet und gelöscht werden.

Stammdaten.png

Durch einen Doppelklick auf eine Spalte, lassen sich detailliertere Informationen zu den gewählten Stammdaten ansehen. Man kann die verscheiden Spalten verwalten und neue hinzufügen. Stammdaten können auch manuell hochgeladen werden in den Formaten CSV, XLS und XLSX. Außerdem kann man die Daten verwalten, indem man sie anpasst, löscht oder Neue hinzufügt.

BSP Stammdaten.png 

Administration Squeeze

Stapelklassen/Dokumentenklassen

Stapelklasse

Im Menü "Stapelklassen" sind die verschiedenen Stapelklassen zu finden. Diese sind auch in Squeeze vorhanden. Die Stapelklassen können bearbeitet oder neue angelegt werden.

Stapelklasse.png

Dokumentenklasse

Hier findet sich eine Liste der Dokumentenklassen in Squeeze. Die Dokumentenklassen können bearbeitet oder neue angelegt werden. Zusätzlich können Konfigurationen übernommen werden. 

Dokuklasse.png

 

 

Administration Invoice/Mailroom

Administration Invoice/Mailroom

Übersicht

Invoice

Das Administrationsfenster "Invoice" bietet Konfigurationsmöglichkeiten für den Invoice Bereich. Es gibt den Bereich für Workflow Einstellungen und Feldkonfigurationsmöglichkeiten. Es können Parameter und Initiale Berechtigungen gesetzt werden. Außerdem können Mandanten, Übersetzungen und der Documents Property Cashe verwaltet werden.

"Buchungsschnittstelle" ermöglicht

admin_invoices.png

Feldkonfigurationen 

In den Feldkonfigurationen von "Invoice" und "Mailroom" lassen sich die unterschiedlichen Kopf- und Positionsfelder einstellen. Zusätzlichen lässt sich die Gentable und Suchfelder konfigurieren. Außerdem kann man eine Archive Zuordnung vornehmen. Mehr zu den einzelnen Punkten in folgenden Kapiteln.

admin_felder.png

Mailroom

Das Administrationsfenster "Mailroom" bietet ähnliche Menüpunkte wie das Invoice Fenster. Buchungsschnittstelle ist nicht vorhanden, dafür wird es mit Initiale Berechtigungen und Vertrauliche Schlüssel erweitert. 

In der Initialen Berechtigung

Vertrauliche Schlüssel

admin_mailroom.png

Administration Invoice/Mailroom

Workflow

Workflow bietet, sowohl in Invoice als auch im Mailroom, die Möglichkeit die Workflow Regeln einzusehen, die verschiedenen Workflows und deren Details zu betrachten und neue Einträge hinzuzufügen, Workflow Aktionen zu verwalten und Workflow Konfigurationen vorzunehmen.

admin_workflow.png

Administration Invoice/Mailroom

Kopffelder - Feldkonfigurationen

Die Anlage neuer Kopf-Felder, die Anordnung der Kopf-Felder als auch die Zuweisung der Felder zu den Registern muss über den Documents-Manager konfiguriert werden.

Felder_DocManager.png

Hinzugefüge Felder müssen dann in der Web-Oberfläche, in der Feldkonfiguration Kopffelder, durch den Button kopffelder.png 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. 

kopffelder_web.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 vor belegt.

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.

feldbearbeiten.png

Alternative

Über den Link in der Spalte "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.

alternativen.png

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.

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

alternative_bearbeiten.png

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.

Feldkonfiguration 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.

laden.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.

Administration Invoice/Mailroom

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.

gentable_konfig.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.

PosFelder.pngDurch 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 PosFelder_Neuer.png 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.

Allgemein_Top.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.

PosFelder_Feldkonfig.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.

Event.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.

autovervollständigung.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.

sonstiges.png

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.

PosAlt.png

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.

AltAll.png

 

 

 

 

 

 

 

 

 

 

Administration Invoice/Mailroom

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.

Gentable_schaltfläche.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 PosFelder_Neuer.png 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.

Gentable_Anzeige.png

Administration Invoice/Mailroom

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!

Gentable_Konfig2.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.

Gentable_Konfig.png

Administration Invoice/Mailroom

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.

Suchfelder.png

Es können zusätzlich weitere Suchfelder angelegt oder vorhanden angepasst werden.

Suchfelder_bearbeiten.png

Administration Invoice/Mailroom

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.

ArchivZuordnung.png

Beleg-Trennung

Diese Funktion kann nur in Zusammenhang mit Squeeze verwendet werden! Unter Umständen kann es passieren, dass mehrere Rechnungen in einem Dokument zusammenhängen. Über die Beleg-Trennung können die Belege in Squeeze getrennt werden. Für jeden neuen Beleg wird die Beleg-Analyse neu gestartet. Die Ausgangs-Mappe in Documents muss ausgesteuert werden.

Beleg-Trennung

Dokumenten-Trennung

Die Dokumenten-Trennung funktioniert nur im Zusammenhang mit Squeeze. Die eigentliche Dokumenten-Trennung erfolgt in Squeeze und nicht in Documents!

Die Aktion "Dokument teilen" kann wahlweise als Button oder in der Aktions-Liste angezeigt werden. Projektspezifisch wird konfiguriert, welche Benutzer bzw. Benutzergruppen in welcher Workflow-Aktion Zugriff auf die Aktion erhalten.

image-1599647804484.png

Es öffnet sich ein Pop-Up mit wichtigen Informationen. Einseitige Dokumente können nicht weiter aufgeteilt werden! Für die Dokumenten-Trennung muss ein Beleg aus mindestens 2 Seiten bestehen! Die Anzahl der Beleg-Seiten und die Anzahl der bereits aufgeteilten Seiten wird aus Squeeze ermittelt. Technisch wird für die Abfrage im Feld "SqueezeID" die eindeutige Squeeze Beleg ID gespeichert. Der Beleg im folgenden Beispiel enthält 2 Seiten und wurde bislang noch nicht aufgeteilt.

image-1599653251076.png

Sobald der Anwender im Pop-Up auf den "OK" Button klickt wird die Rechnungs-Mappe für die weitere Bearbeitung gesperrt und es öffnet sich ein weiteres Pop-Up für die Dokumenten-Trennung. Die Rechnungs-Seiten müssen dann in jedem Fall neu aufgeteilt werden, denn die aktuelle Rechnungs-Mappe kann nur noch ausgesteuert werden.  Durch das Pop-Up und die zusätzlich notwendige Bestätigung durch den Anwender sollen Fehlbedienungen vermieden werden. Im Notfall müssen alle Seiten einem neuen Beleg zugeordnet werden.

image-1599653468614.png

Im Pop-Up wird im rechten Bereich das komplette ungeteilte Dokument angezeigt und im linken Bereich werden zunächst alle Seiten unter "Original" gelistet. Via Drag-N-Drop können die Seiten zu einer Rechnung auf den Stapel "Neu" gezogen werden. Sobald alle Seiten zu einer Rechnung unter "Neu" abgelegt wurden, wird über den Button "Dokument erzeugen" ein neuer Squeeze-Beleg mit diesen Seiten erstellt. An der Mappe in Documents ändert sich hierdurch nichts!

image-1599653626146.png

Durch den Button "Dokument erzeugen" verschwinden die Seiten vom Stapel "Neu". Jetzt können die Seiten zur nächsten Rechnung auf den Stapel "Neu" gezogen werden und über "Dokument erzeugen" kann der nächste Squeeze-Beleg erzeugt werden.

image-1599653892100.png

Der Vorgang muss so lange wiederholt werden, bis alle Rechnungen in Squeeze als separate Belege neu erstellt wurden bzw. bis der Stapel "Original" keine Rechnungs-Seiten mehr enthält. Die Aktion kann auch jederzeit unterbrochen und zu einem späteren Zeitpunkt fortgesetzt werden!

Aus einem Beleg mit mehreren Rechnungen werden durch die Trennung mehrere neue Squeeze-Belege mit jeweils einer Rechnung. Die einzelnen Rechnungs-Belege werden erneut analysiert und werden im Anschluss erneut an den Squeeze-Export übergeben und ggf. werden direkt neue Rechnungs-Mappen in Documents erzeugt.

Die Ausgangs-Mappe kann nicht weiter verarbeitet werden und die aktuelle Workflow-Aktion kann nicht mehr abgeschlossen werden. Der Anwender erhält jeweils eine Fehlermeldung.

image-1599659394773.png

Der Beleg kann nur ausgesteuert werden. Falls der aktuelle Benutzer keine entsprechenden Berechtigungen besitzt kann der Beleg an einen berechtigten Benutzer weitergeleitet werden bzw. kann der Anwender die Mappe an vorherige Workflow-Aktionen zurück versenden. Evtl. existieren projektspezifische Lösungen, um einen Beleg weiterzuleiten. Die Anzeige dieser Standard-Aktionen kann in jedem Projekt unterschiedlich konfiguriert sein.

Kreditor-CSV

Teilweise können Kreditoren eine passende CSV mit den Rechnungspositionen bereitstellen. Für den Kreditor muss der Aufbau der CSV-Datei in der Konfiguration hinterlegt werden. Die CSV kann im Anschluss an ein separates Register hochgeladen werden und nun können die Rechnungspositionen geladen werden.

Kreditor-CSV

WEB-Konfiguration

Im ersten Schritt muss der Aufbau der CSV-Datei für den Kreditor definiert werden. Die CSV-Datei eines Kreditors muss einen gleichbleibenden Aufbau haben. Auf der Administrations-Outbar "Invoice" befindet sich unter "Feldkonfigurationen" der Ordner "Kreditor CSV". Pro Kreditor müssen folgende Angaben erfolgen:

image-1647362546423.png

Im zweiten Schritt muss das Feldmapping angegeben werden. Bei einem Doppelklick auf den Einträg öffnet sich eine neue Ansicht. Über den Button "NEUER EINTRAG" kann ein neues Mapping definiert werden. Je nachdem ob die Zuordnung über die Spaltennummer oder die die Spaltenüberschrift vorgenommen wird variiert die erste Spalte.

image-1654679537622.png

Beim Mapping muss entweder eine Zuordnung zu einer CSV-Spalte bzw. einer Spaltenüberschrift erfolgen oder es kann alternativ ein fixer Wert angegeben werden, welcher in alle Zeilen geschrieben wird. In jedem Fall muss die Zuordnung zu der Gentable-Spalte gesetzt werden. Die Liste enthält alle aktiven Spalten.

image-1654679882798.png

Bei der Zuordnung über die Spaltennummer variiert lediglich die Anzeige der ersten Spalte.

image-1647362964833.png

Bei der Zuordnung über den Spaltennamen muss der korrekte Spaltenname in der korrekten Schreibweise inklusive Leerzeichen angegeben werden:

image-1647363126973.png

Sollten irgendwelche Angaben in der CSV nicht enthalten sein, welche allerdings fix vorgegeben werden können, dann kann dieser Wert über die Angabe "Fester Wert" fix gesetzt werden.

Beim Auslesen der CSV werden die bisherigen Positionszeilen verworfen und neu gelesen. Konfigurations-Anpassungen können somit jederzeit schnell getestet werden.

Über die Konfiguration kann lediglich das Mapping konfiguriert werden. Werte die nicht in der CSV-Datei enthalten sind werden sind können über die WEB-Konfiguration nicht automatisch generiert werden! Über die unterschiedlichen UserExit-Funktionen können die einzelnen Werte sowie das gesamte Ergebnis beliebig angepasst werden.

Kreditor-CSV

Hochladen und Auslesen einer CSV Datei

Die Voraussetzung für das Einlesen einer CSV-Datei ist, dass am Rechnungs-Vorgang ein Kreditor hinterlegt ist und zudem muss für diesen Kreditor eine CSV-Konfiguration existieren. Die CSV-Datei muss passend zur Konfiguration sein.

Nachdem die CSV-Konfiguration für den Kreditor eingerichtet wurde kann die CSV-Datei an eine Rechnungs-Akte hochgeladen werden. Hierfür muss der Anwender auf das Dokumenten-Register "Kreditor CSV" wechseln. Die Anzeige des Registers wird über ein Skript gesteuert und kann somit von Projekt zu Projekt variieren. Die Anzahl der direkt angezeigten Register ist in der Standardauslieferung eingeschränkt. Weitere Register verbergen sich hinter dem Pfeil am Register.

image-1647446833256.png

Wenn Sie das Register weiterhin nicht sehen wenden Sie sich an den Administrator.

Am Register werden 2 benutzerdefinierte Aktion als Button angezeigt. Über den Button mit dem Icon öffnet sich ein Pop-Up-Fenster mit einer sogenannten Dropzone. Die CSV-Datei kann via Drag-N-Drop auf diese Dropzone gezogen werden. Durch die Bestätigung "OK" wird die CSV-Datei an das Register hochgeladen.

image-1647365003769.png

Über den zweiten Button "CSV auslesen" wird die CSV-Datei verarbeitet und pro Zeile in der CSV-Datei wird eine Rechnungsposition erstellt. Der Button wird im Bearbeitungs-Modus ausgeblendet. Wenn Sie den Button nicht sehen müssen Sie die Rechnungs-Akte über den Button "Speichern" zuerst speichern. Sollte bei der Ausführung noch keine Konfiguration zum Kreditor existieren wird eine entsprechende Fehlermeldung ausgegeben.

Die bestehenden Positionszeilen samt der evtl. bereits hinzugefügten Kontierung gehen unwiederruflich verloren und werden durch die Positionsangaben aus der CSV ersetzt!

Kreditor-CSV

User-Exit Funktionen

Es werden diverse User-Exit Funktionen bereitgestellt, um die Daten zu gegebenen Zeitpunkten zu manipulieren.

CreditorCsv( DocFile, Log )

Technisch wird im Hintergrund ein Objekt vom Typen CreditorCsv erzeugt. Dem Objekt muss zwingend ein DocFile-Objekt übergeben werden. Wenn kein spezifisches Logging-Objekt übergeben wird, wird ein eigenes erzeugt. Das Objekt selber enthält folgende Attribute:

Die User-Exit-Funktionen werden via prototype hinzugefügt. Dadurch erhält der Anwender Zugriff auf die Objekt-Attribute. In der Regel muss in den User-Exit-Funktionen zwischen den Kreditoren unterschieden werden. Der Kreditor kann über das DocFile-Objekt ermittelt werden.

 

ue_CreditorCsv_AdjustLineString(currentLine, lineNo)

Die Funktion wird nach dem Auslesen jeder einzelnen Zeile aufgerufen. Durch die Funktion kann der komplette Zeilen-String manipuliert werden. Zum Beispiel kann via util.transcode() ein falsches Encoding korrigiert werden.

/** CSV-Zeile manipulieren
 * @param {string} currLine CSV-Zeile als String
 * @param {int} lineNo Aktuelle Zeilennummer für Logausgaben
 * @returns {string} Angepasste CSV-Zeile als String
 **/
CreditorCsv.prototype.ue_CreditorCsv_AdjustLineString = function(currLine, lineNo){
	var creditorID = this.DocFile.CreditorID;
  	if( creditorID==="12345" ){
      return util.transcode("ISO-8859-15", currLine, "UTF-8");
    }
  	return currLine;
}

 

ue_CreditorCsv_IgnoreLine(currentLineArr, currentLine, lineNo)

Nachdem die Zeile ausgelesen wurde wird die Zeile über den Trenner gesplittet und die Teil-Strings werden in ein Array geschrieben. Die CSV-Dateien können Summenzeilen enthalten, welche beim Auslesen übersprungen werden sollen. Oft können solche Zeilen einfach identifiziert werden, da bestimmte Spaltenwerte fehlen. Es kann auch sein, dass eine CSV die Daten von mehreren Rechnungen enthält. Über die Funktion können die Zeilen mit abweichender Rechnungsnummer übnersprungen werden.

/** CSV-Zeile überspringen
 * @param {Array} currLineArray CSV-Zeilen Array mit den einzelnen String-Werten
 * @param {string} currLine CSV-Zeile als String
 * @param {int} lineNo Aktuelle Zeilennummer für Logausgaben
 * @returns {boolean} 'true' um Zeile zu überspringen
 **/
CreditorCsv.prototype.ue_CreditorCsv_IgnoreLine = function(currLineArray, currLine, lineNo){
	var creditorID = this.DocFile.CreditorID;
  	if( creditorID==="12345" ){
    	if( currLineArray[10]==="" ){
         	return true; 
        }
    }
  	return false;
}

 

ue_CreditorCsv_AdjustLineArray(currentLineArr, lineNo)

Direkt nach der Funktion ue_CreditorCsv_IgnoreLine() wird gleich das nächste UserExit ausgeführt, um bestehende Zeilen-Werte zu manipulieren. Hier ist zu berücksichtigen, dass alle Werte im Array als String vorliegen!

/** CSV-Zeilen-Werte manipulieren
 * @param {Array} currLineArray CSV-Zeilen Array mit den einzelnen String-Werten
 * @param {int} lineNo Aktuelle Zeilennummer für Logausgaben
 * @returns {Array} Angepasstes Zeilen-Array
 **/
CreditorCsv.prototype.ue_CreditorCsv_AdjustLineArray = function(currLineArray, lineNo){
	var creditorID = this.DocFile.CreditorID;
  	if( creditorID==="12345" ){
    	/* ... */
    }
  	return currLineArray;
}

 

ue_CreditorCsv_Parse_String(value, techFieldName)
ue_CreditorCsv_Parse_Bool(value, techFieldName)
ue_CreditorCsv_Parse_Date(value, techFieldName)
ue_CreditorCsv_Parse_Timestamp(value, techFieldName)
ue_CreditorCsv_Parse_Numeric(newValue, value, noDecPlaces, techFieldName)

Die einzelnen Angaben in der CSV werden als String ausgelesen und müssen ggf. in andere Typen formatiert werden. Die verwendeten Funktionen bieten wiederum diese User-Exit-Funktionen an, um die Angaben zu manipulieren.

/** Einzelnen String-Wert manipulieren
 * @param {string} value Eingehender String-Wert
 * @param {string} techFieldName Technischer Name der Gentable-Spalte
 * @returns {string} Angepasster String-Wert
 **/
CreditorCsv.prototype.ue_CreditorCsv_Parse_String = function(value, techFieldName){
	var creditorID = this.DocFile.CreditorID;
  	if( creditorID==="12345" ){
    	switch(techFieldName){
        	case "GLAccount":
            	/* ... */
                break;
        }
    }
  	return value;
}

/** Einzelnen Numerischen-Wert manipulieren
 * @param {float} newValue Geparster numerischen Wert geparster
 * @param {string} value Ursprünglicher String-Wert
 * @param {int} noDecPlaces Anzahl Dezimalstellen
 * @param {string} techFieldName Technischer Name der Gentable-Spalte
 * @returns {float} Angepasster Wert
 **/
CreditorCsv.prototype.ue_CreditorCsv_Parse_Numeric = function(newValue, value, noDecPlaces, techFieldName){
	var creditorID = this.DocFile.CreditorID;
  	if( creditorID==="12345" ){
    	switch(techFieldName){
        	case "Net":
            	/* ... */
                break;
        }
    }
  	return value;
}

 

ue_CreditorCsv_AdjustRow(row, lineNo)

Über das Zeilen-Array wird ein Gentable-Zeilen-Objekt erstellt und diese Gentable-Zeile kann im Anschluss manipuliert werden. Über Stammdaten-Abgriffe können zum Beispiel weitere Werte abgegriffen werden.

/** Gentable-Zeile manipulieren
 * @param {Object} row Gentable row object
 * @param {int} lineNo Aktuelle Zeilennummer für Logausgaben
 * @returns {Object} Angepasstes Gentable-Zeilen-Objekt
 **/
CreditorCsv.prototype.ue_CreditorCsv_AdjustRow = function(row, lineNo){
	var creditorID = this.DocFile.CreditorID;
  	if( creditorID==="12345" ){
    	if( row.GLAccount==="XYZ" ){
         	row.GLAccount_Desc = "description";
        }
    }
  	return row;
}

 

ue_CreditorCsv_AdjustGentable(gentable)

Aus den Gentable-Zeilen wird ein Gentable-Objekt erstellt und auch dies kann wiederum manipuliert werden. Manchmal ist es erwünscht, dass Zeilen mit übereinstimmenden Angaben automatisch zusammengefasst werden.

/** Gentable-Zeile manipulieren
 * @param {Gentable} rows Gentable object
 * @returns {Gentable} Angepasstes Gentable
 **/
CreditorCsv.prototype.ue_CreditorCsv_AdjustGentable = function(rows){
	var creditorID = this.DocFile.CreditorID;
  	if( creditorID==="12345" ){
    	for( var i=0; i<rows.length; i++ ){
         	var row = rows[i];
          	if( row.GLAccount==="XYZ" ){
             	/* ... */ 
            }
        }
    }
  	return rows;
}

Standardkontierung

Im Invoice können Standardkontierungen angelegt werden und diese können mit Kreditoren verknüpft werden.

Standardkontierung

Standardkontierung aus der Rechnung heraus erstellen

Eine Standardkontierung kann direkt aus einer Rechnung heraus erzeugt werden und es können Standardkontierungen angewendet werden. Die Anzeige der Aktionen kann projektspezifisch gesteuert werden.

image-1668165178082.png

Die benutzerdefinierten Aktion "Kontierung anwenden" (technisch "UDA_StandardAccounting") wird standardmäßig als Aktionslisten-Eintrag angezeigt. Über die Aktion öffnet sich ein Pop-Up mit der Auswahl der Standardkontierungen. Der Anwender wählt eine Standardkontierung über den Namen aus und drückt auf "OK". Die Standardkontierung wird direkt angewendet.

Über die Aktion "Kontierung erstellen" (technisch "UDA_CreateAccounting") kann die Kontierung zur aktuellen Rechnung als Kontierungsvorlage gespeichert werden. Im folgenden Pop-Up-Fenster muss zunächst eine Beschreibung für die Standardkontierung angegeben werden. Hier sollte ein möglichst sprechender Name mit vielen Informationen gewählt werden. Auch wenn im System viele Standardkontierungen erzeugt werden sollte der Anwender seine gewünschte Standardkontierung schnell wieder finden können.

Beim Kontierungstypen muss der Anwender zunächst entscheiden, ob bei der Anwendung der Standardkontierung die Ausgangsbeträge in den Positionen neu gesetzt werden sollen. Der Standard-Ausgangsbetrag ist Netto. Der Ausgangsbetrag kann über einen Parameter ("StandardAccounting_GrossCalculation") auf Brutto geändert werden.

Beträge prozentual berechnen

Die Beträge können bei Anwendung der Standardkontierung prozentual vom Kopfbetrag berechnet werden. Hierfür wird pro Position der Anteil des Positionsbetrags am Kopfbetrag berechnet.

Fixe Beträge übernehmen

Der Positionsbetrag (Netto oder Brutto) kann aus der aktuellen Rechnung als Vorlage verwendet werden. Dies eignet sich bei wiederkehrenden Rechnungen mit gleichen Beträgen wie Mietrechnungen.

MwSt-Zuordnung

In diesem Fall werden die Ausgangsbeträge nicht berechnet oder aus der Standardkontierung übernommen. Die Beträge aus den bestehenden Positionen bleiben bestehen und anhand der MwSt wird zum Beispiel ausgehend vom Nettobetrag der Brutto betrag und die Steuer berechnet.

image-1668172287962.png

Zuletzt muss gewählt werden bei welchen Rechnungen die Standardkontierung angezeigt werden soll. Hierfür stehen 3 Auswahl-Optionen zur Verfügung. Hierzu ist ergänzend zu erwähnen, dass Mandant und Buchungskreis der aktuellen Rechnung zusätzlich in der Standardkontierung gespeichert werden und als Filter bei der Anzeige verwendet werden.

Kontierung mit Kreditor verknüpfen

Die Kontierung wird fest mit einem Kreditor verknüpft. Bei der Auswahl einer Standardkontierung wird immer auf Kontierungen mit übereinstimmenden Mandanten und Buchungskreis gefiltert. Kontierungen, die zu einem Kreditor verknüpft sind, werden dem Anwender nur angezeigt, wenn in der Rechnung derselbe Kreditor ausgewählt wurde.

Kontierung als Standard für den Kreditor festlegen

Die aktuelle Kontierung kann als Standard für den in der aktuellken Rechnung ausgewählten Kreditor definiert werden. Zu einem Kreditor kann nur eine Kontierung als Standard definiert werden (genauer gesagt muss die Kombination aus Kreditor, Mandant und Buchungskreis eindeutig sein). Wenn in einem UserExit - zum Beispiel initial bei Eingang einer Rechnung - die Funktion "DocFile.useCreditorDefaultAccounting()" aufgerufen wird, dann wird diese Kontierung automatisch angewendet.

Kontierung global für alle Kreditoren freigeben

Wenn eine Kontierung als "global" markiert wird, dann greifen bei der Anzeige der Auswahlliste nur noch die Filter für Mandant und Buchungskreis.

image-1668172317361.png

Standardkontierung

WEB-Konfiguration

Standardkontierungen können über die WEB-Administration gepflegt werden. Im Standard wird der Konfigurations-Ordner auf der Invoice-Administrations-Outbar als Unterordner unter "Feldkonfigurationen" ausgeliefert. Projektspezifisch kann sich der Ordner an anderer Stelle befinden.

image-1668150548099.png

In der initialen Ansicht kann der Anwender über den Button "Neuer Eintrag" Standardkontierungen hinzufügen. Bestehende Einträge können über das Stift-Symbol am Ende der Zeile editiert werden und über das Mülleimer-Symbol können Standardkontierungen gelöscht werden. Durch einen Doppelklick auf einen Eintrag öffnen sich die gespeicherten Positions-Einträge auf dem zusätzlichen Register "Positionen" und zusätzlich wird das Register "Kreditoren" mit den verknüpften Kreditoren eingeblendet.

image-1668150934302.png

Über das Register "Kreditoren" kann der Standardkontierung ein Kreditor zugeordnet werden. Über die Checkbox kann festgelegt werden, dass diese Kontierung zum gegebenen Zeitpunkt automatisch angewendet werden soll. Dieser Zeitpunkt kann bei den Projekten variieren. Daher muss die Funktion "docFile.useCreditorDefaultAccounting()" in das passende User-Exit hinzugefügt werden. Die Funktion liefert "true" oder "false" zurück. Im UserExit "ue_Initialization()" wird die Funktion bereits auskommentiert ausgeliefert.

image-1668151195002.png

Die Standardkontierung kann in der Auslieferung alle üblichen Kontierungs-Spalten speichern. Viele aktiven Standard-Feld-Spalten werden automatisch eingeblendet. Über das Register "Benutzerdef. Felder" können bis zu 10 zusätzliche Feld-Spalten über eine Auswahlliste zugeordnet werden.

image-1668152288195.png

 

Standardkontierung

Verarbeitung der Beträge

Bei der Anlage der Kontierungs-Zeilen gibt es die Spalten "Netto (fix)" und "Netto (prozentual)". Über den Parameter "StandardAccounting_GrossCalculation" kann die Berechnung auf Brutto geändert werden.

Prozentuale Aufteilung

Wenn aus einer Rechnung heraus eine neue Standardkontierung erstellt wird, dann muss die Summe der Netto-Zeilenbeträge dem Kopfbetrag entsprechen. Pro Zeile wird der prozentuale Anteil zum Kopfbetrag ausgerechnet. Bei einem Netto-Kopfbetrag von 100€ und 2 Zeilen zu 30€ und 70€ würde die erste Zeile mit 30% und die zweite Zeile mit 70% bewertet. Bei manueller Anlage der Positionen über die WEB-Konfiguration muss der Anwender darauf achten, dass die Summe 100% Prozent ergibt.

Bei Anwendung dieser Beispiel-Standardkontierungen wird der Kopfbetrag entsprechend prozentual aufgeteilt. Bei einem Betrag von 200€ würden 60€ (30%) in die erste Zeile eingetragen und 140€ (70%) in die zweite Zeile.

Fixe Beträge übernehmen

Alternativ zur prozentualen Aufteilung können Beträge fix festgelegt werden. Ein Anwendungsbeispiel wären zum Beispiel Mietrechnungen, wo jeden Monat ein Betrag von zum Beispiel 170€ auf mit einer definierten Kontierung versehen wird und ein Betrag von 60€ auf eine abweichende Kontierung.

MwSt-Zuordnung

In diesem Fall werden keine Beträge gespeichert. Bei Anwendung der Kontierung werden die Beträge abhängig vom Ausgangswert (Netto oder Brutto) über den MwSt-Satz neu berechnet. Der Ausgangswert wird bei dieser Option nicht neu gesetzt! Es werden lediglich die abhängigen Beträge Brutto und Steuer neu berechnet. Sollen weitere abhängige Beträge neu berechnet werden, dann muss dies in der UserExit-Funktion "gentable.ue_AfterStandardAccounting()" umgesetzt werden.

Standardkontierung

UserExit-Funktionen

Um die UserExit-Funktionen nutzen zu können werden sehr gute PortalScripting-Kenntnisse und Kenntnisse der im Invoice verwendeten JavaScript-Objekte vorausgesetzt.

Eine fix zu einem Kreditor verknüpfte Standardkontierung kann automatisch über eines der bestehenden UserExits aufgerufen werden. Im Skript "DEXPRO__UserExit_WorkflowLib" befindet sich zum Beispiel die UserExit-Funktion "ue_Initialization" und hier wird die Funktion "DocFile.useCreditorDefaultAccounting()" bereits auskommentiert ausgeliefert. Für den folgenden Screenshot wurde der Part einkommentiert.

image-1668173091685.png

Bei der Anwendung einer Standardkontierung werden die Rechnungspositionen neu erstellt. Hierfür wird ein Gentable-Objekt erstellt und nach der Ausführung und vor dem Schreiben des Gentable ("Gentable.createGentableStr()") wird die User-Exit-Funktion "Gentable.ue_AfterStandardAccounting()" ausgeführt. Die Funktion kann verwendet werden um zum Beispiel zusätzliche Betragswerte zu berechnen. Die Funktion wird bereits im Skript "DEXPRO__UserExit_GentableAdd" ausgeliefert.

Erläuterungen zum Gentable-Objekt finden sich an anderer Stelle der WEB-Dokumentation.

/** Before standard accounting execution
 * @since Invoice 1.1.300
**/
Gentable.prototype.ue_BeforeStandardAccounting = function(standardAccountingObj){
    /* example: cut Gentable to standard accounting position size *
    accObj.getAccountingPositions(accObj.AccountingName);
    var accPos = accObj.Accounting[accObj.AccountingName];
    if( this.Rows.length>accPos.length ){
        for( r=this.Rows.length-1; r>=accPos.length ;r-- ){
            if( this.Logg instanceof Log ){
                this.Logg.info("["+r+"] this.Rows.pop();");
            }
            this.Rows.pop();
        }
    }
    */
}

/** Before standard accounting execution
**/
Gentable.prototype.ue_AfterStandardAccounting = function(standardAccountingObj){
    ;
}

Persönliche Einstellungen

Persönliche Einstellungen

Abwesenheitseinstellung

Durch einen Klick rechts oben auf das Benutzer-Kürzel öffnen sich die persönlichen Einstellungen. Die Abwesenheitseinstellungen können über den Punkt "Abwesenheit" angepasst erden.

image-1671113195708.png

Durch die Auswahl "Abwesenheit" öffnet sich ein weiteres Pop-Up. Standardmäßig ist ein Benutzer aktiv, was durch den gesetzten Radio-Button "Ich bin zur Zeit im Haus" signalisiert wird. Sobald der Anwender den Radio-Button "Ich bin zur Zeit nicht im Haus" setzt, wird automatisch die Einstellung "Ich bin zur Zeit im Haus" deaktiviert und umgekehrt. Durch die Auswahl werden die darunter befindlichen Punkte aktiv bzw. werden ausgegraut.

image-1671113710916.png

Abwesenheit konfigurieren

Über den Radio-Button "Ich bin zur Zeit nicht im Haus" wird der Anwender nach Bestätigung über den Button "OK" direkt abwesend gesetzt. Setzt der Anwender zusätzlich einen Zeitraum "von" und "bis", dann ist die Abwesenheit nur in diesem Zeitraum aktiv! Der Radio-Button muss hierbei zwingend auf "Ich bin zur Zeit nicht im Haus" stehen bleiben! Andernfalls greift die Vertretung nicht!

Über die Checkbox "Gesperrte Mappen im Eingangskorb an den Vertreter weiterleiten" werden die Belege aus dem persönlichen Ordner "Eingang" an den definierten Vertreter delegiert. Bei der Auswahl der Vertreter muss berücksichtigt werden, dass Zugriffsberechtigungen nicht automatisch übertragen werden!

Über die Checkbox "Vertretene Mappen in den Eingang zur Info" bleibt der Vorgang zusätzlich im eigenen Eingang. Der Anwender sieht am Vorgang aber lediglich den Button "Gelesen". Wenn ein Vorgang über den Workflow bereits gelöscht wurde, dann verschwindet auch die "Gelesen"-Information.

Vertreter konfigurieren

In einer Doppelauswahlliste werden alle freigegebenen Benutzer angezeigt bei denen die Eigenschaft "Benutzer in Documents-Listen anzeigen" gesetzt ist. Bei der Auswahl der Vertreter ist die Reihenfolge entscheidend. Das System prüft zunächst den obersten angegebenen Vertreter. Wenn dieser ebenfalls abwesend ist, dann wird zunächst der Vertreter des Vertreters geprüft und falls dieser wiederum abwesend ist, wird dessen Vertreter geprüft. Erst wenn bei dem abwesenden Vertreter kein Vertreter ermittelt werden konnte wird der nächste Vertreter in der Liste überprüft. Die konfigurierten Vertreter gelten für alle unterschiedlichen Mappentypen. Es kann nicht zwischen Rechnungen, Bestellungen oder Verträgen unterschieden werden!

Über den Documents-Manager können hierfür "Mappentyp-Vertreter" definiert werden. Für diese Einstellung gibt es jedoch keine WEB-Konfiguration worüber sich ein Anwender seine "Mappentyp-Vertreter" definieren kann. Sobald ein Mappentyp-Vertreter definiert wurde, werden bei Mappen zu diesem Mappentypen auch nur diese Vertreter geprüft. Das kann etwas verwirrend sein, da der Anwender diese Konfiguration selber nicht sieht. Bei der Abarbeitung der Mappentyp-Vertreter werden bei Abwesenheiten der Vertreter auch nicht dessen Vertreter rekursiv iteriert - es wird lediglich die Liste der definierten Mappentyp-Vertreter durchlaufen.

image-1671119300208.png

Bei der delegation der Belege an einen Vertreter muss berücksichtigt werden, dass Zugriffsberechtigungen nicht automatisch übertragen werden! Fehlende Berechtigungen bei den Modulen Invoice, Mailroom und Procurement können die Anwender über den Eintrag "GACL-Berechtigungen prüfen" setzen.

image-1671118637924.png

Nach der Abwesenheit

Eine Abwesenheit kann manuell über den Radio-Button "Ich bin zur Zeit im Haus" oder automatisch über den Abwesenheitszeitraum aufgehoben werden. Wenn ein Abwesenheitszeitraum definiert wurde, dann wird der Radio-Button nach Ablauf der Abwesenheit automatisch wieder auf "Ich bin zur Zeit im Haus" gesetzt.

Über die Checkbox "Vertretene Mappen zurückholen" können Belege die während der Abwesenheit an einen Vertreter delegiert wurden aber die noch nicht weiter im Workflow verarbeitet wurden zurückgeholt werden.

Über die Checkbox "Vertretene Mappen aus dem Eingang der Vertreter entfernen" können die zurückgeholten Belege zudem aus dem Eingangs-Ordner der Vertreter entfernt werden.