Der folgende Abschnitt behandelt das Laden der SAP-Extraktionsdaten in den Huawei Cloud Object Storage Service (OBS).

Warnung! Dateifragmente im Cloud-Speicher
Huawei Cloud OBS Destination verwendet Multipart-Upload. Das bedeutet, dass die Daten in Fragmenten hochgeladen werden, die am Ende der Extraktion in einer einzigen Datei zusammengeführt werden. Wenn eine Extraktion aufgrund von Verbindungsproblemen fehlschlägt, kann die Aufforderung zum Abbrechen des mehrteiligen Uploads fehlschlagen. In diesem Fall müssen die hochgeladenen Fragmente manuell gelöscht werden, siehe Huawei Cloud Support: Deleting Fragments Directly.

Verbindung #

Eine Destination hinzufügen #

  1. Navigieren Sie im Hauptfenster des Designers zu Server > Manage Destinations. Das Fenster “Manage Destination” wird geöffnet.
  2. Klicken Sie auf [Add], um eine neue Destination hinzufügen. Das Fenster “Destination Details” wird geöffnet.
  3. Geben Sie einen Namen für die Destination ein.
  4. Wählen Sie den Destinationstyp aus dem Dropdown-Menü aus.

Destination Details #

huawei-destination-details

Authentification (Authentifizierung) #

Access Key ID (AK)
Geben Sie den Zugangsschlüssel für das Huawei Cloud OBS-Konto ein. Weitere Informationen zum Erstellen von Zugangsschlüsseln finden Sie unter Huawei Cloud Support: Creating Access Keys (AK and SK)

Secret Access Key ID (SK)
Geben Sie den geheimen Zugangsschlüssel für das Huawei Cloud OBS-Konto ein. Weitere Informationen zum Erstellen von Zugangsschlüsseln finden Sie unter Huawei Cloud Support: Creating Access Keys (AK and SK)

Region
Wählen Sie die Region in der sich das Data-Storage befindet.

Connect
Klicken Sie auf [Connect], um eine Verbindung zum Storage-Account herzustellen. Wenn die Verbindung erfolgreich ist, wird neben der Schaltfläche “Connected” angezeigt.

Bucket #

Bucket
Diese Einstellung ist erst verfügbar, nachdem eine Verbindung zum Storage-Account hergestellt wurde.
Wählen Sie einen Bucket. Die SAP-Daten werden in den ausgewählten Bucket extrahiert. Click refresh to refresh the list of available buckets.

Misc #

Folder path
Option zur Erstellung einer Ordnerstruktur zur Dateispeicherung innerhalb des Containers. Mehr Details dazu finden Sie auch in Destination Settings > Folder Path..
Um einen einzelnen Ordner zu erstellen, geben Sie einen Ordnernamen ohne Slashes ein: [folder]
Unterordner werden unterstützt und können mit der folgenden Syntax definiert werden: [folder]/[subfolder_1]/[subfolder_2]/[..]

Skript-Ausdrücke als dynamische Ordnerpfade

Skript-Ausdrücke können für die Generierung eines dynamischen Ordnerpfads verwendet werden. Dadurch kann ein Ordnerpfad generiert werden, der sich aus den Eigenschaften einer Extraktion zusammensetzt, z.B. Extraktionsname, SAP-Quellobjekt. Unterstützt werden Skript-Ausdrücke, die auf .NET basieren, sowie folgende XU-spezifische Skript-Ausdrücke:

