07 条件分岐

ロボットの基本的な動きは、順次・繰り返し・条件分岐の3つです。

  • 順次  :前から後ろに順番に処理する
  • 繰り返し:処理を繰り返す
  • 条件分岐:条件を満たしているかどうかで、次の処理を変える

順次と繰り返しはすでに使ったことがあるので、ここでは条件分岐を使ってみましょう。



【1】作成するロボットの概要

[レシピ検索ロボ_v2]のロボット概要 + 《追加》

 ※[レシピ検索ロボ_v2]は、「05 テキストボックス入力」と「06 日付型の変数」 で紹介したロボットです。

おしゃべりクッキングのページで、フリーワード欄に「鶏肉」と入力してから検索して、検索結果に表示されたレシピ名、ジャンル、放送日を表示する。

[放送日]は日付型の変数[Date_放送日]にも入力しておく。

《追加》

[放送日]が過去1か月以内の日付のときは、レシピ名の先頭に「【新作】」という文字列を追加する。


【2】ロボットをコピーする

(1)ここでは、「06 日付型の変数」で作成したロボットをコピーして使用します。

[レシピ検索ロボ_v2.robot]を右クリック→[コピー]をクリックしてください。


(2)すると、次のようなダイアログが表示されますので、[名前]に「レシピ検索示ロボ_v3.robot」と入力して、[OK]をクリックしてください。


(3)次に、右クリック→[開く]をクリックして開きます。


【2】日付型の変数を追加する

ここで、(タイプのない)シンプルタイプの日付型の変数を1つ作成します。

この変数には、現在日付の1か月前の日付を入力して、レシピ情報の放送日と比較します。そして、その比較した結果によって、次に実行する処理を変更します。


(1)はじめに、変数・ビューの左下の[+]をクリックします。


(2)次のようなダイアログが表示されますので、[名前]は「Date_新作日付」と入力して、[タイプと初期 / テスト値]は[Date(シンプル)]を選択して、[OK]をクリックしてください。


(3)すると、変数・ビューに変数[Date_新作日付]が追加されます。


【3】変数[Date_新作日付]に値を入力する

(1)[Return Value]ステップをクリックしてから、画面上部の[選択したステップの前にステップを挿入]をクリック→[アクションステップ]をクリックします。


(2)次に、ステップ・ビューの[アクションを選択]をクリック→[変数の割当]をクリックします。


(3)そして、[値]の右端にある[▼]をクリック→[コンバータ]をクリックします。


(4)[値]には初期設定で[変数の取得]が追加されていますので、[-]をクリックして除去します。


(5)次に、[値]の左下にある[+]をクリック→[エクスプレッションを評価]をクリックします。


(6)そして、[エクスプレッション]をクリック→[関数]→[現在の日付: date()]をクリックします。


(7)すると、[エクスプレッション]に「date()」が入力されますので、その後ろに「 + “(半角スペース)00:00:00″」と入力して、次のような入力内容になるようにします。

date() + " 00:00:00"

これは、日付型の変数に入力する値は、「yyyy-MM-dd HH:mm:ss」という書式パターンでなければならないためです。

それでは、[テスト出力]に現在の日時(時間は 00:00:00)が表示されているのを確認してから、[OK]をクリックしてください。


(8)[値]に[評価:date() + ” 00:00:00″]というアクションが追加され、現在の日付を取得することができました。


(9)ここから、現在の日付の1か月前を算出します。

再び、[+]をクリック→[日付処理]→[変更日]をクリックしてください。


(10)次に、[変更する入力日付の部分]は[月]を選択して、[量]は「1」のまま、[関数]は[入力日付から量を減算]を選択します。これで、現在の日付から1か月を減算するということになります。

[テスト出力]に、現在の日付の1か月前の日付が表示されているのを確認してから、[OK]をクリックしてください。


(11)ステップ・ビューの[値]に[Subtract 1 month]というアクションが追加され、現在日付の1か月前の日付が取得できました。そして、その日付を入力する[変数]には、[Date_新作日付]を選択します。すると、ステップ名が[Assign Date_新作日付]に変更されます。


【4】トライステップと条件判定を追加する

ここから、条件分岐のステップを追加していきます。今回は、トライステップを使って条件分岐をしてみましょう。

トライステップというのは、下図のように条件判定の前に置いて、条件を満たしているかどうかで、別の代替手段を実行するものです。

 ※より詳しく知りたい方は、kofaxのヘルプ「Kofax Kapow へようこそ > Design Studio > エラーの処理 > At ターゲット」を参照してください。


