UiPath Documentation
maestro
latest
false
Maestro ユーザー ガイド
重要 :
このコンテンツの一部は機械翻訳によって処理されており、完全な翻訳を保証するものではありません。 新しいコンテンツの翻訳は、およそ 1 ~ 2 週間で公開されます。

式の構文

フロー ワークフローの変数、演算子、条件の 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

式を記述する場所

フローには、フィールドに応じて次の 2 つのモードがあります。

リテラル (テキスト) フィールド — 二重中括弧で囲まれたテキストに式を埋め込みます。これは、プロンプトまたはテンプレート化されたテキストが必要な場合にのみ使用します。

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

式フィールド ([判断] 条件と [条件分岐 (Switch)] 条件、[変数を更新] セクション) および スクリプト コード — 中括弧なしで式を直接記述します。

$vars.httpRequest1.output.statusCode === 200
$vars.httpRequest1.output.statusCode === 200

演算子

標準の 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 ${firstName}, your order #${orderId} has shipped.`
`Hello ${firstName}, your order #${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
{{ }} リテラル テキストとして表示される、またはテキスト フィールドが解決されないモードの不一致: {{ }} は、リテラル (テキスト) フィールドでのみ機能します{{ $vars.x }}はプレーン テキスト フィールドでのみ使用してください。[式] フィールド、および [判断] および [条件分岐 (switch)] で、中括弧なしで直接$vars.xを入力します。

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

備考

  • 式は設計時ではなく実行時に評価されます。構文エラーはノードの実行時に表面化します。
  • 設定フィールド内の式は、そのフィールドが期待する型に解決される必要があります。つまり、条件フィールドは true または falseに解決される必要があります。
  • .flow ファイルに表示される ==js: のプレフィックスは、内部のシリアル化形式です。エディターには入力しません。
  • 型チェックはベストエフォートです。緩やかに型指定された出力 ( anyと型付けされたオブジェクトまたは配列) への参照は完全には検証されていないため、入れ子になったフィールド名に入力ミスがあると警告なしに通過する可能性があります。ネストされたパスをノードの出力と照合して再確認してください。

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

接続

ヘルプ リソース サポート

学習する UiPath アカデミー

質問する UiPath フォーラム

最新情報を取得