クラウド型 ワークフロー

社内マスタを「選択肢 XML」に反映させる方法(後編)

こんにちは、古久保です。

先日、「社内マスタを「選択肢 XML」に反映させる方法(前編)」を書かせて頂きました。
(図1:システム概要図)

usingselectoptionbydatafederation-fig1

「前編」は、外部システムの設定の説明を行いましたが「後編」は、 Questetra BPM Suite の設定を
説明致します。
で、Questetra BPM Suite 側の設定どーすんだ?」を解説致します。

簡単に申しますと、以下の内容をプロセスモデルで実現します。

  1. 外部からの CSV 形式のデータ(社内マスタ)をメッセージ開始イベント(http)で受信&取込
  2. 受信した CSV 形式のデータを解析し「選択肢 XML 」に取り込める形式に変換
  3. 2.で整形したデータをサービスタスク(選択肢マスタ更新)を使用し、「選択肢 XML 」に反映

(図2:プロセスモデル例)
usingselectoptionbydatafederation2-2

◆社内マスタの取込

設定は、図3の通り、メッセージ開始イベント(http)で CSV 形式データ(社内マスタ)を
取り込むのみです。

(図3:メッセージ開始イベント(http)の設定)
usingselectoptionbydatafederation2-3

◆CSV 形式データの解析と選択肢データ作成

受信したデータを選択肢型データとして扱うことができるようにデータセットを行います。

  1. メッセージ開始イベント(http)の直後にスクリプトタスクを配置
  2. 選択肢型データを作る為に文字列型(複数行)を選択肢の ID 用、表示(Display)用を用意
  3. 選択肢型データを作成し2.で作成した ID 用、表示用文字列型データをそれぞれ、「選択肢 ID」「表示ラベル」に設定します。(図4)

※選択肢型データについての詳細解説は「複数の業務プロセス定義から参照される選択肢XMLを登録する」を
参照のこと。

(図4:データ項目設定例)
usingselectoptionbydatafederation2-4

上記の設定を行った上で、スクリプトタスクで以下の処理を行います。

  1. CSV 形式データ(カンマ区切りのデータ)を改行毎に読み込み
  2. 行の内容をカンマ区切りで前述の「ID 用」「表示用」の文字列型(複数型)に1行づつセット

<スクリプトタスク実装例>

var body = data.get("4");   // CSV 形式データ
var rows = new String(body).split("\n");
var id = "";
var display = "";
var str;
for (var i=0; i < rows.length; i++){
    str = new String(rows[i]).split(",");
    id = id + str[0] + "\n";  // 選択肢 XML の ID
    if (str[1] != null){
        display = display + str[1] + "\n"; // 選択肢 XML の Display
    } 
}
retVal.put("1",id);  // 選択肢 XML の ID 用文字列型複数行
retVal.put("2",display);  // 選択肢 XML の Display 用 文字列型複数行

◆サービスタスク(選択肢マスタ更新)を設定

「CSV 形式データの解析と選択肢データ作成」で作成した「選択肢データ」(*)を使用し、
サービスタスク(選択肢マスタ更新)を設定します。
(*)図5例では、「作成用選択肢」が該当します。

※社員マスタを反映したい「選択肢 XML」は、共通プロセスモデルファイルに事前にアップロードしておいてください。

(図5:サービスタスク(選択肢マスタ更新)設定)
usingselectoptionbydatafederation2-5

◆あとがき
いかがでしょうか?
比較的容易に実現できると思いませんか?

社内で保有するマスタをいちいちデータを変換して手動で反映するのは面倒だし、連携プログラムを大々的に構築するのも大変です。
これらの課題に対して簡易なプログラムと簡単なプロセスモデルでシステム自動連携を実現しています。

社内マスタを関連する業務で使用することで正しい業務結果が望めます。
是非とも実現にチャレンジしてもらえればと思います。

それではまた!

Masato Furukubo の紹介

Questetra, Inc. Sales Department
Masato Furukubo の投稿をすべて表示

あわせて読みたい
55.カイゼン Tips の前の記事 社内マスタを「選択肢 XML」に反映させる方法(前編)
55.カイゼン Tips の次の記事 システム利用の定着方法「習うより慣れろ」
Masato Furukubo の他の記事 複数の選択型データ項目の入力を制御する方法(ラジオボタン/チェックボックス編)

アーカイブ

 RSS