方法: シーケンシャル ワークフローを作成する
ワークフローは、ビルトイン アクティビティおよびカスタム アクティビティから構築できます。 このトピックでは、Sequence アクティビティなどのビルトイン アクティビティ、および前の「方法: アクティビティを作成する」トピックのカスタム アクティビティの両方を使用するワークフローを作成します。 このワークフローは、数値推測ゲームをモデル化しています。
注意
チュートリアル入門の各トピックは、前のトピックに応じて異なります。 このトピックを完了するには、まず「方法: アクティビティを作成する」を完了しておく必要があります。
ワークフローを作成するには
ソリューション エクスプローラーで NumberGuessWorkflowActivities を右クリックし、 [追加] 、 [新しい項目] の順に選択します。
[インストール済み] の [共通項目] ノードで、 [ワークフロー] を選択します。 [ワークフロー] 一覧から [アクティビティ] を選択します。
[名前] ボックスに「
SequentialNumberGuessWorkflow
」と入力し、[追加] をクリックします。ツールボックスの [制御フロー] セクションから Sequence アクティビティをドラッグし、ワークフロー デザイン サーフェイスの [ここにアクティビティをドロップ] ラベルの上にドロップします。
ワークフロー変数および引数を作成するには
ソリューション エクスプローラーで SequentialNumberGuessWorkflow.xaml をダブルクリックし、デザイナーにワークフローを表示します (まだ表示されていない場合)。
ワークフロー デザイナーの左下にある [引数] をクリックし、 [引数] ペインを表示します。
[Create Argument] (引数の作成) をクリックします。
[名前] ボックスに「
MaxNumber
」と入力し、[方向] ドロップダウン リストから [入力] を選択し、[引数の型] ドロップダウン リストから [Int32] を選択して、Enter キーを押して引数を保存します。[Create Argument] (引数の作成) をクリックします。
新しく追加した
MaxNumber
引数の下にある [名前] ボックスに「Turns
」と入力し、[方向] ボックスで [出力] を選択して、[引数の型] ドロップダウン リストで [Int32] を選択し、Enter キーを押します。アクティビティ デザイナーの左下にある [引数] をクリックして、[引数] ウィンドウを閉じます。
ワークフロー デザイナーの左下にある [変数] をクリックし、 [変数] ペインを表示します。
[変数の作成] をクリックします。
ヒント
[変数の作成] ボックスが表示されていない場合は、ワークフロー デザイナー画面の Sequence アクティビティをクリックして選択します。
[名前] ボックスに「
Guess
」と入力し、[変数の型] ボックスで [Int32] を選択し、Enter キーを押して変数を保存します。[変数の作成] をクリックします。
[名前] ボックスに「
Target
」と入力し、[変数の型] ボックスで [Int32] を選択し、Enter キーを押して変数を保存します。アクティビティ デザイナーの左下にある [変数] をクリックして、[変数] ウィンドウを閉じます。
ワークフロー アクティビティを追加するには
ツールボックスの [プリミティブ] セクションから Assign アクティビティをドラッグし、Sequence アクティビティにドロップします。 [終端側] ボックスに「
Target
」と入力し、[C# の式を入力してください] ボックスまたは [VB の式を入力してください] ボックスに次の式を入力します。New System.Random().Next(1, MaxNumber + 1)
new System.Random().Next(1, MaxNumber + 1)
ヒント
[ツールパレット] ウィンドウが表示されていない場合は、[表示] メニューから [ツールパレット] を選択します。
ツールボックスの [制御フロー] セクションから DoWhile アクティビティをドラッグし、ワークフロー上の Assign アクティビティの下にドロップします。
DoWhile アクティビティの [Condition] プロパティ値ボックスに次の式を入力します。
Guess <> Target
Guess != Target
DoWhile アクティビティはその子アクティビティを実行し、その Condition を評価します。 Condition が
True
と評価される場合、DoWhile 内のアクティビティが再度実行されます。 この例では、ユーザーの推定値が評価され、推定値が正しいと判断されるまで DoWhile が続行されます。ツールボックスの [NumberGuessWorkflowActivities] セクションから Prompt アクティビティをドラッグし、前の手順の DoWhile アクティビティの下にドロップします。
[プロパティ] ウィンドウで、Prompt アクティビティの [BookmarkName] プロパティ値ボックスに「
"EnterGuess"
」(引用符を含む) と入力します。 [Result] プロパティ値ボックスに「Guess
」と入力し、[Text] プロパティ ボックスに次の式を入力します。"Please enter a number between 1 and " & MaxNumber
"Please enter a number between 1 and " + MaxNumber
ヒント
[プロパティ] ウィンドウが表示されていない場合は、 [表示] メニューから [プロパティ ウィンドウ] を選択します。
ツールボックスの [プリミティブ] セクションから Assign アクティビティをドラッグし、Prompt アクティビティの後になるように DoWhile アクティビティ内にドロップします。
注意
Assign アクティビティをドロップするときに、ワークフロー デザイナーによって、Prompt アクティビティと新しく追加した Assign アクティビティの両方を含む Sequence アクティビティが自動的に追加されることに注意してください。
[終端側] ボックスに「
Turns
」と入力し、[C# の式を入力してください] ボックスまたは [VB の式を入力してください] ボックスに「Turns + 1
」と入力します。ツールボックスの [制御フロー] セクションから If アクティビティをドラッグし、新しく追加した Assign アクティビティの後になるように Sequence アクティビティ内にドロップします。
If アクティビティの [Condition] プロパティ値ボックスに次の式を入力します。
Guess <> Target
Guess != Target
ツールボックスの [制御フロー] セクションから If アクティビティをドラッグし、最初の If アクティビティの Then セクションにドロップします。
新しく追加した If アクティビティの [Condition] プロパティ値ボックスに次の式を入力します。
Guess < Target
ツールボックスの [プリミティブ] セクションから 2 つの WriteLine アクティビティをドラッグし、1 つは新しく追加した If アクティビティの Then セクション内に、もう 1 つは Else セクション内に配置されるようにドロップします。
Then セクションの WriteLine アクティビティをクリックして選択し、 [Text] プロパティ値ボックスに次の式を入力します。
"Your guess is too low."
Else セクションの WriteLine アクティビティをクリックして選択し、 [Text] プロパティ値ボックスに次の式を入力します。
"Your guess is too high."
次の例は完成したワークフローを示しています。
ワークフローをビルドするには
Ctrl + Shift + B キーを押して、ソリューションをビルドします。
ワークフローの実行方法については、次のトピック「方法: ワークフローを実行する」を参照してください。 「方法: ワークフローを実行する」の手順を別のスタイルのワークフローを使用して既に完了している場合に、この手順のシーケンシャル ワークフローを使用して実行するには、「方法: ワークフローを実行する」の「アプリケーションをビルドして実行するには」に進んでください。
関連項目
.NET