- リリース ノート
- 基本情報
- セットアップと構成
- オートメーション プロジェクト
- 依存関係
- ワークフローの種類
- 制御フロー
- ファイルの比較
- オートメーションのベスト プラクティス
- ソース管理との連携
- デバッグ
- ログ
- 診断ツール
- ワークフロー アナライザー
- ワークフロー アナライザーについて
- ST-DBP-002 - 多数の引数
- ST-DBP-003 - 空の catch ブロック
- ST-DBP-007 - 複数のフローチャートレイヤー
- ST-DPB-010 - [ワークフロー] または [テスト ケース] の複数のインスタンス
- ST-DBP-020 - 未定義の出力プロパティ
- ST-DBP-021 - ハードコードされたタイムアウト
- ST-DBP-023 - 空のワークフロー
- ST-DBP-024 - 永続性アクティビティの確認
- ST-DBP-025 - 変数のシリアル化の前提条件
- ST-DBP-026 - [待機] アクティビティの使用
- ST-DBP-027 - Persistence のベスト プラクティス
- ST-DBP-028 - 引数のシリアル化の前提条件
- ST-USG-005 - ハードコードされたアクティビティ引数
- ST-USG-009 - 未使用の変数
- ST-USG-010 - 未使用の依存関係
- ST-USG-014 - パッケージの制限
- ST-USG-017 - パラメーターの修飾子が無効
- ST-USG-020 - 最小ログ メッセージ
- ST-USG-024 - 未使用で保存されたままの値
- ST-USG-025 - 保存した値の誤用
- ST-USG-026 - アクティビティの制限
- ST-USG-027 - 必要なパッケージ
- ST-USG-028 - ファイル テンプレートの呼び出しの制限
- ST-USG-027 - 必須のタグ
- ST-USG-034 - Automation Hub URL
- 変数
- 引数
- インポートされた名前空間
- コード化されたオートメーション
- トリガーベースの有人オートメーション
- オブジェクト リポジトリ
- ScreenScrapeJavaSupport ツール
- 拡張機能
- Studio でのテスト
- トラブルシューティング

Studio ガイド
ステート マシン
ステート マシンはオートメーションの一種で、実行中に有限個のステートを使用します。ステート マシンは、アクティビティによって起動されたときに、あるステートに移行することができ、別のアクティビティが起動されたときにそのステートを終了します。
ステート マシンのもう 1 つの重要な特徴として、あるステートから別のステートに移行するための基準となる条件を追加することもできます。これらの条件はステート間で矢印またはブランチで表示されます。
ステート マシンには固有のアクティビティとして、[ ステート ] アクティビティと[ 最終ステート] アクティビティがあります。これらは、[ ワークフロー] > [ステート マシン] で確認できます。
初期ステートは 1 つしか作成できませんが、[最終ステート] は複数作成することが可能です。
[ステート] アクティビティには [Entry]、[Exit]、[Transition(s)] という 3 つのセクションがあります。一方、[最終ステート] には [Entry] という 1 つのセクションのみがあります。どちらのアクティビティも、ダブルクリックして展開することができ、詳細情報を表示して編集できます。
[Entry] セクションと [Exit] セクションでは、選択したステートの開始トリガーと終了トリガーを追加できます。一方、[Transition(s)] セクションには、選択したステートにリンクされたすべてのトランジションが表示されます。


[遷移条件] も [ステート] アクティビティとまったく同様に、ダブルクリックすると展開されます。[遷移条件] には [Trigger]、[Condition]、[Action] の 3 つのセクションがあり、これらを使用して、次のステートのトリガーを追加したり、アクティビティやシーケンスを実行すべき基準となる条件を追加したりできます。