(1)[Return Value]をクリックしてから、画面上部の[選択したステップの前にステップを挿入]をクリック→[トライステップ]をクリックします。


(2)すると、ひし形のトライステップと点線矢印が2本追加されます。最初に実行されるのは上側の点線矢印で、代替手段が下側の点線矢印です。

次に、条件判定のステップを追加する必要がありますので、画面上部の[選択したステップの前にステップを挿入]をクリック→[アクションステップ]を選択します。


(3)すると、[トライステップ]の後ろに新しいステップが追加されますので、このステップに条件判定のアクションを設定しましょう。


(4)新しく追加されたステップを右クリック→[ステップを設定]をクリックします。


(5)ここで表示されるダイアログは、ステップ・ビューと同じ内容なのですが、そのステップまで実行しなくても設定できるので便利です。

[アクションを選択]をクリック→[テスト]→[変数判定]をクリックします。


(6)次に、判定の条件を追加するために、[条件]の左下にある[+]をクリックします。


(7)そして、「Date_放送日 >= Date_新作日付」となるように入力して、[OK]をクリックします。

※[値]の入力は、右端の[▼]をクリック→[変数]をクリックして、プルダウンメニューから[Date_新作日付]を選択します。


(8)変数判定の[条件]に、[Date_放送日 >= Date_新作日付]が追加されました。

次に、その条件を満たしている、もしくは満たしていないときに行う処理を設定します。

ここでは、[If]は[いずれかの条件を満たさない]を選択します。こうすることで、放送日が過去1か月以内ではないとき、[Do]の処理を行うことになります。

[Do]は[[エラー処理]時に指定されたとおり]を選択しておき、次の手順でトライステップに戻る処理を設定します。



(9)[エラー処理]タブをクリックして、[Then]は[次の代替手段を試行]を選択して、[次のステップ]は[(直近のトライステップ)]を選択します。

これで、放送日が過去1か月以内でないときは、トライステップに戻って次の代替手段を実行することになります。


(10)[Test Valuables]ステップの左上に小さな「←」が表示されました。これは、トライステップに戻る処理を表しています。


【5】レシピ名に【新作】を追加する

(1)次は、放送日が過去1か月以内のときに、レシピ名の先頭に【新作】という文字列を追加します。

画面上部の[選択したステップの後にステップを挿入]をクリック→[アクションステップ]をクリックします。


(2)そして、[アクションを選択]をクリック→[変数の割当]をクリックします。


(3)さらに、[値]の右端にある[▼]をクリック→[コンバータ]をクリックします。


(4)[値]には、初期設定で[変数の取得]が追加されていますので、右端の四角いマークの[編集]をクリックしてください。


(5)次に、[変数]のプルダウンメニューから[レシピ情報.レシピ名]を選択して、[OK]をクリックします。


(6)ステップ・ビューの[値]に[レシピ情報.レシピ名 を取得]というアクションが追加されました。

この値の先頭に【新作】という文字列を追加するために、[+]をクリック→[テキストフォーマット]→[テキストを追加]をクリックします。


(7)そして、[追加するテキスト]は「【新作】」と入力して、[追加する場所]は[入力テキストの前]を選択します。すると、[テスト出力]に【新作】が追加されたレシピ名が表示されますので、確認してから[OK]をクリックします。


(8)[コンバータ]に[テキストの前に “【新作】” を追加]というアクションが追加されました。その値を入力する[変数]に[レシピ情報.レシピ名]を選択します。すると、ステップ名が[Assign レシピ名]に変更されます。


【5】トライステップの代替手段を設定する

(1)ここからは、放送日が過去1か月以内でないときの代替手段の設定を行います。

トライステップから出ている下側の点線矢印を右クリック→[選択]をクリックしてください。


(2)そして、マウスでドラッグしながら[Return Value]ステップへと繋げます。

これで、放送日が過去1か月以内でないときは、【新作】の文字列の追加を行わないことになります。これで、ロボットは完成です。画面左上の[すべて保存]をクリックして保存します。


【6】ロボットを実行する

(1)[デバッグ]をクリックしてから三角形のマークの[実行]をクリックして、ロボットを実行します。


(2)処理が終了したら、ステータス・ビューを確認してください。

レシピ一覧の情報が表示されていて、放送日が過去1か月以内のレシピ名の先頭には【新作】が追加されていればOKです。


ロボットの基本動作「順次・繰り返し・条件分岐」が使えると、いろいろなロボットを作ることができます。どんなロボットが作れるか考えてみてくださいね。