Data Transformer 関数

このページでは、Apigee Integration で使用できる Data Transformer Script タスク用に事前定義された追加の Jsonnet 関数について説明します。

以下の事前定義済み関数を使用するには、スクリプトに functions ライブラリをインポートする必要があります。functions ライブラリをインポートすると、標準の Jsonnet 関数と事前定義された Data Transformer 関数の両方を使用できます。

Apigee Integration では Jsonnet 関数ライブラリ v0.20.0 がサポートされています。Jsonnet 標準関数の詳細については、Jsonnet 標準ライブラリをご覧ください。

配列関数


Average

構文
        
avg(arr)
      
説明 配列内のすべての値の平均値を計算します。
入力パラメータ arr: 入力配列。
戻り値の型 DOUBLE
出力 配列内のすべての値の平均を返します。

Contains

構文
        
contains(arr, elem)
      
説明 指定した要素が配列に含まれているか確認します。
入力パラメータ arr: 入力配列。

elem: 検索する配列要素。

戻り値の型 BOOLEAN
出力 一致するものがあれば TRUE、なければ FALSE を返します。

Max Array

構文
        
maxArray(arr)
      
説明 配列内の最大値を見つけます。
入力パラメータ arr: 入力配列。
戻り値の型 入力配列のデータ型。
出力 配列内の最大値を返します。

Min Array

構文
        
minArray(arr)
      
説明 配列内の最小値を見つけます。
入力パラメータ arr: 入力配列。
戻り値の型 入力配列のデータ型。
出力/th>配列内の最小値を返します。

Remove

構文
        
remove(arr, elem)
      
説明 指定した要素を配列から削除します。
入力パラメータ arr: 入力配列。

elem: 削除する配列要素。

戻り値の型 入力配列のデータ型。
出力 指定した要素を削除し、更新した配列を返します。

Remove At

構文
        
removeAt(arr, index)
      
説明 配列の指定されたインデックスにある要素を削除します。
入力パラメータ arr: 入力配列。

index: 削除する要素の配列インデックス。

戻り値の型 入力配列のデータ型。
出力 指定した要素を削除し、更新した配列を返します。

Sum

構文
        
sum(arr)
      
説明 配列内のすべての値を足します。
入力パラメータ arr: 入力配列。
戻り値の型 入力配列のデータ型。
出力 配列内のすべての要素の合計を返します。

GroupBy

構文
        
groupBy(array, function)
      
説明 反復関数を使用して配列の各要素を実行した結果から生成されたキーで構成されるオブジェクトを作成します。たとえば、f.groupBy([1,1.3,1.8],std.floor){"1": [1,1.3,1.8]} を生成します。
入力パラメータ
  • array: メソッドが反復処理するコレクション。

    function: 配列内のすべての要素に対して呼び出される関数。

戻り値の型 JSON
出力 作成された集計オブジェクトを返します。

Zip

構文
        
zip([arrays])
      
説明 グループ化された要素の配列を作成します。最初の要素には指定された配列の最初の要素が含まれ、2 番目の要素には指定された配列の 2 番目の要素が含まれるというように続きます。たとえば、f.zip([[1, "one", "I"],[2, "two", "II"],[3, "three", "III"]])[[1,2,3],["one", "two", "three"],["I", "II", "III"]] を生成します。
入力パラメータ [arrays]: このパラメータには、処理する配列が保持されます。
戻り値の型 array
出力 再グループ化された要素の新しい配列を返します。

Unzip

構文
        
unzip(array)
      
説明 グループ化された要素の配列を作成します。グループ化された要素の配列を受け入れ、要素を zip 圧縮前の構成に再グループ化する配列も作成します。たとえば、f.unzip([[1, "one", "I"],[2, "two", "II"],[3, "three", "III"]])[[1,2,3],["one", "two", "three"],["I", "II", "III"]] を生成します。
入力パラメータ array: このパラメータには、処理する要素をグループ化した配列が保持されます。
戻り値の型 array
出力 再グループ化された要素の新しい配列を返します。

集計関数


XNOR

構文
        
xnor(a, b)
      
説明 指定されたブール値の論理 XNOR 演算を行います。
入力パラメータ a: ブール値。

b: ブール値。

戻り値の型 BOOLEAN
出力 指定された 2 つのブール値の XNOR を返します。

Xor

構文
        
xor(a, b)
      
