フォーム変更きっかけ処理

フォーム変更きっかけ処理

概要

フォーム変更きっかけ処理は、ユーザーが入力した内容に応じて、フォーム上に表示する項目や、項目の値に変更を加えたい場合に使用します。具体的には、フォーム上に表示する項目を追加/削除したり、項目の値を変更したりできます。また、ユーザーが入力した内容を検証して、入力内容が指定の条件を満たさない場合はエラーメッセージを表示することもできます。

フォーム変更きっかけ処理を有効にする方法

項目オブジェクト内で指定するパラメーター「triggerOnChange」の値を「true」に設定します。

フォーム変更きっかけ処理の設定

フォーム変更きっかけ処理では、以下のパラメーターを取得して使用できます。
 
form
ユーザーがフォームで入力した内容
user
独自メニューの実行者の情報
entity
独自メニューの実行対象の情報
target
値を変更した項目の情報
network
独自メニューが実行されたネットワークの情報
表1(フォーム変更きっかけ処理のパラメーター)

ユーザーが項目に値を入力すると、フォーム変更きっかけ処理が実行されます。フォーム変更きっかけ処理を設定すると、フォーム画面でユーザーが入力した内容に応じて、新しい項目を追加したり、既存の項目を更新/削除したりできます。フォーム変更きっかけ処理の詳細は以下のとおりです。
 
パラメーター名
値の種類/内容
説明
fields
種類:JSON形式の配列
上限:  20件
フォームで追加/更新したい項目オブジェクトの配列
remove
種類:JSON形式の配列
上限:  20件
フォームから削除したい項目オブジェクトの配列
error
テキスト(上限:50文字)
フォーム全体についてのエラーメッセージ
fieldError
JSON形式のオブジェクト
各項目についてのエラーメッセージ  
(各項目にエラーメッセージを追加する方法については以下の表を参照)
表2(きっかけ処理の設定で指定する出力値/レスポンスの詳細) 

各項目についてのエラーメッセージを設定するには、「fieldError」という名前のパラメーター(種類:JSONオブジェクト)で以下の値を指定します。
 
パラメーター名
値の種類/内容
説明
<項目名>
 
(パラメーター名には、エラーメッセージを表示したい項目の名前を指定します。例:startDate)
テキスト(上限:200文字)
各項目について表示したいエラーメッセージ
 
初期設定では、新しい項目は、フォームの最下部に挿入されます。ただし、「after」または「before」のいずれかのパラメーターを使用すると、特定の項目の前後に項目を挿入することも可能です。これらのパラメーターは、フォーム変更きっかけ処理の項目オブジェクト内で使用できます。 
 
パラメーター名
値の種類/内容
説明
必須/任意
after
テキスト(上限:20文字)
項目を挿入したい位置の前の項目名を入力します。
任意
before
テキスト(上限:20文字)
項目を挿入したい位置の後ろの項目名を入力します。
任意

以下の場合、フォーム変更きっかけ処理は実行されません。
  1. 項目オブジェクト内で、パラメーター「triggerOnChange」の値が「true」に設定されているが、フォーム変更きっかけ処理に関数が設定されていない。 
  2. フォーム変更きっかけ処理に関数が設定されているが、項目オブジェクト内で、パラメーター「triggerOnChange」の値が「false」に設定されている。
 
「担当者」項目(Assignee)を「プロジェクト」項目(Project)の後ろに追加する場合のサンプルコードは以下のとおりです。 
  1. fields[

        {

          "before": "taskDueDate",

          "hint": "プロジェクトを選択",

          "name": "Project",

          "options": [

            {

              "label": "UI改善",

              "id": "13429993739813",

              "value": "13429993739813"

            }

          ],

          "label": "プロジェクト",

          "type": "multiSelect",

          "mandatory": "false"

        },

        {

          "hint": "担当者を選択",

          "name": "Assignee",

          "options": [],

          "label": "担当者",

          "after": "Project", //「プロジェクト」項目の後ろに項目を追加します

          "type": "select",

          "mandatory": "false"

        },

        {

          "hide": "false",

          "name": "taskTitle"

        },

        {

          "hide": "false",

         "name": "taskDesc"

        },

        {

          "hide": "false",

          "name": "taskDueDate"

        } ] }


各項目にエラーメッセージを表示するためのサンプルコードは以下のとおりです。 
  1. {

    "fieldError":{

    "endDate":"終了日は開始日よりも後にする必要があります。" }

    }

フォーム全体についてのエラーメッセージを表示するためのサンプルコードは以下のとおりです。 
  1. {

    "fields":[

    {

    "name":"dLang",

    "value":""

    }

    ],

    "error":"テキストを指定の言語に翻訳できませんでした。" }