Über Skript-Ausdrücke #

Skript-Ausdrücke bieten eine Möglichkeit, dynamische Parameter zu Xtract Universal hinzuzufügen. Sie werden zur Laufzeit einer Extraktion aufgelöst. Die Ausgabe eines Skript-Ausdrucks ist ein String. Dieser String kann als Eingabe für weitere .NET-String-Operationen verwendet werden.

Skript-Ausdrücke können in den folgenden Szenarien verwendet werden:

Syntax von Skript-Ausdrücken #

Skript-Ausdrücke verwenden eine C#-Syntax. Sie werden mit einem Rautezeichen (#) eingeleitet und beendet. Die Formel beginnt mit und endet mit geschweiften Klammern ({}).

Beispiel:
#{ Extraction.TableName }#

Hinweis: Bei XU-spezifischen benutzerdefinierten Ausdrücken wird zwischen Groß- und Kleinschreibung unterschieden. Es muss die exakte Syntax wie auf dieser Seite dokumentiert verwendet werden.

IF-Anweisungen

Eine IF-Anweisung (ternärer Operator) hat die folgende Syntax: iif([bool condition], [string trueResult], [string falseResult])

Beispiele:

Eingabe Ausgabe Beschreibung
#{ iif(DateTime.Now.Month==7, "July","Unknown")}# Juli Wenn wir uns im 7. Monat befinden, ist der Ausgang “Juli”, alles andere ist “Unbekannt”.
#{Extraction.ExtractionName}##{ iif(string.IsNullOrEmpty(Extraction.Context), string.Empty, "/" + Extraction.Context)}#   Extraction.Context liefert nur bei ODP-Extraktionen ein Ergebnis. Bei allen anderen Extraktionstypen ist das Ergebnis leer. Wenn der Extraktionsname ‘SAP_1’ und der Extraktionstyp ‘Tabelle’ ist, würde der resultierende Dateipfad SAP_1/[filename] lauten. Wenn der Extraktionsname ‘SAP_2’ und der Extraktionstyp ‘ODP’ ist und eine SAP DataSource (Extraktionskontext: SAPI) extrahiert wird, wäre der resultierende Dateipfad SAP_2/SAPI/[filename].

Skript-Ausdrücke auf Basis von .NET #

Die Skript-Ausdrücke von Xtract Universal unterstützen die folgenden .NET-Objekte, -Eigenschaften und -Methoden aus dem .NET-Systemnamensraum des aktuellen .NET-Frameworks:

Object, Boolean, Char, String, SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Single, Double, Decimal, DateTime, TimeSpan, Guid, Math, Convert.

Hinweis: Das gebräuchlichste Anwendungsszenario ist die Verwendung der Methoden und Eigenschaften der .NET-Klassen DateTime und String. Weitere Informationen zu den unterstützten .NET-Klassen und deren Eigenschaften und Methoden einschließlich DateTime und String finden Sie in der Online-Dokumentation von Microsoft.

Unterstützte Schlüßelworte

Die folgenden Schlüsselworte werden unterstützt: true, false, null.

Liste verfügbarer Skript-Ausdrücke #

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.

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.

Skript-Ausdrücke als Auswahlparameter in Table und DeltaQ Extraktionen

Skript-Ausdrücke werden verwendet, um ein dynamisches Datum auf der Basis des aktuellen Datums zu bestimmen.
Um Skript-Ausdrücke in WHERE-Bedingungen zu verwenden, müssen sie in einfache Anführungszeichen gesetzt werden.

Syntax:
[Field_name][Space][Operator][Space]'#[Script-Expression]#'
BUDAT >= '#{DateTime.Now.AddYears(-5).ToString("yyyyMMdd")}#'

Beispiele:

Eingabe Ausgabe Beschreibung
#{ DateTime.Now.ToString("yyyyMMdd") }# yyyyMMdd Aktuelles Datum im SAP-Format
#{ String.Concat(DateTime.Now.Year.ToString(), "0101") }# yyyy0101 Aktuelles Datum verkettet mit “0101”
#{ String.Concat(DateTime.Now.ToString("yyyy"), "0101") }# yyyy0101 Aktuelles Datum verkettet mit “0101”
#{ String.Concat(DateTime.Now.ToString("yyyyMMdd").Substring(0,4), "0101") }# yyyy0101 Aktuelles Datum verkettet mit “0101””