Tabelle "Invoice_Posting_Head" für Kopfdaten
Direkt zu Beginn des Workflows wird für jede Rechnung ein Eintrag in der Tabelle "Invoice_Posting_Head" erzeugt. Die Tabelle enthält eine Auto-Inkrement-Spalte "ID". Die Daten werden über die eindeutige Mappen-ID (Spalte "FileID") aktualisiert. Diese ID wird in dem gleichnamigen Mappen-Feld "FileID" gespeichert. Die Zeitstempel-Spalte "InsertTS" wird beim initialen "INSERT" mit dem aktuellen Zeitstempel vorbelegt und wird im Anschluss nicht verändert. Die Zeitstempel-Spalte "UpdateTS" wird bei jedem "UPDATE"-Befehl mit dem aktuellen Zeitstempel überschrieben. Die übrigen Spalten-Namen entsprechen den technischen Feldbezeichnungen der Rechnungs-Mappen.
In der Feldkonfiguration "Kopf-Felder" kann pro Feld separat konfiguriert werden, ob der Feldwert in die SQL-Tabelle geschrieben werden soll oder nicht. Sollte zu einem Feld noch keine passende Spalte in der Tabelle existieren, so kann die Spalte direkt über die Feldkonfiguration hinzugefügt werden.
Die Daten werden bei jedem Speichern und nach jeder Weiterleitung aktualisiert. Hierdurch sollten die Daten in der Rechnungs-Mappe fast immer identisch mit den Daten in den Rechnungs-Mappen sein. Einzig Änderungen durch Job-Skripte oder durch projektspezifische benutzerdefinierte Aktion werden nur dann direkt in die Tabelle geschrieben, wenn der Schreib-Befehl in den Skripten explizit ausgeführt wird.
Für die Übergabe an das Buchungssystem wird in der Regel nur ein Bruchteil der Informationen benötigt. Die Tabelle kann in den Projekten beliebig angepasst und erweitert werden. Der folgende Aufbau und die folgenden Datentypen entsprechen der MS SQL Variante.
Spaltenname | Datentyp |
Beschreibung |
ID (Key) | bigint | Auto-Inkrement-Spalte |
FileID | nvarchar(50) | Eindeutige Mappen-ID für UPDATE-Befehle |
Barcode | nvarchar(50) | Optional: Barcode-Nummer zur Rechnung |
DateOfReceipt | date | Wird am Mappentypen mit dem aktuellen Tagesdatum vorbelegt |
InvoiceNumber | nvarchar(50) | Externe Rechnungsnummer |
InvoiceCreditVoucher | nvarchar(15) | "invoice" für Rechnung bzw. "creditvoucher" für Gutschriften |
InvoiceDate | date | Rechnungsdatum |
DueDate | date | Fälligkeitsdatum |
ServiceDate | date | Leistungsdatum |
Principal | nvarchar(50) | Mandanten-Nummer |
CompanyCode | nvarchar(50) | Buchungskreis-Nummer |
CreditorID | nvarchar(50) |
Kreditor ID |
CreditorName | nvarchar(100) | Kreditor Bezeichnung |
Creditor_Street | nvarchar(200) | Kreditor-Anschrift: Straßenname |
Creditor_City | nvarchar(100) | Kreditor-Anschrift: Stadt |
Creditor_PostCode | nvarchar(50) | Kreditor-Anschrift: Postleitzahl |
Creditor_Country | nvarchar(50) | Kreditor-Anschrift: Land |
Creditor_Mail | nvarchar(50) | Kreditor Mail-Adresse |
Creditor_Phone | nvarchar(50) | Kreditor Telefonnummer |
SenderMail | nvarchar(50) | Absender-Adresse bei Mail-Rechnungen |
BankName | nvarchar(150) | Kontoverbindung: Bank-Name |
BankAccountHolder | nvarchar(150) | Kontoverbindung: Konto-Inhaber |
IBAN | nvarchar(50) | Kontoverbindung: IBAN |
BIC | nvarchar(50) | Kontoverbindung: BIC |
BankID | nvarchar(50) | Kontoverbindung: Bankleitzahl |
BankAccountID | nvarchar(50) | Kontoverbindung: Kontonummer |
Net | decimal(18,2) | Netto-Betrag |
Gross | decimal(18,2) | Brutto-Betrag |
Tax | decimal(18,2) | Steuer-Betrag |
Net1 | decimal(18,2) | Netto zum MwSt-Satz 1 |
VatCode1 | nvarchar(100) | MwSt-Code 1 |
VatRate1 | decimal(18,2) | MwSt-Satz 1 |
Tax1 | decimal(18,2) | Steuer zum MwSt-Satz 1 |
Net2 | decimal(18,2) | Netto zum MwSt-Satz 2 |
VatCode2 | nvarchar(100) | MwSt-Code 2 |
VatRate2 | decimal(18,2) | MwSt-Satz 2 |
Tax2 | decimal(18,2) | Steuer zum MwSt-Satz 2 |
Net3 | decimal(18,2) | Netto zum MwSt-Satz 3 |
VatCode3 | nvarchar(100) | MwSt-Code 3 |
VatRate3 | decimal(18,2) | MwSt-Satz 3 |
Tax3 | decimal(18,2) | Steuer zum MwSt-Satz 3 |
ReducedNet | decimal(18,2) | Netto gekürzt |
ReducedGross | decimal(18,2) | Brutto gekürzt |
ReducedTax | decimal(18,2) | Steuer gekürzt |
DiscountNet | decimal(18,2) | Rabatt Netto |
DiscountGross | decimal(18,2) | Rabatt Brutto |
DiscountTax | decimal(18,2) | Rabatt Steuer |
DiscountRate | decimal(18,2) | Rabatt-Rate |
AmountEligibleForCashDiscountNet | decimal(18,2) | Skontofähiger Betrag Netto |
AmountEligibleForCashDiscountGross | decimal(18,2) | Skontofähiger Betrag Brutto |
Currency | nvarchar(5) | Währung (ISO-Code 4217) |
HasOrder | bit | Angabe ob die Rechnung einen Bestellbezug hat |
DivergentOrderCreditor | bit | Angabe ob die Bestellung bei einem abweichenden Lieferanten erfolgt ist |
OrderNumber | nvarchar(250) | Bestellnummer(n) |
OrderCheck | bit | Ergebnis der Prüfung gegen die Bestellung |
GoodsReceiptCheck | bit | Ergebnis der Prüfung gegen den Wareneingang |
ThreeWayMatchCheck | bit | Ergebnis 3-Way-Match |
IgnoreOrderLimitErrors | bit | Angabe ob Fehler bei Limit Bestellungen ignoriert werden sollen |
DeliveryNoteID | nvarchar(250) | Lieferschein-Nummern |
Subject | nvarchar(250) | Betreff bei Mail-Eingang |
OwnCustomerID | nvarchar(50) | Eigene Kundennummer beim Lieferanten |
Department | nvarchar(50) | Interne Abteilung |
Comment | nvarchar(MAX) | Angaben aus dem Kommentar-Historien-Feld |
AssignedUsers | nvarchar(1500) | Liste aus Benutzern bei manueller Zuordnung |
AssignedUser | nvarchar(50) | Manuell zugeordneter Benutzer |
SqueezeID | nvarchar(50) | Eindeutige ID aus Squeeze |
SqueezeStatus | nvarchar(20) | Squeeze Status |
WorkflowID | nvarchar(50) | Technischer Workflow-Name |
WorkflowStart | datetime | Workflow-Start |
WorkflowEnd | datetime | Workflow-Ende |
ActionID | nvarchar(50) | Technischer Workflow-Aktions-Name |
ActionStatus | nvarchar(50) | Status zur Workflow-Aktion |
ActionStatus2 | nvarchar(50) | Status2 zur Workflow-Aktion |
ActionStart | datetime | Zeitstempel für den Beginn der Aktion |
ActionTask | nvarchar(150) | Aufgabenbeschreibung für die aktuelle Aktion |
ActionUser |
nvarchar(75) | Login zum aktuell sperrenden Benutzer |
ActionAccessProfile | nvarchar(75) | Technischer Zugriffsprofil-Name der aktuell sperrenden Gruppe |
ActionHeadRule | nvarchar(50) | Workflow-Regel ID |
ActionRulesHelper | nvarchar(50) | Technische Informationen |
ActionInfoJSON | nvarchar(MAX) | JSON-String mit Informationen zur aktuellen Workflow-Aktion |
AskQuestionUser | nvarchar(75) | Benutzer-Login bei einer Rückfrage |
TechAccessProfile | nvarchar(75) | Name technisches Zugriffsprofil für technische Workflow-Aktionen |
Rights | nvarchar(MAX) | GACL-Zurgiffsberechtigungen |
RightsInitial | nvarchar(MAX) | Initiale Zugriffsberechtigungen |
PrePostingStatus | nvarchar(20) | Status für Vorerfassung ("workflow", "ready", "transfer", "transferred", "preposted", "error") |
PrePostingNumber | nvarchar(50) | ID Vorerfassung |
PrePostingUser | Benutzer für die Vorerfassung | |
PostingStatus | nvarchar(20) | Buchungs-Status ("workflow", "ready", "transfer", "transferred", "posted", "error", "disqualified") |
PostingNumber | nvarchar(50) | Buchungsnummer |
PostingKey |
nvarchar(500) | Technischer Schlüssel bei Übertragung via SOAP |
PostingText1 | nvarchar(250) | Buchungstext 1 |
PostingText2 | nvarchar(250) | Buchungstext 2 |
PostingError | nvarchar(250) | Fehlermeldung bei der Buchung |
PostingPeriod | nvarchar(50) | Buchungsperiode |
PostingDate | date | Buchungsdatum |
PostingUser | nvarchar(75) | Benutzer für Buchung |
ConditionsOfPayment_ID | nvarchar(50) | Zahlungsbedingung ID |
ConditionsOfPayment_NetDays | int | Zahlungsbedingung Netto: Anzahl an Tagen |
ConditionsOfPayment_NetDate | date | Zahlungsbedingung Netto: Berechnetes Datum |
ConditionsOfPayment_NetSign | nvarchar(50) | Zahlungsbedingung Netto: Symbol für Eskalation |
ConditionsOfPayment_Percent1 | decimal(18,2) | Zahlungsbedingung Stufe 1: Prozentangabe |
ConditionsOfPayment_Days1 | int | Zahlungsbedingung Stufe 1: Anzahl an Tagen |
ConditionsOfPayment_Date1 | date | Zahlungsbedingung Stufe 1: Berechnetes Datum |
ConditionsOfPayment_1Sign | nvarchar(50) | Zahlungsbedingung Stufe 1: Symbol für Eskalation |
PaymentStatus | nvarchar(50) | Status der Zahlung ("unpaid", "payblock", "releasepayblock", "paid", "cash") |
PaymentBlockReason | nvarchar(250) | Grund für die Zahlsperre |
PaymentID | nvarchar(50) | ID für den Zahlungsvorgang |
PaymentList | nvarchar(50) | ID für die Zahlungsvorschlagsliste |
PaymentDate | date | Zahldatum |
DuplicateState | nvarchar(50) | Dublette Status ("unique", "duplicate", "allowed") |
DuplicateInfo | nvarchar(250) | Info zur Zulassung der Rechnungs-Dublette |
InvoiceID | nvarchar(50) | Interne ID |
ArchiveKey | nvarchar(250) | Archiv-Schlüssel |
InsertTS | datetime | Zeitstempel initialer INSERT |
UpdateTS | datetime | Zeitstempel letztes UPDATE |
Status | Beschreibung |
workflow | Initialer Status. Der Beleg befindet sich im Workflow und wurde noch nicht gebucht. |
ready | Der Status signalisiert, dass der Datensatz bereit zur Abholung ist. |
transfer | Optionaler Zwischen-Status, der beim Transfer-Start gesetzt werden kann. |
transferred | Optionaler Zwischen-Status, der nach dem Transfer gesetzt werden kann. |
posted | Status für gebuchte Rechnungen. |
error | Status für Fehler beim buchungsvorgang. |
disqualified | Status für ausgesteuerte Rechnungen. |
Am Workflow-Ende wird der Buchungs-Status im UserExit "ue_CheckFileDataAtTheEndOfTheWorkflow()" nochmals überprüft. hierdurch soll verhindert werden, dass Rechnungen ohne Übergabe an das Buchungssystem durch den Workflow laufen. Aus diesem Grund sollte der Buchungs-Status in der Tabelle auch dann auf "posted" gesetzt werden, wenn die Buchungs-Daten über andere Wege übertragen werden!
Status | Beschreibung |
workflow | Initialer Status. Der Beleg befindet sich im Workflow und wurde noch nicht vorerfasst. |
ready | Der Status signalisiert, dass der Datensatz bereit zur Abholung ist. |
transfer | Optionaler Zwischen-Status, der beim Transfer-Start gesetzt werden kann. |
transferred | Optionaler Zwischen-Status, der nach dem Transfer gesetzt werden kann. |
preposted | Status für vor-erfasste Rechnungen. |
error | Status für Fehler bei der Vor-Erfassung. |
Die Felder "PrePostingStatus", "PrePostingNumber", "PrePostingUser" und "PostingError" werden mit den Werten aus der Datenbank gesetzt.
Status | Beschreibung |
unpaid | Initialer Bezahl-Status. |
payblock | Status für eine Zahlsperre. |
releasepayblock | Rückmeldung, dass eine Zahlsperre entfernt werden kann (für projektspezifische Umsetzungen). |
paid | Status für eine bezahlte Rechnung. |
cash | Status für eine bar bezahlte Rechnung. |
No Comments