

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# OData Dienste (Nicht-ODP-Quellen)
<a name="sap-odata-non-odp-services"></a>

## Full Load
<a name="sap-odata-non-odp-full-load"></a>

Bei Systemen ohne ODP (Operational Data Provisioning) wird bei **Full Load** der gesamte Datensatz aus dem Quellsystem extrahiert und in das Zielsystem geladen. Da Nicht-ODP-Systeme inhärent keine fortschrittlichen Datenextraktionsmechanismen wie Deltas unterstützen, ist der Vorgang unkompliziert, kann aber je nach Datengröße ressourcenintensiv sein.

## Inkrementelle Last
<a name="sap-odata-non-odp-incremental-load"></a>

Bei Systemen oder Entitäten, die **ODP (Operational Data Provisioning)** nicht unterstützen, kann die inkrementelle Datenübertragung manuell verwaltet werden, indem ein Mechanismus zur Nachverfolgung und Extraktion von Änderungen implementiert wird, der auf Zeitstempeln basiert.

**Auf Zeitstempeln basierende inkrementelle Datenübertragungen**

Für Nicht-ODP-fähige Entitäten (oder für ODP-fähige Entitäten, die das ENABLE\_CDC-Flag nicht verwenden) können wir eine `filteringExpression`-Option im Connector verwenden, um das `datetime`-Intervall anzugeben, für das wir Daten abrufen möchten. Diese Methode basiert auf einem Zeitstempelfeld in Ihren Daten, aus dem hervorgeht, wann jeder Datensatz zuletzt erstellt/geändert wurde.

**Beispiel**

Datensätze werden abgerufen, die nach 2024-01-01T 00:00:00.000 geändert wurden.

```
sapodata_df = glueContext.create_dynamic_frame.from_options(
    connection_type="SAPOData",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "filteringExpression": "LastChangeDateTime >= 2024-01-01T00:00:00.000"
    }, transformation_ctx=key)
```

Hinweis: In diesem Beispiel ist `LastChangeDateTime` das Feld, das angibt, wann jeder Datensatz zuletzt geändert wurde. Der tatsächliche Feldname kann je nach Ihrer spezifischen OData SAP-Entität variieren.

Um bei nachfolgenden Ausführungen eine neue Teilmenge von Daten zu erhalten, würden Sie `filteringExpression` mit einem neuen Zeitstempel aktualisieren. In der Regel wäre dies der maximale Zeitstempelwert der zuvor abgerufenen Daten.

**Beispiel**

```
max_timestamp = get_max_timestamp(sapodata_df)  # Function to get the max timestamp from the previous run
next_filtering_expression = f"LastChangeDateTime > {max_timestamp}"

# Use this next_filtering_expression in your next run
```

Im nächsten Abschnitt stellen wir einen automatisierten Ansatz zur Verwaltung dieser auf Zeitstempeln basierenden inkrementellen Übertragungen vor, sodass der Filterausdruck zwischen den Ausführungen nicht mehr manuell aktualisiert werden muss.