選択型データ項目の選択肢を親子で絞り込む

Questetra BPM Suite の選択型データ項目では、別の選択型データ項目で選ばれた値に応じて、表示する選択肢を絞り込めます。この記事では、絞り込みのもとになるデータ項目を「親」、絞り込まれるデータ項目を「子」と呼びます。親子の関係を設定すると、子には親で選んだ値に関係する選択肢だけが並ぶので、処理担当者は親から順に選んでいけます。

経費の種類を「費目の分類」→「費目」→「内訳」の 3 段で選ぶ経費精算アプリを例に、絞り込みの仕組み、選択肢 ID の決め方、親子の関係の設定、選択肢の登録、工程ごとの設定、自動工程で値を書き込む場合の注意を説明します。選択型データ項目の設定項目の一覧は、「選択型」を参照してください。

この記事で使うワークフローアプリ

社員が経費を申請し、上長が承認したあと、経理部のメンバが振込を行うアプリです。工程は「申請」(開始工程)、「承認」、「支払処理」の順に進みます。経理部のメンバは、「支払処理」で「費目の分類」「費目」「内訳」の選び間違いを直します。

この記事で使うデータ項目と、各工程での設定は次のとおりです。

データ項目データタイプ「申請」「承認」「支払処理」
「費目の分類」(q_expense_category)選択 (ラジオボタン)[編集可][表示のみ][編集可]
「費目」(q_expense_item)選択 (セレクト)[編集可][表示のみ][編集可]
「内訳」(q_expense_detail)選択 (セレクト)[編集可][表示のみ][編集可]

3 つのデータ項目には、どれも[必須]を設定しています。

親子の関係は、子のデータ項目の[依存する親データ項目]で設定します。この記事のアプリの設定は次のとおりです。

データ項目[依存する親データ項目]
「費目の分類」なし
「費目」「費目の分類」
「内訳」「費目」

「費目」は、「費目の分類」の子であり、「内訳」の親でもあります。

絞り込みの仕組み

子の選択肢は、選択肢 ID で絞り込まれます。 子には、選択肢 ID が親で選ばれた値の選択肢 ID で始まる選択肢だけが表示されます。表示ラベルは絞り込みに使われません。たとえば「費目の分類」で「旅費交通費」(選択肢 ID は 01)を選ぶと、「費目」には、選択肢 ID が 01 で始まる「近距離交通費」(01-01)と「出張旅費」(01-02)だけが表示されます。続けて「費目」で「出張旅費」を選ぶと、「内訳」には、選択肢 ID が 01-02 で始まる「新幹線・特急」「航空券」「宿泊費」だけが表示されます。

親で何も選ばれていないときは、子には選択肢が表示されません。 そのため、処理担当者は子より先に親を選ぶ必要があります。

親の選択を変えると、子の選択は解除されます。 「費目の分類」を変えると「費目」の選択が解除され、続いて「内訳」の選択も解除されます。

選択肢 ID の決め方

子の選択肢 ID は、親の選択肢 ID で始まるように決めます。 経費精算アプリでは、各段の番号を 2 桁とし、親の選択肢 ID のあとにハイフンと番号を続けています。ハイフンは選択肢 ID を読みやすくするために入れています。

親の選択肢 ID は、桁数を揃えます。 たとえば「費目の分類」の選択肢 ID を 1、2、…、10 とすると、1 を選んだときに、10 に属する「費目」(10-01 など)も表示されます。区切りのハイフンを入れても 10-01 は 1 で始まるので、1 の子として扱われます。01、02、…、10 のように桁数を揃えると、この重なりは起きません。

「費目の分類」の選択肢は次のとおりです。

選択肢 ID表示ラベル
01旅費交通費
02会議・交際費
03消耗品費

「費目」の選択肢は次のとおりです。

選択肢 ID表示ラベル
01-01近距離交通費
01-02出張旅費
02-01会議費
02-02交際費
03-01事務用品
03-02書籍・資料

「内訳」の選択肢は次のとおりです。

