

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 つとも、[選択肢種別]は[固定の選択肢]にしています。
- 「費目の分類」を選択型データ項目として作り、[フォームタイプ]を[ラジオボタン]にして、選択肢を登録します。
- 「費目」を選択型データ項目として作り、[フォームタイプ]を[セレクトボックス]にして、選択肢を登録します。[依存する親データ項目]には「費目の分類」を選びます。
- 「内訳」を選択型データ項目として作り、[フォームタイプ]を[セレクトボックス]にして、選択肢を登録します。[依存する親データ項目]には「費目」を選びます。
- データ項目の一覧で「費目の分類」「費目」「内訳」の順に並べ、フォームで親が子より上に表示されるようにします。
子に[初期値]を設定するときは、親の[初期値]の選択肢 ID で始まる選択肢を選びます。 親に[初期値]がない場合、子にも[初期値]は設定できません。この条件を満たさない組み合わせでアプリを保存しようとすると、「初期値が依存関係を満たしていません。」のエラーになります。
手順 1〜3 の選択肢の登録には、1 件ずつ入力する以外の方法もあります。次の「選択肢の登録」で説明します。
選択肢の登録
選択肢が多いデータ項目は、[CSV編集]を使うと、まとめて登録できます。 [固定の選択肢]の[CSV編集]では、1 行に 1 件ずつ、選択肢 ID と表示ラベルをカンマで区切って書きます。[CSV編集]の使い方と、そのほかの登録方法は、「テキストエディタ/モデラで選択肢マスタXMLを作る」を参照してください。
工程ごとの設定
「承認」では、3 つのデータ項目を[表示のみ]にしています。 上長には、申請した社員が選んだ「費目の分類」「費目」「内訳」の値が表示されます。
「支払処理」では、経理部のメンバが選び間違いを直せるように、3 つとも[編集可]にしています。 「費目」を直すと「内訳」の選択が解除されるので、「内訳」も選び直します。「内訳」は[必須]なので、選び直さないと「支払処理」を完了できません。
親を[表示のみ]、子を[編集可]にすることもできます。 この設定は、この記事のアプリでは採用していません。親を[表示のみ]にした工程では、子には、保存されている親の値で絞り込んだ選択肢が表示されます。たとえば「支払処理」で「費目の分類」と「費目」を[表示のみ]に変え、「内訳」だけを[編集可]にすると、経理部のメンバは、申請された「費目」の範囲で「内訳」だけを直せます。
子を[編集可]にする工程では、親を[表示なし]にしないでください。 親は[表示のみ]か[編集可]にします。
自動工程で値を書き込む場合
自動工程で値を書き込むときも、親子の関係を満たしている必要があります。 [データ更新]などの自動工程は、書き込んだ値を保存する前に検証し、親子の関係を満たしていない場合は、値を更新せずに異常終了します。
子に値を書き込むときは、親の選択肢 ID で始まる選択肢 ID を指定します。 「費目」が「01-02」のケースで、「内訳」に、01-02 で始まらない「02-01-01」を書き込もうとすると、異常終了します。
親の値だけを書き換えると、書き換えていない子の値が親子の関係を満たさなくなり、異常終了します。 「費目の分類」を書き換える自動工程では、同じ工程で「費目」と「内訳」の値も書き換えます。



