ワークフロー呼び出し先の引数が再スローすると空白になる

下記のような処理があるとします
①Main.Xamlよりトライキャッチ内にワークフローを呼び出しを設定
引数:OUT_RELUT
②呼び出した先のXamlでトライキャッチを使用し、エラーが発生したらキャッチに向かう
③②のキャッチ内で引数OUT_RELUTに”エラーが出ました”と設定
④②のキャッチ内で再スローを実施
⑤①のXamlに戻ってきて引数のメッセージを変数に格納し、メッセージボックスで表示させたい

上記フローで再スロー後に引数の中身を格納すると値が空になって今いますが、これは仕様でしょうか?
呼び出したXaml内でエラーが起きた際に、後続処理を行わず①のXamlに帰りたく、その際引数の値も必要なのですが、再スローすると引数の中に設定した値は消えますか?

1 Like

こんにちは

以下Topicの内容はいかがでしょうか?

1 Like

ご連絡ありがとうございます。
早速試したのですが、Main側でProcessExcepton.Data…を呼び出すと宣言されていないとエラーが出てしまいます。
また呼び出し先でのProcessExcepton.Dataの設定方法もわからないので、お手数ですが提案いただいた内容の設定やアクティビティ構成をスクリーンショットなどでいただけますでしょうか

こんにちは

上記は、AttendedFrameworkの中の話になりますのでProcessExceptonという変数が
でています。一般的には、呼び出し元のInvoke Workflow Fileを囲む形にTry-Catchして
そのCatchの中で例外として定義された変数、例えばexceptionを用いるとすると
exception.Data…のようになります。

すみませんまだよくわかりません。
exception.Data(“errorCode”)=“100”

この””の中に入っているerrCordは変数でしょうか?
例えば呼びだし先xamlでexception.Data(“errorCode”)を使うとき
代入アクティビティで
左辺 引数
右辺 exception.Data(“エラーの文章”).tostringでもダメでした
呼び出し先のXamlでの上記exception.Data(“errorCode”)の設定方法をスクリーンショットなどで教えていただけますか?

すみません。何とか完成しました。
errrorCodeは引数というよりか、その時だけ使う変数みたいなイメージなんですね
呼び出し先にXamlのCatch内に代入アクティビティでexception.Data(“Err”)="エラーです"を設置して再スロー、その後呼び出し元XamlのCatchでexception.Data(“Err”),toStringとしたところ「エラーです」という文章を出力できました。

1 Like

こんにちは

Exception.DataプロパティはIDictionary型になりますので、いわゆる連想配列あるいはKey Value pairをイメージしてもらうと良いです。