ふらりのメモ書き

Microsoft 365 , Power Platform らへん

【Microsoft Entra ID】FIDO2セキュリティキーでパスワードレスな話


2023/7/31(月) に 第39回 Microsoft 365 勉強会 で登壇させていただきました。
実は、Japan Microsoft 365 Users Group での登壇は初でした!
運営のみなさま、ご参加いただいたみなさま、とても楽しい時間をありがとうございました!

登壇後に調べたら気づいたことがあったので、FIDO2セキュリティキーの補足も記載します。
jpo365ug.connpass.com

登壇時の資料

登壇時の資料はこちら!
53ページになっちゃってますが、ほとんどデモでやった内容です。

www.docswell.com

デモで使っていた FIDO2 セキュリティキー

飛天ジャパンさんの商品です。

  • ePass FIDO A4B → PINタイプ
  • BioPass FIDO2 K45 → 指紋認証タイプ

ftsafe.co.jp

Windows 10 1903以降なら標準機能で管理可能

ePass FIDO A4B、BioPass FIDO2 K45 どちらもWindows 10 / 11 の標準機能で管理できました。
※資料上はBioPassFIDO マネージャーアプリを利用しています。登壇後にメーカーのマニュアル読んでいて気づきました。(マニュアルはよく読まないとだめですね…反省)

Windows の対応としては、2019/5/21 に発表されてますね。
blogs.windows.com

利用条件によってもOSバージョンの要件があるのでその点にも注意が必要です。
learn.microsoft.com

Windows 11 上での指紋の登録手順

とても簡単でした。
設定 > アカウント > サインインオプションセキュリティキーから管理できます。
※PINタイプも管理はほぼ一緒です。

指紋の登録手順
1. PINを登録します。 2. PINを登録したら、指紋を登録します。
※リセットもできますが、すでに登録済みのクラウドサービスの認証はできないので、再登録が必要です。
※指紋は複数登録できました。PINの変更も可能です。

さいごに

マニュアルはよく読みましょう…はい、とてもそう思いました。
Windows 10/11 の標準機能で指紋やPINの管理ができるので、ちょっと導入ハードルは下がりますね!
個人的には指紋認証に対応したタイプが楽ちんで便利だと思います。
あと、飛天ジャパンさんの指紋認証超認識早いのでおススメです!
では、よいMicrosoft Entra ID ライフを…もとい、Microsoft 365 ライフを!

【Community】気ままに勉強会とJPPGBに登壇させて頂きました!


最近の登壇履歴をまとめてみました。

気ままに勉強会 #56

Power Automate なんでもLT大会!

2023/05/20(土) 20:00 - 21:30
気ままに勉強会 #56
今回のお題:Power Automate なんでもLT会~ 第11回 ~
kimamani.connpass.com

登壇内容 : connpass API で直近のイベントを効率よくGetしてみた話

connpass API でのイベント取得の話をさせて頂きました。
connpass API 便利ですよね。

しかし、10分の持ち時間を20分オーバーの30分しかってしまい申し訳なかったです。作成デモは今後の課題です。

connpass API で直近のイベントを効率よくGetしてみた話
www.docswell.com

気ままに勉強会 #59

今回はテーマLTでした。
意図していないけど、登壇者でリレーをつなぐように上手く繋がっていきましたね!

2023/06/17(土) 20:00 - 21:30
気ままに勉強会 #59
今回のお題:テーマLT:私、ココにつまづきました・ハマりました
kimamani.connpass.com

登壇内容 : 日時の取り扱いにハマった話

Power Automate で日時の取り扱いにハマった時の話をさせていただきました。
イベント開始50分前にデモ用のフローを作成したいたら、日時でハマるという事態に陥りいっていたりするという...それほどハマりますよねぇ、日時の取り扱い...。

デモも事前に動きを見せるデモに切り替えたので、時間もちょうどいいくらいに終わることができました!(ちょこっとオーバー?)

www.docswell.com

JPPGB #6

Japan Power Platform Game Builders (JPPGB)は「本来業務アプリを作成するはずのPower Platformを用いてゲームを作成してみるイベントです。」という、Power Platform でゲームを作成の Community です!

2023/06/24(土) 13:45 - 18:00
JPPGB #6
Power Platformでゲーム作成して遊ぼう!
jppgb.connpass.com

登壇内容 : チンパンジーゲームに挑戦してみた話

