ワークフローを作成する方法
このトピックの内容は、Windows Workflow Foundation 4 に該当します。
ワークフローは、ビルトイン アクティビティおよびカスタム アクティビティから構築できます。このトピックでは、Flowchart アクティビティなどのビルトイン アクティビティ、および前の「アクティビティを作成する方法」トピックのカスタム アクティビティの両方を使用するワークフローを作成します。このワークフローは、数値推測ゲームをモデル化しています。
![]() |
---|
チュートリアル入門の各トピックは、前のトピックに応じて異なります。このトピックを完了する前に、「アクティビティを作成する方法」を完了する必要があります。 |
ワークフロー プロジェクトを作成するには
Visual Studio 2010 を使用して、前の「アクティビティを作成する方法」トピックからソリューションを開きます。
ソリューション エクスプローラーで GettingStartedTutorial ソリューションを右クリックし、[追加]、[新しいプロジェクト] の順にクリックします。
ヒント :
ソリューション エクスプローラー ウィンドウが表示されない場合は、[表示] メニューの [ソリューション エクスプローラー] をクリックします。 [インストールされているテンプレート] ボックスで [Visual C#]、[ワークフロー] (または [Visual Basic]、[ワークフロー]) を選択します。
注 :
Visual Studio で第一言語として設定されているプログラミング言語に応じて、[インストールされているテンプレート] ボックスの [他の言語] ノードの下に、[Visual C#] ノードまたは [Visual Basic] ノードが表示されます。 .NET Framework バージョンのドロップダウン リストで [.NET Framework 4] が選択されていることを確認します。[ワークフロー] ボックスから [ワークフロー コンソール アプリケーション] を選択します。既定の設定をそのままにし、[OK] をクリックします。これで、基本的なワークフロー ホスティングをサポートする、基本ワークフロー アプリケーションが作成されます。このトピックでは、複数のアクティビティを使用してワークフローを作成します。次のトピック「ワークフローを実行する方法」では、この基本的なホスティング コードを変更し、ワークフロー アプリケーションの実行に使用します。
ソリューション エクスプローラーで新しく追加した [WorkflowConsoleApplication1] を右クリックし、[参照の追加] をクリックします。[プロジェクト] タブの [ActivityLibrary1] をクリックし、[OK] をクリックします。
F6 キーを押してソリューションをビルドします。これで、[ActivityLibrary1] のカスタム アクティビティが [ツールボックス] に追加され、このワークフローで使用できるようになります。
ワークフロー変数および引数を作成するには
ソリューション エクスプローラーで Workflow1.xaml をダブルクリックし、デザイナーにワークフローを表示します (まだ表示されていない場合)。
[ツールボックス] の [フローチャート] セクションから Flowchart アクティビティをドラッグし、ワークフロー デザイン サーフェイスにドロップします。
ワークフロー デザイナーの左下にある [引数] をクリックし、[引数] ペインを表示します。
[引数の作成] をクリックします。
[名前] ボックスに「MaxNumber」と入力し、[方向] ボックスで [IN] を選択して、[引数の型] ボックスで [Int32] を選択し、Enter キーを押して引数を保存します。
[引数の作成] をクリックします。
新しく追加した
MaxNumber
引数の下にある [名前] ボックスに「Turns」と入力し、[方向] ボックスで [OUT] を選択して、[引数の型] ドロップダウン リストで [Int32] を選択し、Enter キーを押します。アクティビティ デザイナーの左下にある [引数] をクリックし、[引数] ペインを閉じます。
ワークフロー デザイナーの左下にある [変数] をクリックし、[変数] ペインを表示します。
[変数の作成] をクリックします。
ヒント :
[変数の作成] ボックスが表示されていない場合は、ワークフロー デザイナー画面の Flowchart アクティビティをクリックしてワークフローを選択します。 [名前] ボックスに「Guess」と入力し、[変数の型] ボックスで [Int32] を選択し、Enter キーを押して変数を保存します。
[変数の作成] をクリックします。
[名前] ボックスに「Target」と入力し、[変数の型] ボックスで [Int32] を選択し、Enter キーを押して変数を保存します。
アクティビティ デザイナーの左下にある [変数] をクリックし、[変数] ペインを閉じます。
ワークフロー アクティビティを追加するには
[ツールボックス] の [プリミティブ] セクションから Assign アクティビティをドラッグし、ワークフローの開始ノードの下にドロップします。開始ノードはワークフローの最上部にあり、緑色の円で表されます。[送信先] ボックスに「Target」と入力し、次の式を [VB の式を入力してください] ボックスに入力します。
New System.Random().Next(1, MaxNumber + 1)
ヒント :
[ツールボックス] ウィンドウが表示されていない場合は、[表示] メニューの [ツールボックス] をクリックします。 Assign アクティビティが Flowchart の開始点であることを示すには、ワークフローの最上部にある開始ノードにマウス ポインターを置きます。マウスが開始ノード上にあるときに表示される四角形の 1 つをクリックし、Assign アクティビティの上部にドラッグします。マウスが Assign アクティビティ上にあると、4 つの四角形が表示されます。開始ノードの下部から Assign アクティビティの上部に線を接続するようにマウスをドラッグし、マウスのボタンを離します。
[ツールボックス] の [ActivityLibrary1] セクションから Prompt アクティビティをドラッグし、前の手順の Assign アクティビティの下にドロップします。
[プロパティ] ウィンドウで、[BookmarkName] プロパティ値ボックスに「"EnterGuess"」(引用符を含む) と入力します。[Result] プロパティ値ボックスに「Guess」と入力し、[Text] プロパティ ボックスに次の式を入力します。
"Please enter a number between 1 and " & MaxNumber
ヒント :
[プロパティ] ウィンドウが表示されていない場合は、[表示] メニューの [プロパティ ウィンドウ] を選択します。 Assign アクティビティを Prompt アクティビティに接続します。これを実行するには、Assign アクティビティにマウス ポインターを置き、マウスがアクティビティ上にあるときに表示される下部の四角形をクリックします。Prompt アクティビティの上部にマウスをドラッグします。マウスが Prompt アクティビティ上にあると、4 つの四角形が表示されます。Assign アクティビティの下部から Prompt アクティビティの上部の四角形に線を接続するようにマウスをドラッグし、マウスのボタンを離します。
[ツールボックス] の [プリミティブ] セクションから Assign アクティビティをドラッグし、Prompt アクティビティの下にドロップします。
[送信先] ボックスに「Turns」と入力し、[VB の式を入力してください] ボックスに「Turns + 1」と入力します。
前の手順に従って、Prompt アクティビティを Assign アクティビティに接続します。
[ツールボックス] の [フローチャート] セクションから FlowDecision をドラッグし、Assign アクティビティの下にドロップします。Assign アクティビティを FlowDecision アクティビティに接続し、FlowDecision アクティビティをクリックして選択します。[プロパティ] ウィンドウで、[Condition] プロパティ値ボックスに次の式を入力します。
Guess = Target
[ツールボックス] から別の FlowDecision アクティビティをドラッグし、最初のアクティビティの下にドロップします。2 つのアクティビティを接続するには、上部の FlowDecision アクティビティにある [False] という四角形から、2 番目の FlowDecision アクティビティの上部にある四角形までドラッグします。
ヒント :
FlowDecision 上に [True] および [False] というラベルが表示されない場合は、FlowDecision にマウス ポインターを置きます。 2 番目の FlowDecision アクティビティをクリックして選択します。[プロパティ] ウィンドウで、[Condition] プロパティ値ボックスに次の式を入力します。
Guess < Target
[ツールボックス] の [プリミティブ] セクションから 2 つの WriteLine アクティビティをドラッグし、2 つの FlowDecision アクティビティの下に並べるようにドロップします。下部の FlowDecision アクティビティの True アクションを最も左の WriteLine に接続し、False アクションを最も右の WriteLine に接続します。
最も左の WriteLine アクティビティをクリックし、[プロパティ] ウィンドウの [Text] プロパティ値ボックスに次の式を入力します。
"Your guess is too low."
その上にある Prompt アクティビティの左側に WriteLine を接続します。
最も右の WriteLine アクティビティをクリックし、[プロパティ] ウィンドウの [Text] プロパティ値ボックスに次の式を入力します。
"Your guess is too high."
その上にある Prompt アクティビティの右側に WriteLine アクティビティを接続します。
次の例は完成したワークフローを示しています。
ワークフローをビルドするには
F6 キーを押してソリューションをビルドします。
ワークフローを実行する手順については、次のトピック「ワークフローを実行する方法」を参照してください。