説明 指定されたブール値の論理 XOR 演算を行います。
入力パラメータ a: ブール値。

b: ブール値。

戻り値の型 BOOLEAN
出力 指定された 2 つのブール値の XOR を返します。

ハッシュ関数


SHA1

構文
        
sha1(str)
      
説明 SHA-1(Secure Hash Algorithm 1)アルゴリズムを使用して、入力 STRING の暗号ハッシュを計算します。
入力パラメータ str: 入力文字列。
戻り値の型 BYTES
出力 160 ビット(20 バイト)のハッシュ値を返します。

SHA256

構文
        
sha256(str)
      
説明 SHA-256(Secure Hash Algorithm 256)アルゴリズムを使用して、入力 STRING の暗号ハッシュを計算します。
入力パラメータ str: 入力文字列。
戻り値の型 BYTES
出力 256 ビット(32 バイト)のハッシュ値を返します。

SHA512

構文
        
sha512(str)
      
説明 SHA-512(Secure Hash Algorithm 512)アルゴリズムを使用して、入力 STRING の暗号ハッシュを計算します。
入力パラメータ str: 入力文字列。
戻り値の型 BYTES
出力 512 ビット(64 バイト)のハッシュ値を返します。

SHA3

構文
        
sha3(str)
      
説明 SHA-3(Secure Hash Algorithm 3)アルゴリズムを使用して、入力 STRING の暗号ハッシュを計算します。
入力パラメータ str: 入力文字列。
戻り値の型 BYTES
出力 512 ビット(64 バイト)のハッシュ値を返します。

JSON 関数


Manifest XML

構文
        
manifestXml(json, format = "badgerfish", indent_output = false)
      
説明 指定された入力 JSON オブジェクトを XML 文字列に変換します。
入力パラメータ json: 入力 JSON オブジェクト。

format: 入力 JSON 表現形式。

indent_output: 出力 XML 文字列をインデントするかどうかを示すブール値の入力。デフォルト値は False です。

戻り値の型 STRING
出力 指定された JSON オブジェクト表現の XML 文字列を返します。

Object Remove Key

構文
        
objectRemoveKey(obj, key)
      
説明 JSON オブジェクトからプロパティを削除します。
入力パラメータ obj: 入力 JSON オブジェクト。

key: 削除する JSON プロパティ。

戻り値の型 JSON
出力 指定されたプロパティと対応する値を削除した後の更新された JSON オブジェクト。

Parse XML

構文
        
parseXml(xml, format = "badgerfish")
      
説明 指定された入力 XML 文字列をパースし、JSON オブジェクトに変換します。
入力パラメータ xml: 入力 XML 文字列。

format: 出力 JSON 表現形式。

戻り値の型 JSON
出力 指定された XML 文字列の JSON オブジェクト表現を返します。

Parse CSV With Header

構文
        
parseCsvWithHeader(input, delimiter = ",", overwrite_duplicate_headers = true)
      
説明 指定された入力 CSV 文字列を JSON として解析します。この場合、最初の行がヘッダーと見なされます。たとえば、f.parseCsvWithHeader("index,product,company\n1,Application Integration,Google\n2,Pubsub,Google")[{"index": "1", "product": "Application Integration", "company": "Google"},{"index": "2", "product": "Pubsub", "company": "Google"}] を生成します。
入力パラメータ input: 解析する CSV 文字列。

区切り文字: 使用する区切り文字。デフォルト値は「,」です。

overwrite_duplicate_headers: 重複するヘッダーの値を上書きするオプション。false に設定すると、重複するヘッダーの名前が変更されます。デフォルト値は true です。

戻り値の型 JSON
出力 指定された CSV 文字列の JSON 表現を返します。

Manifest CSV

構文
        
manifestCsv(json, headers = null)
      
説明 指定された JSON を CSV 文字列に変換します。たとえば、f.manifestCsv([{"index": "1", "product": "Application Integration", "company": "Google"},{"index": "2", "product": "Pubsub", "company": "Google"}])index,product,company\n1,Application Integration,Google\n2,Pubsub,Google を生成します。
入力パラメータ json: CSV に変換する JSON。

headers: CSV 出力のヘッダーリスト。値を指定しない場合、すべてのヘッダーが使用されます。

戻り値の型 STRING
出力 JSON から CSV 文字列を指定した形式で返します。

