次の方法で共有


方法: フローチャート ワークフローを作成する

ワークフローは、ビルトイン アクティビティおよびカスタム アクティビティから構築できます。 このトピックでは、Flowchart アクティビティなどのビルトイン アクティビティ、および前の「方法: アクティビティを作成する」トピックのカスタム アクティビティの両方を使用するワークフローを作成します。 このワークフローは、数値推測ゲームをモデル化しています。

注意

チュートリアル入門の各トピックは、前のトピックに応じて異なります。 このトピックを完了するには、まず「方法: アクティビティを作成する」を完了しておく必要があります。

ワークフローを作成するには

  1. ソリューション エクスプローラーNumberGuessWorkflowActivities を右クリックし、 [追加][新しい項目] の順に選択します。

  2. [インストール済み][共通項目] ノードで、 [ワークフロー] を選択します。 [ワークフロー] 一覧から [アクティビティ] を選択します。

  3. [名前] ボックスに「FlowchartNumberGuessWorkflow」と入力し、[追加] をクリックします。

  4. ツールボックス[フローチャート] セクションから Flowchart アクティビティをドラッグし、ワークフロー デザイン サーフェイスの [ここにアクティビティをドロップ] ラベルの上にドロップします。

ワークフロー変数および引数を作成するには

  1. FlowchartNumberGuessWorkflow.xaml がまだ表示されていない場合は、ソリューション エクスプローラーでダブルクリックして、デザイナーにワークフローを表示します。

  2. ワークフロー デザイナーの左下にある [引数] をクリックし、 [引数] ペインを表示します。

  3. [Create Argument] (引数の作成) をクリックします。

  4. [名前] ボックスに「MaxNumber」と入力し、[方向] ドロップダウン リストから [入力] を選択し、[引数の型] ドロップダウン リストから [Int32] を選択して、Enter キーを押して引数を保存します。

  5. [Create Argument] (引数の作成) をクリックします。

  6. 新しく追加した MaxNumber 引数の下にある [名前] ボックスに「Turns」と入力し、[方向] ボックスで [出力] を選択して、[引数の型] ドロップダウン リストで [Int32] を選択し、Enter キーを押します。

  7. アクティビティ デザイナーの左下にある [引数] をクリックして、[引数] ウィンドウを閉じます。

  8. ワークフロー デザイナーの左下にある [変数] をクリックし、 [変数] ペインを表示します。

  9. [変数の作成] をクリックします。

    ヒント

    [変数の作成] ボックスが表示されていない場合は、ワークフロー デザイナー画面の Flowchart アクティビティをクリックして選択します。

  10. [名前] ボックスに「Guess」と入力し、[変数の型] ボックスで [Int32] を選択し、Enter キーを押して変数を保存します。

  11. [変数の作成] をクリックします。

  12. [名前] ボックスに「Target」と入力し、[変数の型] ボックスで [Int32] を選択し、Enter キーを押して変数を保存します。

  13. アクティビティ デザイナーの左下にある [変数] をクリックして、[変数] ウィンドウを閉じます。

