Windowsワークフローでの人間の活動サポート4
-
09-10-2019 - |
質問
.NET 4.0のWindowsワークフロー(WF)を調査していますが、いくつかのピースが欠けているようです。から BPM 視点では、作業キューとセキュリティ(ユーザー認証)の概念を持ちたいです。
たとえば、アプリケーションサーバー(AppFabricなど)で実行されているいくつかの異なるワークフローから、複数の長期にわたるワークフローインスタンスがあるとします。いくつかのインスタンスは、クライアントからの呼び出しのアクティビティで待っています(おそらく、WCFがコンテンツベースの相関で受信します)。クライアントは、サーバーを照会して、どのワークフローインスタンス(任意のワークフローから)から入力を待っているかを判断できる必要があります。これは、アクティビティレベルで権利ベース(できればアクティブディレクトリサービスを使用する)でなければなりません。
例えば:
- ワークフロー1
- アクティビティA、OrderIDで相関しています
- 権利:アビー、ビル
- アクティビティB、OrderIDで相関しています
- の権利:アビー
- アクティビティA、OrderIDで相関しています
- ワークフロー2
- WorkItemidに相関するアクティビティC
- 権利:ビル
- WorkItemidに相関するアクティビティC
ワークフロー1には3つのインスタンスが実行され、2つはアクティビティA(注文123および456)、1つはアクティビティB(注文789)にあります。
ワークフロー2には、アクティビティCで実行されている1つのインスタンスがあります(ワークアイテム99)。
ビルはサーバーを照会し、次のように表示します。
Workflow Activity Key 1 A orderId=123 1 A orderId=456 2 C workItemId=99
アビーはサーバーを照会し、次のように見ています
Workflow Activity Key 1 A orderId=123 1 A orderId=456 1 B orderId=789
この記事 WF 3.xの機能(人間の活動のサポート)をゼロから書くことについて説明します。
質問:
- この機能はWF 4にありますか?もしそうなら、それは何と呼ばれていますか?
- そうでない場合、この機能のいずれかをWF 4に追加するオープンソースプロジェクトはありますか?
- そうでない場合は、上記の記事よりも最新のガイドラインが実装していますか?
注:避けることができれば、SharePointのソリューションを組み合わせることはありません。
解決
さて、シンプルなawnsersから始めましょう。
- いいえ、ボックスにこれに対する直接的なサポートはありません
- 私が知る限り、この機能を提供するOSプロジェクトはありません。
- 私が気づいているわけではありませんが、この記事も知らなかったことを認めなければなりません。
これまでのところ、悪いニュースのために。
ただし、このようなものを書きたいと仮定しますが、いくつかの基本的なビルディングブロックがあります。 SQLWorkFlowinStanceStoreを使用すると、特定のワークフローの現在のブックマークを含む列が入手できます。これにより、現時点で特定のワークフローでアクティビティがアクティブになっているアクティビティが表示されます。
また、SQLWorkFlowinStanceStoreには、OrderIDのようなワークフロー変数を抽出し、照会できるようにするプロパティプロモーションの概念もあります。登録するもう1つのことは、特定のアクションがオリジネーターによってのみ許可されることが多いため、ワークフローを開始した人です。
ワークフローごとのセキュリティルールとWCF操作にセキュリティルールを使用してカスタムテーブルを組み合わせてください。ここで基本的な実装に向けて順調に進んでいると思います。