Package Elements
The elements you can use depend on the type of SAP system connection:
- RFC connection: Tables, Virtual Tables, Filters, Repositories, Real-Time Objects and Reports
- OData connection: only Tables, Virtual Tables and Filters. Repositories, Real-Time Objects and Reports are not available.
Most sections of an element have the same actions:
| Action | What it does |
|---|---|
| Add | Adds a new entry to the section |
| Go to, Open | Takes you to the linked element in the Package |
| Gear icon | Opens the configuration of the entry |
| Bucket | Deletes the entry or the link between the two elements |
If a section has a dropdown list, you use it to choose the entry. You add an element itself with the corresponding button at the top. The rest of this page only describes what is specific to an element or section.
Tables
Tables define which SAP tables are extracted. All tables you add here are later stored as result tables.
What you add depends on the connection of the Package:
- RFC connection: search for the SAP table by name or enter it directly, for example
T001. - OData connection: you add an entity set. An entity set is a data set offered by an OData service, and dab Nexus handles it like a table. Search for the service, expand it and select the entity set. You can also enter the full path. The path becomes the table name, for example
/sap/opu/odata4/sap/cdi_cds/cdi_cds/sap/i_companycode/0001/MasterData.
Click an added table to enter an Alias (another name for the table) or to delete it from the Package with the Bucket.
Load Type
The Load Type is only shown for OData entity sets that support delta tracking.
- Full Load: extracts the complete data
- Delta Load: extracts the complete data in the first run and only the changed records after that. See CDC with SAP OData.
Strategy
The strategy controls the write behaviour in the destination. The Data Strategy of the Task can override it: Merge and Append only take effect if the Data Strategy also merges. With Keep Database - Overwrite, for example, a table with the strategy Merge is overwritten. You can find all combinations under Interaction between Data Strategy and Table Strategy.
- Merge: extracted rows are merged with existing data and update it
- Overwrite: deletes the table at the beginning of the Extraction
- Append: appends the data to the existing data
- Layout: creates only the table structure in the target and extracts no data
Table Fields
Select the fields to extract. Primary Keys are always selected automatically and cannot be unselected.
- Fieldlist: contains all fields of the selected table. Select or unselect a field to extract its data or not.
- Sorting of Fields: lists all fields by Default (same sorting as in SAP), by Selection, by Name, by Description or by Field Length
- Refresh: reloads the fieldlist
- Toggle selection: selects or unselects all fields except the Primary Keys
- Search: searches for specific fields
Table Filters and Repositories
With an OData connection, only Filters are available, because there are no repositories.
Filters apply filters on table fields. Add an existing filter, choose it under Filter and use Field to select where it should apply. Go to filter opens the settings of the filter.
Dependency queries the table in dependency of repository values. Choose an existing repository under Repository. Use the gear icon to change the type of dependency or to activate Custom Mapping. dab Nexus links fields automatically if they have the same name in the repository and in the table (case-sensitive). If the names differ, link the fields yourself with Custom Mapping. See Repository Dependencies for the dependency types.
Deletion Dependency deletes rows of this table in the destination based on repository values. The table becomes the deletion target. A table can only have one deletion dependency. Choose an existing repository under Repository. Use the gear icon to map the repository fields to the primary key fields of the table. See Deletion Dependencies for the full explanation.
Target Repositories write table values into a repository. Use Add to add a target repository. Use the gear icon to adjust the mapping of the fields with Custom Mapping, as described under Dependency.
Virtual Tables
Virtual tables are extracted like tables, but dab Nexus discards their data after the Extraction. They do not appear as result tables.
Use a virtual table if you are not interested in the data itself, but need certain values to filter other tables. A virtual table usually supplies these values to a repository, and target tables are then queried in dependency of them. This is useful for delta loads, for example: the virtual table determines which records have changed, and the target tables only extract those.
Add a virtual table the same way as a table. You can also assign an alias here. All sections are the same as for tables, only the Strategy section doesn't exist.
Filters
Filters restrict the values of an extraction. You apply them to tables or virtual tables, and to reports and real-time objects through their relations.
You can freely choose the name of a filter.
If you use one of the following names for your filter, the type is automatically set to Lookup: Fiscal Year, Companycode, Company Code, Time Period
Filter Settings
- Required: values must be set for this filter when creating a Task
- Offline: applies filtering on client side
- Filter Scope Determination: the level at which you enter the values, see below
- Data Type: data type of the filter value, either String, Date or Numeric
- Filter Type:
- Input: enter values during Task creation
- Fixed Value: values are pre-set in the Package
- Lookup: select values from SAP during Task creation
- Fiscal Year: enter the fiscal year or set it according to the Task schedule
Filter Scope Determination
The scope controls at which level you enter the filter values when you create a Task. It applies to the filter types Input, Lookup and Fiscal Year. Fixed Value filters already have their values, so the scope has no effect on them.
- Per Task: one set of values for the whole Task. Use it if the values are the same for all SAP systems and for the Initial and Delta Variant.
- Per SAP System: separate values for each SAP system of the Task. Use it if the values differ between the systems, for example company codes.
- Per Variant: separate values for the Initial Variant and the Delta Variant. Use it if the first run and the following runs need different values, for example a long period for the initial load and a short one for the delta.
- Automatic: dab Nexus chooses the level based on the filter type. Use it unless you need a specific level.
Automatic chooses these levels:
| Filter Type | Level |
|---|---|
| Input with data type Date | Per Variant |
| Input with another data type | Per Task |
| Lookup | Per SAP System |
| Fiscal Year | Per Variant |
Condition
The condition controls which filter clause is generated.
| Condition | Description | Example |
|---|---|---|
| Equal | Both values are equal | 100 = 100 |
| Not Equal | Both values are not equal | 100 <> 99 |
| Greater | One value is greater than the other | 100 > 99 |
| Greater Equal | One value is greater than or equal to the other | 100 >= 99/100 |
| Less | One value is less (smaller) than the other | 99 < 100 |
| Less Equal | One value is less than or equal to the other | 99/100 <= 100 |
| Like | One value contains parts of the other | %est is contained in Test |
| Not Like | One value doesn't contain parts of the other | %ame is not contained in Test |
| Between | A value in a certain range | 5 is between 3 and 7 |
| In | One value exists in a series of other values | DE exists in the series 'DE, EN, IT, FR' |
| Not In | A value doesn't exist in a series of other values | DE doesn't exist in the series 'EN, IT, FR' |
| Empty | A value (Character String) must be empty | Value = '' |
| Not Empty | A value (Character String) must be filled | Value = 'Here is a text' |
Filter Relations
Relations define where the filter applies. In each section, you add an existing element and choose from two dropdown lists:
| Section | Applies the filter to | What you choose |
|---|---|---|
| Table Relations | Tables | Select table and Select field. You can only select fields that were selected in the field list of the table itself |
| Report Relations | Reports | Select report and Select parameter |
| Real-Time Objects Relations | Real-Time Objects | Select real-time object and Select field |
Repositories
Repositories store intermediate results and make them available for further processing between the elements of a package.
You can freely choose the name of a repository.
A repository connects elements in a fixed order. Source tables and real-time objects first write their values into the repository. Target tables are extracted after their source tables and are queried in dependency of these values. A repository is filled again in every run, so it only contains the values of the current run.
Best practice: use a repository if you need the values of a first extraction for the queries of the following tables. You can find a complete walkthrough under Examples.
Repository Overview
Here you set what the repository consists of and where its values come from.
Fields are the fields the repository consists of. You can add one or more fields at a time.
Source Table lists the tables that supply values to the repository. Add a table and choose it under Select source table. The gear icon opens the mapping for the relation:
- Custom Mapping: if active, you can manually select the link between the field of the source table and the field in the repository
- Relation types (with Custom Mapping active):
- Identity: inserts the field value of the table into the field of the repository
- Substring: inserts a part of the field value of the table into the field of the repository
- Concat: inserts multiple field values of the table into one field of the repository
Real-Time Objects lists the real-time objects that supply values to the repository. Add a real-time object and choose it under Select real-time object. The gear icon opens the settings of the dependency:
- Numbers: number in the Number Range
- Subobject: subcategory (often the Company Code, optional depending on Number Range)
- Fiscal Year: fiscal year (optional, depending on Number Range)
For example, EINKBELEG can only be Numbers, while RF_BELEG can be Numbers, Subobject or Fiscal Year.
Repository Dependencies
Use a repository as the data source for target tables. They are queried in dependency of the repository values.
Add a target table and choose it under Select target table. Use the gear icon to set the dependency type and Custom Mapping. Custom Mapping links the repository fields to the fields of the target table (see Table Filters and Repositories).
The dependency type defines how the query is built:
| Dependency Type | Description | Example |
|---|---|---|
| In | Query with IN-statement | BELNR IN (1,2,3,4,...) |
| Between | Query with Between-statement | BELNR Between 1 and 10 |
| Optimized | Combination of IN- and Between-statements | BELNR between 1 and 5 AND BELNR NOT IN (1,2,3,5) |
Deletion Dependencies
Use a deletion dependency to remove rows from the destination, for example records that have been deleted in SAP and would otherwise stay in your SAP delta data. It only deletes rows in the destination, never in SAP.
The deletion target is the table that has the deletion dependency. dab Nexus deletes rows of this table in the destination. The repository provides the key values of the rows to delete.
A deletion target is not the same as a target table. A target table uses the repository values to restrict its query in SAP. A deletion target uses them to delete rows in the destination.
A run works like this:
- A source table writes the key values of the records to delete into the repository. For example, it reads change documents such as CDPOS, filtered to deleted records.
- dab Nexus extracts the deletion target after its source tables.
- dab Nexus then deletes every row of the deletion target in the destination whose mapped primary key fields match a row in the repository. If the repository is empty, nothing is deleted.
Note: every matching row is deleted, so the repository must only contain records that should really be removed.
You can manage deletion dependencies here or in the table (see Table Filters and Repositories). Here, add a deletion target and choose it under Select Table.
Use the gear icon to map the repository fields to the primary key fields of the deletion target. These rules apply:
- You must map every repository field.
- Only primary key fields of the deletion target are available.
- You can use each primary key field only once.
Deletion dependencies are supported for SQL Server, Snowflake and Microsoft Fabric (Lakehouse and Mirror) as destinations.
Real-Time Objects
Real-time objects get numerous Number Range Objects from SAP and can write their values into a repository.
You can freely choose the name of a real-time object.
Number Range Object and Values
Choose a Number Range Object from the dropdown list.
In SAP, number ranges define unique sequences of numbers assigned to objects or documents (e.g. invoices, orders, etc.). They keep the numbers consistent and avoid duplicates. Under Values you can use:
- Add new Number Range: select one or more available number ranges from SAP. They depend on the Number Range Object you've chosen.
- Available: lists all available Number Ranges in the SAP system
- Selected: lists all Number Ranges you've already selected. You can also delete the selection.
- Add values: adds new values manually
- Bucket: deletes a value from the list
Real-Time Object Filters and Target Repositories
Filters apply filters on real-time object values. They work the same as filters on a table.
Target Repositories write real-time object values into a repository. Use Add to add a target repository. Use the gear icon to set the dependency with Numbers, Subobject and Fiscal Year (see Repository Overview).
Reports
Reports extract the output of an SAP report (SAP Transaction). Only reports that have a tabular output can be used.
Reports are not available in the Managed App for technical reasons.
When you add a report, enter the name of the Report (SAP Transaction) in the popup and continue. dab Nexus loads the available parameters, if any exist.
Filters apply filters to the report. They work the same as filters on a table.