1. 記事一覧 >
  2. ブログ記事
Power Automate
category logo

Power Automateエクスポートファイルdefinition.jsonの各IDの正体を暴いた

(更新) (公開)

はじめに

Power Automate
マイフローフロー選択・・・エクスポートパッケージ (.zip)
でフローを .zip にエクスポートして、ダウンロードできます。


ダウンロードした PC にて、zip を解凍すると、以下のようなファイルが含まれています。

Microsoft.Flow/flows/3eaaaaaa-eeee-1111-8888-d6aaaaaaaaaa/apisMap.json
Microsoft.Flow/flows/3eaaaaaa-eeee-1111-8888-d6aaaaaaaaaa/connectionsMap.json
Microsoft.Flow/flows/3eaaaaaa-eeee-1111-8888-d6aaaaaaaaaa/definition.json
Microsoft.Flow/flows/manifest.json
manifest.json

これの内の definition.json ですが、フローを JSON で表したものっぽいです。
気合と根性で JSON だけでフローを作成するのも可能だと思われます。(← とんでもなく大変だと思いますが。)
それは、さておき、definition.json について、Share Point 等コネクタを使っていると、謎の ID が多々指定されている部分があります。


例えば、以下の部分の 01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV 等です。

definition.json抜粋
"SharePoint_ライブラリからスクリプトを実行する": {
    "runAfter": {
        "複数の項目の取得": [
            "Succeeded"
        ]
    },
    "metadata": {
        "01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV": "/Data/新規 Microsoft Excel ワークシート.xlsx",
        "01BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBVL": "/Scripts/スクリプト.osts",
        "operationMetadataId": "9c111111-2222-3333-aaaa-eeeeeeeeeec1"
    },
    "type": "OpenApiConnection",
    "inputs": {
        "host": {
            "apiId": "/providers/Microsoft.PowerApps/apis/shared_excelonlinebusiness",
            "connectionName": "shared_excelonlinebusiness",
            "operationId": "RunScriptProdV2"
        },
        "parameters": {
            "source": "sites/example.sharepoint.com,eeeeeeee-1111-2222-a1a1-cccccccccccc,16aaaaaa-dddd-4444-9999-ccccccccccb1",
            "drive": "b!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ",
            "file": "01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV",
            "scriptSource": "sites/example.sharepoint.com,44444444-aaaa-4444-8888-333333333333,eacccccc-3333-4444-aaaa-3333333333dc",
            "scriptDrive": "b!69D9D9D9D9D9D9D9D9D9D9_Ax-p3PuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPu",
            "scriptId": "01BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBVL"
        },
        "authentication": "@parameters('$authentication')"
    }
},

念のため、ID 部分は、改ざんしています。実際には、もっとランダムな文字列になっています。以降同様です。


『この謎の ID を適切に書き換えれば、インポート先の環境が違っても、インポート後に参照先をフローでポチポチと変える必要がないのでは?』
『例えば、Share Point - フォルダー内にファイルが作成されたとき(非推奨) で指定するフォルダをインポートする前に書き換えて、あたかも最初からその移行先のフォルダが指定されていたようにできるのでは?』
と思い、検証したところ、本当にできたため、紹介していきたいと思います。

最初から移行先のフォルダが指定されていたように 図


検証したトリガー、アクションは、以下です。
フォルダー内にファイルが作成されたとき(非推奨) - SharePoint
複数の項目の取得 - SharePoint
Share Point ライブラリからスクリプトを実行する(プレビュー) - Excel Online (Business)
データセットの更新 - Power BI

上記トリガー、アクションで暴く必要があった ID のみ暴きました。全ての ID を暴いたわけではありません。なお、「暴く」とは、どうやって知ることができるか特定するという意味です。

本記事情報の誤りにより何らかの問題が生じても、一切責任を負いません。

自己責任でお願いします。

2023 年 9 月現在の状況を元に説明しています。


フローエクスポート

フォルダー内にファイルが作成されたとき(非推奨) - SharePoint

複数の項目の取得 - SharePoint