JPPGB #4 のお題にあった「チンパンジーゲーム」...じゃない、チンパンジーの瞬間記憶力で使われる番号当てゲームを自分も作ってみたものを発表させて頂きました!
チンパンジーゲームよりもそれのロジックの元になったアクアビーズ デザイナーの方に注目がいってしまいました。(あらあら)

www.docswell.com

さいごに

みんな登壇内容が違うのに、うまく繋がっていくのがすばらしいし楽しかったです!
また、機会があればひょっこり登壇していきたいなぁ。
では、よい Power Platform ライフを!

【Power Automate】connpass のイベントを取得する6(気ままに勉強会編)

気ままに勉強会 #56 で、LT(というにはかなり長い時間をつかってしまいもうしわけございません。)で登壇させて頂きました。
気ままに勉強会で発表したのと違うのは、フロー実行時の当月と翌月を取得するようにしています。
こっちの方がわかりやすくしたつもりなんですが、どうかなぁ。
解説していきます。

connpass API の仕様

connpass API はこちらに記載があります。
connpass.com

フローの全体

1トリガーと8アクションで作成できます。

当月と今月を変数の格納する

connpass API では、今月と当月を202305や202306などのような記述で、月を指定して情報を取得できます。
まずは、フロー実行時の今月と来月を 変数を初期化する アクションを利用して定義します。

今月

utcnow() でUTCでの現在時刻に日本のタイムゾーンの9時間を足して、その月の1日目を取得し、フォーマットを yyyyMM 形式に設定しています。

名前

thisMonth  

種類

文字列  

値 ※値 にそのまま貼り付けてください。

@{startOfMonth(addHours(utcnow(),9),'yyyyMM')}

来月

addToTime 関数はタイムスタンプに指定した時間単位(秒:"Second"、分:"Minute"、時: "Hour"、日:"Day"、週: "Week"、月: "Month"、年: "Year" )を加算できます。
この関数を利用して、翌月の月初を取得して、compass API のフォーマットに合わせます。
この関数が便利なのは、2023年2月1日に1ヵ月加算すると2023年3月1日になるところです。
1ヵ月という単位は、28日、29日、30日、31日とタイミングよって違いますが、月を指定すれば月の単位で加算できますので、

名前

nextMonth  

種類

文字列  

値 ※値 にそのまま貼り付けてください。

@{subtractFromTime(startOfMonth(addHours(utcnow(),9)),-1,'Month','yyyyMM')}

グループIDのでイベントの取得

HTTP アクションを使います。
HTTP アクションはPremiumコネクタなのでスタンドアロンライセンスが必要です。
クエリは「クリエをテキストモードに切り替える」をクリックして貼り付けると簡単です。

方法

GET  

URI

https://connpass.com/api/v1/event/

ヘッダー

{
  "Content-Type": "application/json; charset=utf-8"
}

クエリ ※ クリエをテキストモードに切り替えるに変更して貼り付けてください。

{
  "series_id": "2438,3366,6192,6423,6950,10313,10631,10768,11020,12133,12508,12607,13103,13301,13340",
  "order": "2",
  "count": "100",
  "ym": "@{variables('thisMonth')},@{variables('nextMonth')}"
}

取得しているグループについては、こちらのBlogで紹介しています。
flali.hatenablog.com

現在時刻より、未来のイベントにフィルターする

今月のイベントでクエリを投げているので、今月すでに終了したイベントまで取得しています。
これから開催予定のイベントを取得したいので、現在時刻より後の開催日時の (現在時刻より開始日時が大きい)イベントにフィルターします。
HTTPアクションに対して、JSONの解析アクションを入れていないので、差出人の部分は手動で指定する必要があります。
値の選択部分の 'started_at' も動的コンテンツが使えないため、手動で設定します。下記の内容はそのまま貼り付けできるように記載しています。

差出人 ※HTTPアクションのbody > events を指定します。

@body('HTTP')?['events']  

値の選択 ※詳細設定モードで貼り付けてください。

@greater(item()?['started_at'], addHours(utcnow(), 9))

HTTPアクションのbodyの配下の events が必要。

データの順番の変更

直近のイベントを上に表示するために、Sort関数で昇順に変更します。
作成アクションを使って設定します。
※ソートするには全件評価しないといけないけど...この関数の負荷ってどのくらいなのかしら?

入力

@{Sort(body('アレイのフィルター処理'), 'started_at')}  

必要なデータを選択しつつ、データを加工する