Eingabe Beschreibung
#{Source.Name}# Name der SAP Quelle.
#{Extraction.ExtractionName}# Name der Extraktion.
#{Extraction.Type}# Extraktionstyp (Table, ODP, DeltaQ, etc.).
#{Extraction.SapObjectName}# Name des SAP Objekts, von dem die Extraktion Daten extrahiert.
#{Extraction.Timestamp}# Zeitstempel der Extraktion.
#{Extraction.SapObjectName.TrimStart("/".ToCharArray())}# Entfernt einen führenden Schrägstrich, z.B. wird aus /BIO/TMATERIAL dann BIO/TMATERIAL, damit kein leeres Verzeichnis angelegt wird.
#{Extraction.SapObjectName.Replace('/', '_')}# Entfernt alle Schrägstriche eines SAP Objekts, z.B. wird aus /BIO/TMATERIAL dann _BIO_TMATERIAL. Dadurch wird verhindert, dass die Schrägstriche innerhalb des Namens des SAP Objekts, nicht als Verzeichnistrenner interpretiert werden.
#{Extraction.Context}# Nur für ODP Extraktionen: Kontext des ODP Objekts (SAPI, ABAP_CDS, etc.).
#{Extraction.Fields["[NameSelectionFields]"].Selections[0].Value}# Nur für ODP Extraktionen: Eingabewert einer definierten Selektion / eines Filter.
#{Odp.UpdateMode}# Nur für ODP Extraktionen: Load-Verfahren (Delta, Full, Repeat) der Extraktion.
#{TableExtraction.WhereClause}# Nur für Table Extraktionen: WHERE-Bedingung der Extraktion.
#{Extraction.Fields["[0D_NW_CODE]"].Selections[0].Value}# Nur für BWCube Extraktionen (MDX Modus): Eingabewert einer definierten Selektion.
#{Extraction.Fields["[0D_NW_CHANN]"].RangeSelections[0].LowerValue}# Nur für BWCube Extraktionen (MDX Modus): Niedriger Eingabewert eines definierten Selektionsbereichs.
#{Extraction.Fields["[0D_NW_CHANN]"].RangeSelections[0].UpperValue}# Nur für BWCube Extraktionen (MDX Modus): Hoher Eingabewert eines definierten Selektionsbereichs.
#{Extraction.Fields["0D_NW_CODE"].Selections[0].Value}# Nur für BWCube Extraktionen (BICS Modus): Eingabewert einer definierten Selektion.
#{Extraction.Fields["0D_NW_CHANN"].RangeSelections[0].LowerValue}# Nur für BWCube Extraktionen (BICS Modus): Niedriger Eingabewert eines definierten Selektionsbereichs.
#{Extraction.Fields["0D_NW_CHANN"].RangeSelections[0].UpperValue}# Nur für BWCube Extraktionen (BICS Modus): Hoher Eingabewert eines definierten Selektionsbereichs.

File Format #

File type
Wählen Sie das gewünschte Dateiformat. Die folgenden Optionen sind möglich: CSV, Parquet und JSON.

huawei-destination-details2

CVS Settings

Die Einstellungen für CSV entsprechen den Einstellungen von Flat File CSV.

Parquet

Die folgenden Kompatibilitätsmodi sind verfügbar:

  • Pure
  • Spark
  • BigQuery

Spark unterstützt die im Pure Mode verwendeten Datentypen nicht, sodass andere Datentypen verwendet werden müssen. Sonderzeichen (z.B. ~) können in Spaltennamen verwendet werden, wenn die Option Allow special characters in column name aktiviert ist.

huawei-destination-details3

SAP Pure / BigQuery Spark
INT1 UINT_8 INT16
TIMS TIME_MILLIS UTF8

Retry- und Rollback-Funktion #

Die Retry- und Rollback-Funktionen sind eingebaute Wiederholungsmechanismen der Huawei Cloud OBS Destination, die automatisch aktiviert sind.

Die Retry-Funktion verhindert, dass Extraktionen fehlschlagen wenn kurzzeitige Verbindungsunterbrechungen zu Huawei auftreten.

Sollte eine Ausnahme (Exception) ausgelöst werden, verfolgt Xtract Universal eine exponentielle Strategie der Wiederholversuche. Das bedeutet, dass 7 Verbindungsversuche gestartet werden in einem Zeitraum von 140 Sekunden. Sollte in diesem Zeitraum keine Verbindung zustande kommen, wird die Extraktion abgebrochen.

Die Rollback-Funktion deckt Szenarien ab, bei denen eine Extraktion nicht wegen eines Verbindungsfehlers zu Huawei fehlschlägt, sondern z.B. wegen eines Verbindungsfehlers zu SAP. In solchen Fällen versucht Xtract Universal alle Dateien aus dem Huawei Cloud Storage zu entfernen, die im Laufe der Extraktion erstellt wurden.

Einstellungen #

Destination Settings öffnen #

  1. Eine bestehende Extraktion anlegen oder auswählen, siehe auch Erste Schritte mit Xtract Universal.
  2. Klicken Sie auf[Destination]. Das Fenster “Destination Settings” wird geöffnet. Destination-settings

Die folgenden Einstellungen können für die Destination definiert werden:

Destination Settings - Destinationseinstellungen #

huawei-destination-settings

File Name #

File Name bestimmt den Namen der Zieltabelle. Sie haben die folgenden Optionen:

  • Same as name of SAP object: Name des SAP-Objekts übernehmen
  • Same as name of extraction: Name der Extraktion übernehmen
  • Custom: Hier können Sie einen eigenen Namen definieren
  • Append timestamp: fügt den Zeitstempel im UTC-Format (_YYYY_MM_DD_hh_mm_ss_fff) dem Dateinamen der Extraktion hinzu.

