2

構成管理の責任の一環として、毎週実行する反復可能なビジネス プロセスがあります。プロセスは変わりません。変更の詳細を Excel にダウンロードし、スプレッドシートを開いてマクロに基づいて詳細をコピーし、議題テンプレートから Word 文書を作成し、Excel データで議題を更新し、Word 文書から PDF を作成します。それらを電子メールで送信します。

このプロセスは、シーケンス ワークフローで非常に簡単に表現できます。これまでのところ、Excel と Word の部分を自動的に処理する COM オートメーションを使用して実現しています。歯車のレンチは、「アジェンダの作成」と「送信」の間に人間のステップがあることです。そこでは、変更の詳細を確認し、それらに関する質問を作成して、アジェンダに追加します。現在、プロセスのこの部分を手動で実行している間、ワークフローを一時停止するための一時停止アクティビティがあります。

私の質問は、ワークフローを書き直して、ビジネス プロセスにおける人間とのやり取りのベスト プラクティスに従うステート マシンにする必要があるか、それともサスペンド アクティビティが妥当な解決策であるかということです。

4

2 に答える 2

2

更新: Panos は Suspend Activity について適切に指摘しています。ワークフロー オートマトンでは別の目的があることに同意します。

さまざまな状態間でのワークフローの遷移について心配している場合は、ステート マシン ワークフローが理想的です。それ以外の場合、シーケンスは問題ありません。

解決しようとしている主な問題は、人間の対話を待っている間、ワークフローがスレッドを拘束してはならないということです (スレッドのアジリティ)。その間、ワークフローがアイドル状態で永続化されていても ( SqlWorkflowPersistenceServiceを使用するなど)、問題にはなりません。

于 2008-09-16T14:31:42.330 に答える
2

いいえ、このワークフローにステート マシンを使用する必要はないと思います。ただし、サスペンド アクティビティを変更することを提案します。理由は次のとおりです。

SuspendActivity アクティビティは、現在のワークフローの実行を一時的に停止します。通常、SuspendActivity アクティビティを使用して、管理者による注意が必要なエラー状態を反映します。

ワークフロー インスタンスが中断されると、エラーがログに記録されます。エラーに付随するメッセージ文字列を指定して、管理者が SuspendActivity エラー プロパティの問題を診断するのに役立てることができます。中断されたワークフロー インスタンスは、ワークフローが再開されるまでキューに入れられたメッセージを受信できます。ワークフロー インスタンスのすべての状態情報が保存され、インスタンスが再開されると復元されます (Resume を使用)。

出典: MSDN

ワークフロー (シーケンスまたはステート マシン) にヒューマン タスクを追加する一般的な方法は、External Data Exchange インターフェイスを定義し、HandleExternalEvent アクティビティ (および場合によっては CallExternalMethod アクティビティ) を使用することです。詳細については、次の記事を参照してください。

于 2008-09-16T14:29:44.890 に答える