選択 アクションを利用して、後続のアクションで必要なデータに絞ります。
また、Apply to each を使わずに、データを加工することもできます。 開始日時をevent_datetimeとし、「2023/05/28 日 20:00 - 2023/05/28 日 21:00」のデータに加工しています。

開始 ※1つ前の手順の作成アクションを追加します。

@{outputs('作成')}

マップ ※マップはテキストモードにして貼り付けます。

{
  "event_id": @{item()['event_id']},
  "title": @{item()['title']},
  "event_url": @{item()['event_url']},
  "event_datetime": @{concat(formatDateTime(addHours(item()['started_at'], 9), 'yyyy/MM/dd ddd HH:mm', 'ja-JP'), ' - ', formatDateTime(addHours(item()['ended_at'], 9), 'yyyy/MM/dd ddd HH:mm', 'ja-JP'))},
  "hash_tag": @{item()['hash_tag']}
}

event_datetime のデータ加工の内容
開始日時と終了日時を concat 関数で繋げています。
formatDateTime で日本の日時に変更しています。

concat(formatDateTime(addHours(item()['started_at'], 9), 'yyyy/MM/dd ddd HH:mm', 'ja-JP'), ' - ', formatDateTime(addHours(item()['ended_at'], 9), 'yyyy/MM/dd ddd HH:mm', 'ja-JP'))

オブジェクトを改行を挟みながら1行テキストに変換する

ここからはデータをどう取り扱うかなのでお好みに加工してみてください。
私はテキストデータが欲しかったので、選択アクションを使い改行コードを挟みながら1行テキストのデータに変換しました。

こういうふうにしたい。

開始

@{body('選択')}  

マップ ※マップはテキストモードして貼り付けます。

@concat(item()['event_datetime'], decodeUriComponent('%0D%0A'), item()['title'], decodeUriComponent('%0D%0A'), item()['event_url'], decodeUriComponent('%0D%0A'), '#', item()['hash_tag'])  

改行コードで結合してテキストを生成する

データがまだ、配列になっているので、結合アクションで改行コードを指定してテキストデータを作成します。

結合する配列

@{body('選択_2')}  

次を使用して結合

@{decodeUriComponent('%0D%0A%0D%0A')}

実行すると、ほしい形式でデータが作成されています。

さいごに

短いフローでもらくちんになりますね。(組み合わせていくと長くなるかも)
同じことを実現するフローでも、なんどもやっているうちにこうしたほうがいいかなぁと試してみると、違うアプローチもみえてきて面白いですね。

【Dynamics 365】Dynamics 365 試用版を有効化してみた話

Dynamics 365 の試用版の有効化で悩んだのでメモ書きです。
2つ方法を見つけたのですが、今回はそのうちの1つの Dynamics 365 の公式サイトからの有効化手順となります。

事前準備

取得のためのアカウントの用意

組織アカウント(Azuer AD アカウント、Microsoft 365 のアカウント)か、個人アカウント(Microsoft アカウント)が必要です。

個人的には、組織アカウントがおすすめです。
試用版やMicrosoft 365 E5 Developer 環境 などを取得すると、組織アカウントが作成されます。

Microsoft 365 E5 Developer 環境の取得(参考)

今回、取得手順は割愛しますが、公式のドキュメントをよくご確認の上、Microsoft 365 開発者プログラムへご参加ください。

learn.microsoft.com

Dynamics 365 試用版の有効化

ここでは、組織アカウントでの取得パターンを記載します。

Dynamics 365 無料試用版の概要ページから有効化する

Dynamics 365 無償試用版の概要ページから有効化できます。 この手順の場合、サンプルデータが入っていますので、すぐにお試しできます。

Dynamics 365 無料試用版の概要 ページにアクセスします。
dynamics.microsoft.com

Dynamics 365 の各試用版の利用を開始できますが、今回は Dynamics 365 Sales の試用版を有効化します。
Dynamics 365 Sales の 「無料で試す」をクリックします。

組織アカウントを入力し、同意の内容をよく読みチェック欄にチェックを入れ、「無料試用版を開始する」をクリックします。

国/地域 を選択し(ここで、国外に設定しても環境が日本で作成されました)、 電話番号 が必須のため電話番号を入力し、「送信」をクリックします。

ログインが求められますので、組織アカウントでログインします。

はい、Dynamics 365 Sales の試用版が有効化できました。

サンプルデータが入っているのですぐ試せますね。

環境の確認

Power Platform 管理センター を開き、環境をクリックし、環境が作成されたのか確認します。
環境も「Sales 試用版」で作成されています。

