パイプライン・コード・エディターでこれらの関数を使用して、例えば、ユーザー変数を定義したり、拡張条件を作成したりします。
Experssion Builder は、以下のカテゴリーを使用して関数をコーディングします。
変換関数
単一のデータ・エレメント・フォーマットを別のフォーマットに変換します。
基本データ・タイプ変換の表です
タイプ | 受け入れ対象 | 返品 | 構文 |
---|---|---|---|
double |
int, uint, string |
double |
double(val) |
duration |
string |
duration |
duration(string) 期間は「s」で終了する必要があります。「s」は秒を表します。 |
int |
int, uint, double, string, timestamp |
int |
int(val) |
timestamp |
string |
timestamp |
timestamp(string) RFC3339(「1972-01-01T10:00:20.021-05:00」) に従って、ストリングをタイム・スタンプに変換します。 |
uint |
int, double, string |
uint |
uint(val) |
例
例えば、値をタイプ double
にキャストします:
double(%val%)
倍精度浮動小数点数を int | uint
にキャストすると、結果がゼロの方向に丸められ、結果が範囲外の場合はエラーになります。
標準関数
IBM Orchestration Pipelines に固有の機能。
sub
位置オフセットから始まる、指定された正規表現に一致するストリングのサブストリングを置き換えます。
構文
(string).sub(substring (string), replacement (string), [occurrence (int), [offset (int)]])
戻り値: サブストリングが更新されたストリングです。
例
'aaabbbcccbbb'.sub('[b]+','RE')
「aaaREcccRE」を戻します。
形式
フォーマット指定子に従ってストリングまたはタイム・スタンプをフォーマットし、結果のストリングを戻します。
構文
ストリングのメソッドとしての formatです
(string).format(parameter 1 (string or bool or number)... parameter 10 (string or bool or number))
戻り値: フォーマット設定された入力値を含むストリング。
タイム・スタンプのメソッドとしての formatです
(timestamp).format(layout(string))
戻り値: ストリング形式でのフォーマットされたタイム・スタンプです。
例
'number=%d, text=%s'.format(1, 'str')
ストリング 「number=1, text=str」 を戻します。
timestamp('2020-07-24T09:07:29.000-00:00').format('%Y/%m/%d')
ストリング「2020/07/24」を戻します。
現在
現在のタイム・スタンプを戻します。
構文
now()
戻り値: 現在のタイム・スタンプです。
parseTimestamp
現在のタイム・スタンプをストリング形式で返します。
構文
parseTimestamp([timestamp_string(string)] [layout(string)])
returns: 現在のタイム・スタンプをストリング・タイプのストリングに変換します。
例
parseTimestamp('2020-07-24T09:07:29Z')
「2020-07-24T09:07:29.000-00:00」を戻します。
分
リスト内の最小値を戻します。
構文
(list).min()
戻り値: リストの最小値です。
例
[1,2,3].min()
整数 1 を戻します。
最大
リストの最大値を戻します。
構文
(list).max()
戻り値: リストの最大値です。
例
[1,2,3].max()
整数 3 を戻します。
argmin
リスト内の最小値のインデックスを戻します。
構文
(list).argmin()
戻り値: リストの最小値のインデックスです。
例
[1,2,3].argmin()
整数 0 を戻します。
argmax
リスト内の最大値のインデックスを戻します。
構文
(list).argmax()
戻り値: リストの最大値のインデックスです。
例
[1,2,3].argmax()
整数 2 を戻します。
合計
リスト内の値の合計を返します。
構文
(list).sum()
戻り値: リストの最大値のインデックスです。
例
[1,2,3].argmax()
整数 2 を戻します。
base64.decode
base64-encoded ストリングをバイトにデコードします。 ストリング入力が base64-encodedでない場合、この関数はエラーを返します。
構文
base64.decode(base64_encoded_string(string))
戻り値: バイト形式でのデコードされた base64-encoded ストリングです。
例
base64.decode('aGVsbG8=')
「hello」をバイト単位で戻します。
base64.encode
バイトを base64-encoded ストリングにエンコードします。
構文
base64.encode(bytes_to_encode (bytes))
戻り値:オリジナル・バイト値のエンコードされた base64-encoded ストリングです。
例
base64.decode(b'hello')
「aGVsbG8=」をバイト単位で戻します。
charAt
指定された位置にある文字を戻します。 位置が負の場合、またはストリングの長さより大きい場合、関数はエラーを生成します。
構文
(string).charAt(index (int))
戻り値: 整数形式で指定された位置の文字です。
例
'hello'.charAt(4)
文字「o」を戻します。
indexOf
検索ストリングの最初のオカレンスの整数インデックスを戻します。 検索ストリングが見つからない場合、関数は -1 を戻します。
構文
(string).indexOf(search_string (string), [offset (int)])
戻り値: オフセット後の最初の文字オカレンスのインデックスです。
例
'hello mellow'.indexOf('ello', 2)
整数 7 を戻します。
lowerAscii
ASCII 文字が小文字に変換された新しいストリングを戻します。
構文
(string).lowerAscii()
これは、新しい小文字ストリングを返します。
例
'TacoCat'.lowerAscii()
ストリング「TACOCAT」 を戻します。
取り替え
ターゲットに基づいて新規ストリングを戻します。これは、存在する場合は、検索ストリングの出現箇所を置換ストリングで置き換えました。 この関数は、作成されるサブストリング置換の数に関するオプションの制限を受け入れます。
構文
(string).replace(search_string (string), replacement (string), [offset (int)])
戻り値: 検索ストリングの出現箇所が置換された新規ストリングです。
例
'hello hello'.replace('he', 'we')
ストリング「wello wello」を戻します。
分割
セパレーターによって入力から分割されたストリングのリストを返します。 この関数は、分割によって生成されるサブストリングの数の制限を指定するオプションの引数を受け入れます。
構文
(string).split(separator (string), [limit (int)])
戻り値:ストリング・リストとしての分割ストリングです。
例
'hello hello hello'.split(' ')
文字列リスト ['hello ',' hello ',' hello '] を返します。
サブストリング
文字位置に対応する数値範囲を指定すると、サブストリングを戻します。 オプションで、文字位置からストリングの終わりまでのサブストリングの末尾範囲を省略することができます。
構文
(string).substring(start (int), [end (int)])
戻り値: ストリングの指定されたインデックスのサブストリングです。
例
'tacocat'.substring(4)
ストリング「cat」を戻します。
トリム
新規ストリングを返します。これにより、ターゲット・ストリングの先頭と末尾の空白文字が削除されます。 トリム関数は、空白文字の Unicode 定義を使用します。この定義には、ゼロ幅のスペースは含まれません。
構文
(string).trim()
空白文字を削除した新しい文字列が返されます。
例
' \ttrim\n '.trim()
ストリング「trim」を戻します。
upperAscii
すべての ASCII 文字が大文字になっている新規ストリングを戻します。
構文
(string).upperAscii()
戻り値:すべての文字が大文字に変換された新規ストリングです。
例
'TacoCat'.upperAscii()
ストリング「TACOCAT」 を戻します。
サイズ
ストリング、バイト、リスト、またはマップの長さを戻します。
構文
(string | bytes | list | map).size()
戻り値:ストリング、バイト、リスト、またはマップ配列の長さを戻します。
例
'hello'.size()
整数 5 を戻します。
'hello'.size()
整数 5 を戻します。
['a','b','c'].size()
整数 3 を戻します。
{'key': 'value'}.size()
整数 1 を戻します。
含む
ストリング・オペランドにサブストリングが含まれているかどうかをテストします。
構文
(string).contains(substring (string))
戻り値:サブストリングがストリング・オペランドに存在するかどうかを示すブール値ですです。
例
'hello'.contains('ll')
「真」を戻します。
endsWith
ストリング・オペランドが指定された接尾部で終わるかどうかをテストします。
構文
(string).endsWith(suffix (string))
戻り値:ストリング・オペランド内の指定された接尾部でストリングが終わるかどうかを示すブール値です。
例
'hello'.endsWith('llo')
「真」を戻します。
startsWith
ストリング・オペランドが接頭部引数で始まるかどうかをテストします。
構文
(string).startsWith(prefix (string))
戻り値:ストリング・オペランド内の指定された接頭部でストリングが始まるかどうかを示すブール値です。
例
'hello'.startsWith('he')
「真」を戻します。
が次の値に一致する
ストリング・オペランドが正規式と一致するかどうかをテストします。
構文
(string).matches(prefix (string))
戻り値: ストリングが指定された正規式に一致するかどうかを示すブール値です。
例
'Hello'.matches('[Hh]ello')
「真」を戻します。
getDate
タイム・ゾーン付きの日付 (デフォルトの協定世界時) から、1 ベースのインデックス付けの日を取得します。
構文
(timestamp).getDate([time_zone (string)])
戻り値: 1 ベースのインデックス付けを使用する日付。
例
timestamp('2020-07-24T09:07:29.000-00:00').getDate()
24 を戻します。
getDayOfMonth
タイム・ゾーン付きの日付 (デフォルトは協定世界時) から日を取得します (ゼロ・ベースの索引付け)。
構文
(timestamp).getDayOfMonth([time_zone (string)])
returns: ゼロ・ベースのインデックス付けを使用する日付。
例
timestamp('2020-07-24T09:07:29.000-00:00').getDayOfMonth()
23 を戻します。
getDayOfWeek
タイム・ゾーン付きの日付 (デフォルトは協定世界時) から曜日を取得します。ゼロ・ベースの索引付けで、日曜日はゼロになります。
構文
(timestamp).getDayOfWeek([time_zone (string)])
戻り値: ゼロ・ベースの索引付けが行われた曜日。
例
timestamp('2020-07-24T09:07:29.000-00:00').getDayOfWeek()
5 を戻します。
getDayOfYear
タイム・ゾーン付きの日付 (デフォルトは協定世界時) から年間通算日を取得します (ゼロ・ベースの索引付け)。
構文
(timestamp).getDayOfYear([time_zone (string)])
戻り値: ゼロ・ベースのインデックス付けを使用した年間通算日。
例
timestamp('2020-07-24T09:07:29.000-00:00').getDayOfYear()
205 を戻します。
getFullYear
タイム・ゾーン付きの日付から年を取得します (デフォルトは協定世界時)。
構文
(timestamp).getFullYear([time_zone (string)])
戻り値: 日付からの年です。
例
timestamp('2020-07-24T09:07:29.000-00:00').getFullYear()
2020 を戻します。
getMonth
タイム・ゾーンが 0 から 11 の日付から月を取得します。
構文
(timestamp).getMonth([time_zone (string)])
戻り値: 日付からの月です。
例
timestamp('2020-07-24T09:07:29.000-00:00').getMonth()
6 を戻します。
getHours
タイム・ゾーンが 0 から 23 の日付から時間を取得します。
構文
(timestamp).getHours([time_zone (string)])
戻り値: 日付からの時間です。
例
timestamp('2020-07-24T09:07:29.000-00:00').getHours()
9 を戻します。
getMinutes
タイム・ゾーンが 0 から 59 の日付から分を取得します。
構文
(timestamp).getMinutes([time_zone (string)])
戻り値:日付からの分です。
例
timestamp('2020-07-24T09:07:29.000-00:00').getMinutes()
7 を戻します。
getSeconds
タイム・ゾーン 0 から 59 までの日付から秒を取得します。
構文
(timestamp).getSeconds([time_zone (string)])
戻り値:日付からのの 2 番目です。
例
timestamp('2020-07-24T09:07:29.000-00:00').getSeconds()
29 を戻します。
getMilliseconds
タイム・ゾーンが 0 から 999 の日付からミリ秒を取得します。
構文
(timestamp).getMilliseconds([time_zone (string)])
戻り値: 日付からのミリ秒です。
例
timestamp('2020-07-24T09:07:29.021-00:00').getMilliseconds()
21 を戻します。
拡張グローバル・オブジェクトへのアクセス
以下のパイプライン・コードを使用して、ノード出力、ユーザー変数、およびパイプライン・パラメーターを取得します。
ユーザー変数の取得
ユーザー変数の最新の値を取得します。
構文
vars.<var name>
例
例 | 出力 |
---|---|
vars.my_user_var |
ユーザー変数 my_user_var の値を取得します。 |
パラメーターの取得
フロー・パラメーターを取得します。
構文
params.<param name>
例
例 | 出力 |
---|---|
params.a |
パラメーター a の値を取得します。 |
パラメーター・セットの取得
フロー・パラメーター・セットを取得します。
構文
param_set.<param_set_name>.<param_name>
例
例 | 出力 |
---|---|
param_set.ps.a |
a パラメーター・セットから ps パラメーターの値を取得します。 |
param_sets.config |
パイプライン構成値を取得します。 |
param_sets.config.deadline |
構成パラメーター・セットから日付オブジェクトを取得します。 |
param_sets.ps["$PARAM"] |
$PARAM パラメーター・セットから ps パラメーターの値を取得します。 |
タスク結果の取得
パイプライン・タスクの実行完了後に、パイプライン・タスクの結果出力およびその他のメトリックをパイプライン・タスクから取得します。
構文
tasks.<node id>.<output name>
例
例 | 出力 |
---|---|
tasks.run_datastage_job |
ジョブ出力の結果ディクショナリーを取得します。 |
tasks.run_datastage_job.results.score |
ジョブ出力の値 score を取得します。 |
tasks.run_datastage_job.results.timestamp |
ジョブ実行の終了タイム・スタンプを取得します。 |
tasks.run_datastage_job.results.error |
ジョブ実行からエラーの数を取得します。 |
tasks.loop_task.loop.counter |
ジョブ実行の現在のループ反復カウンターを取得します。 |
tasks.loop_task.loop.item |
ジョブ実行の現在のループ反復項目を取得します。 |
tasks.run_datastage_job.results.status |
ジョブ実行の成功または失敗のいずれかの状況を取得します。 |
tasks.run_datastage_job.results.status_message |
ジョブ実行の状況メッセージを取得します。 |
tasks.run_datastage_job.results.job_name |
ジョブ名を取得します。 |
tasks.run_datastage_job.results.job |
ジョブの Cloud Pak for Data パスを取得します。 |
tasks.run_datastage_job.results.job_run |
ジョブ実行の Cloud Pak for Data 実行パスを取得します。 |
パイプライン・コンテキスト・オブジェクトの取得
スコープ (プロジェクト、スペース、カタログ) で実行されるパイプラインのコンテキストで評価される値を取得します。
例
例 | 出力 |
---|---|
ctx.scope.id |
スコープ ID を取得します。 |
ctx.scope.type |
「project」、「space」、または「catalog」のいずれかを返します。 |
ctx.scope.name |
スコープ名を取得します。 |
ctx.pipeline.id |
パイプライン ID を取得します |
ctx.pipeline.name |
パイプライン名を取得します。 |
ctx.job.id |
ジョブ ID を取得します。 |
ctx.run_datastage_job.id |
ジョブ実行 ID を取得します。 |
ctx.run_datastage_job.started_at |
ジョブ実行開始時刻を取得します。 |
ctx.user.id |
ユーザー ID を取得します。 |
エラー状況の取得
例外ハンドラーがトリガーされると、エラー・オブジェクトが作成され、例外ハンドラー内でのみアクセス可能になります。
例
例 | 出力 |
---|---|
error.status |
ジョブ実行の成功または失敗のいずれかの状況を取得します。通常は失敗します。 |
error.status_message |
エラー状況メッセージを取得します。 |
error.job |
ジョブの Cloud Pak for Data パスを取得します。 |
error.run_datastage_job |
ジョブの Cloud Pak for Data 実行パスを取得します ( watsonxでは使用できません)。 |
親トピック: パイプラインへの条件の追加