Share Point ライブラリからスクリプトを実行する(プレビュー) - Excel Online (Business)

データセットの更新 - Power BI


と順に実行しているだけで何も意味がないフローを作成して検証します。

検証用フロー


各々以下が指定されています。


フォルダー内にファイルが作成されたとき(非推奨) - SharePoint
・サイトのアドレス
・フォルダー ID


複数の項目の取得 - SharePoint
・サイトのアドレス
・リスト名


Share Point ライブラリからスクリプトを実行する(プレビュー) - Excel Online (Business)
・ブックの場所
・ブック ライブラリ
・ブック
・スクリプトの場所
・スクリプト ライブラリ
・スクリプト


データセットの更新 - Power BI
・ワークスペース
・データセット


今回、これらを別のサイト、別のフォルダ/ファイル、別のワークスペース/データセット に definition.json だけ書き換えて、元々のフロー作成者とは別の人がインポート後、エラー無く取り込めたら、成功とします。


マイフローフロー選択・・・エクスポートパッケージ (.zip)
で zip ファイルをダウンロードします。

zip ファイルをダウンロード


これを展開して、中に入っている definition.json を入手します。
JSON はそのままでは可読性が悪いため、オンラインサービスか何かで整形します。

オンラインサービスか何かで整形


各ID手動取得

Power Automate の SharePoint に HTTP 要求を送信します アクションを使っても分かりますので、そちらの方に興味がある場合、「Power AutomateでID取得」に飛んでください。

フォルダー内にファイルが作成されたとき

まずは、フォルダー内にファイルが作成されたとき_(非推奨) から見ていきます。

definition.json抜粋
"triggers": {
    "フォルダー内にファイルが作成されたとき_(非推奨)": {
        "recurrence": {
            "frequency": "Minute",
            "interval": 5
        },
        "metadata": {
            "%252fShared%2bDocuments%252fData": "/Shared Documents/Data",
            "operationMetadataId": "1943f43f-0000-4444-9999-fce3ce3ce32b"
        },
        "type": "OpenApiConnection",
        "inputs": {
            "host": {
                "apiId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline",
                "connectionName": "shared_sharepointonline",
                "operationId": "OnNewFile"
            },
            "parameters": {
                "dataset": "https://example.sharepoint.com/sites/newsite",
                "folderId": "%252fShared%2bDocuments%252fData",
                "inferContentType": true
            },
            "authentication": "@parameters('$authentication')"
        }
    }
},

operationMetadataId のところに 第一 謎の ID を発見しました。
ですが、これは、フォルダ/ファイルの場所やコネクションを指し示しているものではなく、変えなくても良さそうです。
以降同様です。


"dataset": "https://example.sharepoint.com/sites/newsite",
のところは、移行後の Share Point サイト URL に変更が必要です。


"%252fShared%2bDocuments%252fData" のところは、2重に URL エンコードされているようです。
"%252fShared%2bDocuments%252fData" を2回 URL デコードすると、
/Shared Documents/Data になります。
ということは、/Shared Documents/Data のようにパスを知っていれば、2重 URL エンコードで生成できます。

URL エンコード、デコードの方法は、オンラインでできたり、いろいろあるため、割愛します。


フォルダー内にファイルが作成されたとき_(非推奨) JSON解析


複数の項目の取得

複数の項目の取得 を解析します。

definition.json抜粋
"actions": {
    "複数の項目の取得": {
        "runAfter": {},
        "metadata": {
            "operationMetadataId": "58fafafa-8888-4444-aaaa-2c181818188b"
        },
        "type": "OpenApiConnection",
        "inputs": {
            "host": {
                "apiId": "/providers/Microsoft.PowerApps/apis/shared_sharepointonline",
                "connectionName": "shared_sharepointonline",
                "operationId": "GetItems"
            },
            "parameters": {
                "dataset": "https://example.sharepoint.com/sites/testsite",
                "table": "b7333333-7a55-4777-8aaa-22787e787e77"
            },
            "authentication": "@parameters('$authentication')"
        }
    },
...
}