他の Dynamics 365 の試用版を有効にしてみるとどうなるのか

他のDynamics 365 の試用版を有効化するとどうなるのか試してみます。 有効化は Dynamics 365 無料試用版の概要ページ からDynamics 365 Sales と同じ手順で有効化しています。

Dynamics 365 Field Service の 有効化

必要事項の入力やチェックをし、「無料試用版を開始する」をクリックします。

はい、有効化できました。

環境は一緒?

いいえ、環境はサービスごとに作成されています。

Dynamics 365 Customer Service も有効化してみましたが、同様に別環境ですね。

Dynamics 365 Sales の編集

Dynamics 365 Sales は モデル駆動型アプリなので、編集が可能です。

make.powerapps.com にアクセスします。
アプリを開き、環境を「Sales 試用版」に変更します。 アプリを選択し、「編集」 をクリックします。

この画面で編集可能です。

さいごに

公式サイトからの試用版の有効化は、サンプルデータが入っているのですぐに試せるのがいいですね。
Dynamics 365 Sales は Dataverse と モデル駆動型アプリで構成されているので、モデル駆動型アプリの勉強におススメです!
そのうち、もう一つの方法も書こうと思います。

それでは、良い Dynamics 365 ライフを!

参考リンク
learn.microsoft.com

【Power Automate】connpass のイベントを取得する5(いろいろまとめる編)

前回、キーワード検索でconnpassのイベントを取得してみました。
ただ、この方法だと取得できないものがあるので、知っているコミュニティのイベントはグループIDで取得し、その結果を統合すれば、100%ではないけれど、理想に近いイベント情報の取得ができるのでやってみようと思います。

connpass API の仕様

connpass API はこちらに記載があります。
connpass.com

知らないイベントの取得(キーワードで取得する)

まずは、興味のあるキーワードでイベントを検索します。
キーワードで検索するフローについては前回のBlogをご確認ください。

flali.hatenablog.com

ちなみにフローはこんな感じになります。

知っているイベントの取得(グループIDで取得)

グループIDでの取得方法については、こちらのBlogに記載していますので詳細は割愛します。

flali.hatenablog.com

Microsoft 365 と Power Platform 系のコミュニティ

私が良く参加しているコミュニティのグループID(series_id)を調べてみました。
※間違っていたらごめんなさい。

series_id コミュニティ名 URL
2438 Japan Microsoft 365 Users Group https://jpo365ug.connpass.com/
3366 Power BI 勉強会 https://powerbi.connpass.com/
6192 Japan Power Apps User Group https://powerapps.connpass.com/
6423 Japan Power Platform User Group 名古屋 https://paandflow.connpass.com/
6950 Japan Power Platform User Group https://power-platform.connpass.com/
10313 Japan M365 Dev User Group https://jpm365dev.connpass.com/
10631 おうじゃさんといっしょ https://oujasan-to-issho.connpass.com/
10768 Power BI Weekly News https://pp-weeklynews.connpass.com/
11020 Power Automate Desktop勉強会 https://powerautomatedesktop.connpass.com/
11981 業務改善検討会 https://bpr-tbd.connpass.com/
12133 気ままに勉強会 https://kimamani.connpass.com/
12508 Japan Power Platform Conference https://powerplatformconf.connpass.com/
12607 Japan Power Platform Game Builders https://jppgb.connpass.com/
13103 Power Apps Weekly News https://appsweeklynews.connpass.com/
13301 Learning Commons for Power Platform https://kuro.connpass.com/
13340 ふらっと純喫茶 https://flali.connpass.com/
13659 M365セキュリティ&ゼロトラスト勉強会 https://m365security.connpass.com/

グループIDで検索するフロー

HTTPアクションを設定します。

方法

GET

URI

文字列

ヘッダー

{
  "Content-Type": "application/json"
}

クエリ
※ymでは変数を利用して、今月と来月を指定しています。使っている変数のないようは、前回のBlogにてご確認ください。

{
  "series_id": "2438,3366,6192,6423,6950,10313,10631,10768,11020,11981,12133,12508,12607,13103,13301,13340,13659",
  "order": "2",
  "count": "100",
  "ym": "@{variables('this month')},@{variables('next month')}"
}

2つの取得結果から union する

検索ワードでの取得とグループIDでの取得で同じジャンルを指定しているので、取得結果に重複が発生します。
union 関数を利用することで、重複を排除して一意の値だけ取得することができます。

