アクティビティ
最新
バナーの背景画像
ワークフローに関するアクティビティ
最終更新日 2024年4月22日

高度な論理

フォーム デザイナーの [論理] タブでは、条件や高度な論理スクリプトを作成し、それによって、選択したフォーム コンポーネントのステートや動作を変更できます。

高度な論理を使用すると、フォーム コンポーネントのコントロール、外観、操作感を動的に変更できます。

フォームの論理は、トリガーとアクションの 2 つの部分で構成されます。

トリガー: 論理のトリガーは、アクションが発生する条件です。たとえば、チェックボックス オプションが選択されている場合にのみ、特定のフォーム フィールドを表示できます。この場合、チェックボックス オプションがトリガーになり、フォーム フィールドの表示がアクションになります。

論理トリガーには次の 4 種類があります。

トリガーの種類

説明

Simple

1 つのトリガー フォーム コンポーネントと値を定義します。

docs image

JavaScript

フォーム コンポーネントまたはフォーム データの JavaScript 論理を指定します。

ループや動的な動作など、複雑なロジックを作成するには、JavaScript 構文を使用します。

docs image

JSON 論理

フォーム コンポーネントまたはフォーム データの JSON 論理を指定します。

JavaScript を使用できない場合に推奨されます。

ループや動的な動作をサポートすることはできません。

docs image

イベント

コンポーネント イベントを定義します。対応するコンポーネントによってこのイベントが生成されると、目的のアクションがトリガーされます。

docs image

操作

論理アクションは、設定した論理条件 (トリガー) に基づいて発生させるフォーム コンポーネントの動作です。たとえば、特定の年齢のユーザーに対してボタンをアクティブ化できます。この場合、年齢範囲がトリガーになり、ボタンのアクティブ化がアクションになります。

論理アクションには、次の 4 種類があります。

アクションの種類

説明

プロパティ

トリガーは、利用可能なコンポーネントのプロパティ (ツールチップ、説明、CSS クラスなど) のいずれかを変更します。

利用可能なプロパティは、トリガー コンポーネントの種類によって異なります。

docs image

値 (Value)

トリガーによって、対応するコンポーネントの値を変更します。

アクションは JavaScript 構文を使用して定義する必要があります。

docs image

コンポーネント スキーマをマージ

トリガーによって、コンポーネント JSON で見つかったコンポーネント スキーマ パラメーターを変更します。

変更できるスキーマ パラメーターを確認するには、対応するコンポーネント上でホバーして [JSON を編集] をクリックします。

1 つのアクション内で複数のパラメーターを変更できます。

docs image

カスタム アクション

JavaScript のトリガーの種類を定義する場合と同じように、JavaScript 構文を使用してカスタム アクションを定義します。

 

チュートリアル

高度な論理を設定するには、以下の手順を実行します。

  1. [フォームを作成] アクティビティでフォーム デザイナーを開きます。
  2. コンポーネントをフォームにドラッグ アンド ドロップします。フィールド キーに注意してください。フィールド キーは高度な論理で使用する場合があります。
  3. 変更するコンポーネント (アクションを実行するコンポーネント) の [論理] タブに移動します。
  4. [+ 論理を追加] をクリックします。論理はいくつでも追加できます。
  5. 論理の名前を入力します。
  6. [トリガー] ペインで、論理で使用するトリガーの種類を選択します。利用可能な種類は、[シンプル][Javascript][JSON 論理][イベント] です。アクションをトリガーするために必要な条件を設定します。
  7. [アクション] ペインで、[+ アクションを追加] をクリックします。アクションはいくつでも追加できます。すべてのアクションは、そのアクションをグループ化する論理によってトリガーされます。
  8. アクションの名前を入力します。
  9. 使用するアクションの種類を選択します。利用可能な種類は、[プロパティ][値][コンポーネント スキーマをマージ][カスタム アクション] です。アクションで必要とされる効果を設定します。
  10. すべての設定が完了したら、[アクションを保存] をクリックします。
  11. 論理を保存するには、[論理を保存] をクリックします。