数学関数


Is Decimal

構文
        
isDecimal(num)
      
説明 指定された数値が 10 進数かどうかを確認します。
入力パラメータ num: 入力数値。
戻り値の型 BOOLEAN
出力 数値が 10 進数の場合は TRUE、それ以外の場合は FALSE を返します。

Is Even

構文
        
isEven(num)
      
説明 指定された数値が偶数かどうかを確認します。
入力パラメータ num: 入力数値。
戻り値の型 BOOLEAN
出力 数値が偶数の場合は TRUE、それ以外の場合は FALSE を返します。

Is Integer

構文
        
isInteger(num)
      
説明 指定された数値が整数かどうかを確認します。
入力パラメータ num: 入力数値。
戻り値の型 BOOLEAN
出力 数値が整数の場合は TRUE、それ以外の場合は FALSE を返します。

Is Odd

構文
        
isOdd(num)
      
説明 指定された数値が奇数かどうかを確認します。
入力パラメータ num: 入力数値。
戻り値の型 BOOLEAN
出力 数値が奇数の場合は TRUE、それ以外の場合は FALSE を返します。

Random Number

構文
        
randomNumber(lowerBound, upperBound)
      
説明 指定した範囲のランダムな実数を生成します。
入力パラメータ lowerBound: 範囲の下限値(この値を含む)。デフォルト値は 0 です。

upperBound: 上限値(この値を含まない)。デフォルト値は 1 です。

戻り値の型 実数。
出力 lowerBoundupperBound の間のランダムな実数を返します。

Round

構文
        
round(input)
      
説明 数値を最も近い整数に丸めます。
入力パラメータ 入力: 丸める値。
戻り値の型 INTEGER
戻り値 丸められた後の最も近い整数を返します。

文字列関数


Equals Ignore Case

構文
        
equalsIgnoreCase(str1, str2)
      
説明 文字列の大文字と小文字を区別せずに、指定された 2 つの文字列値を比較します。
入力パラメータ str1: 入力文字列。

str2: 入力文字列。

戻り値の型 BOOLEAN
出力 指定した値が既存の値と一致する(大文字と小文字は区別しません)場合は TRUE、一致しない場合は FALSE を返します。

Is Empty

構文
        
isEmpty(str)
      
説明 指定した文字列の長さが 0 かどうかを確認します。
入力パラメータ str: 入力文字列。
戻り値の型 BOOLEAN
出力 文字列が空の場合は TRUE、空でない場合は FALSE を返します。

Match

構文
        
match(str, regexp)
      
説明 文字列と正規表現を照合した結果を取得します。
入力パラメータ str: 入力文字列。

regexp: re2 正規表現

戻り値の型 ARRAY
出力 正規表現 regexp に一致する str の部分文字列の配列を返します。一致するものがない場合は、空の配列を返します。

Trim

構文
        
trim(str)
      
説明 指定した文字列の先頭と末尾の空白をすべて削除します。
入力パラメータ str: 入力文字列。
戻り値の型 STRING
出力 先頭と末尾の空白を削除した文字列のコピーを返します。

タイムスタンプ関数


Date Format

構文
        
dateFormat(timestamp, format_string, timezone, current_format)
      
説明 指定した format_string に従ってタイムスタンプをフォーマットします。
入力パラメータ timestamp: 入力タイムスタンプ。

format_string: 新しいタイムスタンプ形式。新しいタイムスタンプ形式文字列の作成に使用できる形式要素のリストについては、サポートされているタイムスタンプ形式要素をご覧ください。

timezone: 入力タイムスタンプのタイムゾーン。デフォルト値は UTC です。

current_format: 指定した入力タイムスタンプの解析に使用される形式。デフォルト値は E(エポック)です。

戻り値の型 STRING
出力 指定した format_string に基づいて入力 timestamp を変換し、新しい文字列を返します。

サポートされているタイムスタンプ形式要素

次の表では、dateFormat() 関数でサポートされている形式要素を示します。

