機械翻訳について

式に関するガイドライン

ロボットでアクションを定義するときに、値を更新したり、値を使用して計算を完了したり、値に対して操作を実行することが必要な場合があります。 式を使用してこれらのタスクを完了します。 式ごとに、正しい構文を使用する必要があります。

式について

式は値に対して操作を実行し、別の値を返します。

ロボットをビルドするときは、多くのフィールドで式を使用できます。 式で機能する値は、次のような多くの場所から取得できます:

  • ロボットが対話するアプリケーション。

  • 別のアプリケーション。

  • 定義する変数、パラメータまたはプロパティ。

  • 定義する値。

実際の式の例は、「ユース・ケース」を参照してください。

算術演算子

算術演算子は、加算や減算などの算術演算を実行します。

演算子 Python相当 説明 戻り値
+ + 加算 ${2+2} 4
- - 減算 ${3-1} 2
* * 乗算 ${3*2} 6
/ / 除算 ${8/4} 2
% % 分割の残りを返すモジュロ ${3%2} 1

比較演算子

比較演算子は値を比較し、trueまたはfalseを返します。

演算子 Python相当 説明 戻り値
> >

より大きい

${2>3} false
< <

より小さい

${1<3} true
>= >=

以上

${2>=1} false
<= <=

以下

${4<=5} true
== ==

等しい

${1==1}

${one==one}

true

論理演算子

論理演算子は、2つの比較を組み合せてtrueまたはfalseを返します。

演算子 Python相当 説明 戻り値
&& and

両方の文がtrueである必要があります

${1<=2 && 2<=3}

true
|| or

いずれかの文がtrueである必要があります

${2<=1 || 3<=2}

false

反転演算子

反転演算子は、期待した結果と逆の結果を返します。

演算子 Python相当 説明
! not

NOT操作。比較の結果を反転

NOT操作(!)と式を明確に区別するには、カッコを使用します。

${!(1>=2)}trueを返します

${!(1<=2 && 2<=3)}falseを返します

${!(2<=1 || 3<=2)}trueを返します

関数

関数はデータを取り込み、処理し、結果を返します。

関数 説明 書式
count()

要素のコレクションのカウントを返します。

Python相当: count()

${count(value)}

説明:

valueは、コレクション変数の名前です

数値コレクション変数のカウントを返します

${count($VARIABLE.numberCollection1)}

説明:

numberCollection1は、コレクション変数の名前です

first()

コレクション内の最初の要素を返します。

Python相当: first()

${first(value)}

説明:

valueは、コレクション変数の名前です

数値コレクション変数の最初の要素を返します

${first($VARIABLE.numberCollection1)}

説明:

numberCollection1は、コレクション変数の名前です

last()

コレクション内の最後の要素を返します。

Python相当: last()

${last(value)}

説明:

valueは、コレクション変数の名前です

数値コレクション変数の最後の要素を返します

${first($VARIABLE.numberCollection1)}

説明:

numberCollection1は、コレクション変数の名前です

toNumber()

数値文字列の整数または浮動小数を返します。

Python相当: 直接同等ではありませんが、int()およびfloat()を使用して文字列を数値に変換できます

${toNumber(value)}

説明:

valueは、返される数値です

数値文字列値から数値を返します

toNumber("100.00")100.00を返します

toNumber("100,000")100000を返します

toNumber("100,000.00")100000.00を返します

toNumber($VARIABLE.amount)は、変数の値に従って値を返します:

  • $VARIABLE.amount100の場合、100を返します
  • $VARIABLE.amount100.00の場合、100.00を返します

文字列値に数値以外の文字が含まれている場合は、エラーが発生します。 たとえば、toNumber("100A")はエラーを返します

toString()

オブジェクトを表す文字列を返します。

Python相当: str()

${toString(value)}

説明:

valueは、返される文字列です

数値を表す文字列を返します

${toString(1)}1を返します

個人の姓と名を返します

「個人」という名前のデータ型を定義します。 個人には2つのプロパティがあります: First_nameおよびLast_name

次に、変数var1を定義します。 「個人」データ型のベースvar1

ロボットは変数に対して次の値を返します:

  • var1.FirstName = “John”
  • var1.Lastname = “Doe”

このシナリオでは、次の式を使用します:

${toString(var1)}

{ “FirstName”: “John”,. “lastName”: “Doe” }を返します

trim()

テキストの先頭と末尾の空白文字(スペース、タブ、その他の空白を含む)を削除します。

${trim(value)}

説明:

valueは変数の名前です

先頭または末尾の空白文字のない値を返します

${trim($VARIABLE.company_name)}