union を使ったフロー

作成 アクションを追加します。
式を書く際に動的コンテンツから入力すると、本文(body)しか出てこないので、手動で"events" を指定するように入力します。

union(body('HTTP')?['events'],body('HTTP_2')?['events'])

さいごに

これで、自分のほしいイベント情報が取得できるようになりました。
あのイベント登録しようと思っていると、終わってから登録してなかったことに気づくんですよねぇ...そのうち、Exchange Onlineのスケジュールに自動登録するようにしようかな。

とりあえず、connpass API のシリーズはこれでおわりかな。

【Power Automate】connpass のイベントを取得する4(検索ワード編)


connpass API で広くイベントを検索したいなぁと思ったらちょっとハマったのでメモ書きです。

connpass API の仕様

connpass API はこちらに記載があります。
connpass.com

今回は検索クエリの "keyword_or" を利用します。
複数キーワードをOR検索できます。

また、期間を絞りたいので 検索クリエパラメーターの"ym"で開催年月で検索範囲を絞ります。

フローの全体像

変数の初期化で今月と来月のを作成しています。
HTTPアクションで "keyword_or" で検索ワードで検索しています。

今月

変数で今月を取得します。
日付のフォーマットは connpass API で必要な yyyyMM形式にします。
2023年3月だと、202303になります。

変数を初期化する

名前

this month

種類

文字列

addHours(utcNow(), 9, 'yyyyMM')

来月

来月を取得します。
今月の1日目(月初)に32日を足すと、1ヵ月が28日でも31日の月でも翌月になります。
そこから、yyyyMM形式で月日を取得すれば翌月です。

名前

next month

種類

文字列

startOfMonth(addDays(startOfMonth(addHours(utcNow(), 9)), 32), 'yyyyMM')

connpass API でキーワード検索する

"keyword_or" にキーワードを指定します。
"ym" には変数で指定した値を、動的コンテンツから選択して入力します。途中カンマを忘れずに。

方法

GET

URI

文字列

ヘッダー

{
  "Content-Type": "application/json"
}

クエリ

{
  "keyword_or": "Power Automate,Power Apps,Power BI,Power Virtual Agents,Power Pages,Power Platform,Dynamics 365,Microsoft 365",
  "order": "2",
  "count": "30",
  "ym": "@{variables('this month')},@{variables('next month')}"
}

実行する

フローを実行すると検索ワードで取得できます。
ただし、検索にひっかからないイベントもあります。

検索ワードで取得できないパターン

今回、うまくいったぁと思ったら、取得できないイベントがあることに気づきしばらくハマってました。
検索ワードで取得できないイベントは下記の2パターン。

  1. 公開されて間もないイベントである
  2. connpass の運営スタッフによりピックアップされていない

1は時間の経過とともに取得できます。
2はどうしようもないので、イベントの主催者での検索を駆使すると何とかできたりできなかったりします。

参考: 登録したイベントが新着/検索に出てこない
help.connpass.com

さいごに

connpass のイベント検索は広くイベントを探すときに便利です。
全てが検索に引っかかるわけではないので工夫が必要ですね。

過去の connpass API の記事はこちら。
flali.hatenablog.com
flali.hatenablog.com
flali.hatenablog.com

【Power Automate】Dataverse の高度なフィルターを簡単に作成する話


Power Automate で Dataverse の「行を一覧にする(List rows)」アクションで FetchXML クエリ を超カンタンに利用する方法をまとめてみました。
※Power Automate の クラウドフローを取り扱います。
※Power Apps の モデル駆動型アプリを利用しますが、カンタンです。
※Dataverse のテーブルは Dynamics 365 Sales のサンプルデータを利用しています。
※今回は長い...長いったら長い。

Dataverse の参照先のテーブルのデータも取得したい

Dataverse で 取引先企業取引先担当者 というテーブルが2つあります。取引先企業取引先責任者 列は取引先担当者のテーブルを参照しています。

Power Automate で取引先企名と取引先責任者名とその方の役職を取得し、「鹿児島市」でフィルターしたデータがほしいを今回は検証します。

こういうデータが取得したい。

Power Automate の 「行を一覧にする」アクション

使うアクションは「行を一覧にする」アクションです。
条件を設定してデータを取得するには、OData クエリと FetchXML クエリ が利用できます。

左がFetchXMLクエリ、右が OData クエリ。

OData クエリ の場合

