3

.NET 4.0用のWindowsワークフロー(WF)を調査していますが、いくつか欠落しているようです。BPMの観点からは、ワークキューとセキュリティ(ユーザー認証)の概念が必要です。

たとえば、アプリケーションサーバー(AppFabricなど)で実行されている複数の異なるワークフローからの複数の長時間実行ワークフローインスタンスがあるとします。いくつかのインスタンスは、クライアントからの呼び出しをアクティビティで待機しています(おそらく、コンテンツベースの相関関係を持つWCF受信)。クライアントは、サーバーにクエリを実行して、(任意のワークフローからの)どのワークフローインスタンスがクライアントからの入力を待機しているかを判断できる必要があります。これは、アクティビティレベルで権利ベース(できればActive Directoryサービスを使用)である必要があります。

例えば:

  • ワークフロー1
    • アクティビティA、orderIdに相関
      • 権利:アビー、ビル
    • アクティビティB、orderIdに相関
      • 権利:アビー
  • ワークフロー2
    • アクティビティC、workItemIdに関連付けられています
      • 権利:ビル

ワークフロー1には3つのインスタンスが実行されており、2つはアクティビティA(注文123および456)で、1つはアクティビティB(注文789)で実行されています。
ワークフロー2には、アクティビティC(作業項目99)で実行されている1つのインスタンスがあります。

Billはサーバーにクエリを実行し、次のことを確認します。

ワークフローアクティビティキー
1 orderId = 123
1 orderId = 456
2 C workItemId = 99

Abbyはサーバーにクエリを実行し、次のことを確認します。

ワークフローアクティビティキー
1 orderId = 123
1 orderId = 456
1 B orderId = 789

この記事では、WF 3.xの機能(人間の活動のサポート)を最初から作成する方法について説明します。

質問:

  1. WF 4にこの機能はありますか?もしそうなら、それは何と呼ばれていますか?
  2. そうでない場合、この機能のいずれかをWF 4に追加するオープンソースプロジェクトはありますか?
  3. そうでない場合は、上記の記事よりも実装に関する最新のガイドラインがありますか?

注:回避できるのであれば、ソリューションをSharePointに結合したくありません。

4

1 に答える 1

2

では、単純なオーサーから始めましょう。

  1. いいえ、ボックスにはこれに対する直接のサポートはありません
  2. 私の知る限り、この機能を提供する OS プロジェクトはありません。
  3. 私が知っているわけではありませんが、この記事も知らなかったと認めざるを得ません。

これまでのところ、悪いニュースです。

ただし、いくつかの基本的な構成要素が配置されているこのようなものを書きたいとします。SqlWorkflowInstanceStore を使用すると、特定のワークフローの現在のブックマークを含む列が取得されます。これにより、特定のワークフローで現在どの受信アクティビティがアクティブであるかがわかります。

SqlWorkflowInstanceStore には、例の orderId のようなワークフロー変数を抽出してクエリを実行できるプロパティ昇格の概念もあります。登録するもう 1 つのことは、ワークフローを開始した人です。これは、特定のアクションが作成者によってのみ許可されることが非常に多いためです。

これらを、ワークフローごとのセキュリティ ルールと WCF 操作を含むカスタム テーブルと組み合わせると、基本的な実装に向けて順調に進んでいると思います。

于 2010-11-15T18:56:19.360 に答える