2018年9月26日水曜日

LogicFlow のトリガに関数を指定してはいけない

LogicFlow で利用できるトリガの中には、設定を色々行えるものがあります。その際に、大体は直接的な値を設定することが多いのですが、場合によっては LogicFlow の関数を利用したいこともあります。ところが現状の仕様ではそれは面倒を招いてしまっていました。


実際にはこのような形で、トリガ上で関数を利用することが可能です。

githubdoc

HTTP コネクタをトリガとして利用した場合です。URL を関数を利用して設定しています。上記の場面では以下のような記述を行いました。

@concat('https://api.github.com/repos/MicrosoftDocs/azure-docs/commits?path=articles%2Fconnectors&since=', uricomponent(adddays(utcNow(),-1)))

これは Github の API を呼び出して、Azure Logic Apps のドキュメントリポジトリでのコミット履歴を取得しています。その際に「前日までに」という条件を付与したかったので、adddays 関数を利用して動的に指定を行っています。

image

呼出結果はこのように、前日までという指定が正しく行えています。

ところがこの状態になると、LogicFlow のデザイナー上で編集ができなくなります。最初の状態で fx となっている箇所をクリックしようと、ダイアログが表示されず編集することができません。この場合は、CodeView にて直接編集を行う事しかできません。

Flow で同様の状況を作成してみようと思ったのですが、ダイアログが出ない状態でいくら関数を入力しても、関数として認識されないのか作成できませんでした。ですが、Logic Apps からのインポートを行えば、同様の現象は再現可能と思われます。

このように、トリガで関数を利用するとその後のメンテナンスが非常に面倒なことになりますので、できる限り利用を控えるのがよいかと思いますが・・・UserVoice 経由でリクエストをあげるのが一番よさそうです。

0 件のコメント:

コメントを投稿