"dataset": "https://example.sharepoint.com/sites/testsite",
のところは、移行後の Share Point サイト URL に変更が必要です。


"table": "b7333333-7a55-4777-8aaa-22787e787e77"
のところに謎 ID が出てきました。


これは、以下の方法で取得できます。


.指定していた Share Point リストを表示します。

Share Point リストを表示


歯車アイコンリストの設定 をクリックします。

リストの設定


.URL の List=%7B から %7D の間を確認します。

7B 7D の間


URL の ID が JSON の ID と一致しています。ということは、移行後のリストの ID についても同じ操作で確認できます。


複数の項目の取得 JSON解析


Share Point ライブラリからスクリプトを実行する

Share Point ライブラリからスクリプトを実行する(プレビュー) を解析します。

definition.json抜粋
"actions": {
...
    "SharePoint_ライブラリからスクリプトを実行する": {
        "runAfter": {
            "複数の項目の取得": [
                "Succeeded"
            ]
        },
        "metadata": {
            "01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV": "/Data/新規 Microsoft Excel ワークシート.xlsx",
            "01BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBVL": "/Scripts/スクリプト.osts",
            "operationMetadataId": "9c111111-2222-3333-aaaa-eeeeeeeeeec1"
        },
        "type": "OpenApiConnection",
        "inputs": {
            "host": {
                "apiId": "/providers/Microsoft.PowerApps/apis/shared_excelonlinebusiness",
                "connectionName": "shared_excelonlinebusiness",
                "operationId": "RunScriptProdV2"
            },
            "parameters": {
                "source": "sites/example.sharepoint.com,eeeeeeee-1111-2222-a1a1-cccccccccccc,16aaaaaa-dddd-4444-9999-ccccccccccb1",
                "drive": "b!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ",
                "file": "01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV",
                "scriptSource": "sites/example.sharepoint.com,44444444-aaaa-4444-8888-333333333333,eacccccc-3333-4444-aaaa-3333333333dc",
                "scriptDrive": "b!69D9D9D9D9D9D9D9D9D9D9_Ax-p3PuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPu",
                "scriptId": "01BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBVL"
            },
            "authentication": "@parameters('$authentication')"
        }
    },
...
}

沢山謎 ID があります。謎 ID マニアにはたまらない光景かもしれません。
まず、一番上の謎 ID 部分
"01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV": "/Data/新規 Microsoft Excel ワークシート.xlsx",
から見ていきます。


これは、フローの ブック に指定したブックを示しています。


まず、
/Data/新規 Microsoft Excel ワークシート.xlsx は、
Share Pointドキュメント を起点としたパスです。

ドキュメントを起点としたパス


"01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV" 部分は、以下の手順で分かります。
ドキュメント/Data と ファイルが見えているところまで来て、
F12ネットワーク → フィルタ部分に _api/web と入力して、F5 を押してリロードします。
そうすると、RenderListDataAsStream... と出てくるため、この内の一つを選択し、回答 をクリックします。

RenderListDataAsStream 回答


回答 のところに訳のわからない JSON が表示されるのですが、これの ".spItemUrl": ... の部分に目的の ID が載っています。

