Datenbank-Tabellen Die Übergabe kann über die Standard-Datenbank-Tabellen "Invoice_Posting_Head" und "Invoice_Posting_Pos" erfolgen. 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   Es werden immer alle Feldwerte zu den Feldern aus der Feldkonfiguration in die Tabelle geschrieben, bei denen die Checkbox "SQL Insert?" aktiviert wurde. Ausgenommen sind die Felder "FileID", "PrePostingStatus", "PostingStatus" und "PaymentStatus". Über die "FileID" wird das Update ausgeführt und über die Status-Felder werden die entsprechenden technischen Workflow-Aktionen gesteuert. Bei der technischen Aktion " Posting " für die Buchungsschnittstelle wird im ersten Schritt die UserExit-Funktion " ue_Post() " aufgerufen (Skript " DEXPRO__UserExit_TechActionLib "). In der Funktion wird zunächst der aktuelle Buchungsstatus überprüft. Es gibt folgende Status: 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. Eine bereits gebuchte Rechnung solle nicht nochmals gebucht werden können. Sobald der Status auf "ready" gestellt wird hat das Workflow-System in der Regel keinen Einfluss mehr auf die weitere Verarbeitung. Die Status "transfer" und "transferred" sind optional und werden selten verwendet. Daher kann es selbst beim Status "ready" sein, dass die Daten bereits übertragen werden. Daher werden auch diese Status in der Standardauslieferung nicht überschrieben. Das Verhalten kann in dem UserExit angepasst werden. Im Normalfall werden die Rechnungen nur einmal den Workflow-Schritt "Posting" durchlaufen. Im User-Exit werden nochmals die Positions-Daten und die Kopf-Daten geschrieben. Am Ende wird der Buchungs-Status auf "ready" gesetzt. Der Rechnungsbeleg wird im Anschluss an die technisch Gruppe "TechAccessProfile" gesendet. Das Job-Skript " Invoice_JOB_CheckPostingStatus " prüft in den konfigurierten Abständen den Buchungsstatus der wartenden Rechnungen. Beim Buchungsstatus "posted" werden die Felder "PostingStatus", "PostingNumber", "PostingPeriod", "PostingDate", "PostingUser" und "PostingError" mit den Werten aus der Datenbank gesetzt und die Rechnung-Mappe wird im Workflow weiter geleitet. Das Skript schreibt ein separates Log (...\DEXPRO\Logs\), sobald mindestens ein Beleg untersucht wird. Bei Fehlern in der Buchungs-Schnittstelle kann der Status "error" zurückgemeldet werden. Die Fehler-Beschreibung kann in das Feld "Posting Error" geschrieben werden. Die Rechnungs-Mappe wird in dem Fall an die im Feld "ActionAccessProfile" hinterlegte Gruppe mit der im Feld "TechActionErrorTask" hinterlegten Aufgaben-Beschreibung gesendet. 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!   Auch die Vorerfassung und der Bezahlvorgang können über diese Schnittstellen-Tabelle und entsprechende technischen Aktionen " PrePosting " und " Payment " abgebildet werden. Der Ablauf ist ähnlich. In beiden Fällen werden zunächst die Rechnungs-Daten in die Tabellen geschrieben. Im Anschluss läuft die Mappe weiter zur technischen Gruppe. Bei der Vorerfassung (" PrePosting ") prüft das Job-Skript " Invoice_JOB_CheckPrePostingStatus " das Status-Feld " PrePostingStatus ". Es gibt die folgenden Status: 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. Bei der Bezahlung (" Payment ") erfolgt der Abgleich hingegen über das Status-Feld " PaymentStatus ". Das Job-Skript " Invoice_JOB_CheckPrePostingStatus " prüft in den konfigurierten Abständen den Buchungsstatus der wartenden Rechnungen und erwartet den Status "paid" oder "cash". 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. Die Felder "PaymentStatus", "PaymentID", "PaymentList", "PaymentDate" und "PostingError" werden mit den Werten aus der Datenbank gesetzt. Tabelle "Invoice_Posting_Pos" für Positionsdaten In die Tabelle werden die Positionsdaten der Rechnung geschrieben. Über die Auto-Inkrement-Spalte "ID" erhält jede Zeile eine eindeutige ID. Diese ID wird zurück in die Zeile der Rechnungs-Mappe geschrieben. Die Zuordnung zur Rechnung erfolgt auch hier über die Spalte "FileID". Bei einem Rechnungs-Split enthält das Feld sowohl die ID der Haupt-Mappe als auch der Split-Mappe. Sobald in einer Gentable-Zeile eine eindeutige ID angegeben ist werden die Daten via UPDATE aktualisiert. Während des Schreibvorgangs wird die Spalte "WorkStatus" verwendet. Am Ende werden nicht benötigte Zeilen gelöscht. Spaltenname Datentyp Beschreibung ID (KEY) bigint Auto-Inkrement-Spalte FileID nvarchar(100) Eindeutige ID zur Rechnungs-Mappe bzw. Kombination aus der ID einer Split-Mappe und der Hauptmappe bei Rechnungs-Splits. LineNumber int Rechnungs-Zeilennummer SqueezePosNo int In Squeeze erkannte Zeilennummer (noch ohne Funktion - ggf. zum Markieren von erkannten Rechnungspositionen auf der Rechnung) ExtraLine bit Angabe, ob es sich um eine Zu-/Abschlagszeile handelt. Principal nvarchar(50) Zeilen-Mandant CompanyCode nvarchar(50) Zeilen-Buchungskreis OrderError nvarchar(500) Fehlermeldung bei Bestellabweichung GoodsReceiptError nvarchar(500) Fehlermeldung bei Abweichung zum Wareneingang GoodsReceiptCheck bit Ergebnis der Prüfung gegen den Wareneingang GoodsReceiptID nvarchar(100) Wareneingangs-ID GoodsReceiptPosition nvarchar(100) Wareneingangs-Positionsnummer DeliveryNoteID nvarchar(50) Lieferscheinnummer OrderNumber nvarchar(100) Bestellnummer OrderPos nvarchar(100) Bestellposition (die Kombination aus Bestellnummer + Bestellposition muss zwingend eindeutig sein) ArticleCode nvarchar(100) Artikelnummer vom Lieferanten ArticleCodeIntern nvarchar(100) Artikelnummer intern ArticleDescription nvarchar(500) Artikelbeschreibung ArticleDescriptionOrder nvarchar(500) Artikelbeschreibung bei der Bestellung ProductGroup nvarchar(50) Produktgruppe OrderDate date Bestelldatum DeliveryDate date Tatsächliches Lieferdatum DeliveryDateExpected date Erwartetes Lieferdatum RequesterLogin nvarchar(75) Login des Bestell-Anforderers DebitCredit nvarchar(10) Soll ("debit") oder Haben ("credit") Quantity decimal(18,5) Menge QuantityReduced decimal(18,5) Reduzierte Menge QuantityOrdered decimal(18,5) Bestellte Menge QuantityDelivered decimal(18,5) Gelieferte Menge QuantityOpen decimal(18,5) Offene Bestellmenge QuantityUnit nvarchar(50) Mengeneinheit QuantityUnitOrdered nvarchar(50) Bestellte Mengeneinheit Price decimal(18,3) Preis PriceOrdered decimal(18,3) Preis bei Bestellung PriceUnit decimal(18,5) Preiseinheit PriceUnitOrdered decimal(18,5) Preiseinheit bei Bestellung Net decimal(18,3) Nettobetrag Currency nvarchar(10) Währung CurrencyChangeRate decimal(18,6) Wechselkurs NetPrincipal decimal(18,3) Nettobetrag in Währung des Mandanten CurrencyPrincipal nvarchar(10) Währung des Mandanten VatRate decimal(18,2) Mwst-Satz VatCode nvarchar(100) MwSt-Code VatRate2 decimal(18,2) MwSt-Satz 2 VatCode2 nvarchar(100) MwSt-Code 2 Tax decimal(18,2) Steuerbetrag Gross decimal(18,2) Bruttobetrag DiscountRate decimal(18,2) Rabatt in Prozent DiscountNet decimal(18,3) Netto nach Rabatt DiscountGross decimal(18,3) Brutto nach Rabatt DiscountTax decimal(18,3) Steuer nach Rabatt ReductionRate decimal(18,2) Kürzungsrate in Prozent ReductionNet decimal(18,3) Netto Kürzung um ReducedNet decimal(18,3) Netto gekürzter Betrag ReductionGross decimal(18,3) Brutto Kürzung um ReducedGross decimal(18,3) Brutto gekürzter Betrag ReductionTax decimal(18,3) Steuer Kürzung um ReducedTax decimal(18,3) Steuer gekürzter Betrag AmountEligibleForCashDiscountNet decimal(18,3) Skonto-Fähiger Betrag Netto AmountEligibleForCashDiscountGross decimal(18,3) Skonto-Fähiger Betrag Brutto GLAccount nvarchar(50) Sachkonto ID GLAccount_Desc nvarchar(150) Sachkonto Beschreibung CostCenter nvarchar(50) Kostenstelle CostCenter_Desc nvarchar(150) Kostenstelle Beschreibung CostCenter_Responsible nvarchar(150) Kostenstellenverantwortlicher CostUnit nvarchar(50) Kostenträger CostUnit_Desc nvarchar(150) Kostenträger Beschreibung Custom1 nvarchar(50) Projektspezifisches Feld für Kontierung 1 Custom1_Desc nvarchar(150) Projektspezifisches Feld für Kontierung 1 Beschreibung Custom2 nvarchar(50) Projektspezifisches Feld für Kontierung 2 Custom2_Desc nvarchar(150) Projektspezifisches Feld für Kontierung 2 Beschreibung Custom3 nvarchar(50) Projektspezifisches Feld für Kontierung 3 Custom3_Desc nvarchar(150) Projektspezifisches Feld für Kontierung 3 Beschreibung Custom4 nvarchar(50) Projektspezifisches Feld für Kontierung 4 Custom4_Desc nvarchar(150) Projektspezifisches Feld für Kontierung 4 Beschreibung Custom5 nvarchar(50) Projektspezifisches Feld für Kontierung 5 Custom5_Desc nvarchar(150) Projektspezifisches Feld für Kontierung 5 Beschreibung Custom6 nvarchar(50) Projektspezifisches Feld für Kontierung 6 Custom6_Desc nvarchar(150) Projektspezifisches Feld für Kontierung 6 Beschreibung Custom7 nvarchar(50) Projektspezifisches Feld für Kontierung 7 Custom7_Desc nvarchar(150) Projektspezifisches Feld für Kontierung 7 Beschreibung Custom8 nvarchar(50) Projektspezifisches Feld für Kontierung 8 Custom8_Desc nvarchar(150) Projektspezifisches Feld für Kontierung 8 Beschreibung Custom9 nvarchar(50) Projektspezifisches Feld für Kontierung 9 Custom9_Desc nvarchar(150) Projektspezifisches Feld für Kontierung 9 Beschreibung Custom10 nvarchar(50) Projektspezifisches Feld für Kontierung 10 Custom10_Desc nvarchar(150) Projektspezifisches Feld für Kontierung 10 Beschreibung OrderLimitCheckbox bit Angabe ob ein Bestell-Limit geprüft werden soll OrderLimitAmount decimal(18,2) Limit-Betrag OrderCustomBit1 bit Projektspezifisches zusätzliches Bit-Feld für Bestelldaten OrderCustomBit2 bit Projektspezifisches zusätzliches Bit-Feld für Bestelldaten OrderCustomDate1 date Projektspezifisches zusätzliches Datums-Feld für Bestelldaten OrderCustomDate2 date Projektspezifisches zusätzliches Datums-Feld für Bestelldaten OrderCustomDatetime1 datetime Projektspezifisches zusätzliches Zeitstempel-Feld für Bestelldaten OrderCustomNumeric1 decimal(18,2) Projektspezifisches zusätzliches Betrags-Feld für Bestelldaten OrderCustomNumeric2 decimal(18,2) Projektspezifisches zusätzliches Betrags-Feld für Bestelldaten OrderCustomString1 nvarchar(50) Projektspezifisches zusätzliches String-Feld für Bestelldaten OrderCustomString2 nvarchar(50) Projektspezifisches zusätzliches String-Feld für Bestelldaten OrderCustomString3 nvarchar(50) Projektspezifisches zusätzliches String-Feld für Bestelldaten StampCheckboxValidation bit Prüfstempel Checkbox Validierung StampDatetimeValidation datetime Prüfstempel Zeitstempel Validierung StampLoginValidation nvarchar(75) Prüfstempel Login Validierung StampNameValidation nvarchar(150) Prüfstempel Name Validierung StampCheckboxFinalCheck bit Prüfstempel Checkbox Finale Prüfung StampDatetimeFinalCheck datetime Prüfstempel Zeitstempel Finale Prüfung StampLoginFinalCheck nvarchar(75) Prüfstempel Login Finale Prüfung StampNameFinalCheck nvarchar(150) Prüfstempel Name Finale Prüfung StampCheckboxAppr1 bit Prüfstempel Checkbox Prüfung 1 StampDatetimeAppr1 datetime Prüfstempel Zeitstempel Prüfung 1 StampLoginAppr1 nvarchar(75) Prüfstempel Login Prüfung 1 StampNameAppr1 nvarchar(150) Prüfstempel Name Prüfung 1 ...2-5   ...weitere Prüfstempel 2-5 StampCheckboxRel1 bit Prüfstempel Checkbox Freigabe 1 StampDatetimeRel1 datetime Prüfstempel Zeitstempel Freigabe 1 StampLoginRel1 nvarchar(75) Prüfstempel Login Freigabe 1 StampNameRel1 nvarchar(150) Prüfstempel Name Freigabe 1 ...2-5   ...weitere Prüfstempel 2-5 StampCheckboxCust1 bit Prüfstempel Checkbox projektspezifisch 1 StampDatetimeCust1 datetime Prüfstempel Zeitstempel projektspezifisch 1 StampLoginCust1 nvarchar(75) Prüfstempel Login projektspezifisch 1 StampNameCust1 nvarchar(150) Prüfstempel Name projektspezifisch 1 ...2-5    ...weitere Prüfstempel 2-5 InsertTS datetime Zeitstempel für initialen Insert UpdateTS datetime Update Zeitstempel WorkStatus nvarchar(10) Arbeitstatus für Insert und Update (technisch)