記事
· 2023年6月1日 7m read

システム連携の自動的な流れの中にユーザからの指示を介入できる「ワークフローコンポーネント」のサンプル

開発者の皆さん、こんにちは。

先日のウェビナーでご紹介した「ワークフローコンポーネント」をお試しいただけるサンプルを公開しました。👉 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を選択します。

管理ポータルには以下のユーザ名/パスワードでログインします。

ユーザ名: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でアクセスできます。

IRIS管理ポータル

《コンテナ利用時の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でお試しいただく手順についてご紹介します。

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください