システム連携の自動的な流れの中にユーザからの指示を介入できる「ワークフローコンポーネント」のサンプル
開発者の皆さん、こんにちは。
先日のウェビナーでご紹介した「ワークフローコンポーネント」をお試しいただけるサンプルを公開しました。👉 https://github.com/Intersystems-jp/WorkFlow-DC
《サンプルのテーマ》
店舗で販売している商品に付けるPOPメッセージ候補を予めテーブルに登録できる仕組みが既にある、と仮定しています。
IRISの Interoperability を利用してPOPメッセージ候補が登録されるテーブルに対して一定間隔でSELECT文を実行し、未処理のメッセージを取得します。
新たなレコードが存在する場合、ワークフローコンポーネントを利用して担当者に審査を依頼します。
担当者は、ワークフローユーザポータルを使用して、POPメッセージ候補の承認/却下を指示できるようにしています。
ワークフローコンポーネントは、InterSystems IRIS、InterSystems IRIS for Healthでご利用いただけます。
上記サンプルはコンテナを使用していますので、事前に docker 、docker-compose のインストールが必要となりますが、docker-compose up -d の実行だけで準備が整いますのでよろしければお試しください。
なお、サンプルでは、InterSystems IRIS Community edition 2023.1.0 を利用しています。
コミュニティエディションの種類やバージョンについては、InterSystemsコンテナレジストリでご確認いただけます。
サンプルで使用しているDockerfileの1行目にイメージ名を指定していますので、コンテナビルド前に使用されたいイメージにご変更いただければ別のバージョンや IRIS for Health でもお試しいただけます。
InterSystemsコンテナレジストリのご利用方法については、InterSystemsコンテナレジストリ Webユーザインターフェースのお知らせ をご参照ください。
ワークフローコンポーネントでどんなことができるのか?の概要説明については、ウェビナー(オンデマンド再生)をご参照ください。
それでは、サンプルを使用してどのような流れを体験できるか、ご紹介します。
まずは、サンプル(https://github.com/Intersystems-jp/WorkFlow-DC)を git cloneしたら、WorkFlow-DC ディレクトリに移動し、コンテナをビルド+開始します。
docker-compose build
docker-compose up -dコンテナ開始後、ワークフローユーザポータルで処理できるデータが4件作成されます。
ワークフローユーザポータルにログイン、またはサンプルのWebアプリ(Flaskアプリ版ユーザポータル)を利用して動作をご確認いただけます。
1. ワークフローユーザポータル での確認
管理ポータルでメッセージのトレースを参照される場合は、ワークフローユーザポータルは管理ポータルとは異なるブラウザで開くことをお勧めします。(管理ポータル/ワークフローユーザポータルにアクセスする際、IRIS内ユーザを利用してログインを行うため、ブラウザの種別が同一の場合、毎回ログインしなおす必要があります)
《コンテナ利用時のワークフローユーザポータルのURL》http://localhost:9093/csp/user/_DeepSee.UserPortal.Home.zen?$NAMESPACE=USER&$NAMESPACE=USER&
以下のワークフローユーザでログインしてください。
ユーザ名:ManagerA/パスワード:SYS
2. Flaskアプリ版ユーザポータル での確認
《コンテナ利用時のFlask版アプリのURL》http://localhost:5001
ユーザ名:ManagerA でログインするように作成しています。
このWebアプリケーションでは、開発者コミュニティのサンプル公開サイトであるOpen Echange に公開されている「ワークフローREST API」を利用してワークフロータスク一覧の取得やタスク詳細表示、タスクの処理を行っています。
3. POPメッセージ用テーブルのデータ確認
管理ポータルのSQLメニューを利用します:IRIS管理ポータル SQLメニュー
《コンテナ利用時のURL》http://localhost:9093/csp/sys/exp/%25CSP.UI.Portal.SQL.Home.zen?$NAMESPACE=USER&$NAMESPACE=USER
または、管理ポータル(http://localhost:9093/csp/sys/UtilHome.csp)を開き、[システムエクスプローラ] > [SQL] を開き、ネームスペース:USERを選択します。
.png)
管理ポータルには以下のユーザ名/パスワードでログインします。
ユーザ名:SuperUser/パスワード:SYS
以下のSQLで販売商品に対するPOPメッセージの申請登録を確認できます。
SQL画面右側の「クエリ実行」タブに以下SELECT文を入力し、「実行」ボタンをクリックすると結果を確認できます。
SELECT
Product->PID,Product->ProductName,POPID,Status,Message,TO_CHAR(StartDate,'YYYY-MM-DD') As StartDate, Period,RejectedReason, Done
FROM ISJFoods_Tbl.POP
4. メッセージの確認方法
IRISの管理ポータル、プロダクション構成画面は以下URLでアクセスできます。
《コンテナ利用時のURL》http://localhost:9093/csp/sys/UtilHome.csp
《コンテナ利用時のURL》http://localhost:9093/csp/user/EnsPortal.ProductionConfig.zen?$NAMESPACE=USER&$NAMESPACE=USER&
または、管理ポータル(http://localhost:9093/csp/sys/UtilHome.csp)を開き [Interoperability] > USERネームスペース選択 > [構成する] > [プロダクション] をクリックします。
メッセージの確認手順
(1) プロダクション構成画面にアクセスします。 サービス:POPメッセージSQL抽出 の文字の付近をクリックし、画面右の「メッセージ」タブを選択します。
(2) 処理したいメッセージを選択します。
コンテナ開始段階で4件のメッセージが参照できるので、ヘッダ列にある番号をクリックし、メッセージのトレース画面を開きます(以下の図は開いた後の画面です)。

トレースにある[2]のメッセージをクリックした後、画面右の「コンテンツ」タブを開き、 以下タグのデータを確認します。
<_Message></_Message> と <_Subject></_Subject>
この画面は、ワークフローユーザがタスクを処理した後の確認にも使用するため、開いたままとします。
(3) ワークフローユーザポータル、またはFlaskアプリ上で(2)で確認した情報と同じリストを探し処理します。
ワークフローユーザポータルの場合は、対象行を選択します。 Flaskアプリの場合は「審査する」ボタンをクリックします。 承認か却下ボタンをクリックします。
(4) ユーザ指示後のトレースを確認します。
(2)で確認したトレースをリロードします。 待機していた処理がユーザからの指示により、再開していることがわかります。([3]のメッセージをクリックすると画面右の「コンテンツ」タブでユーザが指示したときのボタン情報を確認できます)
✅ POPメッセージ審査完了通知(Teams)をご利用いただく場合
コンテナ開始時点では、POPメッセージ審査完了通知(Teams)は無効になっています。Teamsの任意チャネルに対して「Incoming Webhook」の設定を行ってください。
設定後、以下設定欄に必要な情報をご記入ください。
オペレーション:登録者へ通知 を選択し「設定」タブにある以下設定を作成されたIncoming Webhookに合わせ修正してください。
- HTTPサーバ
- URL
- teams設定にある「token」
続いて、プロセス:POP審査 のエディタを開き、一番下にある「登録者への通知」アクティビティをクリックし、画面右にある「無効」のチェックを外し、コンパイルボタンをクリックします。
5. メモ
もう1度、同じデータを利用してワークフローユーザポータル上で審査したい場合は、IRIS管理ポータル SQLメニューの「クエリ実行」タブで、以下UPDATE文を実行してください。
update ISJFoods_Tbl.POP
set Done=0,Status='pending',RejectedReason=null
UPDATE文実行後、メッセージの確認方法でご確認ください。
次の記事では、上記内容をお手元のIRISでお試しいただく手順についてご紹介します。






