Paketelemente
Die Elemente, die Sie verwenden können, hängen vom Typ der SAP System-Verbindung ab:
- RFC-Verbindung: Tabellen, Virtuelle Tabellen, Filter, Repositories, Echtzeitobjekte und Berichte
- OData-Verbindung: Nur Tabellen, Virtuelle Tabellen und Filter. Repositories, Echtzeitobjekte und Berichte sind nicht verfügbar.
Die meisten Abschnitte eines Elements besitzen die gleichen Aktionen:
| Aktion | Funktionsweise |
|---|---|
| Hinzufügen | Fügt einen neuen Eintrag zur Sektion hinzu |
| Gehe zu, Öffnen | Führt Sie zum verknüpften Element im Paket |
| Zahnradsymbol | Öffnet die Konfiguration des Eintrags |
| Bucket | Löscht den Eintrag oder die Link zwischen zwei Elementen |
Wenn ein Abschnitt eine Dropdown-Liste enthält, wählen Sie damit den gewünschten Eintrag aus. Sie fügen das Element selbst mit dem entsprechenden Button oben hinzu. Der restliche Teil dieser Seite beschreibt nur das, was spezifisch für ein Element oder einen Abschnitt ist.
Tabellen
Tabellen legen fest, welche SAP-Tabellen extrahiert werden. Alle hier hinzugefügten Tabellen werden später als Ergebnistabellen gespeichert.
Was Sie hinzufügen, hängt von der Verbindung des Pakets ab:
- RFC-Verbindung: Suchen Sie die SAP-Tabelle nach Name oder geben Sie sie direkt ein, z. B.
T001. - OData-Verbindung: Sie fügen ein Entity Set hinzu. Ein Entity Set ist ein Datensatz, der von einem OData-Service bereitgestellt wird, und dab Nexus behandelt diesen wie eine Tabelle. Suchen Sie den Service, erweitern Sie ihn und wählen Sie das Entity Set aus. Sie können auch den vollständigen Pfad eingeben. Dieser wird zum Tabellennamen, z. B.
/sap/opu/odata4/sap/cdi_cds/cdi_cds/sap/i_companycode/0001/MasterData.
Klicken Sie eine hinzugefügte Tabelle an, um einen Alias (anderen Namen für die Tabelle) zu vergeben oder sie mit dem Bucket aus dem Paket zu entfernen.
Load Type
Der Load Type wird nur für OData Entity Sets angezeigt, die Delta-Tracking unterstützen.
- Full Load: extrahiert die vollständigen Daten
- Delta Load: extrahiert im ersten Durchlauf die vollständigen Daten und anschließend nur die geänderten Datensätze. Siehe CDC mit SAP OData.
Strategie
Die Strategie steuert das Schreibverhalten im Zielsystem. Die Data Strategy der Task kann sie überschreiben: Merge und Append wirken nur, wenn auch die Data Strategy das Zusammenführen erlaubt. Mit Keep Database - Overwrite wird beispielsweise eine Tabelle mit der Strategie Merge überschrieben. Sie finden alle Kombinationen unter Zusammenspiel von Data Strategy und Table Strategy.
- Merge: extrahierte Zeilen werden mit bestehenden Daten zusammengeführt und aktualisieren diese
- Overwrite: löscht die Tabelle zu Beginn der Extraktion
- Append: fügt die Daten den bestehenden Daten hinzu
- Layout: erstellt nur die Tabellenstruktur im Ziel und extrahiert keine Daten
Tabellenfelder
Wählen Sie die Felder aus, die extrahiert werden sollen. Primärschlüssel werden immer automatisch ausgewählt und können nicht abgewählt werden.
- Feldliste: enthält alle Felder der ausgewählten Tabelle. Wählen oder abwählen Sie ein Feld, um dessen Daten zu extrahieren oder nicht.
- Sortierung der Felder: listet alle Felder nach Standard (gleiche Reihenfolge wie in SAP), nach Auswahl, nach Name, nach Beschreibung oder nach Feldlänge
- Aktualisieren: lädt die Feldliste neu
- Auswahl umkehren: wählt alle Felder außer den Primärschlüsseln aus oder ab
- Suche: sucht nach bestimmten Feldern
Tabellenfilter und Repositories
Bei einer OData-Verbindung sind nur Filter verfügbar, da es keine Repositories gibt.
Filter wenden Filter auf Tabellenfelder an. Fügen Sie einen bestehenden Filter hinzu, wählen Sie ihn unter Filter und wählen Sie das Feld, auf das er angewendet werden soll. "Gehe zu Filter" öffnet die Filtereinstellungen.
Abhängigkeit fragt die Tabelle abhängig von Repository-Werten ab. Wählen Sie ein bestehendes Repository unter Repository. Mit dem Zahnradsymbol ändern Sie den Typ der Abhängigkeit oder aktivieren Custom Mapping. dab Nexus verknüpft Felder automatisch, wenn sie im Repository und in der Tabelle den gleichen Namen haben (Groß- und Kleinschreibung beachten). Wenn die Namen abweichen, Link Sie die Felder selbst mittels Custom Mapping. Weitere Informationen zu den Abhängigkeitstypen finden Sie unter Repository-Abhängigkeiten.
Löschabhängigkeit löscht Zeilen dieser Tabelle im Zielsystem basierend auf Repository-Werten. Die Tabelle wird zum Löschziel. Eine Tabelle kann nur eine Löschabhängigkeit haben. Wählen Sie ein bestehendes Repository unter Repository. Mit dem Zahnradsymbol ordnen Sie die Repository-Felder den Primärschlüsselfeldern der Tabelle zu. Eine vollständige Erklärung finden Sie unter Löschabhängigkeiten.
Ziel-Repositories schreiben Tabellenwerte in ein Repository. Nutzen Sie "Hinzufügen", um ein Ziel-Repository hinzuzufügen. Mit dem Zahnradsymbol passen Sie die Feldzuordnung mittels Custom Mapping an, wie unter Abhängigkeit beschrieben.
Virtuelle Tabellen
Virtuelle Tabellen werden wie normale Tabellen extrahiert, aber dab Nexus verwirft ihre Daten nach der Extraktion. Sie erscheinen nicht als Ergebnistabellen.
Verwenden Sie eine virtuelle Tabelle, wenn Sie nicht an den eigentlichen Daten interessiert sind, sondern bestimmte Werte zum Filtern anderer Tabellen benötigen. Eine virtuelle Tabelle liefert diese Werte meist an ein Repository, und Zieltabellen werden anschießend abhängig davon abgefragt. Das ist beispielsweise nützlich für Delta Loads: Die virtuelle Tabelle ermittelt, welche Datensätze sich geändert haben, die Zieltabellen extrahieren dann nur diese.
Fügen Sie eine virtuelle Tabelle genauso hinzu wie eine normale Tabelle. Auch hier können Sie einen Alias vergeben. Alle Abschnitte sind identisch wie bei Tabellen, nur der Abschnitt "Strategie" fehlt.
Filter
Filter beschränken die Werte einer Extraktion. Sie werden auf Tabellen oder virtuelle Tabellen angewendet sowie auf Berichte und Echtzeitobjekte über deren Relationen.
Den Namen eines Filters können Sie frei wählen.
Wenn Sie eine der folgenden Bezeichnungen für Ihren Filter verwenden, wird der Filtertyp automatisch auf Lookup gesetzt: Fiscal Year, Companycode, Company Code, Time Period
Filter-Einstellungen
- Erforderlich: Werte müssen für diesen Filter beim Anlegen einer Task gesetzt werden
- Offline: Filterung erfolgt clientseitig
- Filter Scope Determination: Ebene, auf der die Werte eingegeben werden, siehe unten
- Datentyp: Datentyp des Filterwerts, entweder String, Date oder Numeric
- Filtertyp:
- Input: Werte werden beim Task-Anlegen eingegeben
- Fixed Value: Werte sind im Paket voreingestellt
- Lookup: Werte werden während der Taskanlage aus SAP ausgewählt
- Fiscal Year: Geben Sie das Geschäftsjahr ein oder setzen Sie es nach dem Task-Zeitplan
Filter Scope Determination
Der Scope steuert, auf welcher Ebene Sie Filterwerte beim Anlegen einer Task eingeben. Er gilt für die Filtertypen Input, Lookup und Fiscal Year. Fixed Value Filter haben bereits ihre Werte, daher hat der Scope keine Wirkung.
- Per Task: eine Wertegruppe für die gesamte Task. Nutzen Sie das, wenn die Werte für alle SAP-Systeme und für Initial- und Delta-Variante gleich sind.
- Pro SAP System: unterschiedliche Werte für jede SAP System der Task. Verwenden Sie das, falls die Werte beispielsweise zwischen den Systemen (z. B. Buchungskreisen) variieren.
- Pro Variante: unterschiedliche Werte für die Initial-Variante und die Delta-Variante. Wählen Sie dies, wenn der erste Durchlauf und die folgenden unterschiedliche Werte benötigen, etwa eine lange Periode für den Initial Load und eine kürzere für Delta.
- Automatisch: dab Nexus wählt die Ebene basierend auf dem Filtertyp. Nutzen Sie das, sofern keine spezielle Ebene notwendig ist.
Automatisch wählt diese Ebenen:
| Filtertyp | Ebene |
|---|---|
| Input mit Datentyp Date | Pro Variante |
| Input mit anderem Datentyp | Pro Task |
| Lookup | Pro SAP System |
| Fiscal Year | Pro Variante |
Bedingung
Die Bedingung steuert, welche Filterklausel erzeugt wird.
| Bedingung | Beschreibung | Beispiel |
|---|---|---|
| Equal | Beide Werte sind gleich | 100 = 100 |
| Not Equal | Beide Werte sind ungleich | 100 <> 99 |
| Greater | Ein Wert ist größer als der andere | 100 > 99 |
| Greater Equal | Ein Wert ist größer oder gleich dem anderen | 100 >= 99/100 |
| Less | Ein Wert ist kleiner als der andere | 99 < 100 |
| Less Equal | Ein Wert ist kleiner oder gleich dem anderen | 99/100 <= 100 |
| Like | Ein Wert enthält Teile des anderen | %est is contained in Test |
| Not Like | Ein Wert enthält keine Teile des anderen | %ame is not contained in Test |
| Between | Ein Wert innerhalb eines bestimmten Bereichs | 5 is between 3 and 7 |
| In | Ein Wert existiert in einer Reihe anderer Werte | DE exists in the series 'DE, EN, IT, FR' |
| Not In | Ein Wert existiert nicht in einer anderen Wertegruppe | DE doesn't exist in the series 'EN, IT, FR' |
| Empty | Ein Wert (Zeichenkette) muss leer sein | Value = '' |
| Not Empty | Ein Wert (Zeichenkette) muss gefüllt sein | Value = 'Here is a text' |
Filter-Relationen
Relationen legen fest, wo der Filter angewendet wird. In jedem Abschnitt fügen Sie ein bestehendes Element hinzu und wählen aus zwei Dropdown-Listen:
| Abschnitt | Anwenden des Filters auf | Auswahlmöglichkeiten |
|---|---|---|
| Tabellenrelationen | Tabellen | Tabelle auswählen und Feld auswählen. Sie können nur Felder wählen, die auch in der Feldliste der Tabelle ausgewählt wurden |
| Berichtrelationen | Berichte | Bericht auswählen und Parameter auswählen |
| Echtzeitobjekt-Relationen | Echtzeitobjekte | Echtzeitobjekt und Feld auswählen |
Repositories
Repositories speichern Zwischenergebnisse und stellen sie für die Weiterverarbeitung zwischen den Paketelementen bereit.
Den Namen eines Repositories können Sie frei wählen.
Ein Repository verbindet Elemente in einer festen Reihenfolge. Quelltabellen und Echtzeitobjekte schreiben zuerst ihre Werte ins Repository. Zieltabellen werden nach ihren Quelltabellen extrahiert und abhängig von diesen Werten abgefragt. Ein Repository wird bei jedem Durchlauf erneut gefüllt und enthält somit immer nur die Werte des aktuellen Laufs.
Best Practice: Nutzen Sie ein Repository, wenn Sie Werte einer ersten Extraktion für die Abfragen nachfolgender Tabellen benötigen. Einen vollständigen Ablauf finden Sie unter Beispiele.
Repository-Übersicht
Hier bestimmen Sie, woraus das Repository besteht und woher die Werte stammen.
Felder sind die Bestandteile des Repositories. Sie können ein oder mehrere Felder gleichzeitig hinzufügen.
Quelltabelle listet die Tabellen, die Werte ins Repository liefern. Fügen Sie eine Tabelle hinzu und wählen Sie sie unter "Quelltabelle auswählen". Das Zahnradsymbol öffnet die Zuordnung der Relation:
- Custom Mapping: Falls aktiv, wählen Sie Link manuell zwischen Feld der Quelltabelle und Feld des Repositories
- Relationstypen (bei aktivem Custom Mapping):
- Identity: Kopiert den Feldwert der Tabelle ins Feld des Repositories
- Substring: Fügt einen Teil des Feldwerts der Tabelle ins Feld des Repositories ein
- Concat: Kombiniert mehrere Feldwerte der Tabelle zu einem Feld des Repositories
Echtzeitobjekte listen die Echtzeitobjekte, die Werte ins Repository liefern. Fügen Sie ein Echtzeitobjekt hinzu und wählen Sie es unter "Echtzeitobjekt auswählen". Das Zahnradsymbol öffnet die Einstellungen der Abhängigkeit:
- Numbers: Nummer im Nummernkreis
- Subobject: Unterkategorie (oft Buchungskreis, optional je nach Nummernkreis)
- Fiscal Year: Geschäftsjahr (optional je nach Nummernkreis)
Zum Beispiel kann EINKBELEG nur Numbers sein, während RF_BELEG Numbers, Subobject oder Fiscal Year sein kann.
Repository-Abhängigkeiten
Nutzen Sie ein Repository als Datenquelle für Zieltabellen. Diese werden abhängig von den Repositorywerten abgefragt.
Fügen Sie eine Zieltabelle hinzu und wählen Sie sie unter "Zieltabelle auswählen". Mit dem Zahnradsymbol legen Sie Abhängigkeitstyp und Custom Mapping fest. Custom Mapping verknüpft die Repositoryfelder mit denen der Zieltabelle (siehe Tabellenfilter und Repositories).
Der Abhängigkeitstyp bestimmt, wie die Abfrage aufgebaut wird:
| Abhängigkeitstyp | Beschreibung | Beispiel |
|---|---|---|
| In | Abfrage mit IN-Anweisung | BELNR IN (1,2,3,4,...) |
| Between | Abfrage mit Between-Anweisung | BELNR Between 1 and 10 |
| Optimized | Kombination aus IN- und Between-Anweisungen | BELNR between 1 and 5 AND BELNR NOT IN (1,2,3,5) |
Löschabhängigkeiten
Nutzen Sie eine Löschabhängigkeit, um Zeilen im Zielsystem zu entfernen, z. B. Datensätze, die in SAP gelöscht wurden und sonst in Ihren SAP-Delta-Daten verbleiben würden. Es werden nur Zeilen im Ziel gelöscht, niemals in SAP.
Das Löschziel ist die Tabelle, die die Löschabhängigkeit besitzt. dab Nexus löscht Zeilen dieser Tabelle im Zielsystem. Das Repository stellt die Schlüsselwerte der zu löschenden Zeilen bereit.
Ein Löschziel ist nicht identisch mit einer Zieltabelle. Eine Zieltabelle verwendet die Repositorywerte, um die Abfrage in SAP einzuschränken. Ein Löschziel verwendet sie, um Zeilen im Zielsystem zu löschen.
Ein Durchlauf funktioniert so:
- Eine Quelltabelle schreibt die Schlüsselwerte der zu löschenden Datensätze ins Repository. Beispielsweise liest sie Änderungsdokumente wie CDPOS, gefiltert auf gelöschte Datensätze.
- dab Nexus extrahiert das Löschziel nach seinen Quelltabellen.
- dab Nexus löscht dann jede Zeile des Löschziels im Zielsystem, deren zugeordnete Primärschlüsselfelder mit einer Zeile im Repository übereinstimmen. Ist das Repository leer, wird nichts gelöscht.
Hinweis: Jede passende Zeile wird gelöscht. Das Repository darf also nur Datensätze enthalten, die tatsächlich entfernt werden sollen.
Löschabhängigkeiten können Sie hier oder in der Tabelle verwalten (siehe Tabellenfilter und Repositories). Hier fügen Sie ein Löschziel hinzu und wählen es unter "Tabelle auswählen".
Mit dem Zahnradsymbol ordnen Sie die Repositoryfelder den Primärschlüsselfeldern des Löschziels zu. Folgende Regeln gelten:
- Sie müssen jedes Repository-Feld zuordnen.
- Es stehen nur Primärschlüsselfelder des Löschziels zur Verfügung.
- Jedes Primärschlüsselfeld kann nur einmal verwendet werden.
Löschabhängigkeiten werden für SQL Server, Snowflake und Microsoft Fabric (Lakehouse und Mirror) als Zielsystem unterstützt.
Echtzeitobjekte
Echtzeitobjekte erhalten zahlreiche Nummernkreisobjekte aus SAP und können deren Werte in ein Repository schreiben.
Den Namen eines Echtzeitobjekts können Sie frei wählen.
Nummernkreisobjekt und Werte
Wählen Sie ein Nummernkreisobjekt aus der Dropdown-Liste.
In SAP definieren Nummernkreise eindeutige Zahlenfolgen, die Objekten oder Dokumenten (z. B. Rechnungen, Aufträgen usw.) zugewiesen werden. Sie sorgen für fortlaufende Nummerierung und vermeiden Doppelungen. Unter Werte können Sie:
- Neuen Nummernkreis hinzufügen: Wählen Sie einen oder mehrere verfügbare Nummernkreise aus SAP aus. Diese sind abhängig vom gewählten Nummernkreisobjekt.
- Verfügbar: listet alle verfügbaren Nummernkreise im SAP System
- Ausgewählt: zeigt alle Nummernkreise, die Sie bereits gewählt haben. Sie können die Auswahl auch löschen.
- Werte hinzufügen: fügt manuell neue Werte hinzu
- Bucket: löscht einen Wert aus der Liste
Echtzeitobjekt-Filter und Ziel-Repositories
Filter wenden Filter auf Echtzeitobjekt-Werte an. Sie funktionieren identisch wie Filter auf einer Tabelle.
Ziel-Repositories schreiben Echtzeitobjekt-Werte in ein Repository. Nutzen Sie "Hinzufügen", um ein Ziel-Repository hinzuzufügen. Mit dem Zahnradsymbol legen Sie die Abhängigkeit mit Numbers, Subobject und Fiscal Year fest (siehe Repository-Übersicht).
Berichte
Berichte extrahieren die Ausgabe eines SAP-Berichts (SAP-Transaktion). Nur Berichte mit tabellarischer Ausgabe können verwendet werden.
Berichte stehen im Managed App aus technischen Gründen nicht zur Verfügung.
Wenn Sie einen Bericht hinzufügen, geben Sie den Namen des Berichts (SAP-Transaktion) im Popup ein und machen weiter. dab Nexus lädt die verfügbaren Parameter, falls welche existieren.
Filter wenden Filter auf den Bericht an. Sie funktionieren identisch wie Filter auf einer Tabelle.