ちょっとずつ既存 Activity の説明も混ぜていきます。最初は変数設定のできる非常に重要な Assign アクティビティ。
単純に言えば、変数に対して値を設定する Activity。機能としてはこれだけなんだけど、WF4 ではActivity 同士でのデータやりとりが非常に簡単になったのも、これがあるからだったり。
ワークフロー上で上記の様に変数を作成すると、このワークフロー内部(スコープの設定で変更できる)で共用することができるようになります。今回のサンプルでは Assign 以外にもう一つ自前で作成した Display アクティビティなんてものを用意しました。ロジックはこんな感じのデバッグ用みたいなものです。
Public NotInheritable Class DisplayActivity
Inherits CodeActivity'文字列型のアクティビティ入力引数を定義します
Property Text() As InArgument(Of String)' アクティビティが値を返す場合は、CodeActivity(Of TResult) から派生して、
' Execute メソッドから値を返します。
Protected Overrides Sub Execute(ByVal context As CodeActivityContext)
'テキスト型の入力引数のランタイム値を取得します
Dim inpText = context.GetValue(Me.Text)
MessageBox.Show(inpText)
End Sub
End Class
InArgument として定義したプロパティは Activity に対して入力用のクチとして利用できるだけでなく、親元のワークフローで定義されている変数の受け渡しも行えます。単純に値をもらうだけであれば、String なプロパティを定義すれば済むのですが、親元で動的に変化する変数を利用する場合には InArgumet を利用する必要があります。反対にある Activity から値を戻したい場合には OutArgument で定義したプロパティを用意する必要があります。
実際に実行するとこのように親元で定義した変数に対して、Assign アクティビティで値を設定、その値を Messagebox で表示することができます。これを応用することで、プログラム間の連携とかも行えるようになります。
0 件のコメント:
コメントを投稿