「ステート」アクティビティのご紹介をします。
1.アクティビティのプログラム名
System.Activities.Statements.State
2.説明
Studio バージョン 2.0.2.0まで
クイックアクセス: 「ツールボックス」 > 「ステートマシン」> 「ステート」
Studio バージョン 2.0.3.0から
クイックアクセス: 「ツールボックス」 > 「システム」 > 「ステートマシン」> 「ステート」
このアクティビティは「ステートマシン」内で使用できます。Entry、Exit、Transitionの3つのセクションがあります。
※動作を確認したコボットStudioのバージョン:2.1.1.2
※バージョンによって文言などが一部異なる場合がございます
3.プロパティ
プロパティ項目 | プロパティ名 | 入力欄 | 説明 |
---|---|---|---|
その他 | 表示名 | 任意の文字列 | デザイナーパネルのアクティビティ名に反映される。 |
デザイナーパネル上に表示されるセクションは次の通りです。
セクション | 説明 |
---|---|
Entry | ステート内で実行するアクティビティを配置 |
Exit | ステート終了時に実行するアクティビティを配置 |
Transition(s) | 他のステートとの関係を自動で表示 |
4.使い方
「ステート」を使用して、時間により作業すべき事を実行または確認する例をご紹介します。「ステート」を使用するためには、「ステートマシン」を配置する必要があります。
まずは「システム」>「ステートマシン」>「ステートマシン」をドラッグ&ドロップし、配置します。
※「ステートマシン」の配置方法は、こちらをご覧ください
次に「システム」>「ステートマシン」>「ステート」をドラッグ&ドロップし配置し、遷移線でつなげた後、この「ステート」をダブルクリックします。
「Entry」セクションに「システム」>「オリジナル」>「代入」をドラッグ&ドロップし、配置します。
プロパティにある「その他」>「代入先」にString型の変数( この例の場合では「 currentTime 」)を入力し、さらに「値」にも入力します。
※この例の場合では「 DateTime.Now.ToString("HH:mm:ss") 」と入力しています。
※ 変数の作成については「変数の作成」をご参照ください。
「ステートマシン」に戻り、再び「システム」>「ステートマシン」>「ステート」をドラッグ&ドロップし配置し、遷移線でつなげます。
「ステート」と2つ目の「ステート」をつないだ遷移線にある「T1」と表示された部分をダブルクリックします。
プロパティにある「その他」>「Condition」に式( この例の場合では「 currentTime < "12:00:00" 」)を入力します。
実行結果を確認するため、「システム」>「オリジナル」>「1行を書き込む」をAction内に配置し、必要な変数等を設定します。
※この例ではString型の変数「 currentTime 」を入力しています。
「ステートマシン」に戻り、2つ目の「ステート」をダブルクリックします。
「Entry」セクションに「システム」>「オリジナル」>「1行を書き込む」をドラッグ&ドロップし配置した後、必要な変数等を設定します。
※この例では文字列で「 "12時までの作業" 」と入力しています。
次に「ブラウザ」>「ブラウザを開く」をドラッグ&ドロップし、配置します。
プロパティにある「一般」>「完了または障害が発生した場合にブラウザを終了」をクリックし、チェックを外した後、「入力」>「URL」に文字列かString型の変数( この例の場合では文字列で「 "https://platform.kobot.jp/support/home" 」)を入力します。
「ステートマシン」に戻り、さらに「システム」>「ステートマシン」>「ステート」をドラッグ&ドロップし配置した後、遷移線でつなげます。
「ステート」と3つ目の「ステート」をつないだ遷移線にある「T1」と表示された部分をダブルクリックします。
プロパティにある「その他」>「Condition」に式( この例の場合では「 currentTime > "12:00:00" 」)を入力し、さらに「DisplayName」の「T1」を「T2」に変更します。
※「DisplayName」の文字は任意の文字列に変更できます。
実行結果を確認するため、「システム」>「オリジナル」>「1行を書き込む」を配置し、必要な変数等を設定します。
※この例ではString型の変数「 currentTime 」を入力しています。
再び3つ目の「ステート」をダブルクリックします。
「Entry」セクションに「システム」>「オリジナル」>「1行を書き込む」をドラッグ&ドロップし配置した後、必要な変数等を設定します。
※この例では文字列で「 "12時以降の作業:タスクを確認してください" 」と入力しています。
「ステートマシン」に戻り、最後に「システム」>「ステートマシン」>「最終ステート」をドラッグ&ドロップし配置した後、この「最終ステート」をダブルクリックします。
「Entry」セクションに「コア」>「ダイアログ」>「メッセージボックス」をドラッグ&ドロップし、配置します。
プロパティにある「入力」>「テキスト」に文字列かString型の変数( この例の場合では、文字列で「 "ワークフローを実行しました" 」)を入力します。
「ステートマシン」に戻り、2つの「ステート」と「最終ステート」を遷移線でつなげます。
※今回の例では、この遷移線には何も設定していません。その為「ステート」が実行されるとすぐに「最終ステート」に設定した内容が実行されます。
「ホーム > スタート」をクリック、または「F5キー」押下でワークフローを実行します。
■12時前に実行した場合
コボットPortalのページが開かれ、その後「メッセージボックス」で「ワークフローを実行しました」と表示される事を確認してください。さらに出力パネルを開き、実行した時間と「12時までの作業」と表示されている事を確認してください。
■12時以降に実行した場合
「メッセージボックス」で「ワークフローを実行しました」と表示されます。その後、出力パネルを開き、実行した時間と「12時以降の作業:タスクを確認してください」と表示されている事を確認してください。