Hinweis: Wenn der Dateiname das Zeichen / enthält, wird es durch einen Unterstrich ersetzt.

Skript-Ausdrücke als dynamische Dateinamen

Skript-Ausdrücke können für die Generierung eines dynamischen Dateinamens verwendet werden. Dadurch kann ein Name generiert werden, der sich aus den Eigenschaften einer Extraktion zusammensetzt, z.B. Extraktionsname, SAP-Quellobjekt. Unterstützt werden Skript-Ausdrücke, die auf .NET basieren, sowie folgende XU-spezifische Skript-Ausdrücke:

Eingabe Beschreibung
#{Source.Name}# Name der SAP Quelle.
#{Extraction.ExtractionName}# Name der Extraktion.
#{Extraction.Type}# Extraktionstyp (Table, ODP, DeltaQ, etc.).
#{Extraction.SapObjectName}# Name des SAP Objekts, von dem die Extraktion Daten extrahiert.
#{Extraction.Timestamp}# Zeitstempel der Extraktion.
#{Extraction.SapObjectName.TrimStart("/".ToCharArray())}# Entfernt einen führenden Schrägstrich, z.B. wird aus /BIO/TMATERIAL dann BIO/TMATERIAL, damit kein leeres Verzeichnis angelegt wird.
#{Extraction.SapObjectName.Replace('/', '_')}# Entfernt alle Schrägstriche eines SAP Objekts, z.B. wird aus /BIO/TMATERIAL dann _BIO_TMATERIAL. Dadurch wird verhindert, dass die Schrägstriche innerhalb des Namens des SAP Objekts, nicht als Verzeichnistrenner interpretiert werden.
#{Extraction.Context}# Nur für ODP Extraktionen: Kontext des ODP Objekts (SAPI, ABAP_CDS, etc.).
#{Extraction.Fields["[NameSelectionFiels]"].Selections[0].Value}# Nur für ODP Extraktionen: Eingabewert einer definierten Selektion / eines Filter.
#{Odp.UpdateMode}# Nur für ODP Extraktionen: Load-Verfahren (Delta, Full, Repeat) der Extraktion.
#{TableExtraction.WhereClause}# Nur für Table Extraktionen: WHERE-Bedingung der Extraktion.

Column Name Style #

Definiert den Spaltennamen. Folgende Optionen sind verfügbar:

column_name_style_options

  • Code: Der technische Spaltenname aus SAP wird als Spaltenname verwendet, z.B. MAKTX
  • PrefixedCode: Der technische Name der Tabelle wird mit dem Tilde-Zeichen und dem entsprechenden Spaltennamen verbunden, z. B. MAKT~MAKTX.
  • CodeAndText: Der technische Name und die Beschreibung der Spalte aus SAP mit einem Unterstrich verbunden werden als Spaltennamen verwendet, z.B. MAKTX_Material Description (Short Text).
  • TextAndCode: Die Beschreibung und der technische Name der Spalte SAP mit einem Unterstrich verbunden werden als Spaltennamen verwendet, z.B. Material Description (Short Text)_MAKTX.
  • Text: Die Beschreibung aus SAP wird als Spaltenname verwendet, z.B. Material Description (Short Text).

Date conversion #

Convert date strings
Konvertiert die Zeichenabfolge des SAP-Datums (YYYYMMDD, z.B. 19900101) zu einem formatierten Datum (YYYY-MM-DD, z.B. 1990-01-01). Im Datenziel hat das SAP-Datum keinen String-Datentyp sondern einen echten Datumstyp.

Convert invalid dates to
Falls ein SAP-Datum nicht in ein gültiges Datumsformat konvertiert werden kann, wird das ungültige Datum zu dem eingegebenen Wert konvertiert. NULL wird als Wert unterstützt.

Bei der Konvertierung eines ungültigen SAP-Datums werden zuerst die beiden Sonderfälle 00000000 und 9999XXXX überprüft.

Convert 00000000 to
Konvertiert das SAP-Datum 00000000 zu dem eingegebenen Wert.

Convert 9999XXXX to
Konvertiert das SAP-Datum 9999XXXX zu dem eingegebenen Wert.

Folder #

