

Questetra BPM Suite の選択型データ項目の選択肢は、選択肢 ID と表示ラベルを持ちます。このほかに、単価や分類のように選択肢ごとに決まっている値を、選択肢プロパティとして持たせられます。選ばれている選択肢の選択肢プロパティは、他のデータ項目で使えます。
この記事では、備品購入申請アプリを例に、選択肢プロパティの定義、文字型データ項目への転記、数値型データ項目の[式]での参照を説明します。選択型データ項目の設定項目の一覧は、「選択型」を参照してください。
この記事で使うワークフローアプリ
社員が備品を選んで購入を申請し、上長が承認するアプリです。工程は「申請」(開始工程)、「承認」の順に進みます。備品の単価と分類は、「備品」の選択肢の選択肢プロパティとして持たせます。社員が「備品」を選んで「数量」を入力すると、「分類」には選択肢プロパティの転記で値が入ります。「金額」には、単価と「数量」から[式]で計算した値が入ります。
データ項目と、各工程での設定は次のとおりです。
| データ項目(フィールド名) | データタイプ | 「申請」 | 「承認」 |
|---|---|---|---|
| 「備品」(q_item) | 選択 (セレクト) | [編集可] | [表示のみ] |
| 「分類」(q_category) | 文字 (単一行) | [編集可] | [表示のみ] |
| 「数量」(q_quantity) | 数値 | [編集可] | [表示のみ] |
| 「金額」(q_amount) | 数値 | [編集可] | [表示のみ] |
「分類」と「金額」は、処理担当者が入力する項目ではありません。「申請」で[編集可]にしているのは、「備品」や「数量」を変えたときに、フォーム上の「分類」と「金額」の表示を更新するためです。[表示のみ]にすると、フォームを開いた時点の値が表示されたままになります。
「備品」の選択肢は次のとおりです。[選択肢種別]は[固定の選択肢]、[フォームタイプ]は[セレクトボックス]です。unitPrice と category が選択肢プロパティです。
| 選択肢 ID | 表示ラベル | unitPrice | category |
|---|---|---|---|
| P01 | ボールペン(黒) | 120 | 文具 |
| P02 | コピー用紙(A4・500 枚) | 550 | 消耗品 |
| P03 | USB メモリ(64GB) | 1980 | PC 周辺機器 |
選択肢プロパティの定義
選択肢プロパティを定義する方法は、[選択肢種別]によって異なります。 この記事では、選択肢プロパティ 1 つ分の列を、設定画面の呼び方にならって「プロパティ列」と呼びます。
選択肢プロパティの値は、文字として保存されます。 数値として計算に使う方法は、「数値型データ項目の[式]での参照」の節で説明します。
[固定の選択肢]での定義
[固定の選択肢]では、選択肢プロパティを、選択型データ項目の設定画面で選択肢と一緒に定義します。 [選択肢]の下の[プロパティ列を追加]をクリックし、[列名]に選択肢プロパティの名前(この記事では unitPrice と category)を入力します。選択肢の一覧に列が加わるので、選択肢ごとに値を入力します。値を持たない選択肢があってもかまいません。
[CSV編集]でも、選択肢プロパティの値を入力できます。 プロパティ列の追加と削除は[CSV編集]ではできないので、先に[プロパティ列を追加]でプロパティ列を作っておきます。1 行に選択肢を 1 つずつ、選択肢 ID、表示ラベル、選択肢プロパティの値の順に、カンマで区切って書きます。「備品」の選択肢を[CSV編集]で書くと、次のとおりです。
P01,ボールペン(黒),120,文具
P02,"コピー用紙(A4・500 枚)",550,消耗品
P03,"USB メモリ(64GB)",1980,"PC 周辺機器"[CSV編集]では、空白を含む値はダブルクォーテーションで囲まれて表示されます。
プロパティ列を定義すると、定義できる選択肢の数が減ります。 選択肢は、プロパティ列がなければ 1000 個まで、プロパティ列を定義した場合は 1000 をプロパティ列の数で割った数までです。たとえばプロパティ列が 5 個なら、選択肢は 200 個までです。
選択肢マスタでの定義
[選択肢種別]が[選択肢マスタ(アドオン)]または[選択肢マスタ(アプリ共有アドオン)]の場合は、選択肢マスタ XML で選択肢プロパティを定義します。 選択肢マスタ XML の作り方は、「テキストエディタ/モデラで選択肢マスタXMLを作る」を参照してください。選択肢マスタの選択肢は 150,000 個まで、選択肢マスタ XML のファイルは 1 ファイル 20 MB までです。プロパティ列を増やすとファイルが大きくなるので、150,000 個より少ない数でも 20 MB の上限に達することがあります。
共通の制限
プロパティ列の名前(設定画面では[列名])には、英字、数字、アンダースコアを使います。 先頭は英字かアンダースコアにします。日本語は使えません。64 文字以下で、1 つのデータ項目の中で重複できません。
プロパティ列は、1 つのデータ項目に 50 個まで定義できます。
プロパティ列は、テーブル型データ項目のテーブル項目には設定できません。
文字型データ項目への転記
選ばれている選択肢の選択肢プロパティの値は、文字 (単一行) のデータ項目に転記できます。 「分類」の設定画面で、[選択肢プロパティの転記元(選択型データ項目)]に「備品」を、[転記するプロパティ列]に category を選びます。処理担当者が「備品」で「USB メモリ(64GB)」を選ぶと、「分類」に「PC 周辺機器」が入ります。
転記先は、工程のデータ編集設定にかかわらず、フォームでは編集できません。 保存される値は、選ばれている選択肢から決まります。「分類」が[編集可]の工程では、「備品」の選択を変えるとすぐに書き換わります。「備品」が未選択の場合や、選ばれている選択肢が category の値を持たない場合、「分類」は空になります。
転記元にできるのは、[フォームタイプ]が[ラジオボタン][セレクトボックス][検索セレクトボックス]の選択型データ項目です。 [チェックボックス]は転記元にできません。[選択肢種別]は、[固定の選択肢][選択肢マスタ(アドオン)][選択肢マスタ(アプリ共有アドオン)]のいずれかである必要があります。
転記先にできるのは、文字 (単一行) のデータ項目だけです。 文字 (複数行) や文字 (Markdown) のデータ項目と、テーブル型データ項目のテーブル項目には転記できません。
転記先には、[必須][初期値][最小文字数][最大文字数][満たすべき正規表現][プレースホルダテキスト]を設定できません。
数値型データ項目の[式]での参照
選ばれている選択肢の選択肢プロパティの値は、数値型データ項目の[式]から参照できます。 「金額」の[式]は次のとおりです。
#q_item.property('unitPrice') * #q_quantity#q_item.property('unitPrice') は、「備品」で選ばれている選択肢の unitPrice の値です。 #q_item は、# に続けてフィールド名を書いた、「備品」の参照です。#q_quantity も同じ書き方で「数量」を参照しています。「USB メモリ(64GB)」を選び、「数量」に 2 を入力すると、「金額」は 3960 になります。
選択肢プロパティの値は文字として保存されていますが、数値として読める形で書かれていれば、[式]では数値として計算されます。 120 や -1.5 がその例です。桁区切りを含む 1,980 のような値や、数値でない値は、0 として計算されます。「備品」が未選択の場合も 0 です。
選択肢 ID と表示ラベルも、#q_item に続けて書くことで参照できます。 選択肢 ID は #q_item.value、表示ラベルは #q_item.display です。
#q_item.property('unitPrice') などの参照は、[式]の入力欄の右端にあるアイコンから挿入できます。 [式]の書き方と、計算されるタイミングは、「数値型データ項目の値を式で自動計算する」で説明しています。