形式要素 説明
YYYY 4 桁の年。 2023
YY 年の下 2 桁。 23
MMMM タイトルケースの月名。 March
MMM タイトルケースの月名の略称。 Mar
MM 月(01~12)。 03
M 月(1~12)。 3
DDDD タイトルケースの曜日。 Monday
DDD 曜日の略称。 Mon
DD 日付(01~31)。 06
D 日付(1~31)。 6
HH 24 時間形式の時刻(00~23)。 15
hh 12 時間形式の時刻(01~12)。 03
h 12 時間形式の時刻(1~12)。 3
mm 分(00~59)。 04
m 分(0~59)。 4
ss 秒(00~59)。 08
s 秒(0~59)。 8
FFFFFFFFF 秒の小数点以下 9 桁(ゼロを含む)。 00.123456789
FFFFFFFF 秒の小数点以下 8 桁(ゼロを含む)。 00.12345678
FFFFFFF 秒の小数点以下 7 桁(ゼロを含む)。 00.1234567
FFFFFF 秒の小数点以下 6 桁(ゼロを含む)。 00.123456
FFFFF 秒の小数点以下 5 桁(ゼロを含む)。 00.12345
FFFF 秒の小数点以下 4 桁(ゼロを含む)。 00.1234
FFF 秒の小数点以下 3 桁(ゼロを含む)。 00.123
FF 秒の小数点以下 2 桁(ゼロを含む)。 00.12
F 秒の小数点以下 1 桁(ゼロを含む)。 00.1
fffffffff 秒の小数点以下 9 桁。 987654321
ffffffff 秒の小数点以下 8 桁。 98765432
fffffff 秒の小数点以下 7 桁。 9876543
ffffff 秒の小数点以下 6 桁。 987654
fffff 秒の小数点以下 5 桁。 98765
ffff 秒の小数点以下 4 桁。 9876
fff 秒の小数点以下 3 桁。 987
ff 秒の小数点以下 2 桁。 98
f 秒の小数点以下 1 桁。 9
tt 午前、午後の表記。AM または PM で表示。 PM
t 午前、午後の表記(短縮形)。小文字の am または pm にマッピングされます。 pm
K タイムゾーンの名前。 PST
kk ±xx:xx 形式のタイムゾーン。 -8:00:00
k ±xxxx 形式のタイムゾーン。 -8000

Is Leap Year

構文
        
isLeapYear(year)
      
説明 指定した年がうるう年かどうかを確認します。
入力パラメータ year: 入力年(数字)。
戻り値の型 BOOLEAN
出力 年がうるう年の場合は TRUE、うるう年でない場合は FALSE を返します。

Now In Millis

構文
        
nowInMillis()
      
説明 Unix エポックから現在までの経過時間をミリ秒単位で返します。
入力パラメータ なし
戻り値の型 INT64
出力 現在の Unix エポック時間(ミリ秒)を返します。

ユーティリティ関数


UUID

構文
        
uuid()
      
説明 ランダムな UUID(Universally Unique Identifier)を STRING として生成します。返される STRING は、32 個の 16 進数を 5 つのグループにしてハイフンで区切った 8-4-4-4-12 という形式になります。この 16 進数は、122 個のランダムなビットと 6 個の固定ビットを表し、RFC 4122 セクション 4.4 に準拠しています。返される STRING は小文字です。
入力パラメータ なし
戻り値の型 STRING
出力 生成された UUID を文字列形式で返します。

Integration name

構文
        
getIntegrationName()
      
説明 現在の統合の名前を取得します。
入力パラメータ なし
戻り値の型 STRING
出力 現在の統合の名前を返します。

Integration region

構文
        
getIntegrationRegion()
      
説明 現在の統合のリージョンを取得します。
入力パラメータ なし
戻り値の型 STRING
出力 現在の統合のリージョンを返します。

Integration version ID

構文
        
getIntegrationVersionId()
      
説明 現在の統合のバージョン ID を取得します。
入力パラメータ なし
戻り値の型 STRING
出力 現在の統合のバージョン ID を返します。

Integration version number

構文
        
getIntegrationVersionNumber()
      
説明 現在の統合のバージョン番号を取得します。
入力パラメータ なし
戻り値の型 NUMBER
出力 現在の統合のバージョン番号を返します。

Execution ID

構文
        
getExecutionId()
      
説明 現在の統合実行の実行 ID を取得します。
入力パラメータ なし
戻り値の型 STRING
出力 現在の統合の実行 ID を返します。

Project ID

構文
        
getProjectId()
      
説明 現在の統合の Google Cloud プロジェクト ID を取得します。
入力パラメータ なし
戻り値の型 STRING
出力 現在の統合の Google Cloud プロジェクト ID を返します。