上記の手順は、一般的にあらゆる種類のトリガーまたはアクションに適用されます。詳しい手順については、特定のトリガーとアクションの種類それぞれの例を示した個別のチュートリアルをご覧ください。

2 つのテキスト フィールドを動的に合計する

トリガーの種類: JavaScript アクションの種類:

この高度な論理は、対応するテキスト フィールドをユーザーが操作したかどうかという条件に基づいて、2 つのテキスト フィールドを合計します。

  1. [フォームを作成] アクティビティでフォーム デザイナーを開きます。
  2. 3 つの テキスト フィールド コンポーネントをフォームにドラッグ アンド ドロップします。
  3. テキスト フィールド コンポーネントの 2 つに A および B という名前を付け、3 つ目のコンポーネントに Total という名前を付けます。フィールド キーに注意してください。フィールド キーは高度な論理で使用します。
    任意で、Total テキスト フィールド コンポーネントを無効に設定し、ビジネス ユーザーが操作できないようにすることができます。
  4. [Total] フィールド コンポーネントの [論理] タブに移動します。
  5. 論理を追加し、「dynamic sum」という名前を付けます。
  6. [Javascript] のトリガーの種類を選択し、[テキスト領域] セクションに以下のスクリプトを入力します。

    result = true;
    return result;result = true;
    return result;

    上記のスニペットは、テキスト フィールドに変更があるかどうか (つまり、ユーザーがテキスト フィールドを操作したかどうか) を検出し、フィールドを合計するアクションをトリガーします。

  7. アクションを追加し、「a+b」という名前を付けます。
  8. [値] のアクションの種類を選択し、[値 (Javascript)] セクションに以下のスクリプトを入力します。

    result = (+data.a) + (+data.b);
    return result;result = (+data.a) + (+data.b);
    return result;
    ab をテキスト フィールド コンポーネントのフィールド キーの値に置き換えます。
  9. アクションと論理を保存します。
  10. コンポーネントを保存します。
実行時に、ビジネス ユーザーがテキスト フィールド [A] および [B] を操作すると、A と B の合計が [Total] フィールドに自動的に入力されて表示されます。

フィールドを動的に非表示にする

トリガーの種類: シンプル アクションの種類: プロパティ

この高度な論理は、ユーザーが別のフォーム フィールド (Parent field) に「hide」と入力すると、フォーム フィールド (Child field) を非表示にします。
  1. [フォームを作成] アクティビティでフォーム デザイナーを開きます。
  2. 2 つの テキスト フィールド コンポーネントをドラッグ アンド ドロップします。
  3. 一方のテキスト フィールド コンポーネントに Parent field という名前を付け、もう一方に Child field という名前を付けます。フィールド キーに注意してください。フィールド キーは高度な論理で使用します。
  4. Child field コンポーネントの [論理] タブに移動します。
  5. 論理を追加し、「hide input」という名前を付けます。
  6. [シンプル] のトリガーの種類を選択します。

    6.1. [条件として使用するフォーム コンポーネント] ドロップダウン メニューから、Parent field ({parentField_field_key}) を選択します。

    6.2. [条件として使用する値] フィールドに、「hide」と入力します。

    上記の設定により、ユーザーが親フィールドに文字列「hide」を入力した場合を検出し、子フィールドを非表示にするアクションをトリガーします。

  7. アクションを追加し、「hide」という名前を付けます。
  8. [プロパティ] のアクションの種類を選択します。

    8.1. [コンポーネントのプロパティ] ドロップダウン メニューから、[非表示] を選択します。

    8.2. [ステートを設定] ドロップダウン メニューから、[True] を選択します。

  9. アクションと論理を保存します。
  10. コンポーネントを保存します。

実行時に、ビジネス ユーザーが親フィールドに「hide」と入力すると、子フィールドが非表示になります。

タイトルの色を動的に変更する