Option zur Erstellung einer Ordnerstruktur zur Dateispeicherung innerhalb des Containers, siehe auch Connection > Folder Path.
Um einen einzelnen Ordner zu erstellen, geben Sie einen Ordnernamen ohne Slashes ein: [folder]
Unterordner werden unterstützt und können mit der folgenden Syntax definiert werden: [folder]/[subfolder_1]/[subfolder_2]/[..]

Skript-Ausdrücke als dynamische Ordnerpfade

Skript-Ausdrücke können für die Generierung eines dynamischen Ordnerpfads verwendet werden. Dadurch kann ein Ordnerpfad generiert werden, der sich aus den Eigenschaften einer Extraktion zusammensetzt, z.B. Extraktionsname, SAP-Quellobjekt. Unterstützt werden Skript-Ausdrücke, die auf .NET basieren, sowie folgende XU-spezifische Skript-Ausdrücke:

Eingabe Beschreibung
#{Source.Name}# Name der SAP Quelle.
#{Extraction.ExtractionName}# Name der Extraktion.
#{Extraction.Type}# Extraktionstyp (Table, ODP, DeltaQ, etc.).
#{Extraction.SapObjectName}# Name des SAP Objekts, von dem die Extraktion Daten extrahiert.
#{Extraction.Timestamp}# Zeitstempel der Extraktion.
#{Extraction.SapObjectName.TrimStart("/".ToCharArray())}# Entfernt einen führenden Schrägstrich, z.B. wird aus /BIO/TMATERIAL dann BIO/TMATERIAL, damit kein leeres Verzeichnis angelegt wird.
#{Extraction.SapObjectName.Replace('/', '_')}# Entfernt alle Schrägstriche eines SAP Objekts, z.B. wird aus /BIO/TMATERIAL dann _BIO_TMATERIAL. Dadurch wird verhindert, dass die Schrägstriche innerhalb des Namens des SAP Objekts, nicht als Verzeichnistrenner interpretiert werden.
#{Extraction.Context}# Nur für ODP Extraktionen: Kontext des ODP Objekts (SAPI, ABAP_CDS, etc.).
#{Extraction.Fields["[NameSelectionFields]"].Selections[0].Value}# Nur für ODP Extraktionen: Eingabewert einer definierten Selektion / eines Filter.
#{Odp.UpdateMode}# Nur für ODP Extraktionen: Load-Verfahren (Delta, Full, Repeat) der Extraktion.
#{TableExtraction.WhereClause}# Nur für Table Extraktionen: WHERE-Bedingung der Extraktion.
#{Extraction.Fields["[0D_NW_CODE]"].Selections[0].Value}# Nur für BWCube Extraktionen (MDX Modus): Eingabewert einer definierten Selektion.
#{Extraction.Fields["[0D_NW_CHANN]"].RangeSelections[0].LowerValue}# Nur für BWCube Extraktionen (MDX Modus): Niedriger Eingabewert eines definierten Selektionsbereichs.
#{Extraction.Fields["[0D_NW_CHANN]"].RangeSelections[0].UpperValue}# Nur für BWCube Extraktionen (MDX Modus): Hoher Eingabewert eines definierten Selektionsbereichs.
#{Extraction.Fields["0D_NW_CODE"].Selections[0].Value}# Nur für BWCube Extraktionen (BICS Modus): Eingabewert einer definierten Selektion.
#{Extraction.Fields["0D_NW_CHANN"].RangeSelections[0].LowerValue}# Nur für BWCube Extraktionen (BICS Modus): Niedriger Eingabewert eines definierten Selektionsbereichs.
#{Extraction.Fields["0D_NW_CHANN"].RangeSelections[0].UpperValue}# Nur für BWCube Extraktionen (BICS Modus): Hoher Eingabewert eines definierten Selektionsbereichs.

Compression #

None
Die Daten werden unkomprimiert übertragen und als csv-Datei abgelegt.

gzip
Die Daten werden komprimiert übertragen und als gz-Datei abgelegt.

Hinweis: Diese Option ist nur für das csv-Dateiformat verfügbar, siehe Verbindung: File Format.

File Splitting #

File Splitting

Schreibt die Extraktionsdaten einer einzelnen Extraktion in mehrere Dateien im die Cloud. Dabei wird an jeden Dateinamen _part[nnn] angehägt.

Max. file size
Geben Sie die Maximalgröße der Dateien ein, die hochgeladen werden sollen.

Note: Die Option Max. file size wird nicht von gzip-Dateien unterstützt. Die Größe von durch gzip-Verfahren komprimierten Dateien kann nicht im Voraus bestimmt werden.