company_name = ' Oracle '

Oracleを返します

subString()

文字列内の指定された文字を返します。

索引はゼロ・ベースです。 平易な英語では、ゼロ・ベースのインデックスは、0で値のカウントを開始することを意味します。 たとえば、値ABCsubString関数を使用している場合:
  • A はエントリ0です
  • B はエントリ1です
  • C はエントリ2です

Python相当: $name[start:stop]

${subString(string, startIndex, endIndex)}

説明:

  • stringは評価する文字列です
  • startIndexは、返される部分文字列に含める最初の文字です
  • endIndexは、返される部分文字列に含める最後の文字です

文字のサブセットを返します

${subString(ABCDEF, 0, 0)}Aを返します

${subString(ABCDEF, 1, 1)}Bを返します

${subString(ABCDEF, 2, 4)}CDEを返します

電話番号の最後の4桁を返します

${subString(5551234567, 6, 9)}4567を返します

formatString()

位置プレースホルダを使用してテンプレート文字列を書式設定します。

テンプレートおよび指定されたすべての値を文字列に変換し、位置引数でのみ文字列書式設定を適用します。 これは、{}、{0}、{1}などのプレースホルダをサポートします。

ノート:

名前付きプレースホルダ(たとえば{name})はサポートされていません。

Python相当: str(template).format(*(str(v) for v in values))

${VARIABLE.result} = ${formatString($VARIABLE.template, $VARIABLE.values)}

説明:

  • templateは、フォーマットされるテンプレート文字列です
  • valuesは、実行時に置換する値の集合です。

次の例の書式付き文字列を返します

基本的な位置書式設定

${formatString("Hello, {}!", ["Alice"])}

戻り値

"Hello, Alice!"

複数値

${formatString("{} has {} new messages", ["Bob", "5"])}

戻り値

"Bob has 5 new messages"

インデックス付きプレースホルダ

${formatString("{1}, {0}, and {1} again", ["first", "second"])}

戻り値

"second, first, and second again"

余分な値は無視されます

${formatString("Only {} is used", ["this", "that"])}

戻り値

"Only this is used"

値が欠落するとIndexErrorが発生する

${formatString("{} {}", ["one"])}

戻り値

IndexError due to missing argument values.

指定されたプレースホルダによりKeyErrorが呼び出されます。

${formatString("User: {name}", ["Alice"])}

戻り値

KeyError because keyword arguments are not allowed.

中カッコのエスケープ

${formatString("Set is {{1, 2, {}}}", [3])}

戻り値

"Set is {1, 2, 3}"

カスタムXPath式

${formatString("xpath://div[normalize-space(text()) = '{}']//div[normalize-space(text()) = '{}, {}']/..",["PERTH", "TAS", "7300"])}

戻り値

"xpath://div[normalize-space(text()) = 'PERTH']//div[normalize-space(text()) = 'TAS, 7300']/.."

データ・ステッチ・アクションの場合:
  • テンプレートを次のように準備します: ${$VARIABLE.template} = "xpath://div[normalize-space(text()) = '{}']//div[normalize-space(text()) = '{}, {}']/.."
  • 値コレクションを次のように準備します。

    ノート:

    +は、追加操作を示します。

    ${$VARIABLE.values} + "PERTH"

    ${$VARIABLE.values} + "TAS"

    ${$VARIABLE.values} + ${toString(7300)}

    最終値、

    ["PERTH", "TAS", "7300"]

データ文字列の場合は、${$VARIABLE.result} = ${formatString($VARIABLE.template, $VARIABLE.values)}のようにformatString関数を使用します。

式構文の書式設定ルール

ロボット・アクションまたはロボット・リソースを作成する場合は、多くのフィールドに式の構文を入力できます。 式ごとに正しい構文を使用する必要があります。

一般的な書式設定ルール

すべての式に適用される一般的なルールもあります。

ガイドライン 詳細情報

次の構文を使用してすべての式を書式設定: ${}

すべての式全体を中カッコで囲みます。 たとえば:

${toString($VARIABLE.CurrentInvoice[InvoiceAmount]) == $VARIABLE.InvAmt && $VARIABLE.CurrentInvoice[SupplierName] ==$VARIABLE.SuppName}

すべてのリテラル文字列を引用符で囲みます: ""

リテラル文字列は、入力する任意の直線テキストです。 たとえば:

${"https://www.mycompany.com/"}

リテラル番号は使用できますが、指数を使用することはできません

サポートされている値:

  • 1-1および+1
  • 1.56-1.56および+1.56

サポート対象外:

  • 1e2
  • 2^2