選択肢 ID表示ラベル
01-01-01電車・バス
01-01-02タクシー
01-02-01新幹線・特急
01-02-02航空券
01-02-03宿泊費
02-01-01会場費
02-01-02会議中の飲食
02-02-01会食
02-02-02贈答品
03-01-01文具
03-01-02プリンタ用品
03-02-01書籍
03-02-02有料データベース

親子の関係の設定

親に指定できるのは、[フォームタイプ]が[ラジオボタン][セレクトボックス][検索セレクトボックス]の選択型データ項目です。 [チェックボックス]は親に指定できないため、親になる「費目の分類」と「費目」は[チェックボックス]にはできません。

経費精算アプリでは、次の順に設定します。3 つとも、[選択肢種別]は[固定の選択肢]にしています。

  1. 「費目の分類」を選択型データ項目として作り、[フォームタイプ]を[ラジオボタン]にして、選択肢を登録します。
  2. 「費目」を選択型データ項目として作り、[フォームタイプ]を[セレクトボックス]にして、選択肢を登録します。[依存する親データ項目]には「費目の分類」を選びます。
  3. 「内訳」を選択型データ項目として作り、[フォームタイプ]を[セレクトボックス]にして、選択肢を登録します。[依存する親データ項目]には「費目」を選びます。
  4. データ項目の一覧で「費目の分類」「費目」「内訳」の順に並べ、フォームで親が子より上に表示されるようにします。

子に[初期値]を設定するときは、親の[初期値]の選択肢 ID で始まる選択肢を選びます。 親に[初期値]がない場合、子にも[初期値]は設定できません。この条件を満たさない組み合わせでアプリを保存しようとすると、「初期値が依存関係を満たしていません。」のエラーになります。

手順 1〜3 の選択肢の登録には、1 件ずつ入力する以外の方法もあります。次の「選択肢の登録」で説明します。

選択肢の登録

選択肢が多いデータ項目は、[CSV編集]を使うと、まとめて登録できます。 [固定の選択肢]の[CSV編集]では、1 行に 1 件ずつ、選択肢 ID と表示ラベルをカンマで区切って書きます。[CSV編集]の使い方と、そのほかの登録方法は、「テキストエディタ/モデラで選択肢マスタXMLを作る」を参照してください。

工程ごとの設定

「承認」では、3 つのデータ項目を[表示のみ]にしています。 上長には、申請した社員が選んだ「費目の分類」「費目」「内訳」の値が表示されます。

「支払処理」では、経理部のメンバが選び間違いを直せるように、3 つとも[編集可]にしています。 「費目」を直すと「内訳」の選択が解除されるので、「内訳」も選び直します。「内訳」は[必須]なので、選び直さないと「支払処理」を完了できません。

親を[表示のみ]、子を[編集可]にすることもできます。 この設定は、この記事のアプリでは採用していません。親を[表示のみ]にした工程では、子には、保存されている親の値で絞り込んだ選択肢が表示されます。たとえば「支払処理」で「費目の分類」と「費目」を[表示のみ]に変え、「内訳」だけを[編集可]にすると、経理部のメンバは、申請された「費目」の範囲で「内訳」だけを直せます。

子を[編集可]にする工程では、親を[表示なし]にしないでください。 親は[表示のみ]か[編集可]にします。

自動工程で値を書き込む場合

自動工程で値を書き込むときも、親子の関係を満たしている必要があります。 [データ更新]などの自動工程は、書き込んだ値を保存する前に検証し、親子の関係を満たしていない場合は、値を更新せずに異常終了します。

子に値を書き込むときは、親の選択肢 ID で始まる選択肢 ID を指定します。 「費目」が「01-02」のケースで、「内訳」に、01-02 で始まらない「02-01-01」を書き込もうとすると、異常終了します。

親の値だけを書き換えると、書き換えていない子の値が親子の関係を満たさなくなり、異常終了します。 「費目の分類」を書き換える自動工程では、同じ工程で「費目」と「内訳」の値も書き換えます。

関連ドキュメント

Questetra Supportをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む