UiPath Documentation
maestro-automate
latest
false
Maestro Automate ユーザー ガイド

式の構文

ワークフロー内の変数、演算子、条件の JavaScript 式の構文。

式は、値を読み取ったり計算したりする、広く使用されているプログラミング言語である JavaScript の短い部分です。ワークフロー内の式は、 $vars プレフィックスが付いた値を参照し、設定フィールド、[判断条件と条件]、[条件分岐]、[スクリプト コード] で使用されます。

変数とデータ フローは 、ノード間でデータがどのように移動し、変数がどのように機能するかを記述します。

変数参照​

参照するすべての値は、 $varsの下に存在します。

$vars.httpRequest1.output.body      // node output
$vars.orderTotal                    // variable
$vars.manualTrigger1.output.userId  // trigger input
$vars.httpRequest1.output.body      // node output
$vars.orderTotal                    // variable
$vars.manualTrigger1.output.userId  // trigger input
  • ノード出力: $vars.<nodeName>.output。すべてのノードは、その結果を で公開します.outputそのオブジェクトの形状はノードによって異なるため、 ノード参照 の各ページには、そのノードの出力フィールドが一覧表示されます。
  • 変数: $vars.<name>。
  • トリガーの入力: $vars.<triggerName>.output.<inputName>。

入れ子になったプロパティではドット表記が使用され、配列要素では角括弧表記が使用されます。

$vars.httpRequest1.output.body.customer.email
$vars.httpRequest1.output.body.items[0].id
$vars.httpRequest1.output.body.customer.email
$vars.httpRequest1.output.body.items[0].id

式を記述する場所​

要するルールは、スクリプト コード、条件、および [式] に設定されたフィールドに直接$vars…を入力し、それを [固定値] に設定されたテキスト フィールド内に囲み{{ $vars… }}ことです。

ほとんどの構成フィールドには、固定値または式のいずれかを格納できます。フィールドの右端にあるアイコンをクリックすると、メニューが開き、次の 3 つのオプションが表示されます。

  • 固定値: 値を直接入力します。
  • 式: JavaScript の式を記述します。エディターは IntelliSense を提供し、入力時に名前とプロパティを提案します。このモードでは、フィールドの式の前に = が表示されます。
  • 値をクリア: フィールド内を削除します。

フィールド ラベルの横にある [挿入 ] メニューをクリックすると、そのノードで利用可能な値の検索可能なリストが開きます。このリストは の下にあるツリー $vars、ノードごとに 1 つのエントリ、その output、およびその中のフィールドがあり、各フィールドにはその種類 ( string や objectなど) が表示されます。このリストには、エントリ FolderKey、InstanceId、ProcessKey、ElementCountを含む$metadata グループもあります。

固定値フィールド​

[ 固定値 ] に設定されたフィールドにはテキストが格納されます。テキストに式を埋め込むには、[ 挿入] メニューから値を選択し、参照を二重中括弧で囲みます。エディターは参照を確認し、フィールドの下に問題を報告します。たとえば、ノードの出力にプロパティが存在しない場合:

https://api.example.com/users/{{ $vars.manualTrigger1.output.userId }}
https://api.example.com/users/{{ $vars.manualTrigger1.output.userId }}

式フィールドとスクリプト コード​

[ 式]、[判断] と [条件分岐 (switch)] に設定されたフィールド、[ 変数を更新 ] セクション、および [スクリプト コード] は、中括弧なしで式を直接取得します。

$vars.httpRequest1.output.code === 200
$vars.httpRequest1.output.code === 200

式フィールドでは、テキストと値を + で結合するか、テンプレート リテラルを使用して結合します。次はどちらも同じ結果になります。

"https://api.example.com/users/" + $vars.manualTrigger1.output.userId
`https://api.example.com/users/${$vars.manualTrigger1.output.userId}`
"https://api.example.com/users/" + $vars.manualTrigger1.output.userId
`https://api.example.com/users/${$vars.manualTrigger1.output.userId}`

演算子​

標準の JavaScript 演算子がサポートされています。

演算子例結果
等値$vars.status === "active"true OR false
非等値$vars.count !== 0true OR false
比較$vars.price > 100true OR false
論理積$vars.isVerified && $vars.isActivetrue OR false
論理和$vars.role === "admin" || $vars.role === "owner"true OR false
三項$vars.count > 0 ? "has items" : "empty"string