回答
{
    "wpq": "",
    "Templates": {},
    "ListData": {
        "Row": [
            {
                "ID": "14",
                "PermMask": "0x7ffffffffffbffff",
                "FSObjType": "0",
                "HTML_x0020_File_x0020_Type": "",
                "UniqueId": "{6A161616-3333-4444-BBBB-B2B2B2B2B235}",
                "ProgId": "",
                "NoExecute": "1",
                "ContentTypeId": "0x01010033333333333333333333333333333333",
                "FileRef": "\u002fsites\u002fnewsite\u002fShared Documents\u002fData\u002f\u65b0\u898f Microsoft Excel \u30ef\u30fc\u30af\u30b7\u30fc\u30c8.xlsx",
                "SMTotalSize": "247470",
                "File_x0020_Size": "14109",
...
                "AccessPolicy": "0",
                ".spItemUrl": "https:\u002f\u002fexample.sharepoint.com:443\u002f_api\u002fv2.0\u002fdrives\u002fb!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ\u002fitems\u002f01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV?version=Published",
                ".fileType": "xlsx",
...

少し厄介なことに、複数ファイルの場合、
".spItemUrl": ...
が複数あります。
"FileRef": ...
部分に該当ファイルのパスが載っているのですが、日本語のファイル名の場合、Unicode エンコードされていて、複数ファイルがある場合、どれがどれか分かりません。


例えば、PowerShell で調べると、

PowerShell
> $unicodeString = '\u002fsites\u002fnewsite\u002fShared Documents\u002fData\u002f\u65b0\u898f Microsoft Excel \u30ef\u30fc\u30af\u30b7\u30fc\u30c8.xlsx'
> $unescapedString = [System.Text.RegularExpressions.Regex]::Unescape($unicodeString)
> Write-Host $unescapedString
/sites/newsite/Shared Documents/Data/新規 Microsoft Excel ワークシート.xlsx

となりますので、今回の場合、
"FileRef": "\u002fsites\u002fnewsite\u002fShared Documents\u002fData\u002f\u65b0\u898f Microsoft Excel \u30ef\u30fc\u30af\u30b7\u30fc\u30c8.xlsx",
のすぐ下の
".spItemUrl": "https:\u002f\u002fexample.sharepoint.com:443\u002f_api\u002fv2.0\u002fdrives\u002fb!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ\u002fitems\u002f01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV?version=Published",
を見るのが正解になります。


ここで、"drive": "b!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ" の値も同時に見つかりました。


"01BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBVL": "/Scripts/スクリプト.osts",

01BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBVL
/Data/新規 Microsoft Excel ワークシート.xlsx と見つけ方は同じです。


次に、
"source": "sites/example.sharepoint.com,eeeeeeee-1111-2222-a1a1-cccccccccccc,16aaaaaa-dddd-4444-9999-ccccccccccb1",
部分がまだ判明していません。


引き続き、
F12ネットワーク → フィルタ部分に as=json と入力して、
ホームドキュメント をクリックします。


すると、 listhost.aspx?as=json と表示されますので、回答 をクリックします。

listhost.aspx 回答


この JSON を "siteId": で検索すると、
"siteId": "{eeeeeeee-1111-2222-a1a1-cccccccccccc}",
の部分が見つかります。


"webId": で検索すると、
"webId": "{16aaaaaa-dddd-4444-9999-ccccccccccb1}",
の部分が見つかります。


回答
{
    "isUserVoiceEnabled": true,
    "templateFolderName": "\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8",
    "clientSideApplicationId": "9f010101-eeee-4444-9eee-333333333333",
    "contextWebInfo": {
        "_ObjectType_": "SP.ContextWebInformation",
...
    "spPageContextInfo": {
...
        "siteId": "{eeeeeeee-1111-2222-a1a1-cccccccccccc}",
...
        "webId": "{16aaaaaa-dddd-4444-9999-ccccccccccb1}",
...

この2つの組み合わせにより、
"source": "sites/example.sharepoint.com,eeeeeeee-1111-2222-a1a1-cccccccccccc,16aaaaaa-dddd-4444-9999-ccccccccccb1",
ということが分かります。


"drive":
"file":
は、既に判明している フローの ブック に指定した エクセルファイル関連の ID です。


scriptSource": "sites/example.sharepoint.com,44444444-aaaa-4444-8888-333333333333,eacccccc-3333-4444-aaaa-3333333333dc",
は、
上記、listhost.aspx?as=json の操作を /Scripts/スクリプト.osts が置かれているサイトで実施して、ID が判明するはずです。


"scriptDrive": "b!69D9D9D9D9D9D9D9D9D9D9_Ax-p3PuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPu",
に関しても同じく、既にエクセルファイルの方で説明済みの操作にて、".spItemUrl": ... 部分で判明します。

今回、それに該当しませんでしたが、Teams のフォルダを使用している場合、

"source": "groups/cccccccc-bbbb-4444-bbbb-eeeeeeeeeeee"

のようになっていて、

"groupId": "cccccccc-bbbb-4444-bbbb-eeeeeeeeeeee",

の部分を見ることになると思われます。

"scriptSource": は、

"scriptSource": "https://example.sharepoint.com/sites/testsite",

のような単純なサイト URL 指定の書き方でも良いと思われます。


Share Point ライブラリからスクリプトを実行する JSON解析


データセットの更新

データセットの更新 - Power BI を解析します。

definition.json抜粋
"actions": {
...
    "データセットの更新": {
        "runAfter": {
            "SharePoint_ライブラリからスクリプトを実行する": [
                "Succeeded"
            ]
        },
        "metadata": {
            "operationMetadataId": "12cbcbcb-8888-4444-9999-9f1ca1ca1ca1"
        },
        "type": "OpenApiConnection",
        "inputs": {
            "host": {
                "apiId": "/providers/Microsoft.PowerApps/apis/shared_powerbi",
                "connectionName": "shared_powerbi",
                "operationId": "RefreshDataset"
            },
            "parameters": {
                "groupid": "myworkspace",
                "datasetid": "feddedde-7777-4444-aaaa-a7c0c0c0c034"
            },
            "authentication": "@parameters('$authentication')"
        }
    }
...
}

"groupid": "myworkspace",
は、
マイ ワークスペース の場合は、myworkspace で、それ以外のワークスペースの場合は、
ワークスペースの名前ではなく、Power BI(Web)のワークスペースの URL が
https://app.powerbi.com/groups/d0363636-cccc-4444-bbbb-d76767676767/list?redirectedFromSignup=1&experience=power-bi
の場合、
"groupid": "d0363636-cccc-4444-bbbb-d76767676767",
になります。

Power BI(Web)のワークスペースの URL


"datasetid": "feddedde-7777-4444-aaaa-a7c0c0c0c034" 部分に謎 ID があります。 こちらは、 Power BI(Web)の データセット を見に行くと、分かります。 https://app.powerbi.com/groups/me/datasets/feddedde-7777-4444-aaaa-a7c0c0c0c034/details?redirectedFromSignup=1&experience=power-bi/datasets/.../details 部分です。

Power BI(Web)の データセットの URL


definition.json 書き換え

これにて、謎 ID すべて判明しましたので、移行先の謎 ID を調査したものとして、definition.json を書き換えます。

移行先すべての接続先に、この後フローをインポートする人にアクセス権があることが必要です。


具体的な書き換えイメージは、以下のような diff になります。(右が変更後)

具体的な書き換えイメージ diff1


具体的な書き換えイメージ diff2


インポート後のフローのイメージは、以下の通りです。サイト URL や ブック、スクリプトのパスが変更されています。(書き換えた ID 等に間違いがなければ、実際こうなります。) インポート後のフローのイメージ


書き換えた definition.json を元々あった場所に上書きして、zip 圧縮しなおします。
zip のファイル名は何でも構いません。

zip 圧縮しなおし

definition.json は、整形されたままでも問題ありません。


フローインポート

definition.json を書き換えた zip ファイルをインポートします。


+マイフローインポートパッケージのインポート (レガシ) でアップロードします。

パッケージのインポート (レガシ)


アップロード中...


関連リソースの インポート時に選択する の選択は、インポート作業をしている人のアカウント選択が必要でした。別の .json ファイルに紐付き情報がありそうですが、今回は、そちらの検証はパスして、選択します。

インポート時に選択する


インポート


正常にインポート


フローを見てみます。

インポート後フロー


特にエラーにならず、入れ替わってて、問題なさそうです。
Power Automate さんに気付かれていなさそうです。


フローを実行してみます。


正常動作しました!


Power AutomateでID取得

上記セクション「各ID手動取得」で URL や F12 で解析して分かった部分ですが、実は、
Power Automate の SharePoint に HTTP 要求を送信します アクションを駆使する方法でも分かります。

Power BI は未調査です。(URL の一部からすぐに判明して、大した手間ではないと思われますので、パスします。)


以下は、4つとも SharePoint に HTTP 要求を送信します アクションです。


① --------------------
● 目的
"drive": "b!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ",
"scriptDrive": "b!69D9D9D9D9D9D9D9D9D9D9_Ax-p3PuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPu",
を調べます。


● パラメーター
サイトのアドレス:[SharePointサイトを選択]
方法:GET
URI:_api/v2.0/drives/
ヘッダー(キーの入力):Accept
ヘッダー(値の入力):application/json


● フロー例
SharePoint に HTTP 要求を送信します フロー例1


● 出力例
"id": の部分で分かります。
drive、scriptDrive は、「ドキュメント」を示しているようです。

出力例
{
  "@odata.context": "https://example.sharepoint.com/sites/testsite/_api/v2.0/$metadata#drive",
  "value": [
    {
      "createdBy": {
        "user": {
          "displayName": "システム アカウント"
        }
      },
      "createdDateTime": "2023-09-01T20:00:00Z",
      "description": "",
      "id": "b!69D9D9D9D9D9D9D9D9D9D9_Ax-p3PuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPuPu",
      "lastModifiedBy": {
        "user": {
          "displayName": "システム アカウント"
        }
      },
      "lastModifiedDateTime": "2023-09-01T20:00:00Z",
      "name": "ドキュメント",
      "webUrl": "https://example.sharepoint.com/sites/testsite/Shared%20Documents",
      "driveType": "documentLibrary",
      "owner": {
        "group": {
          "email": "testsite@example.onmicrosoft.com",
          "id": "36666666-3333-4444-8888-90000000009e",
          "displayName": "testsite 所有者"
        }
      },
      "quota": {
...
      }
    }
  ]
}

② --------------------
● 目的
複数の項目の取得の "table": "b7333333-7a55-4777-8aaa-22787e787e77"
を調べます。


● パラメーター
サイトのアドレス:[SharePointサイトを選択]
方法:GET
URI:_api/web/lists/GetByTitle('<リスト名>')
ヘッダー(キーの入力):Accept
ヘッダー(値の入力):application/json


● フロー例
SharePoint に HTTP 要求を送信します フロー例2


● 出力例
"Id": の部分で分かります。

出力例
{
  "odata.metadata": "https://example.sharepoint.com/sites/testsite/_api/$metadata#SP.ApiData.Lists/@Element",
  "odata.type": "SP.List",
  "odata.id": "https://example.sharepoint.com/sites/testsite/_api/Web/Lists(guid'b73aaaaa-7777-4444-8888-227227227227')",
  "odata.etag": "\"13\"",
  "odata.editLink": "Web/Lists(guid'b73aaaaa-7777-4444-8888-227227227227')",
  "AllowContentTypes": true,
  "BaseTemplate": 100,
  "BaseType": 0,
  "ContentTypesEnabled": false,
  "CrawlNonDefaultViews": false,
  "Created": "2023-09-01T20:00:00Z",
  "CurrentChangeToken": {
    "StringValue": "1;3;b73aaaaa-7777-4444-8888-227227227227;633333333333330000;366666666"
  },
  "DefaultContentApprovalWorkflowId": "00000000-0000-0000-0000-000000000000",
  "DefaultItemOpenUseListSetting": false,
  "Description": " ",
  "Direction": "none",
  "DisableCommenting": false,
  "DisableGridEditing": false,
  "DraftVersionVisibility": 0,
  "EnableAttachments": true,
  "EnableFolderCreation": false,
  "EnableMinorVersions": false,
  "EnableModeration": false,
  "EnableRequestSignOff": true,
  "EnableVersioning": true,
  "EntityTypeName": "ListList",
  "ExemptFromBlockDownloadOfNonViewableFiles": false,
  "FileSavePostProcessingEnabled": false,
  "ForceCheckout": false,
  "HasExternalDataSource": false,
  "Hidden": false,
  "Id": "b7333333-7a55-4777-8aaa-22787e787e77",
  "ImagePath": {
    "DecodedUrl": "/_layouts/15/images/itgen.gif?rev=47"
  },
  "ImageUrl": "/_layouts/15/images/itgen.gif?rev=47",
...
  "Title": "売上"
}

③ --------------------
● 目的
"file": "01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV",
"scriptId": "01BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBVL"
を調べます。


● パラメーター
サイトのアドレス:[SharePointサイトを選択]
方法:GET
URI:_api/v2.0/drives/<DriveId>/root:<ドキュメント配下からのフルパス>
ヘッダー(キーの入力):Accept
ヘッダー(値の入力):application/json


● フロー例
SharePoint に HTTP 要求を送信します フロー例3


● 出力例
"id": の部分で分かります。

出力例
{
  "@odata.context": "https://example.sharepoint.com/sites/newsite/_api/v2.0/$metadata#items/$entity",
  "@content.downloadUrl": "https://example.sharepoint.com/sites/newsite/_layouts/15/download.aspx?UniqueId=6aaaaaaa-3333-4333333333333333333335&Translate=false&tempauth=xxx.xxx-xxx.xxx-xxx-xxx&ApiVersion=2.0",
  "createdBy": {
    "user": {
      "email": "taro_yamada@example.onmicrosoft.com",
      "id": "07555555-aaaa-4444-8888-d65656565ca9",
      "displayName": "Yamada, Taro/山田 太郎"
    }
  },
  "createdDateTime": "2023-09-01T20:00:00Z",
  "eTag": "\"{6AAAAAAA-3333-4333333333333333333335},5\"",
  "id": "01AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABV",
  "lastModifiedBy": {
    "user": {
      "email": "taro_yamada@example.onmicrosoft.com",
      "id": "07555555-aaaa-4444-8888-d65656565ca9",
      "displayName": "Yamada, Taro/山田 太郎"
    }
  },
  "lastModifiedDateTime": "2023-09-01T20:00:00Z",
  "name": "新規 Microsoft Excel ワークシート.xlsx",
  "parentReference": {
    "driveType": "documentLibrary",
    "driveId": "b!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ",
    "id": "01ZHNCCCCCCCCCCCCCCCCCCCCCCCCCCC2F",
    "path": "/drives/b!8Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1Mb1M-QQQQ/root:/Data",
    "siteId": "44444444-aaaa-4444-8888-333333333333"
  },
...
  "size": 14109
}

④ --------------------
● 目的
"source": "sites/example.sharepoint.com,eeeeeeee-1111-2222-a1a1-cccccccccccc,16aaaaaa-dddd-4444-9999-ccccccccccb1",
"scriptSource": "sites/example.sharepoint.com,44444444-aaaa-4444-8888-333333333333,eacccccc-3333-4444-aaaa-3333333333dc",

siteId(,以前の ID)
webId(,以降の ID)
を調べます。


● パラメーター
サイトのアドレス:[SharePointサイトを選択]
方法:GET
URI:_api/v2.0/sites/<SharePointホスト名>
ヘッダー(キーの入力):Accept
ヘッダー(値の入力):application/json


● フロー例
SharePoint に HTTP 要求を送信します フロー例4


● 出力例
"id": の部分で分かります。

出力例
{
  "@odata.context": "https://example.sharepoint.com/sites/newsite/_api/v2.0/$metadata#sites/$entity",
  "createdDateTime": "2023-09-01T10:10:10.663Z",
  "description": "newsite",
  "id": "example.sharepoint.com,eeeeeeee-1111-2222-a1a1-cccccccccccc,16aaaaaa-dddd-4444-9999-ccccccccccb1",
  "lastModifiedDateTime": "2023-09-01T10:10:10Z",
  "name": "newsite",
  "webUrl": "https://example.sharepoint.com/sites/newsite",
  "dataLocationCode": "JPN",
  "root": {},
  "sensitivityLabel": {},
  "siteCollection": {
    "hostName": "example.sharepoint.com"
  },
  "template": {
    "definitionName": "GROUP",
    "id": 64,
    "name": "GROUP#0"
  },
  "title": "newsite"
}

フローで ID が分かるということは、頑張れば、definition.json 書き換えまでフローにできそうです。


・・・。頑張ってください。


以上!

loading...