同じ選択肢を別のワークフローアプリや基盤で使いたい!便利な選択肢マスタXMLの作成方法

ワークフローアプリを作成する際、ユーザに入力フォームで選択してもらう選択肢は、あらかじめ設計段階でアプリに用意しておきます。

例えば従業員名簿や商品コードリストのように、同じ選択肢を複数のアプリで使いたい場合、同内容の選択型データ項目を何度も作るのは手間がかかります。Questetraではこのような選択肢のデータをXML形式でエクスポートし、他のワークフローアプリやワークフロー基盤に簡単に移行できる「選択肢マスタXML」を作成する事ができます。

作成方法にはいくつかありますので、それぞれ解説します。

選択肢のXMLフォーマット

R3190: 選択肢 XML 書式」 に記載しているように、選択型データ項目の選択肢定義に利用する XML(選択肢マスタ)には、「要素」と「属性」の2つの主要な要素があります。

要素

要素は、XML の構成要素です。この例では 2 つ使用します。

  • <items>:選択肢 XML のルート要素(最上位の要素)です。他のすべての要素と属性はこの要素に含まれます。
  • <item>:個々の選択肢です。複数の item 要素は1つの items 要素に含まれます。

属性

属性は XML 内の特定の選択肢(item 要素)に関連するデータです。

  • value: 選択肢 ID
  • display:選択肢の表示ラベル(入力フォーム上で表示される選択肢)

選択肢マスタXMLの作成方法

選択型データ項目に入力してからエクスポート

選択型データ項目のデータをXMLファイルとしてエクスポートするには、まずデータ項目に選択肢データが登録されている必要があります。

モデラを開き、[データ項目]タブでいずれかの選択型データ項目を作成してください。次に、[編集]アイコンをクリックして設定ダイアログを開きます。

選択肢マスタXMLを作成するには、[選択肢]セクションにデータを入力します。リストの各項目の[編集]アイコンをクリックしてください。もしくは、[CSV編集]機能を使ってテキスト入力モードにし、選択肢 IDと表示ラベルをカンマで区切って、リストを作成します。

データ入力後、[選択肢]セクションの下にある[選択肢マスタ]ボタンをクリックし、[選択肢マスタファイルエクスポート]を選択すると、XML形式でエクスポートできます。

ダウンロードされたXMLファイルは、他の選択型データ項目や業務アプリの選択肢マスタとして利用できます。選択型データ項目は、このXMLファイルをアドオンファイルとして参照することも可能ですが、詳細については次のセクションで解説します。

テキストエディタを使用して作成

XML ファイルは、メモ帳やワードパッドなどのテキストエディタで作成することもできます。

例えば、以下は会社を選択肢としたXMLファイルの例です。会社名を他の文字列に置き換えることで、様々な種類のデータを表現できます。

<?xml version="1.0" encoding="UTF-8"?>
<items>
<item value="1" display="あおばら工業株式会社" />
<item value="2" display="いなほファクトリー株式会社" />
<item value="3" display="うらなみシステム株式会社" />
<item value="4" display="えがらしテクノ株式会社" />
</items>

XMLファイルの1行目は、ファイルがXMLファイルであること、そしてどの文字コードで書かれているかを宣言するために必要です。UTF-16も使用できますが、一般的なテキストファイルではUTF-8を使用します。

1行目の下に、<items>タグでitems要素を開始し、すべての項目を追加したら、最後の行に</items>タグでitems要素を閉じます。

value は、選択肢の ID です。display は、選択肢の表示ラベルで、タスクの処理担当者としてフォームのデータ項目に入力する際に実際に選択肢として表示されます。

これらの行は以下の書式に従います。

<item value=”ID の値” display=”選択肢の表示ラベル” />

上記の例では、IDの値を「1」「2」「3」のように設定していますが、特定のIDを持つ項目を使用したい場合は、これらのIDを「value」セクションで使用できます。各「value」(ID)は一意である必要があり、重複する値は使用できません。もし同じ値が複数存在する場合、最初の値のみが表示され、重複する後続のitem要素はすべて無視されます。

XML でエスケープが必要な記号を属性値に含めるには、下記のように実体参照で記述してください。エスケープされていない文字が含まれていると、Questetra BPM Suiteへのアップロード時に「選択肢がありません」というエラーが発生します。

& ⇒ &amp;
< ⇒ &lt;
< ⇒ &gt;
“ ⇒ &quot;
‘ ⇒ &apos;

[選択肢マスタ更新]工程を使用して作成

自動工程[選択肢マスタ更新]は、選択型データ項目に保持されている情報を、アドオンファイルまたはアプリ共有アドオンファイルとして保存できます。

まず選択型(チェックボックス)のデータ項目「マスタ確認用選択肢」を用意します。次に、[選択肢マスタ更新]工程の[選択肢一覧を保存する選択型データ項目]で「マスタ確認用選択肢」を選択します。作成されるアドオンファイルの名前は何でも構いませんが、ここでは「顧客マスタ」とします。

