Invoice Anwender-Handbuch
- Anmeldung
- Menüstruktur
- Übersichtsmenü
- Kopfzeile
- Benutzerprofil/Benutzermenü
- Suche/Suchleiste
- Outbar/Linkes Menü
- Rechnung öffnen
- Die einzelnen Bereiche einer Rechnung
- Funktionen der Rechnungsansicht
- Bearbeiten von Rechnungen
- Registerleiste
- Administration
- Administration Squeeze
- Administration Invoice/Mailroom
- Übersicht
- Workflow
- Kopffelder - Feldkonfigurationen
- Positions-Felder - Feldkonfiguration
- Gentable Schaltflächen
- Gentable Konfiguration
- Suchfelder
- Archiv-Zuordnung
- Beleg-Trennung
- Kreditor-CSV
- Standardkontierung
- Standardkontierung aus der Rechnung heraus erstellen
- WEB-Konfiguration
- Verarbeitung der Beträge
- UserExit-Funktionen
- Persönliche Einstellungen
Anmeldung
Menüstruktur
Erklärt die Menüs in der Invoice Lösung. Bilder können, je nach Individualisierung und vorgenommenen Einstellungen, abweichen.
Ü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.
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.
Auf der linken Seite findet sich eine weitere Menü Spalte, die Outbar. Diese bietet eine Vielzahl von Ansichten und Einstellungsmethoden.
Kopfzeile
Das Kopfzeilen Menü beinhaltet folgende Funktionen:
- Das Haussymbol, welches jemanden ins Übersichtsmenü zurückbringt
- Die Suchleiste mit Auswahlmenü, Sucheingabe und erweiterter Suche
- Eine neue Session öffnen
- Ausgewählte Datei hochladen
- Nachrichten verschicken
- Benachrichtigunsfenster
- Benutzerprofil
Benutzerprofil/Benutzermenü
Das Benutzerprofil stellt verschiede Möglichkeiten zum konfigurieren von Documents zur Verfügung und es kann sich von hier aus abgemeldet werden.
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.
Kennwort ändern
"Kennwort ändern" bietet die Funktion zum wechseln des Passwort.
Es kann passieren, das vorhandene API Keys zurückgesetzt werden.
Sprache
Im "Sprache wechseln" Fenster, lässt sich die Oberflächen Sprache ändern. Zurzeit stehen Deutsch und Englisch zur Verfügung.
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.
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.
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.
Info/Support
Das Info/Support Fenster bietet verschiedene technische Informationen wie Versionsnummern und Verbrauchtes Volume. Zusätzlich können hier Supportfälle gemeldet werden.
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.
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.
Unten Links findet sich "Meine Suche", welche es ermöglicht eigene Suchkonfigurationen zu speichern.
Outbar/Linkes Menü
Ober Hälfte
Die Linke Menü Spalte oder Outbar lässt sich in drei Bereiche gliedern.
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.
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.
Rechnung öffnen
Es gibt unterschiedliche Möglichkeiten die gewünschte Rechnung zu finden:
- In erhaltener Email auf Link klicken.
- Anzeige über die Menü Struktur nach Status.
- Suche nach Rechnungen (in der Abbildung wurde nach B.R.T Dokumenten in Eingang gesucht.
Ein links Klick auf die gewünschte Rechnung öffnet dann die Übersicht für die ausgewählte Rechnung.
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.
- Suchbereich bietet die in vorherigen Kapitel erklärten Suchfunktionen
- Benutzermenü zeigt die unterschiedlichen Benutzermenü Punkt
- Trefferliste ist die Liste der gefunden Dokumente für eine gewählte Suchmaske
- Viewer ist der Dokumenten Ansicht
- Felder zeigt die unterschiedlichen Felder
- Register zeigt die Registerleiste
- Invoice Menü bietet die unterschiedlichen Menü Punkte für Invoice
- Kontierungsbereich ist die Positionstabelle
- Outbar bietet die Möglichkeit zwischen den mittleren Menüs zu wechseln
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.
In der Kopfzeile über dem Viewer finden sich:
- Abkoppeln
- Bearbeiten ermöglicht die Bearbeitung von Rechnungen
- Dublette zulassen (Dieser Button wird nur gezeigt falls eine Dublette vorhanden ist)
- Validiert
- Zurück zur Gruppe
- Aktionen (Je nach Benutzer können unterschiedliche Aktionen zur Verfügung stehen)
- Doppelansicht
Durch klicken des 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.
Mithilfe der Rot markierten Button lassen sich zurzeit nicht benötigte Bereiche einklappen und wieder ausklappen.
Man kann die Mappe auch mit Hilfe des Symbols abkoppeln.
Bearbeiten von Rechnungen
Mit Hilfe des Bearbeiten Buttons über den Viewer lassen sich Rechnungen bearbeiten.
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.
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.
Register Eingangsrechnung
Bei Auswahl des Eingangsrechnungsregisters wird die Feldansicht angezeigt.
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 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.
Administration
Erläuterung der unterschiedlichen Administration Menüs
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.
Bei Auswahl der gewünschten Kategorie, ändern sich die Auswahlmöglichkeiten des mittleren Teils der Outbar.
Allgemein
Bei der Auswahl von bietet der mittlere Teil der Outbar die in der Abbildung gezeigten Funktionen.
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.
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.
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 synchronisieren(
) aktualisiert die Benutzermappen(otrUser) aus den Benutzeraccounts und der Button "Aktionen" bietet weitere Einstellungsmöglichkeiten.
Das Aktualisierung Symbol() auf der rechten Seite aktualisiert die Benutzerliste.
Benutzer Status
Benutzer mit diesem Symbol sind freigegebene Benutzer
Benutzer mit diesem Symbol sind Benutzer, welche nicht in anderen Listen angezeigt werden
Benutzer mit diesem Symbol sind gesperrt
Benutzer mit diesem Symbol sind Benutzer die abwesend sind
Benutzer Lizenztypen
- Concurrent (Open) ein Pool von Lizenzen, welcher sich von unterschiedlichen Benutzern geteilt wird
- Named sind reservierte, individuelle Lizenzen zum anmelden von Benutzern, Zugang ist jederzeit gewährt
- Shared sind Konten, welche von unterschiedlichen Benutzern geteilt werden können (nur für Archive Zugriff)
Benutzergruppen
In der Benutzergruppen Übersicht lassen sich alle Benutzergruppen sehen und verwalten. Es können neue Benutzergruppen hinzugefügt werden().
Übersetzung
Stammdaten
Im Menüpunkt "Stammdaten" sind die vorhanden Stammdaten zu finden und neue Stammdaten können importiert werden.
Tabellendaten exportieren
Mit diesem Menüpunkt lassen sich Tabellendaten exportieren und importieren.
Dokumenten-Struktur
In der Dokumenten-Struktur Übersicht ...
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.
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.
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(). "In Liste anzeigen" kann Benutzer aus Listen ausblenden(
). 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.
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.
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.
Benutzer hinzufügen/anlegen
Im Admin Benutzer Fenster lässt sich mit Hilfe des 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.
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.
Zusätzlich kann das Squeeze Dashboard eingesehen werden, um Dokumente und deren Status in Squeeze einzusehen.
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.
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 eine neue Stammdatentabelle hinzugefügt werden. Zusätzlich können bestehende bearbeitet und gelöscht werden.
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.
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.
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.
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
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.
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
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.
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.
Hinzugefüge Felder müssen dann in der Web-Oberfläche, in der Feldkonfiguration Kopffelder, durch den Button 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.
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.
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.
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:
- Pflichtfeld?
- In Ansicht darstellen?
- Schreibgeschützt?
- Selbe Zeile wie Vorgänger?
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.
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 - 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.
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.
Ü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 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 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!
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.
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.
Es können zusätzlich weitere Suchfelder angelegt oder vorhanden angepasst 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.
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.
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.
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.
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.
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!
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.
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.
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:
- Eindeutige Kreditor ID
- Kreditor Name
- Der Trenner zweichen den Werten in der CSV-Datei
- Die Anzahl an Kopfzeilen, welche beim Auslesen übersprungen werden sollen (zum Beispiel die Kopfzeile)
- Optional kann direkt die Spaltennummer angegeben werden
- Alternativ kann das Mapping über die Spaltenüberschrift erfolgen
Hierzu muss angegeben werden in welcher Zeile die Überschriften stehen
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.
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.
Bei der Zuordnung über die Spaltennummer variiert lediglich die Anzeige der ersten Spalte.
Bei der Zuordnung über den Spaltennamen muss der korrekte Spaltenname in der korrekten Schreibweise inklusive Leerzeichen angegeben werden:
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.
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.
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.
Ü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!
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:
- Error {string} Fehlermeldung
- Log {Log} Das übergebene Log Objekt
- DocFile {DocFile} Das übergebene DocFile Objekt
- ID {string} ID des DocFile-Objekts
- Gentable {Gentable} Gentable des übergebenen DocFile Objekts
- CsvArr {Array} Array mit den CSV-Zeilen
- Seperator {string} CSV-Trennzeichen
- DecSeperator {string} Dezimaltrennzeichen
- NoHeadLineCol {int} Anzahl zu überspringende Kopfzeilen
- CsvMapping {Array} Array mit Spalten-Mapping-Objekten
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 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.
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.
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.
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.
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.
Ü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.
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.
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.
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.
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
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.
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.
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.
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.
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.