トリガーの種類: シンプル アクションの種類: コンポーネント スキーマをマージ

この高度な論理は、ユーザーがリストから目的の色を選択すると、テキスト フィールド コンポーネントのラベルの色を変更します。この変更は、カスタム CSS ファイルを使用して適用されます。

前提条件:

テキスト フィールド ラベルの新しい色を含む CSS ファイルを作成し、これを [フォームを作成] アクティビティの [ローカル CSS ファイル パス] アクティビティ プロパティで参照します。



たとえば、以下の CSS スニペットには、ラベルの色を緑または赤に設定するクラスが含まれています。

.textFieldLabel-green 
{
   color : green;
}
.textFieldLabel-red 
{
   color : red;
}.textFieldLabel-green 
{
   color : green;
}
.textFieldLabel-red 
{
   color : red;
}

CSS ファイルを [フォームを作成] のプロパティで参照したら、以下の手順に従ってフォームを設計します。

  1. [フォームを作成] アクティビティでフォーム デザイナーを開きます。
  2. 1 つのテキスト フィールド コンポーネントと、1 つのラジオ コンポーネントをドラッグ アンド ドロップします。フィールド キーに注意してください。このフィールド キーは高度な論理で使用します。
  3. テキスト フィールド コンポーネントの [表示] タブで、既定のカスタム CSS クラスを設定します。たとえば、赤をテキスト フィールドの既定の色に設定するには、textFieldLabel-red クラスを使用します。このクラスは、上記の前提条件の CSS ファイルで定義されている必要があります。


  4. ラジオ コンポーネントで、色 green および red の 2 つの値を追加します。
  5. テキスト フィールド コンポーネントの [論理] タブに移動します。
  6. 論理を追加し、「color selection」という名前を付けます。
  7. [シンプル] のトリガーの種類を選択します。

    7.1. [条件として使用するフォーム コンポーネント] ドロップダウン メニューから、Radio ({radio_field_key}) を選択します。

    7.2. [条件として使用する値] フィールドに、「green」と入力します。

    上記の設定により、ユーザーがラジオ オプションから [green] を選択した場合を検出し、テキスト フィールドのラベルの色を変更するアクションをトリガーします。

  8. アクションを追加し、「change color using css」という名前を付けます。
  9. [コンポーネント スキーマをマージ] のアクションの種類を選択して、以下のスニペットを入力します。

    return { customClass: "textFieldLabel-green" }return { customClass: "textFieldLabel-green" }
  10. アクションと論理を保存します。
  11. コンポーネントを保存します。

実行時に、ビジネス ユーザーが [green] ラジオ ボタンを選択すると、テキスト フィールドのラベルが緑になります。「red」ラジオ ボタンを選択すると、テキスト フィールドのラベルは赤になります。

イベントを使用してフォーム フィールドを既定値に設定する

トリガーの種類: イベント アクションの種類: カスタム アクション

この高度な論理は、ユーザーがボタンをクリックすると、テキスト フィールドの内容を変更します。このボタンをクリックするとイベントが生成され、そのイベントに基づいてテキスト フィールドの内容が既定のテキストに変更されます。

  1. [フォームを作成] アクティビティでフォーム デザイナーを開きます。
  2. 1 つのテキスト フィールド コンポーネントと、1 つのボタン コンポーネントをドラッグ アンド ドロップします。コンポーネントのフィールド キーに注意してください。このフィールド キーは高度な論理で使用します。
  3. ボタン コンポーネントの [表示] タブで、以下の手順を実行します。

    3.1. ボタン コンポーネントを Change value to "Default" としてラベル付けします。

    3.2. ボタンの [アクション][クリック] に設定します。

    3.3. [ローカル更新に使用] チェックボックスをオンにします。

    3.4. [データ ロジックを更新] セクションに、次のスニペットを入力します。これは、ユーザーがボタンをクリックするたびに resetTextField というイベントを出力します。
    instance.emit('resetTextField', {});instance.emit('resetTextField', {});

    3.5. ボタン コンポーネントを保存します。

  4. テキスト フィールド コンポーネントの [論理] タブに移動します。
  5. 論理を追加し、「reset」という名前を付けます。
  6. [イベント] のトリガーの種類を選択します。
  7. [イベント名] フィールドに、ボタンをクリックしたときに生成されるイベントの名前を入力します (つまり、resetTextField)。
    上記の設定により、ユーザーが [Change value to "Default"] ボタンをクリックしたときに検出し、テキスト フィールドの既存のコンテンツを「Default」に置き換えます。
  8. アクションを追加し、「default」という名前を付けます。
  9. [カスタム アクション] のアクションの種類を選択します。
  10. [カスタム アクション (Javascript)] セクションに、次のスニペットを入力します。

    return "Default"return "Default"
  11. アクションと論理を保存します。
  12. コンポーネントを保存します。