ワークフロー アクティビティを追加するには

  1. ツールボックス[プリミティブ] セクションから Assign アクティビティをドラッグし、フローチャートの上部にある Start ノード上に置きます。 Assign アクティビティが Start ノード上にあるときに、3 個の三角形が Start ノードの周囲に表示されます。 Assign アクティビティを Start ノードのすぐ下にある三角形の上にドロップします。 これにより 2 つのアイテムがリンクされ、Assign アクティビティがフローチャート内の最初のアクティビティとして指定されます。

    注意

    アクティビティは、開始ノードに手動でリンクすることにより、ワークフローの開始アクティビティとして指定することもできます。 これを行うには、Start ノードをポイントし、Start ノードをポイントすると表示される四角形の 1 つをクリックして、目的のアクティビティに線を接続するようにマウスをドラッグし、表示される四角形の 1 つにドロップします。 また、アクティビティを右クリックして [StartNode として設定] を選択して、アクティビティを開始アクティビティとして指定することもできます。

  2. [終端側] ボックスに「Target」と入力し、[C# の式を入力してください] ボックスまたは [VB の式を入力してください] ボックスに次の式を入力します。

    New System.Random().Next(1, MaxNumber + 1)  
    
    new System.Random().Next(1, MaxNumber + 1)  
    

    ヒント

    [ツールパレット] ウィンドウが表示されていない場合は、[表示] メニューから [ツールパレット] を選択します。

  3. ツールボックス[NumberGuessWorkflowActivities] セクションから Prompt アクティビティをドラッグし、前の手順でドロップした Assign アクティビティの下にドロップして、Prompt アクティビティを Assign アクティビティに接続します。 2 つのアクティビティを接続する方法は 3 種類あります。 1 つ目の方法では、Prompt アクティビティをワークフロー上にドロップするときにアクティビティを接続します。 ワークフローに Prompt アクティビティをドラッグするときに、Assign アクティビティ上にマウス ポインターを置き、Prompt アクティビティが Assign のアクティビティ上にあるときに表示される 4 つの三角形の 1 つにドロップします。 2 つ目の方法では、ワークフローの希望する位置に Prompt アクティビティをドロップします。 その後、Assign アクティビティにマウス ポインターを置き、表示される四角形の 1 つを Prompt アクティビティにドラッグします。 Assign アクティビティから Prompt アクティビティの四角形の 1 つに線を接続するようにマウスをドラッグし、マウスのボタンを離します。 3 つ目の方法は 1 つ目の方法とよく似ていますが、Prompt アクティビティをツールボックスからドラッグする代わりに、ワークフロー デザイン サーフェイス上のその位置からドラッグし、マウス ポインターを Assign アクティビティ上に移動して、表示される三角形の 1 つにドロップします。

  4. Prompt アクティビティの [プロパティ] ウィンドウで、[BookmarkName] プロパティ値ボックスに「"EnterGuess"」(引用符を含む) と入力します。 [Result] プロパティ値ボックスに「Guess」と入力し、[Text] プロパティ ボックスに次の式を入力します。

    "Please enter a number between 1 and " & MaxNumber  
    
    "Please enter a number between 1 and " + MaxNumber  
    

    ヒント

    [プロパティ] ウィンドウが表示されていない場合は、 [表示] メニューから [プロパティ ウィンドウ] を選択します。

  5. ツールボックス[プリミティブ] セクションから Assign アクティビティをドラッグし、前の手順で説明した方法のいずれかを使用して、このアクティビティが Prompt アクティビティの下になるように接続します。

  6. [終端側] ボックスに「Turns」と入力し、[C# の式を入力してください] ボックスまたは [VB の式を入力してください] ボックスに「Turns + 1」と入力します。

  7. ツールボックス[フローチャート] セクションから FlowDecision をドラッグし、Assign アクティビティの下に接続します。 [プロパティ] ウィンドウで、 [Condition] プロパティ値ボックスに次の式を入力します。

    Guess = Target  
    
    Guess == Target  
    
  8. [ツールボックス] から別の FlowDecision アクティビティをドラッグし、最初のアクティビティの下にドロップします。 2 つのアクティビティを接続するには、上部の FlowDecision アクティビティにある [False] という四角形から、2 番目の FlowDecision アクティビティの上部にある四角形までドラッグします。

    ヒント

    FlowDecision 上に [True] および [False] というラベルが表示されない場合は、FlowDecision にマウス ポインターを置きます。

  9. 2 番目の FlowDecision アクティビティをクリックして選択します。 [プロパティ] ウィンドウで、 [Condition] プロパティ値ボックスに次の式を入力します。

    Guess < Target
    
  10. [ツールボックス][プリミティブ] セクションから 2 つの WriteLine アクティビティをドラッグし、2 つの FlowDecision アクティビティの下に並べるようにドロップします。 下部の FlowDecision アクティビティの True アクションを最も左の WriteLine アクティビティに接続し、False アクションを最も右の WriteLine アクティビティに接続します。

  11. 最も左の WriteLine アクティビティをクリックし、 [プロパティ] ウィンドウ[Text] プロパティ値ボックスに次の式を入力します。

    "Your guess is too low."  
    
  12. その上にある Prompt アクティビティの左側に WriteLine を接続します。

  13. 最も右の WriteLine アクティビティをクリックし、 [プロパティ] ウィンドウ[Text] プロパティ値ボックスに次の式を入力します。

    "Your guess is too high."  
    
  14. その上にある Prompt アクティビティの右側に WriteLine アクティビティを接続します。

    次の例は完成したワークフローを示しています。

    Diagram that shows a completed Windows Workflow Foundation flowchart.

ワークフローをビルドするには

  1. Ctrl + Shift + B キーを押して、ソリューションをビルドします。

    ワークフローの実行方法については、次のトピック「方法: ワークフローを実行する」を参照してください。 「方法: ワークフローを実行する」の手順を別のスタイルのワークフローを使用して既に完了している場合に、この手順のフローチャート ワークフローを使用して実行するには、「方法: ワークフローを実行する」の「アプリケーションをビルドして実行するには」に進んでください。

関連項目