次の方法で共有


ドキュメント承認プロセス

DocumentApprovalProcess サンプルでは、多くの Windows Workflow Foundation (WF) 機能と Windows Communication Foundation (WCF) 機能を一緒に使用する方法を示します。 これらを組み合わせて、ドキュメント承認プロセス シナリオを実装します。 クライアント アプリケーションは、承認のためにドキュメントを送信し、ドキュメントを承認できます。 承認マネージャー アプリケーションは、クライアント間の通信を容易にし、承認プロセスの規則を適用するために存在します。 承認プロセスは、複数の種類の承認を実行できるワークフローです。 アクティビティは、単一の承認、クォーラム承認 (承認者の割合)、および一連のクォーラムと単一の承認で構成される複雑な承認プロセスを取得するために存在します。

サンプルの詳細

次の図は、ドキュメント承認プロセスのワークフローを示しています。

ドキュメント承認プロセス ワークフロー

クライアントの観点からは、承認プロセスは次のように機能します。

  1. クライアントは、承認プロセス システムのユーザーとしてサブスクライブします。

  2. WCF クライアントは、承認マネージャー アプリケーションによってホストされている WCF サービスに送信されます。

  3. 一意のユーザー ID がクライアントに返されます。 クライアントは承認プロセスに参加できるようになりました。

  4. 参加すると、クライアントは、単一、クォーラム、または複雑な承認プロセスを使用して、承認のためにドキュメントを送信できます。

  5. クライアントのインターフェイスのボタンがクリックされ、クライアント ワークフロー サービス ホストでワークフロー インスタンスが開始されます。

  6. ワークフローは、承認マネージャー アプリケーションに承認要求を送信します。

  7. ワークフロー マネージャーは、承認プロセスを表すために独自の側でワークフローを開始します。

  8. マネージャー承認ワークフローが実行されると、結果がクライアントに送り返されます。

  9. クライアントに結果が表示されます。

  10. クライアントは承認要求を受け取り、任意の時点で要求に応答できます。

  11. クライアントでホストされている WCF サービスは、承認マネージャー アプリケーションから承認要求を受け取ることができます。

  12. ドキュメント情報は、レビューのためにクライアントに表示されます。

  13. ユーザーはドキュメントを承認または拒否できます。

  14. WCF クライアントは、承認マネージャー アプリケーションに承認応答を送信するために使用されます。

承認マネージャー アプリケーションの観点から、承認プロセスは次のように機能します。

  1. クライアントは、承認プロセス システムへの参加を要求します。

  2. 承認マネージャーの WCF サービスは、承認プロセス システムに含まれる要求を受け取ります。

  3. クライアントに対して一意の ID が生成されます。 ユーザー情報はデータベースに格納されます。

  4. 一意の ID がユーザーに送り返されます。

  5. 承認要求が受信されます。 承認マネージャーが承認プロセスを実行します。

  6. 承認マネージャーが承認要求を受け取り、新しいワークフローを開始します。

  7. 要求の種類 (単純、クォーラム、または複雑) に応じて、異なるアクティビティが実行されます。

  8. 関連付けのある送受信アクティビティは、承認要求をレビューのためにクライアントに送信し、応答を受信するために使用されます。

  9. 承認プロセス ワークフローの結果がクライアントに送信されます。

サンプルの使用

データベースを設定するには

  1. 管理者特権で開いた Visual Studio コマンド プロンプトから、この DocumentApprovalProcess フォルダーに移動し、Setup.cmd実行します。

アプリケーションを設定するには

  1. Visual Studio を使用して、DocumentApprovalProcess.sln ソリューション ファイルを開きます。

  2. ソリューションをビルドするには、Ctrl キーと Shift キーを押しながら B キーを押します。

  3. ソリューションを実行するには、ソリューション エクスプローラーで ApprovalManager プロジェクトを右クリックし、右クリック メニューから [デバッグ] > [新しいインスタンスの開始] をクリックして、承認マネージャー アプリケーションを起動します。

    マネージャーの出力が準備完了であることを通知するまで待ちます。

単一承認シナリオを実行するには

  1. 管理者権限でコマンド プロンプトを開きます。

  2. ソリューションを含むディレクトリに移動します。

  3. ApprovalClient\Bin\Debug folder and execute two instances of ApprovalClient.exeに移動します。

  4. [ 検出] をクリックし、 サブスクライブ ボタンが有効になるまで待ちます。

  5. 任意のユーザー名を入力し、[ サブスクライブ] をクリックします。 1 つのクライアントでは、 UserType1 を使用し、もう一方の種類の UserType2を使用します。

  6. UserType1 クライアントで、ドロップダウン メニューから単一の承認の種類を選択し、ドキュメント名とコンテンツを入力します。 [ 承認の要求] をクリックします。

  7. UserType2 クライアントに、承認待ちのドキュメントが表示されます。 それを選択し、 承認 または 拒否を押します。 結果は、 UserType1 クライアントに表示されます。

クォーラム承認シナリオを実行するには

  1. 管理者権限でコマンド プロンプトを開きます。

  2. ソリューションを含むディレクトリに移動します。

  3. ApprovalClient\Bin\Debug folder and execute three instances of ApprovalClient.exeに移動します。

  4. [ 検出] をクリックし、 サブスクライブ ボタンが有効になるまで待ちます。

  5. 任意のユーザー名を入力し、[ サブスクライブ] をクリックします。 1 つのクライアントでは、 UserType1 を使用し、もう 2 つの種類の UserType2を使用します。

  6. UserType1 クライアントで、ドロップダウン メニューからクォーラム承認の種類を選択し、ドキュメント名とコンテンツを入力します。 [ 承認の要求] をクリックします。 これにより、2 つの UserType2 クライアントがドキュメントを承認または拒否するように要求されます。 UserType2両方のクライアントが応答する必要がある一方で、承認するには 1 つのクライアントのみがドキュメントを承認する必要があります。

  7. UserType2クライアントに、承認待ちのドキュメントが表示されます。 それを選択し、 承認 または 拒否を押します。 結果は、 UserType1 クライアントに表示されます。

複雑な承認シナリオを実行するには

  1. 管理者権限でコマンド プロンプトを開きます。

  2. ソリューションを含むディレクトリに移動します。

  3. ApprovalClient\Bin\Debug folder and execute four instances of ApprovalClient.exeに移動します。

  4. [ 検出] をクリックし、 サブスクライブ ボタンが有効になるまで待ちます。

  5. 任意のユーザー名を入力し、[ サブスクライブ] をクリックします。 1 つのクライアントでは UserType1を使用し、2 つのクライアントでは型 UserType2を使用し、最後の使用では UserType3

  6. UserType1 クライアントで、ドロップダウン メニューから単一の承認の種類を選択し、ドキュメント名とコンテンツを入力します。 [ 承認の要求] をクリックします。

  7. UserType2クライアントに、承認待ちのドキュメントが表示されます。 それを選択して 承認を押すと、ドキュメントが UserType3 クライアントに渡されます。

    ドキュメントが最初の UserType2 クォーラムによって承認された場合、ドキュメントは UserType3 クライアントに渡されます。

  8. UserType3 クライアントからドキュメントを承認または拒否します。 結果は、 UserType1 クライアントに表示されます。

クリーンアップするには

  1. Visual Studio コマンド プロンプトから DocumentApprovalProcess フォルダーに移動し、Cleanup.cmd実行します。