<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Konfiguration on dsyr.DataBridge</title><link>https://databridge.docs.dsyr.de/docs/konfiguration/</link><description>Recent content in Konfiguration on dsyr.DataBridge</description><generator>Hugo</generator><language>de</language><atom:link href="https://databridge.docs.dsyr.de/docs/konfiguration/index.xml" rel="self" type="application/rss+xml"/><item><title>Verbindungen (connections)</title><link>https://databridge.docs.dsyr.de/docs/konfiguration/verbindungen/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://databridge.docs.dsyr.de/docs/konfiguration/verbindungen/</guid><description>&lt;p&gt;Die Tabelle &lt;code&gt;connections&lt;/code&gt; ist die Grundlage jeder DataBridge-Konfiguration. Sie enthält&#10;die Zugangsdaten zu allen Systemen, mit denen die DataBridge kommuniziert — sowohl&#10;Quell- als auch Zielsysteme.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="tabellenstruktur"&gt;Tabellenstruktur&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Spalte&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Wert&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Beschreibung&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;PartitionKey&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;connection&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Muss immer &lt;code&gt;connection&lt;/code&gt; lauten&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;RowKey&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;frei wählbar&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Eindeutiger Name dieser Verbindung. Wird in der &lt;code&gt;jobs&lt;/code&gt;-Tabelle als Referenz verwendet.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Timestamp&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;automatisch&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Systemseitig gesetzt, nicht bearbeitbar&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Type&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Connector-Typ&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Gibt an, um welches System es sich handelt (siehe Tabelle unten)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Json&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;JSON-Objekt&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;System-spezifische Verbindungsparameter (unterscheidet sich je nach &lt;code&gt;Type&lt;/code&gt;)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;div class="alert alert-warning" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;PartitionKey ist nicht frei wählbar&lt;/div&gt;&#10;&lt;p&gt;Die DataBridge liest die Tabelle ausschließlich mit dem Filter&#10;&lt;code&gt;PartitionKey eq 'connection'&lt;/code&gt;. Zeilen mit einem abweichenden PartitionKey werden &lt;strong&gt;ohne&#10;Fehlermeldung und ohne Warnung ignoriert&lt;/strong&gt; — die Verbindung existiert dann für die&#10;DataBridge nicht, und jeder Job, der sie referenziert, wird als unvollständig verworfen.&lt;/p&gt;</description></item><item><title>Jobs (jobs)</title><link>https://databridge.docs.dsyr.de/docs/konfiguration/jobs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://databridge.docs.dsyr.de/docs/konfiguration/jobs/</guid><description>&lt;p&gt;Ein &lt;strong&gt;Job&lt;/strong&gt; beschreibt genau eine Synchronisationsrichtung zwischen zwei Systemen:&#10;er verbindet eine Quelltabelle mit einer Zieltabelle, legt den Zeitplan fest und&#10;verweist auf das zugehörige Mapping.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="tabellenstruktur"&gt;Tabellenstruktur&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Spalte&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: center"&gt;Pflicht&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Beschreibung&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;PartitionKey&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;✅&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Muss immer &lt;code&gt;job&lt;/code&gt; lauten.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;RowKey&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;✅&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Eindeutiger Jobname. Wird im Logging und als Referenz für ResponseJobs verwendet.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;IsActive&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;✅&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;true&lt;/code&gt; = Job wird von &lt;code&gt;GetChanges&lt;/code&gt; ausgeführt. &lt;code&gt;false&lt;/code&gt; = Job wird nur indirekt (als ResponseJob) aufgerufen.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;SourceConnection&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;✅&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;RowKey-Referenz auf einen Eintrag in der &lt;code&gt;connections&lt;/code&gt;-Tabelle (Quelldaten).&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;TargetConnection&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;✅&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;RowKey-Referenz auf einen Eintrag in der &lt;code&gt;connections&lt;/code&gt;-Tabelle (Zieldaten).&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Mapping&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;✅&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;PartitionKey-Referenz auf eine Gruppe von Einträgen in der &lt;code&gt;mappings&lt;/code&gt;-Tabelle.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Source&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;—&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Quellressource (Tabelle, Entität, Pfad oder Aktion). Überschreibt die &lt;code&gt;SourceTable&lt;/code&gt; der Mapping-Zeilen für diesen Job (siehe &lt;a href="https://databridge.docs.dsyr.de/docs/konfiguration/jobs/#source-und-target--job-eigene-ressourcenpfade"&gt;unten&lt;/a&gt;).&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Target&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;—&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Zielressource (Tabelle, Entität, Pfad oder Aktion). Überschreibt die &lt;code&gt;TargetTable&lt;/code&gt; der Mapping-Zeilen für diesen Job (siehe &lt;a href="https://databridge.docs.dsyr.de/docs/konfiguration/jobs/#source-und-target--job-eigene-ressourcenpfade"&gt;unten&lt;/a&gt;).&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Order&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;✅&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Ganzzahl. Legt die Ausführungsreihenfolge fest — muss über &lt;strong&gt;alle&lt;/strong&gt; Jobs eindeutig sein.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;WatermarkField&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;—&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Feldname im &lt;strong&gt;Quellsystem&lt;/strong&gt;, der als Änderungsindikator genutzt wird (meistens ein Datums-/Zeitstempelfeld). Nur bei &lt;code&gt;WatermarkType&lt;/code&gt; = &lt;code&gt;date&lt;/code&gt; oder &lt;code&gt;datetime&lt;/code&gt; erforderlich; bei &lt;code&gt;string&lt;/code&gt; (Dataverse Change Tracking) bleibt das Feld leer.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;WatermarkType&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;✅&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Typ des Watermark-Wertes: &lt;code&gt;date&lt;/code&gt;, &lt;code&gt;datetime&lt;/code&gt; oder &lt;code&gt;string&lt;/code&gt; (Details: &lt;a href="../watermarks/"&gt;Watermarks&lt;/a&gt;).&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Filter&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;—&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Filterausdruck für die Quellanfrage. Format ist systemabhängig (siehe unten).&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Schedule&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;—&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;CRON-Ausdruck (6-stellig, NCrontab). Wenn leer, läuft der Job bei jedem Timer-Aufruf.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Action&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;—&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Steuert, welche Änderungsarten gelesen werden, oder benennt eine Aktion. Leer = &lt;code&gt;NewUpdate&lt;/code&gt;. &lt;strong&gt;Wirkt bei den CRUD-Werten (&lt;code&gt;Delete&lt;/code&gt;, &lt;code&gt;DeleteOnUpdate&lt;/code&gt;) nur bei D365CE als Quellsystem&lt;/strong&gt; (siehe unten); ein nicht erkannter Wert schaltet den Job auf &lt;code&gt;InvokeAction&lt;/code&gt; (siehe unten).&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Priority&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;—&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Standard&lt;/code&gt; (Vorgabe), &lt;code&gt;High&lt;/code&gt; oder &lt;code&gt;Low&lt;/code&gt;. Steuert die Service-Bus-Queue.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;ResponseJob&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;—&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;RowKey eines anderen Jobs, der nach erfolgreichem Schreiben automatisch ausgeführt wird.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;IsValid&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;—&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Reserviert. Die Spalte kommt in bestehenden Tabellen vor, wird von der DataBridge aber nicht gelesen und hat &lt;strong&gt;keine Wirkung&lt;/strong&gt;.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;div class="alert alert-warning" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;PartitionKey ist nicht frei wählbar&lt;/div&gt;&#10;&lt;p&gt;Die DataBridge liest die Tabelle ausschließlich mit dem Filter &lt;code&gt;PartitionKey eq 'job'&lt;/code&gt;.&#10;Zeilen mit einem abweichenden PartitionKey werden &lt;strong&gt;ohne Fehlermeldung und ohne Warnung&#10;ignoriert&lt;/strong&gt; — der Job existiert dann für die DataBridge schlicht nicht.&lt;/p&gt;</description></item><item><title>Mappings (mappings)</title><link>https://databridge.docs.dsyr.de/docs/konfiguration/mappings/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://databridge.docs.dsyr.de/docs/konfiguration/mappings/</guid><description>&lt;p&gt;Die &lt;code&gt;mappings&lt;/code&gt;-Tabelle ist die mächtigste Konfigurationsebene der DataBridge.&#10;Sie legt für jedes Feld fest: woher kommt der Wert, wohin geht er, und wie wird&#10;er unterwegs transformiert.&lt;/p&gt;&#10;&lt;p&gt;Ein Mapping ist eine &lt;strong&gt;Gruppe von Zeilen&lt;/strong&gt; in der Tabelle — alle mit demselben&#10;&lt;code&gt;PartitionKey&lt;/code&gt;. Jede Zeile beschreibt genau eine Feld-Zuordnung.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="tabellenstruktur"&gt;Tabellenstruktur&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Spalte&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: center"&gt;Pflicht&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Beschreibung&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;PartitionKey&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;✅&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Name des Mappings. Wird im Job unter &lt;code&gt;Mapping&lt;/code&gt; referenziert. Im Gegensatz zu &lt;code&gt;jobs&lt;/code&gt; und &lt;code&gt;connections&lt;/code&gt; ist der PartitionKey hier &lt;strong&gt;frei wählbar&lt;/strong&gt; — er dient der Gruppierung.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;RowKey&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;✅&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Eindeutiger Bezeichner innerhalb des Mappings. Konvention: &lt;code&gt;_quellfeld__zielfeld_&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;SourceTable&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;✅&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Name der Quelltabelle/-entität. Muss innerhalb eines Mappings konsistent sein.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;SourceField&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;—&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Name des Quellfeldes. Kann leer sein (bei &lt;code&gt;DefaultValue&lt;/code&gt;) oder mit &lt;code&gt;_&lt;/code&gt; beginnen — dann handelt es sich um ein &lt;a href="https://databridge.docs.dsyr.de/docs/konfiguration/mappings/#virtuelle-felder"&gt;virtuelles Feld&lt;/a&gt;.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;TargetTable&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;✅&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Name der Zieltabelle/-entität. Muss innerhalb eines Mappings konsistent sein.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;TargetField&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;✅&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Name des Zielfeldes. Muss dem tatsächlichen API-/Spaltenname entsprechen.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;TargetKey&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;—&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;JSON-Objekt. Definiert, wie ein bestehender Datensatz im Zielsystem identifiziert wird (für Upsert-Logik).&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;SourceOperation&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;—&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;JSON-Objekt der Form &lt;code&gt;{ &amp;quot;Operations&amp;quot;: [ … ] }&lt;/code&gt;. Transformation beim &lt;strong&gt;Lesen&lt;/strong&gt; aus der Quelle.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;TargetOperation&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: center"&gt;—&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;JSON-Objekt der Form &lt;code&gt;{ &amp;quot;Operations&amp;quot;: [ … ] }&lt;/code&gt;. Transformationen beim &lt;strong&gt;Schreiben&lt;/strong&gt; ins Ziel.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="rowkey-namenskonvention"&gt;RowKey-Namenskonvention&lt;/h3&gt;&#10;&lt;p&gt;Die empfohlene Konvention für den RowKey: &lt;code&gt;_quellfeld__zielfeld_&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Watermarks (watermark)</title><link>https://databridge.docs.dsyr.de/docs/konfiguration/watermarks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://databridge.docs.dsyr.de/docs/konfiguration/watermarks/</guid><description>&lt;p&gt;Die Tabelle &lt;code&gt;watermark&lt;/code&gt; ist die Gedächtnisfunktion der DataBridge. Nach jedem&#10;Job-Lauf wird hier gespeichert, bis zu welchem Stand die Daten gelesen wurden.&#10;Beim nächsten Lauf startet der Quellabruf genau an diesem Punkt.&lt;/p&gt;&#10;&lt;p&gt;Diese Tabelle wird vom Deployment angelegt und zur Laufzeit automatisch befüllt —&#10;manuelle Einträge sind normalerweise nicht nötig. Es gibt jedoch Situationen, in denen&#10;ein gezielter Eingriff sinnvoll ist.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="tabellenstruktur"&gt;Tabellenstruktur&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Spalte&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Wert&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Beschreibung&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;PartitionKey&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;watermark&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Fest vorgegeben — immer &lt;code&gt;watermark&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;RowKey&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Jobname&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Entspricht dem RowKey des zugehörigen Jobs in der &lt;code&gt;jobs&lt;/code&gt;-Tabelle&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Timestamp&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;automatisch&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Systemseitig gesetzt, nicht bearbeitbar&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Watermark&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Letzter Stand&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Format abhängig vom &lt;code&gt;WatermarkType&lt;/code&gt; des Jobs (siehe unten)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;LastCronRun&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Zeitstempel&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Beginn der letzten Ausführung des Jobs. Basis für die CRON-Intervallprüfung.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="watermark-typen"&gt;Watermark-Typen&lt;/h2&gt;&#10;&lt;p&gt;Der Typ wird im Job über das Feld &lt;code&gt;WatermarkType&lt;/code&gt; festgelegt und bestimmt,&#10;wie der gespeicherte Wert interpretiert wird.&lt;/p&gt;</description></item></channel></rss>