読者です 読者をやめる 読者になる 読者になる

kkamegawa's weblog

Visual Studio,TFS,ALM関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

VSTSのタスクをFlowでMicrosoft To-Doのタスクと連携する

Microsoft To-Doが発表される前から、VSTS/TFSに登録されたタスクをOutlookにも反映させたいと思っていました。実はそういうアドオンは海外には結構あります。MSDNの特典にもあるSmartOutlook4TFSなんかがそうですね。

www.modernrequirements.com

でも、せっかくオンラインのサービスでRESTのAPIがあるから何とかしたいと思っていました。Microsoft Flowを使えばコーディングレスで連携できることに気づいてやってみたら、できたのですがいくつか課題も分かりました。

とりあえずタスクが連携するのは便利です。使う方の参考にどうぞ。

flow.microsoft.com

Flowのサインアップはこちらから。MSアカウントでもOffice 365アカウントでもどちらでもいいです。連携するoutlookやVSTSのアカウント種別で判断すればいいでしょう。私はMSアカウントで作ってみました。

f:id:kkamegawa:20170518172020p:plain

タスクでVisual Studioを検索します。When a work item is assignedを選択します。

f:id:kkamegawa:20170518172015p:plain

アカウントはMSアカウントであれば自動的に認証されているVSTSのアカウントが出てきます。プロジェクト名を選択して、"assigned to"を選ぶと、「必要なパラメータがー」云々、と出てきます。

f:id:kkamegawa:20170518172009p:plain

これ、実は一つ下のTeam to lookup member fromを「先に」選ばないといけないんですね。必須項目ではないのに選ばないと必須項目が選べないのは注意してください。

f:id:kkamegawa:20170518172003p:plain

ここではプロジェクトの中にあるチームを選びます。チームを選ぶことでチーム内のアカウントを列挙するという動作です。

f:id:kkamegawa:20170518171956p:plain

詳細オプションを選択すると、もうちょっと広がります。Area PathやIterationは大規模な場合便利かもしれませんが、ここではTypeに「タスク」のみ指定します。プロダクトバックログやフィーチャーをもらってもToDoで管理できるものでもないですしね。

f:id:kkamegawa:20170518172129p:plain

Microsoft ToDoの実態はOutlookのタスクを見せているだけです。なので、アクションでOutlook Tasksを選びます。

f:id:kkamegawa:20170518172122p:plain

次はVSTSのタスクの内容をOutlook側に転記します。

f:id:kkamegawa:20170518172111p:plain

で、VSTS側にタスクを登録すると、こんな風にちゃんと連携しますね。

f:id:kkamegawa:20170518172105p:plain

しめしめ…と思って、ToDoを見ると…あれ?1601/1/1が期限?

f:id:kkamegawa:20170518174016p:plain

実はこれ、OutlookのタスクのDue Date(締め切り)やStart Date(開始日)に日付が入っていないからなんですね。そして、この日付にふさわしい日付はVSTSからは出てこないのです(残念)。とはいえ、1601/1/1ってのはちょっとないので、こんな風にcreated dateを代わりに入れてみました。

もちろんVSTS側としては管理できる項目ではあるのですが、標準のプロセステンプレートの入力項目としては出てきません。

VSTSのプロセステンプレートをカスタマイズするか、入力フォームで明示的に入力項目として出すことはできます。

kkamegawa.hatenablog.jp

以前のアドベントカレンダーで書いた時よりさらに簡単になっています。

これはタスクがアサインされたときに連携しています。できれば次はToDoでクローズしたら、VSTS側もクローズさせたいものです。

VSTSのタスクには固有のURIがあるので、それをタスクのdescriptionなどに書いておいて、切り出し→FlowでREST API呼び出しという手順になるかと思います(できたら紹介します)。

では楽しいToDo & VSTSライフを!