この工程が完了すると、作成されたアドオンファイルが関連リストに表示されます。以下の例では、選択肢マスタファイルは[アプリ共有アドオン]リストに保存されています。

ここからダウンロードボタンをクリックして、ファイルをXML形式でダウンロードできます。

EL式を組み合わせて作成

データ項目に入力した選択肢を、EL式を使って XML 形式に出力することもできます。

文字列型からの変換

自自動工程「テキストファイル生成」を使用すると、文字列型のデータ項目に入力されたテキストをXML形式に変換できます。この方法を使えば、必要な選択肢をデータ項目に入力するだけで、選択肢マスタを作成できます。

参考: R2272: EL式による文字列の出力

XMLに複数の選択肢を出力するためには、まず文字型(複数行)のデータ項目が必要です。テキストボックスに選択肢を入力する際、ELがそれを別の項目として認識するためには、各選択肢は改行されていなければなりません。

次に[テキストファイル生成]の「C4: テキストファイルの内容 」セクションに、以下のコードを記述してください。

<?xml version="1.0" encoding="UTF-8" ?> 
<items> 

#{#joiner.join(#q_client_data?.split(#NL).![#this + '" display="' + #this], '<item value="', '" />', #NL)} 

</items>

コードの各部分について説明します。まず、「テキストエディタを使用して作成」で説明したように、XML 宣言とタグは通常通り入力してください。

<?xml version="1.0" encoding="UTF-8" ?>
<items>


</items>

<items>タグの間に、文字型(複数行)のデータ項目に入っている値を取り出して<item>タグの形式に沿って出力する EL式を挿入しなければなりません。それには、下記の EL式 を使用してください。

#{#joiner.join(#q_client_data?.split(#NL).![#this + '" display="' + #this], '<item value="', '" />', #NL)}

「q_client_data」の部分は、この例で使用している文字列型(複数行)データ項目のフィールド名ですのでご注意ください。実際にアプリを作成する際は、この部分を、作成する文字列型データ項目のフィールド名に置き換えてください。

また、この例では、項目の値(ID)と表示ラベル(display)は同じになりますが、作成される選択マスタ XML には影響しません。

選択型からの変換

自動工程[テキストファイル生成]の「C4:テキストファイルの内容」に XML 構造と 選択型データを参照する EL 式を組み合わせて入力することで、選択型データから XML 選択肢マスタが作成できます。

この方法で既存の選択肢一覧から一部の選択肢を取り出した選択肢マスタを生成します。

まず、選択型データ項目を用意します。ここでは、『[選択肢マスタ更新]工程を使用して作成』のセクションで使用した選択型データ項目を使います。

次に、[C1:テキストファイルを保存するファイル型データ項目]に XML 出力を保存するファイル型データ項目を選択し、「C3:保存ファイル名」に任意のファイル名を入力します。

<?xml version="1.0" encoding="UTF-8" ?>
<items>
#{#joiner.join(#q_master_data_check?.![value + '" display="' + display], '  <item value="', '" />', #NL)}
</items>

「文字型からの変換」と同様に、XML 宣言とタグは通常通り入力してください。

選択型データ項目から目的のデータを取り出すためには、タグの間にEL式を挿入します。使用する EL式 は、「R2272: EL式による文字列の出力」の「関数を利用した高度な出力」にある式を調整して使用します。

#{#joiner.join(#q_master_data_check?.![value + '" display="' + display], '  <item value="', '" />', #NL)}

上記のコードは、選択型(チェックボックス)データ項目の内、直前のヒューマンタスクでチェックされたすべての選択肢を取り出します。

q_master_data_check:選択型(チェックボックス)データ項目のフィールド名です。アプリで使用する選択型データ項目のフィールド名に編集してください。

プロセスが実行されると、入力フォームでは、ユーザーがアプリ共有アドオンファイルに記載されているすべての選択肢より選択ができるようになります。

選択された各オプションは、[テキストファイル生成]で生成されたテキストに取り込まれ、XML形式で出力されます。

EL式を使ってXML作成する場合も、XMLエスケープに注意する必要があります。

外部サービスとの連携

選択肢データとして、外部のクラウドサービスからデータをインポートすることも可能です。Googleスプレッドシートとkintoneからのインポート方法については、以下の記事で詳しく解説しています。

ワークフロープラットフォームにインポートしたデータを、他のプラットフォームへ簡単にエクスポートできるようXMLに変換したい場合があります。「Googleスプレッドシート:選択肢データの一括取得」などのモデリング要素を使用すれば、外部ソースからのデータを自動的にアプリに取り込み、選択型データ項目に保存した後、[アプリ共有アドオン]に保存されたリストをダウンロードすると、XMLファイルが作成されます。

ご参考にしてください。

上部へスクロール

Questetra Supportをもっと見る

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

続きを読む