サイト スクリプトからの Power Automate の呼び出し
サイト デザインは、サイト コレクションの外観と動作をカスタマイズして標準化する強力な拡張メカニズムです。 スクリプト アクションの 1 つである triggerFlowは、本来サポートしていない構成を適用するカスタム ソリューションを呼び出すために使用できます。 業務の自動化のために Power Automate フローを使用することもできます。この場合、サイト デザインと共に使用することでサイト作成を追跡することが可能となります。
この記事では、サイト デザインと Power Automate を使用して簡単なサイト ディレクトリを作成する方法について説明します。 このサイト デザインを使用してサイトが作成されると、サイトの詳細情報が取り込まれ、SharePoint リストに書き込まれます。
この記事の手順では、以下のコンポーネントについて説明します。
- SharePoint リスト
- サイト デザインとサイト スクリプト
- Power Automate
最初に SharePoint リストを作成し、そしてそれを Power Automate フロー内で参照します。このフローは、サイトの作成後に適用されるサイト デザインによってトリガーされます。
サイト ディレクトリ リストを作成する
このサイト デザインを使用して作成されたすべてのサイトを記録するためのリストを、最初に設定する必要があります。
リストをホストするサイト コレクションを選択します。
「サイト ディレクトリ」という名前の新しいリストを作成します。
以下のフィールドを構成します。
- webUrl (ハイパーリンクまたは画像)
- webDescription (1 行のテキスト)
- creatorName (1 行のテキスト)
- creatorEmail (1 行のテキスト)
- createdTimeUTC (1 行のテキスト)
フローを作成する
サイト作成イベントをキャプチャし、対応するリスト アイテムを作成するために、サイト デザインのサイト スクリプトで参照できるフローを作成する必要があります。
Power Automate サイトに移動してサインインし、ページの上部にある [+ 自動化—空白から] を選択します。
次の画面で [スキップ] をクリックします
[コネクタとトリガーを検索] を選択して、トリガーを選択します。
[要求] を検索してから、[要求 ‐ HTTP 要求の受信時 [プレミアム]] を選択します。 注: 要求トリガーはプレミアムになったので、追加のライセンスが必要になります。
次の JSON を、要求本文として入力します。
{ "type": "object", "properties": { "webUrl": { "type": "string" }, "parameters": { "type": "object", "properties": { "event": { "type": "string" }, "product": { "type": "string" } } }, "webDescription": { "type": "string" }, "creatorName": { "type": "string" }, "creatorEmail": { "type": ["string", "null"] }, "createdTimeUTC": { "type": "string" } } }
[+ 新しい手順] を選択します。
[アイテムの作成] を検索してから、[SharePoint - アイテムの作成] を選択します。
上記のリストが作成されたサイトのアドレスを入力します。
前の手順で作成した「サイト ディレクトリ」リストを選択します。
"タイトル" フィールドに値を入力します。これはリストの各アイテムに共通の値となります。 例: "Contoso トラベル: 新規プロジェクトサイト作成"。
リスト フォームの各フィールドに、ダイナミック コンテンツ ピッカーから対応する要素を追加します。 アクションを完了すると、次のようになります。
[保存] を選択します。 HTTP POST URL が生成されるので、これをサイト スクリプト
triggerFlow
アクション用にコピーする必要があります。フローの最初の手順である [HTTP 要求の受信時] を選択し、URL をコピーします。
フローを保存します。
サイト デザインの作成
PowerShell を開き、最新の SharePoint Online 管理シェルがインストールされていることを確認してください。
Connect-SPOService を使用してテナントに接続します。
Connect-SPOService -Url https://[yourtenant]-admin.sharepoint.com
これで、既存のサイト デザインを取得することができます。
Get-SPOSiteDesign
サイト デザインを作成するには、まずサイト スクリプトを作成する必要があります。 サイト デザインは、1 つまたは複数のサイト スクリプトを参照するコンテナーです。
次の JSON コードをクリップボードにコピーして、変更を加えます。 url プロパティを、フローの作成時にコピーした値に設定します。 URL は次のようになります。
https://prod-27.westus.logic.azure.com:443/workflows/ef7434cf0d704dd48ef5fb6...oke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun
{ "$schema": "schema.json", "actions": [ { "verb": "triggerFlow", "url": "[paste the workflow trigger URL here]", "name": "Record site creation event", "parameters": { "event": "site creation", "product": "SharePoint Online" } } ] }
JSON をもう一度選択し、クリップボードに再びコピーします。
PowerShell を開き、次のように入力してスクリプトを変数にコピーし、サイト スクリプトを作成します。
$script = Get-Clipboard -Raw Add-SPOSiteScript -Title "Site Script to record site creation event" -Content $script Get-SPOSiteScript
作成したばかりのサイト スクリプトを含む 1 つまたは複数のサイト スクリプトのリストが表示されます。 作成したサイト スクリプトの ID を選択し、クリップボードにコピーします。
次のコマンドを使用してサイト デザインを作成します。
Add-SPOSiteDesign -Title "Record site creation" -Description "The creation of this site will be recorded in the site directory list" -SiteScripts [Paste the ID of the Site Script here] -WebTemplate "64"
注:
Add-SPOSiteDesign コマンドレットは、サイト デザインをチーム サイトに関連付けます。 デザインをコミュニケーション サイトに関連付けるには、-WebTemplate "68"
を使用します。
結果の確認
その結果をテストするには、新しいサイトを作成します。 SharePoint テナントで、[SharePoint]>[サイトの作成]>[チーム サイト] を選択します。 (セルフサービス サイト作成を無効にしている場合、SharePoint 管理センターからサイトを作成する必要があります)。
新しいサイト デザインは、デザイン オプションとして表示されるはずです。 サイトの作成後、サイト デザインが適用されていることに注目してください。 正しく設定してあれば、フローがトリガーされます。 フローの実行履歴によって、フローが正しく実行されたことを確認することができます。