文字列の操作​

"Hello, " + $vars.firstName
$vars.message.toUpperCase()
$vars.email.includes("@uipath.com")
"Hello, " + $vars.firstName
$vars.message.toUpperCase()
$vars.email.includes("@uipath.com")

テンプレート リテラルは、変数と静的テキストを組み合わせます。

`Hello ${$vars.firstName}, your order #${$vars.orderId} has shipped.`
`Hello ${$vars.firstName}, your order #${$vars.orderId} has shipped.`

任意のチェーン​

?.演算子は、未定義の可能性のあるプロパティを安全に読み取ります。

$vars.httpRequest1.output.body?.items?.[0]?.id
$vars.httpRequest1.output.body?.items?.[0]?.id

結果は、中間プロパティが null または未定義の場合、実行時エラーではなく undefinedされます。

Nullish 結合​

??演算子は、値が null または未定義の場合に既定値を指定します。

$vars.userName ?? "Anonymous"
$vars.userName ?? "Anonymous"

一般的なエラー​

症状原因何をすべきか
式は次のように解決されます。 undefinedノードが実行される前にノードの出力を参照したか、出力に存在しないフィールドを参照した上流ノードからの出力のみを参照します。実際の出力フィールドについては、ノードのリファレンス ページをご覧ください。欠落している可能性があるプロパティには、任意のチェーン (?.) を使用します。
[判断] 条件または [条件分岐 (switch)] 条件が予期しない動作をする、または失敗するこの条件は裸のブール式ではなく、たとえば return ステートメントとして記述されますtrue または falseに解決されるプレーンな式を記述します (例: $vars.order1.output.total > 1000)。returnは使用しないでください。
Cannot find name '$vars' (または '$self')変数がこのノードのスコープ内にないか、 $self 変数が独自の出力を生成しないノードで使用されていますそのノードの変数ピッカーに表示されている変数のみを参照します。$vars スコープ内の変数のみに解決されます。 $self は、出力を生成するノードでのみ使用できます。
別のノードの値を参照できませんスコープが上流のみの場合: ノードは、下流のノード、兄弟ブランチ内のノード、またはすでに終了したループ内のノードを認識できません生産ノードが参照する場所の上流になるように再構築するか、スコープ内の変数を介して値を運びます。
$vars.<node>.error は利用できませんノードのエラー出力は、そのノードでエラー処理が有効になっている (または、そのエラーパスが接続されている) 場合にのみ、スコープ内にありますノードでエラー処理を有効化するか、ノードのエラー ハンドルを接続してから、 を参照 $vars.<node>.error。
Failed to evaluate expression =js:(https://...): Unexpected token ':'URL などのプレーンな値は、引用符なしで [式 ] に設定されたフィールドにあるため、JavaScript として読み取られますフィールドを [ 固定値] に切り替えるか、テキストを引用符で囲みます (例: "https://api.example.com/users")。
{{ }} リテラル テキストとして表示される、またはテキスト フィールドが解決されないモードの不一致: {{ }} は、[固定値] に設定されたフィールドでのみ機能します{{ $vars.x }}は固定値フィールドでのみ使用します。[式] フィールド、および [判断] および [条件分岐 (switch)] で、中括弧なしで直接 $vars.x を入力します。

[判断] 条件と [条件分岐 (switch)] 条件は、実行時に式として実行されます。return ステートメントは、スクリプト ノード コードでのみ有効です。

備考​

  • 式は設計時ではなく実行時に評価されます。構文エラーはノードの実行時に表面化します。
  • 設定フィールド内の式は、そのフィールドで予期される型に解決される必要があります。条件フィールドは true または falseに解決される必要があります。
  • 式フィールドには、式モードを示す式の前に = が表示されます。.flow ファイルに表示される =js: プレフィックスは内部シリアル化形式であり、エディターに入力することはありません。
  • 型チェックは部分的です。固定の構造を持たない出力への参照は完全には検証されないため、入れ子になったフィールド名の入力ミスは警告なしに通過する可能性があります。入れ子になったパスを、ノード参照にリストされている出力フィールドと比較します。

次のステップ​

このページは役に立ちましたか?

接続

ヘルプ リソース サポート(opens in new window)

学習する UiPath アカデミー(opens in new window)

質問する UiPath フォーラム(opens in new window)

最新情報を取得