操作の順序がグローバルに確立された優先順位のルールに従うことを期待

たとえば、論理演算子の両側の式は、論理演算子が評価される前に評価されます。

プレースホルダー値の書式設定ルール

変数、ロボット接続、入出力プロパティなどの各プレースホルダー値には、式構文の独自の書式設定ルールがあります。

書式

入力 入力プロパティ

入力プロパティの書式

${INPUT.input_property_name}

説明:

  • input_property_nameは、入力プロパティの名前です。

入力プロパティのデータ型プロパティの書式

この形式は、1つ以上のプロパティを持つカスタム・データ型の入力プロパティに基づいて、データ型プロパティの1つを参照する必要がある場合に使用します。

  • オプション1: ${INPUT.input_property_name[property_name]}

    この形式では、値にスペースを含むプロパティ名を参照できます。

  • オプション2: ${INPUT.input_property_name.property_name}

    この形式では、property_name値にスペースを使用できないため、このオプションを使用できるのは、データ型のプロパティの名前にスペースが含まれていない場合のみです。

説明:

  • input_property_nameは、入力プロパティの名前です。

  • property_nameは、入力プロパティの基になるデータ型プロパティの名前です。

ノート: 入力プロパティはネストできます。 ネストされたプロパティについても同じ書式設定ルールに従います。 たとえば:

  • ${INPUT.input_property_name[property_name][property_name][property_name]}

  • ${INPUT.input_property_name.property_name.property_name.property_name}

出力出力プロパティ

出力プロパティのフォーマット

${OUTPUT.output_property_name}

説明:

  • output_property_nameは、出力プロパティの名前です。

出力プロパティのデータ型プロパティの書式

この形式は、1つ以上のプロパティを持つカスタム・データ型に出力プロパティを基に、データ型プロパティの1つを参照する必要がある場合に使用します。

  • オプション1: ${OUTPUT.output_property_name[property_name]}

    この形式では、値にスペースを含むプロパティ名を参照できます。

  • オプション2: ${OUTPUT.output_property_name.property_name}

    この形式では、property_name値にスペースを使用できないため、このオプションを使用できるのは、データ型のプロパティの名前にスペースが含まれていない場合のみです。

説明:

  • output_property_nameは、出力のプロパティの名前です。

  • property_nameは、出力プロパティの基になるデータ型プロパティの名前です。

ノート: 出力プロパティはネストできます。 これらのネストされたプロパティについても同じ書式設定ルールに従います。 たとえば:

  • ${OUTPUT.output_property_name[property_name][property_name][property_name]}

  • ${OUTPUT.output_property_name.property_name.property_name.property_name}

ページ状態 ページ状態

${pageState("page_state_name")}

説明:

  • page_state_nameは、ページ状態の名前です

ロボット接続 ロボット接続

${CONNECTION.robot_connection_name.property}

説明:

  • robot_connection_nameは、ロボット接続の名前です

  • propertyは、ロボット接続のプロパティの名前です

ページ要素をターゲット指定 ターゲット

${TARGET.target_name}

説明:

  • target_nameは、ターゲットの名前です。

変数変数

変数の書式

${VARIABLE.variable_name}

説明:

  • variable_nameは、変数の名前です。

変数のデータ型プロパティの書式

この形式は、1つ以上のプロパティを持つカスタム・データ型に変数を基に、プロパティのいずれかを参照する必要がある場合に使用します。

  • オプション1: ${VARIABLE.variable_name[property_name]}

    この形式では、値にスペースを含むプロパティ名を参照できます。

  • オプション2: ${VARIABLE.variable_name.property_name}

    この形式では、property_name値にスペースを使用できないため、このオプションを使用できるのは、データ型のプロパティの名前にスペースが含まれていない場合のみです。

説明:

  • variable_nameは、変数の名前です。

  • property_nameは、変数の基になるデータ型のプロパティの名前です。

ノート: 変数はネストされたプロパティを持つことができます。 これらのネストされたプロパティについても同じ書式設定ルールに従います。 たとえば:

  • ${VARIABLE.variable_name[property_name][property_name][property_name]}

  • ${VARIABLE.variable_name.property_name.property_name.property_name}

文字列を数値に変換するタイミング

「テキストの取得」アクションを使用してアプリケーションから値を取得する場合、Oracle Integrationは値を文字列として格納します。 値を別の数値に追加したり、別の数値と比較したりするなど、値に対して数値関数を実行する場合は、最初に値を数値に変換する必要があります。

値を数値に変換しない場合、数値関数は想定どおりに機能しません。

toNumber関数を使用して、文字列を数値に変換します。 「関数」を参照してください。