[ASTERIA Warp]フロー実行中にスケジュールの有効、無効を切り替える


### はじめに
ASTERIA Warp はGUI で使えるのでとても扱いやすいツールだと思います。
その中で、フローの数が増えてきて、バッチ（スケジュール）の数が増えると、
バッチA 実行中はバッチB 動いて欲しくないな・・・。という事があると思います。
今回はバッチA の中で、バッチB のスケジュールを無効（一時停止）し、有効に戻すというような、
フローの処理中に、スケジュールを有効、無効に切り替える方法をまとめて行きたいと思います。
### 環境
ASTERIA Warp 1906
Amazon Linux AMI release 2018.03
### 結論
フローの処理の中でスケジュールの有効、無効を切り替える！
ここでいうスケジュールとは、フローデザイナーのヘッダー部分にある雷マークをクリックすると出てくる物を指しています。
![20211101_001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1821701/751c912b-d0d2-bcee-2172-984b85b99a78.png)
### 手順
まず初めに管理コンソールに接続する為のHTTP のコネクションを作成します。
![20211101_002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1821701/91d41958-a2e8-c6b7-1d58-c649af3bb7a5.png)
URL のポート番号は下記を参考に28080を指定します。
[ASTERIA Warpのリスナー一覧にて外部向けと内部向けポートについて](https://support.asteria.com/hc/ja/articles/115005610208-ASTERIA-Warp%E3%81%AE%E3%83%AA%E3%82%B9%E3%83%8A%E3%83%BC%E4%B8%80%E8%A6%A7%E3%81%AB%E3%81%A6%E5%A4%96%E9%83%A8%E5%90%91%E3%81%91%E3%81%A8%E5%86%85%E9%83%A8%E5%90%91%E3%81%91%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6)

フローの内容については大きく分けると以下3つのフローに分けられます。
1.管理コンソールにログイン
2.スケジュールの有効、無効を切り替える!
3.管理コンソールからログアウトする
![20211101_003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1821701/9746dcb7-1188-f370-26de-034ebde96ae8.png)
一つずつ見て行きます。

1.管理コンソールにログイン
REST コンポーネントを下記のように設定します。
![20211101_004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1821701/62e17073-663b-7d4c-6cb4-add82ee96472.png)
Mapper 関数で管理コンソールにログインするユーザ名、パスワードを指定します。
![20211101_005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1821701/9bc2e463-9ead-10a2-403e-52f602ac9a6a.png)

2.スケジュールの有効、無効を切り替える
REST コンポーネントを下記のように設定します。
![20211101_006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1821701/0d10dee7-41d5-7b06-f8e4-777990423985.png)
先ほどと同じようにMapper 関数でREST コンポーネントの各項目に値を入れて行きます。![20211101_007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1821701/b2155273-ba76-6230-d288-6f43054807b7.png)
それぞれの入力項目の説明です。
type：下記を参考にして、今回は「指定間隔で実行するスケジュール」なので「interval」にします。
>コマンド一覧

[flow-ctrl コマンドリファレンス](https://help.asteria.com/documentation/warp/ja/4.5/flow/designer/flow-ctrl.html)

name：登録しているスケジュールの名前を入力します。
userName：スケジュール登録したユーザの名前を入力します。
status：true or false を入力します。有効にする場合はtrue、無効にする場合はfalse にします。
X-As-SessionId：ログイン時のセッションを渡します。ログアウトする時も使うので今回はフロー変数にも情報を渡しています。

ここの実行が完了すると、スケジュールのステータスが指定したものに切り替わっているはずです。

3、管理コンソールからログアウトする
REST コンポーネントを下記のように設定します。
![20211101_008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1821701/128ce13b-40b9-57c4-ae26-fd20374df353.png)
Mapper 関数の設定はシンプルでログイン時のセッションを渡すだけです。
![20211101_009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1821701/2de35525-901f-d93e-5535-a5de63da264b.png)
以上です。
このフローをバッチの中に組み込めば別のフローのスケジュールを有効、無効に切り替えする事ができます。
スケジュールを無効にする際は「今動いているバッチを停止する」ではなく、「次のバッチの開始を止める」なので、その点は留意して下さい。
### おわりに
この処理調べている中で、結構知らなかった事の発見が多く、
情報まとめてみるって大事だなーと思いました。

皆様も情報まとめて公開してみてはいかがでしょうか。
（ASTERIA の記事も待ってます！）

### 参考資料
[ASTERIA Warp Developer Network （ADN）（最終閲覧日：2021年11月1日）](https://support.asteria.com/hc/ja)
[ASTERIA Warp フローサービスマニュアル（最終閲覧日：2021年11月1日）](https://help.asteria.com/documentation/warp/ja/4.5/flow/designer/flow-ctrl.html)