OData クエリ は Power Automate をやっていく上では避けては通れないけど、ローコードを初めてやった人にはなかなかハードルが高いような気がします。
今回は詳細は説明は割愛します。

ドキュメントはこのあたり。
learn.microsoft.com

FetchXML クエリとは

FetchXML クエリは 「Microsoft Dataverse 独自の XML ベースのクエリ言語」になります。
ちょっと自分で書こうとすると厳しいです。
これを簡単に作成する方法があります。

learn.microsoft.com

FetchXML クエリ を カンタン に 作成!

モデル駆動型アプリを使うと カンタン に作成できるんです。

モデル駆動型アプリ で FetchXML クエリ の取得手順

Power Apps の https://make.powerapps.com/ の ホーム >空のアプリ > Dataverse ベースの空のアプリ(モデル駆動型アプリ)作成 ボタンを押します。

アプリの名前を設定して、作成

Dataverse テーブル を選択し、 次へ

すでにテーブルは作成済みのものを利用するので、既存のテーブルを利用するにチェック し、テーブルを選択します。
今回は 取引先企業 のテーブルを利用します。
あとで操作に困らないように、ナビゲーションに表示する にもチェックを入れておきましょう。
追加 をクリックします。

先ほど追加した 取引先企業 テーブルの 取引先企業ビュー を選択します。
保存し、公開して、再生します。
保存や公開は少し時間がかかります。

列の編集

Dynamics 365 Sales では、Common Data Model で定義されたテーブルを利用します。
取引先企業のテーブルもその一つです。
データを一覧で確認するのがビューなのですが、ビューがいくつか事前に作成されているので、今回は特にフィルターのかかっていない すべての取引先企業 ビューを選択します。

右上の列の追加をクリックします。

今回は、参照先の取引先責任者 の 役職 が欲しいので、関連タブから役職を検索し、取引先責任者(取引先担当者)の役職を選択します。
必要な列の追加が終わったら、閉じるで閉じます。

必要な項目を揃えたら、適用します。

フィルターの適用

続いて、フィルターを設定します。
先ほどの列の編集の隣の フィルターを編集する をクリックします。

+追加 から 行の追加 を選択します。
住所1:市区町村、次の値と等しい、鹿児島県 で設定し適用をクリックします。

再度、フィルターを編集するをクリックします。
FetchXML クエリのダウンロード ボタンをクリックすると、ブラウザで警告が出る場合がありますが、保存で保存します。

ダウンロードしたファイルをメモ帳やVS Code で開き、内容をコピーします。

Power Automate へ貼り付け

Power Automate で 行を一覧にする アクションを追加し、Fetch Xml クエリ の欄に先ほどコピーした内容を貼り付けます。
キャプチャーはわかりやすいように改行入れてみましたが、一行テキストをそのまま貼り付けてもらってOKです。

そして実行。
出力の未加工出力の表示をクリックし、その内容をVisual Studio Code に貼ります。

欲しかったデータが取得できていることがわかります。 赤枠の部分が取引先企業のデータ。
黄枠の部分が取引先責任者(取引先担当者)のデータ。
赤枠は動的コンテンツとして簡単に選択できるのですが、参照先のテーブルはちょっとコツがいります。

抜粋

"value": [
            {
                <中略>
                "name": "アルパイン スキー ハウス",
                "address1_city": "鹿児島市",
                "_primarycontactid_value@OData.Community.Display.V1.FormattedValue": "金城 彩乃",
                <中略>
                "a_2c3f75a16f394536be93b0afedaddc52.jobtitle": "購買課長",
                <以下省略>
             }
]

参照先テーブルの指定

Dataverse からデータを取得した後のアクションで利用する際に、参照先が動的コンテンツで追加できないので、手動で追加します。
@item()?['<キー>'] のように記載すれば、いいので、下記のようになります。
※ちょっとここが難しい。
※環境によってキーが変わる可能性があるので、ご利用中の環境の出力結果をよく確認ください。

参照先の取引先担当者の表示名と役職

@item()?['_primarycontactid_value@OData.Community.Display.V1.FormattedValue']
@item()?['a_2c3f75a16f394536be93b0afedaddc52.jobtitle']

さいごに

FetchXML クエリは頑張ってゼロから書こうとすると難易度が高いですが、モデル駆動型を使うとマウスポチポチ作業でフィルターを作成できるので便利です!
モデル駆動型も最後まで作りきらなくてもよいので、敷居も低いのがポイント!
是非、使ってみてください!