実行時に、ビジネス ユーザーが [Change value to "Default"] ボタンをクリックすると、resetTextField イベントが生成されます。このトリガーはイベントをリッスンし、既存のテキスト フィールドの内容を「Default」に置き換えます。

ユーザー入力に基づいてコンポーネントを表示する

トリガーの種類: JSON 論理 アクションの種類: プロパティ

この高度な論理は、必要なテキストをユーザーが入力すると、HTML コンポーネント (この場合は画像) の内容を表示します。

  1. [フォームを作成] アクティビティでフォーム デザイナーを開きます。
  2. 1 つのテキスト フィールド コンポーネントと、1 つの HTML 要素コンポーネントをドラッグ アンド ドロップします。コンポーネントのフィールド キーに注意してください。フィールド キーは高度な論理で使用します。
  3. テキスト フィールド コンポーネントの [表示] タブで、以下の手順を実行します。

    3.1. テキスト フィールド コンポーネントに「Type "Show me"」とラベル付けします。

    3.2. [説明] に「Must be an exact match (case sensitive)」と追加し、ユーザーが必要に応じてテキストを入力する必要があることを示します。

    3.3. テキスト フィールド コンポーネントを保存します。

  4. HTML 要素コンポーネントの [表示] タブで、以下の手順を実行します。

    4.1.[コンテンツ] セクションで、表示する画像を参照します。例: <img href="https://picsum.photos/200/300" />

    4.2.画像を既定で非表示にするには、[非表示] チェックボックスをオンにします。 4.3.HTML 要素コンポーネントを保存します。

  5. HTML 要素コンポーネントの [論理] タブに移動します。
  6. 論理を追加し、「user input」という名前を付けます。
  7. [JSON 論理] のトリガーの種類を選択します。
  8. [JSON 論理] セクションに次のスニペットを入力します。{text_field_component_field_key} は、テキスト フィールド コンポーネントに設定したフィールド キーの値に置き換えます。
    {
      "===": [
        {
          "var": "data.{text_field_component_field_key}"
        },
        "Show me"
      ]
    }{
      "===": [
        {
          "var": "data.{text_field_component_field_key}"
        },
        "Show me"
      ]
    }

    上記の設定では、ユーザーが「Show me」と入力した場合を検出し、その場合にのみ、HTML 要素の [非表示] プロパティの値を [False] に設定して、対応する HTML コンテンツを表示します。

  9. アクションを追加し、「display image」という名前を付けます。
  10. [プロパティ] のアクションの種類を選択します。

    10.1. [コンポーネントのプロパティ] ドロップダウン メニューから、[非表示] を選択します。

    10.2. [ステートを設定] ドロップダウン メニューから、[False] を選択します。

  11. アクションと論理を保存します。
  12. コンポーネントを保存します。

実行時に、必要なテキストをユーザーがテキスト フィールドに入力すると、フォームに HTML コンテンツが表示されます。

サンプル ワークフロー

ワークフローの完成品を確認するため、または今後の参考資料として、サンプル XAML をダウンロードできます。

Was this page helpful?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
UiPath ロゴ (白)
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.