2016年6月26日日曜日

2016-04-01 Scheme アップデートが来ました

以前に告知されていた 2016-04-01 アップデートが実際に利用できるように配布が開始されました。日本時間だと 6/25 に来たこのアップデートですが、このひは Intaract x Cloud Samrai 2016 というイベントで LogicApps などの事を話させていただいたこともあり、非常にドキドキしていたものです。

一番大きいインパクトがあるのはなんといってもこれ、Condition のネスタ対応とループのデザイナ対応です。

upd3 

このように Condition コネクタの内部でさらに Condition を利用できるようになり、複雑な条件判断も LogicFlow 化しやすくなりました。

また今までは JSON 定義を直接書き換えたりすることや、自動で行われていたループ化もコネクタとして提供され、より自分の思うように処理を形成できるようになっています。

image

これが ForEach コネクタで、ループ対象となる値(他のコネクタから受け取ったコレクションとか)を指定することで、その個数分ループ処理を行えます。

image

こちらが Until コネクタです。こちらは指定した条件を満たすまでループを行いますが、LogicFlow で利用する上の制限として、最大ループ数とタイムアウトの設定も行えるようになっています。まぁ無限ループになっては困るので、こういった別のループ脱出方法があるのはありがたいですね。

さて、これら二つのループが増えたのはうれしいのですが、若干制限があります。

image

ループ内にコネクタを設置するとこのような感じになるのですが、見てもらうとわかるように追加でコネクタを設置することができません。ループ内におけるコネクタは一つだけ、という制限があります。プログラマ的考え方だと、ループの中で色々な処理を行いたくなりますが、LogicFlow ではループを複数個用意して、実行したい処理を分けるのが望ましい、という考え方の違いなのかなと思います。まぁ今でしたら、ループの内部で子 LogicFlow を呼び出せばよいだけですので、LogicFlow を使う上ではそれほど大きい制限ではないかも知れません。

そしてループ処理関係で新しいコネクタ機能が追加されました。Fillter コネクタです。

image

名前からも想像できるところはありますが、主にループ対象の配列に対して、さらに条件で絞り込みを行うためのコネクタです。これを利用すれば、ループ内で条件判断したいケースを減らすことができると思われます。

もう一つ、実は大きな機能追加があります。それはスコープです。

image

Scope コネクタを配置するとこのような感じになります。このコネクタですがどういった事に利用するかというと、主に処理をまとめて記述するために利用します。これまでも JSON に記載することで利用できていたのですが、今回のアップデートでデザイナ上での対応も可能になりました。

Scope コネクタ内部に複数の処理を記述できますので、何かしらの一連の処理をひとつのスコープにまとめることが可能です。最初、プログラム的なスコープかと思っていたのですが、そうではなく、変数や定義は別スコープの物でも利用できるようです。スコープの中で提供されるものを、スコープ外でも呼び出せます。このあたり、もっとうまい利用方法がある気はしますが・・・。

あと、今回もポータル上でスキーマアップデートが行える・・・のですが、若干の注意点が。

image

このように Update Schema と Clone が増えています。Update Schema をクリックすれば、2016-04-01 版へと更新される・・・のですが、今回はそのまま自動では変更されません。

image

今回は Update Schema をクリックすると、このようにアップデート後の結果が表示され、そのうえで Save をクリックし「新しく LogicApps を作成させる」ことを要求します。

というのも今回は結構な大規模変更で、2015-08-01 スキーマであった色々な要素がそのままでは利用できないレベルの物が多いです。ループの処理が変わったことや、マニュアルトリガが廃止されHTTP Request トリガに置き換わるとか、見た目以上にダイナミックな変更が行われています。

そのためにも新しい LogicApps として作成させているのもありますので、変換後の動作確認は必須です。

0 件のコメント:

コメントを投稿