問題タブ [workflowservice]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
workflow - WF4 を使用した電子メール ワークフロー
まず、私は新しい WF (v4) ですが、利点はわかります。現時点で私を妨げているのは学習曲線だけなので、あなたの助けが必要です。
私のシナリオでは、さまざまな間隔で一連の電子メールを送信するというビジネス要件があります。そのため、各メール送信間に適切な遅延を設定して、ワークフロー サービスでシーケンシャル ワークフローを作成しました。ワークフローは、受信呼び出しによって開始されます。この部分はうまく機能しているようです。
ただし、ワークフローを効果的に停止する 2 番目の Receive 呼び出しが必要なため、メールは送信されません。
これを実現するために、2 つの分岐を持つ Pick コントロールを構成しました。ブランチ 1 には、前に説明したように、電子メールの遅延シーケンスを開始する StartEmails を使用した受信があります。ブランチ 2 には 2 番目の Receive 'StopEmails が含まれていますが、私のブレークポイントは StopEmails Receive でヒットしません。私は正しい相関関係をセットアップしたと信じており、CanCreatedInstance は false に設定されています。
最初のブランチが遅延 (待機) 状態である間、2 番目の呼び出しを行うことができないということですか?
任意のポインタをいただければ幸いです。
workflow-foundation-4 - 前の上位レベルでフローチャート ワークフローを再入力するにはどうすればよいですか
承認プロセスをモデル化する .xamlx フローチャート ワークフローがあります。フローチャートが終了する前に提出者がドキュメントを変更した場合、提出者にドキュメントを「再提出」してもらいたい。最初の receive アクティビティをもう一度呼び出せると思っていましたが、ワークフローはそれが既に進んでおり、終了していることを認識していると思います。
「再送信」する前にワークフローを「キャンセル」する必要がありますか? それとも、サブミッターが呼び出すフローチャートの後半で別のメソッドが必要なだけでしょうか? どんな助けでも大歓迎です。
.net-4.0 - DurableInstancing の System.Runtime.CallbackException
最近、ワークフロー アプリケーションでこの例外が発生し始めました。
System.Runtime.CallbackException、System.Runtime.DurableInstancing、バージョン = 4.0.0.0、カルチャ = ニュートラル、PublicKeyToken = 31bf3856ad364e35
ユーザー コールバックが例外をスローしました。例外スタックと内部例外をチェックして、失敗したコールバックを特定します。
次のクラスを実行する Windows サービスを介してサービスをホストしています。
例外の完全なスタック トレースは次のとおりです。
なぜ私がこれを取得するのか、誰にもアイデアがありますか?
c#-4.0 - 受信アクティビティプロパティへの動的な値の割り当て
命令型コードを使用してカスタムアクティビティを作成しています。私の構成では、構成されたアクティビティの1つとしてReceiveアクティビティがあります。そのアクティビティでは、ServiceContractNameプロパティとOperationNameプロパティを動的に設定します。つまり、カスタムアクティビティを使用している開発者が設定する必要がある場合です。そこで、この目的のために1つのプロパティと1つのInArgumentを宣言しました。このプロパティと引数の値をローカル(シーケンス変数)に割り当てます。これらの変数をReceiveアクティビティプロパティに割り当てようとすると、コンパイル時エラーが発生します。受信アクティビティの文字列およびXNameプロパティにVarriableを割り当てる方法。
c# - 引数を使用して 2 つのカスタム アクティビティ間で CorrelationHandle を共有する
カスタム アクティビティを構築しています。最初のアクティビティには、ReceiveSendReply アクティビティと他のアクティビティが含まれています。このアクティビティでは、ワークフロー インスタンスを作成しています。Intialized CorrelationHandle を OutArgument に割り当てたいと考えています。外部共有変数に割り当てられます。
別のアクティビティには、上記のアクティビティによって作成されたインスタンスを再開する別の ReceiveSendReply アクティビティがあります。2 番目のアクティビティでは、CorrelationHandle を InArgument として使用しています。この InArgument に外部の共有 correlationHandle 変数を割り当てます。
このワークフロー サービスを実行すると、最初の操作は問題なく実行され、相関キーが入力され、応答でその相関キーを受け取ります。受信した相関キーを使用して 2 番目のアクティビティを実行すると、次の例外が返されます。
「インスタンス キー '45f99690-2829-3126-0782-99033212633c' がインスタンスに関連付けられていなかったため、InstancePersistenceCommand の実行が中断されました。これは、インスタンスまたはキーがクリーンアップされたか、キーが無効であるために発生する可能性があります。キーが生成されたメッセージが間違った時間に送信された場合、または誤った相関データが含まれていた場合、キーが無効である可能性があります。」
OutArgument と InArguments を使用して、2 つのカスタム アクティビティ間で CorrelationHandle を共有する方法を知りたいですか?
.net - ワークフローから長時間実行されている WCF サービスを呼び出す前にキューに入れますか?
私は、複数のサービスを呼び出す長期実行ワークフロー サービスを持っています。サービスの 1 つは、レガシ システムに接続する長時間実行されている共有エンタープライズ WCF サービスであり、そのスループットは基盤となるレガシ システムによって制約されます。共有 WCF サービスを呼び出すステップに到達した時点で、メモリ内に数百の WF インスタンスが存在する可能性があります。WCF サービスは、インスタンスの作成または配給インスタンスの作成を制限しません。
ワークフロー プロセスと呼び出された WCF サービスの両方で予想される問題は何ですか? WCF サービスを直接呼び出すのではなく、キューに入れ、WCF サービスのスループットに基づいて WCF サービスへの呼び出しの数を制限することは役に立ちますか? キューイングが進むべき道である場合、同じワークフローのすぐに使用できるオプションは何ですか?
同様に、ワークフローでサービスの可用性の問題を管理するための理想的な設計は何ですか?
workflow - ワークフローを使用した関連付け
私は3つの受信送信アクティビティを持っています。ドキュメントに従って、最初の送信アクティビティと 2 番目の受信アクティビティを構成しました。
参照: http://msdn.microsoft.com/en-us/magazine/gg535671.aspx
私の最初の 2 つの運用契約はうまく機能しています。しかし、最終的な受信アクティビティを呼び出すと、次のエラー メッセージが表示されます
インスタンス キー '761c9e4a-2835-d6ec-6017-581a5fbfb741' がインスタンスに関連付けられていなかったため、InstancePersistenceCommand の実行が中断されました。これは、インスタンスまたはキーがクリーンアップされたか、キーが無効であるために発生する可能性があります。キーが生成されたメッセージが間違った時間に送信された場合、または誤った相関データが含まれていた場合、キーが無効である可能性があります。
これは、3 番目の受信アクティビティが 2 つの送信アクティビティに関連付けられない場合に発生すると確信しています。しかし、これらの相関初期化子の間で 2 番目の送信アクティビティを構成する方法がわかりません。
ワークフローサービスを使用しています。
workflow - 複数インスタンスのパフォーマンスの問題
プロジェクトで Windows Workflow 4.0 バージョンを使用してワークフローを管理しています。ユーザーによって承認される 100 のドキュメントを持つシステムで 1 つのプロジェクトが作成され、各ドキュメントは同じワークフロー プロセスに従う必要があります。ドキュメント処理は、100 ドキュメントに対して並列です。どちらが終了しても、次のワークフロー ステップに進むことができます。[例: ドキュメントの作成 - レビュー用に送信 - レビュー済み - 承認済み]。
現在、100 個のドキュメントに対して 100 個のインスタンスを作成しています。ただし、ドキュメントが驚異的に増加している場合 (例: 10000 ドキュメント) のパフォーマンスについてはわかりません。また、いつでも複数のプロジェクトをシステムに作成できます。
このシナリオを処理するより良い方法はありますか?
アプリケーションは ASP.Net に基づいており、IIS を実行しています。
wcf - 実行時に呼び出すWCF操作を指定するには?
WCF WF Web サービス (ワークフロー サービス 4.0) があり、このサービスの各操作には同じ署名がありますが、名前は異なります。
私のシステムはイベントを受け取り、{int eventType, int entityId}
構成を使用して上記の Web サービスの操作にそのイベントをディスパッチする必要があります。
たとえば、構成ファイル (eventType を操作名にマップする) があるとします。
したがって、eventType
5に等しい場合は、次のようにする必要があります。
IMyWebService には次のメソッドがあります。
背景: IMyWebService
Windows Workflow Foundation 4.0 ワークフロー サービスです。イベント ディスパッチャーを再コンパイルすることなく、Web サービスに新しいエントリ ポイントを追加し、イベント ディスパッチャーの構成ファイルを変更できるようにしたいと考えています。
workflow-foundation-4 - Receive アクティビティを使用して void 双方向操作を定義する
双方向の void 操作を公開するようにワークフローを構成するにはどうすればよいですか?
そのため、
1) 操作が完了するまで呼び出し元がブロックされ、
2) 呼び出し元に例外 (障害) が通知されます。
Receive
+の使用SendReply
は扱いにくいようです。1 つは、ワークフロー図に不要なノイズを追加することです。