ステート マシンの使用例
ステート マシンの使用例を紹介するため、ここでも前の章と同様の推測ゲームを作成しますが、推測する数字の範囲を 1~100 とします。
-
空のプロセスを作成し、[デザイン] タブの [ファイル] グループで、[新規] > [ステート マシン] を選択します。[新しいステート マシン] ウィンドウが表示されます。
-
[名前] フィールドにオートメーションの名前 (例: 「First State Machine」) を入力し、既定のプロジェクトの場所をそのまま使用するか、サブフォルダーを追加します。[作成] をクリックします。これに従ってデザイナー パネルが更新されます。
-
2 つの整数変数
InitialGuessとRandomNumberを作成します。1 つ目の変数には推測した数字を格納し、2 つ目の変数にはランダムな数字を格納します。 -
デザイナーパネルに [ステート] アクティビティを追加し、[Start] ノードに接続します。これが初期ステートとなり、ランダムな数字の生成に使用されます。
-
アクティビティをダブルクリックします。この [ステート] アクティビティが、デザイナー パネルで展開表示されます。
-
[プロパティ] パネルの [表示名] フィールドに、「Initializing Random Number」と入力します。これで、ステートを簡単に区別できます。
-
[Entry] セクションに [代入] アクティビティを追加します。
-
[左辺値 (To)] フィールドに
RandomNumber変数を追加します。 -
[右辺値 (Value)] フィールドに、「
new Random().Next(1,100)」と入力します。この式によってランダムな数字が生成されます。 -
メイン プロジェクト画面に戻り、新しい [ステート] アクティビティを追加します。
-
このアクティビティを、前に追加したアクティビティに接続します。
-
今追加した [ステート] アクティビティをダブルクリックします。このアクティビティが、デザイナー パネルで展開表示されます。
-
[プロパティ] パネルの [表示名] フィールドに、「Guess Number」と入力します。このステートを使用して、ユーザーに数字を当てるよう求めます。
-
[Entry] セクションに [入力ダイアログ] アクティビティを追加します。
-
[入力ダイアログ] を選択し、[プロパティ] パネルで、1~100 の数字を当てるようユーザーに求めるための適切な [ラベル] と [タイトル] を追加します。
-
[結果] フィールドに
InitialGuess変数を追加します。この変数には、ユーザーが推測した数字を格納します。 -
メイン プロジェクト画面に戻り、Guess Number ステートからそれ自身までを指し示すトランジションを作成します。
-
このトランジションをダブルクリックします。トランジションがデザイナーパネルで展開表示されます。
-
[プロパティ] パネルの [表示名] フィールドに、「Try Smaller」と入力します。このメッセージは矢印の上に表示され、オートメーションの作業がしやすくなります。
-
[Condition] セクションに、「
InitialGuess>RandomNumber」と入力します。これで、ユーザーが推測した数字がランダムに生成された数字より大きいかどうかが確認されます。 -
[Action] セクションに [メッセージ ボックス] アクティビティを追加します。
-
[Text] フィールドに、「"Your guess is too big. Try a smaller number."」のようなメッセージを入力します。このメッセージは、ユーザーが推測した数字がランダムに生成された数字より大きい場合に表示されます。
-
Main プロジェクト画面に戻り、新しいトランジションを作成します。この新しいトランジションは、Guess Number ステートからそれ自身までを指し示します。
-
このトランジションをダブルクリックします。トランジションがデザイナーパネルで展開表示されます。
-
[プロパティ] パネルの [表示名] フィールドに、「"Try Bigger"」と入力します。このメッセージは矢印の上に表示され、オートメーションの作業がしやすくなります。
-
[Condition] セクションに、「
InitialGuess<RandomNumber」と入力します。これで、ユーザーが推測した数字がランダムに生成された数字より小さいかどうかが確認されます。 -
[Action] セクションに [メッセージ ボックス] アクティビティを追加します。
-
[Text] フィールドに、「"Your guess is too small.Try a bigger number."」のようなメッセージを入力します。このメッセージは、ユーザーが推測した数字がランダムに生成された数字より小さい場合に表示されます。
-
Main プロジェクト画面に戻り、デザイナー パネルに [最終ステート] アクティビティを追加します。
-
[Guess Number] アクティビティから [最終ステート] に [遷移条件] を接続します。
-
[プロパティ] パネルの [表示名] フィールドに、「"Correct Guess"」と入力します。
-
[Condition] フィールドに、「
InitialGuess=RandomNumber」と入力します。この条件が満たされると、このオートメーションが最終ステートの段階に進んで終了します。 -
[最終ステート] アクティビティをダブルクリックします。このアクティビティがデザイナー パネルで展開表示されます。
-
[Entry] セクションに [メッセージ ボックス] アクティビティを追加します。
-
[Text] フィールドに、「"Congratulations.You guessed correctly! The number was " +
RandomNumber.ToString+ "."」のように入力します。これは、ユーザーが正しい数字を当てたときに最後に表示されるメッセージになります。
最終的なワークフローは、次のスクリーンショットのようになります。

36.F5 キーを押します。オートメーションは正しく実行されています。
