Power Query テンプレートのコネクタを構築する

             無料試用版

重要

この機能の一部またはすべては、プレビュー リリースの一部として利用できます。 コンテンツおよび機能は変更される場合があります。

この記事では、Microsoft Sustainability Manager 用の Power Query テンプレートのコネクターを作成する方法を紹介します。 Power Query テンプレート コネクターの構築を成功させるには、Dynamics 365 の基本的なソリューション開発と、Sustainability Manager で Power Query テンプレートを構築する方法を知っている必要があります。

Power Automate コネクターを構築する必要がある場合は、 Power Automate コネクタの構築 に進んでください。

ステップ 1: 環境の作成

このステップでは、コネクタを使ってデータをインポートする必要がある Sustainability Manager ユーザーに配布するソリューションを作成します。

  1. ソリューションを作成する の手順に従って、Power Apps で新しいアンマネージド ソリューションを作成します。

  2. その環境に Sustainability Manager をインストールします。

手順 2: Power Query テンプレートの作成

コネクタ用の Power Query テンプレートを作成するには、Power Query テンプレートの設計の手順に従ってください。

ステップ 3: ソリューションを準備する

Sustainability Manager がインストールされた環境と、Power Query テンプレートが作成されたので、Power Query テンプレートをコネクタ ソリューションにパッケージ化できます。

少なくとも、解凍されたソリューション内の次のフォルダー構造には以下が含まれている必要があります。

  • フォルダー: 資産
    • ファイル: msdyn_dataconnectors.xml
    • ファイル: msdyn_dataflowtemplates.xml
  • フォルダー: その他
    • ファイル: Customizations.xml
    • ファイル: Solution.xml
  • ファイル: <solution>.cdsproj

資産 の下のファイルには、Power Query テンプレート コネクタを格納するために必要な情報が含まれています。 msdyn_dataconnectors.xml ファイルには、コネクタに関する重要なメタデータが含まれています。 インストール後、Sustainability Manager でコネクタがどのように表示されるかが決まります。 msdyn_dataflowtemplates.xml ファイルには、 Power Query テンプレートに含まれるすべての変換を含む、Power Query テンプレートに関する情報が含まれています。 これらのファイルを使用して、単一のソリューション内に 1 つ以上のコネクタを作成できます。

このセクションの指示に従って、各ファイルを作成します。

msdyn_dataconnectors.xml ファイルを作成する

  1. 任意のテキスト エディターで、msdyn_dataconnectors.xml という名前の新しいファイルを作成します。

  2. 詳細に合わせて次の XML をコピーして変更します:

    <msdyn_dataconnectors>
      <msdyn_dataconnector msdyn_dataconnectorid="bc9e9b1e-45fa-4d6e-b799-9dcb49aaf981">
      <msdyn_connectorstatus>700610001</msdyn_connectorstatus>
      <msdyn_connectortype>700610007</msdyn_connectortype>
      <msdyn_description>Demo Power Query templates connector</msdyn_description>
      <msdyn_supportlinkurl>https://www.microsoft.com</msdyn_supportlinkurl>
      <msdyn_logo_text>
      </msdyn_logo_text>
      <msdyn_name>Demo Power Query templates connector</msdyn_name>
      <msdyn_title>Demo Power Query templates connector</msdyn_title>
      <msdyn_dataflowtemplateid>
        <msdyn_dataflowtemplateid>fb6ee8dd-b84c-4599-adb6-1812b3878052</msdyn_dataflowtemplateid>
      </msdyn_dataflowtemplateid>
      </msdyn_dataconnector>
    </msdyn_dataconnectors>
    
    パラメーター 詳細
    msdyn_dataconnectorid GUID 形式に従って、コネクタを識別するための新しい GUID を生成します。 この例では、 GUID = bc9e9b1e-45fa-4d6e-b799-9dcb49aaf981 を使用します。 GUID はコネクタ識別子であり、後の手順で必要になります。
    msdyn_connectorstatus この値は 700610001 のままにしておきます。 この値は公開されたコネクタを表します。
    msdyn_connectortype この値は 700610007 のままにしておきます。 この値はコネクタのタイプを表します。 この場合は、Power Query テンプレート コネクタの値です。
    msdyn_description コネクタの簡単な説明を追加します。
    msdyn_supportlinkurl 接続が失敗した場合にユーザーが連絡する URL にテキストを置き換えます。 失敗した接続のテストの詳細については、エラー処理のテストを参照してください。 この URL がない場合、コネクタは Sustainability Manager に表示されません。
    msdyn_logo_text 任意のエンコーダーを使用して、ロゴ画像を Base 64 にエンコードして保存します。 画像は 36 x 36 ピクセルにする必要があります。 このパラメーターに Base 64 エンコードを貼り付けます。
    msdyn_name
    msdyn_title
    Power Query テンプレート コネクタをデモする をコネクター名に変更します。
    msdyn_dataflowtemplateid この値をご利用の Power Query テンプレートのものに変更してください。 この値は msdyn_dataflowtemplates.xml ファイルでも使用する GUID です。

msdyn_dataflowtemplates.xml ファイルを作成する

  1. 任意のテキスト エディターで、msdyn_dataflowtemplates.xml という名前の新しいファイルを作成します。

  2. 詳細に合わせて次の XML をコピーして変更します:

    <msdyn_dataflowtemplates>
      <msdyn_dataflowtemplate msdyn_dataflowtemplateid="fb6ee8dd-b84c-4599-adb6-1812b3878052">
        <msdyn_uniquename>msm_sustainabilitySamplePQTemplate</msdyn_uniquename>
        <msdyn_category>msdyn_sustainability</msdyn_category>
        <msdyn_configuration>{\"msdyn_sustainability\":{\"dataDefintions\":\"bd182f7f-1b7b-4360-9c02-2d0b7cd75b97, 4b1faadb-0ee4-42c8-a3fc-e3afa3987172, c4f9c6f5-dc68-49ca-8297-acbb29fece79, 6c36ce29-f121-47d6-b146-9eece7e869ec\",\"dataDefintionNames\":\"6. Business travel, Facilities, Organizational units, Business travel types\",\"map\":{\"Business Travel\":\"{\\\"fields\\\":[{\\\"destinationField\\\":\\\"msdyn_businesstraveltypeid\\\",\\\"sourceField\\\":\\\"Business Travel Type\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_consumptionstartdate\\\",\\\"sourceField\\\":\\\"Consumption Start Date\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_consumptionenddate\\\",\\\"sourceField\\\":\\\"Consumption End Date\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_name\\\",\\\"sourceField\\\":\\\"Name\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_description\\\",\\\"sourceField\\\":\\\"Description\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_facilityid\\\",\\\"sourceField\\\":\\\"Facility\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_cost\\\",\\\"sourceField\\\":\\\"Cost\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_costunit\\\",\\\"sourceField\\\":\\\"Cost Unit\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_distance\\\",\\\"sourceField\\\":\\\"Distance\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_distanceunit\\\",\\\"sourceField\\\":\\\"Distance Unit\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_organizationalunitid\\\",\\\"sourceField\\\":\\\"Organizational unt\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_dataqualitytype\\\",\\\"sourceField\\\":\\\"Data Quality\\\",\\\"isCustomDimension\\\":false},{\\\"sourceField\\\":\\\"Production value\\\",\\\"destinationField\\\":\\\"Production Amplifier\\\",\\\"isCustomDimension\\\":true}]}\",\"biz trav types\":\"{\\\"fields\\\":[{\\\"destinationField\\\":\\\"msdyn_name\\\",\\\"sourceField\\\":\\\"Name\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_description\\\",\\\"sourceField\\\":\\\"Description\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_origincorrelationid\\\",\\\"sourceField\\\":\\\"Origin correlation id\\\",\\\"isCustomDimension\\\":false}]}\",\"orgs\":\"{\\\"fields\\\":[{\\\"destinationField\\\":\\\"msdyn_name\\\",\\\"sourceField\\\":\\\"Name\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_organizationalunittype\\\",\\\"sourceField\\\":\\\"Organizational unit type\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_addressstreet1\\\",\\\"sourceField\\\":\\\"Address\\\",\\\"isCustomDimension\\\":false}]}\",\"facilities\":\"{\\\"fields\\\":[{\\\"destinationField\\\":\\\"msdyn_name\\\",\\\"sourceField\\\":\\\"Name\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_addresscity\\\",\\\"sourceField\\\":\\\"City\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_addresscountryisocode\\\",\\\"sourceField\\\":\\\"Country/Region\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_addresszippostalcode\\\",\\\"sourceField\\\":\\\"Zip/Postal\\\",\\\"isCustomDimension\\\":false},{\\\"destinationField\\\":\\\"msdyn_addressstreet1\\\",\\\"sourceField\\\":\\\"Address \\\",\\\"isCustomDimension\\\":false}]}\"},\"mapSdds\":{\"Business Travel\":\"bd182f7f-1b7b-4360-9c02-2d0b7cd75b97\",\"biz trav types\":\"4b1faadb-0ee4-42c8-a3fc-e3afa3987172\",\"orgs\":\"c4f9c6f5-dc68-49ca-8297-acbb29fece79\",\"facilities\":\"6c36ce29-f121-47d6-b146-9eece7e869ec\"}}}</msdyn_configuration>
        <msdyn_description>Demo Power Query template connector</msdyn_description>
        <msdyn_mashupdocument>{\"hostContext\":{\"type\":\"SustainabilityCloud\",\"details\":{\"EnvironmentId\":\"b9fd4065-c444-e187-a1b1-5ddeb9c39a1a\"}},\"mashupName\":\"Sustainability--04000419112812547\",\"mashupDocument\":\"section Section1;\\r\\nshared #\\\"Business Travel\\\" = let\\n  Source = Excel.Workbook(Web.Contents(\\\"contoso/Documents/Apps/Microsoft Power Query/Uploaded Files/business travel 9.xlsx\\\"), null, true),\\n  #\\\"Navigation 1\\\" = Source{[Item = \\\"Business Travel\\\", Kind = \\\"Sheet\\\"]}[Data],\\n  #\\\"Promoted headers\\\" = Table.PromoteHeaders(#\\\"Navigation 1\\\", [PromoteAllScalars = true]),\\n  #\\\"Changed column type\\\" = Table.TransformColumnTypes(#\\\"Promoted headers\\\", {{\\\"Business Travel Type\\\", type text}, {\\\"Consumption Start Date\\\", type datetime}, {\\\"Consumption End Date\\\", type datetime}, {\\\"Data Quality\\\", type text}, {\\\"Name\\\", type text}, {\\\"Organizational unt\\\", type text}, {\\\"Description\\\", type text}, {\\\"Facility\\\", type text}, {\\\"Cost\\\", Int64.Type}, {\\\"Cost Unit\\\", type text}, {\\\"Distance\\\", Int64.Type}, {\\\"Distance Unit\\\", type text}, {\\\"Traveler\\\", type text}, {\\\"Is Good use of money\\\", type text}, {\\\"Budget\\\", Int64.Type}, {\\\"Had Fun\\\", type text}, {\\\"Personal Note\\\", type text}, {\\\"Production value\\\", Int64.Type}}),\\n  #\\\"Filtered rows\\\" = Table.SelectRows(#\\\"Changed column type\\\", each ([Traveler] = FullName))\\nin\\n  #\\\"Filtered rows\\\";\\r\\nshared #\\\"biz trav types\\\" = let\\r\\n  Source = Excel.Workbook(Web.Contents(\\\"contoso/Documents/Apps/Microsoft Power Query/Uploaded Files/business travel 9.xlsx\\\"), null, true),\\r\\n  #\\\"Navigation 1\\\" = Source{[Item = \\\"biz trav types\\\", Kind = \\\"Sheet\\\"]}[Data],\\r\\n  #\\\"Changed column type\\\" = Table.TransformColumnTypes(#\\\"Navigation 1\\\", {{\\\"Column1\\\", type text}, {\\\"Column2\\\", type text}, {\\\"Column3\\\", type text}}),\\r\\n  #\\\"Promoted headers\\\" = Table.PromoteHeaders(#\\\"Changed column type\\\", [PromoteAllScalars = true])\\r\\nin\\r\\n  #\\\"Promoted headers\\\";\\r\\nshared orgs = let\\r\\n  Source = Excel.Workbook(Web.Contents(\\\"https://contoso/Documents/Apps/Microsoft Power Query/Uploaded Files/business travel 9.xlsx\\\"), null, true),\\r\\n  #\\\"Navigation 1\\\" = Source{[Item = \\\"orgs\\\", Kind = \\\"Sheet\\\"]}[Data],\\r\\n  #\\\"Changed column type\\\" = Table.TransformColumnTypes(#\\\"Navigation 1\\\", {{\\\"Column1\\\", type text}, {\\\"Column2\\\", type text}, {\\\"Column3\\\", type text}}),\\r\\n  #\\\"Promoted headers\\\" = Table.PromoteHeaders(#\\\"Changed column type\\\", [PromoteAllScalars = true])\\r\\nin\\r\\n  #\\\"Promoted headers\\\";\\r\\nshared facilities = let\\r\\n  Source = Excel.Workbook(Web.Contents(\\\"https://contoso/Documents/Apps/Microsoft Power Query/Uploaded Files/business travel 9.xlsx\\\"), null, true),\\r\\n  #\\\"Navigation 1\\\" = Source{[Item = \\\"facilities\\\", Kind = \\\"Sheet\\\"]}[Data],\\r\\n  #\\\"Promoted headers\\\" = Table.PromoteHeaders(#\\\"Navigation 1\\\", [PromoteAllScalars = true]),\\r\\n  #\\\"Changed column type\\\" = Table.TransformColumnTypes(#\\\"Promoted headers\\\", {{\\\"Name\\\", type text}, {\\\"Address \\\", type text}, {\\\"City\\\", type text}, {\\\"Country/Region\\\", type text}, {\\\"Zip/Postal\\\", Int64.Type}, {\\\"IsLeased\\\", type text}}),\\r\\n  #\\\"Renamed columns\\\" = Table.RenameColumns(#\\\"Changed column type\\\", {{\\\"Address \\\", \\\"Address\\\"}})\\r\\nin\\r\\n  #\\\"Renamed columns\\\";\\r\\n[Description = \\\"first name last name of the user doing the business travel\\\"]\\r\\nshared FullName = \\\"Stanko Gutalj\\\" meta [IsParameterQuery = true, IsParameterQueryRequired = true, Type = type any];\\r\\n\",\"queryGroups\":[],\"documentLocale\":\"en-US\",\"gatewayObjectId\":null,\"queriesMetadata\":{\"Business Travel\":{\"queryId\":\"c7b76ec4-8e29-42d1-b63d-7710f85a7d4b\",\"queryName\":\"Business Travel\",\"queryGroupId\":null,\"entityName\":null,\"lastKnownIsCalculatedEntity\":false,\"lastKnownIsLinkedEntity\":false,\"lastKnownIsParameter\":false,\"isHidden\":false,\"lastKnownResultTypeName\":\"table\",\"loadEnabled\":true,\"fieldsMetadata\":{},\"deleteExistingDataOnLoad\":false,\"hostProperties\":{},\"jsonOutputDestinations\":null,\"bindToDefaultOutputDestination\":null,\"jsonIncrementalRefreshSettings\":null,\"stagingDefinition\":null},\"biz trav types\":{\"queryId\":\"0c8434c7-29c6-4f7b-a5f5-b5791604061d\",\"queryName\":\"biz trav types\",\"queryGroupId\":null,\"entityName\":null,\"lastKnownIsCalculatedEntity\":false,\"lastKnownIsLinkedEntity\":false,\"lastKnownIsParameter\":false,\"isHidden\":false,\"lastKnownResultTypeName\":\"table\",\"loadEnabled\":true,\"fieldsMetadata\":{},\"deleteExistingDataOnLoad\":false,\"hostProperties\":{},\"jsonOutputDestinations\":null,\"bindToDefaultOutputDestination\":null,\"jsonIncrementalRefreshSettings\":null,\"stagingDefinition\":null},\"orgs\":{\"queryId\":\"94756842-bfc6-4459-9703-627d2f95594a\",\"queryName\":\"orgs\",\"queryGroupId\":null,\"entityName\":null,\"lastKnownIsCalculatedEntity\":false,\"lastKnownIsLinkedEntity\":false,\"lastKnownIsParameter\":false,\"isHidden\":false,\"lastKnownResultTypeName\":\"table\",\"loadEnabled\":true,\"fieldsMetadata\":{},\"deleteExistingDataOnLoad\":false,\"hostProperties\":{},\"jsonOutputDestinations\":null,\"bindToDefaultOutputDestination\":null,\"jsonIncrementalRefreshSettings\":null,\"stagingDefinition\":null},\"facilities\":{\"queryId\":\"87485e4a-ecdb-4617-9c8c-a7c96a2092f7\",\"queryName\":\"facilities\",\"queryGroupId\":null,\"entityName\":null,\"lastKnownIsCalculatedEntity\":false,\"lastKnownIsLinkedEntity\":false,\"lastKnownIsParameter\":false,\"isHidden\":false,\"lastKnownResultTypeName\":\"table\",\"loadEnabled\":true,\"fieldsMetadata\":{},\"deleteExistingDataOnLoad\":false,\"hostProperties\":{},\"jsonOutputDestinations\":null,\"bindToDefaultOutputDestination\":null,\"jsonIncrementalRefreshSettings\":null,\"stagingDefinition\":null},\"FullName\":{\"queryId\":\"488f10a8-9f01-4674-a004-c8a6493785a6\",\"queryName\":\"FullName\",\"queryGroupId\":null,\"entityName\":null,\"lastKnownIsCalculatedEntity\":false,\"lastKnownIsLinkedEntity\":false,\"lastKnownIsParameter\":true,\"isHidden\":false,\"lastKnownResultTypeName\":\"text\",\"loadEnabled\":false,\"fieldsMetadata\":{},\"deleteExistingDataOnLoad\":false,\"hostProperties\":{},\"jsonOutputDestinations\":null,\"bindToDefaultOutputDestination\":null,\"jsonIncrementalRefreshSettings\":null,\"stagingDefinition\":null}},\"connectionOverrides\":[{\"path\":\"https://contoso/Documents/Apps/Microsoft Power Query/Uploaded Files/business travel 9.xlsx\",\"kind\":\"Web\",\"provider\":\"PowerApps\",\"environmentName\":\"b9fd4065-c444-e187-a1b1-5ddeb9c39a1a\",\"apiName\":\"webcontents\",\"connectionName\":\"926cadb147e044fa9da7cffce4f70e82\",\"credentialDetails\":{},\"connectionParameters\":{}}],\"trustedConnections\":null,\"useHostConnectionProvider\":false,\"fastCombine\":false,\"allowNativeQueries\":false,\"allowedModules\":null,\"skipAutomaticTypeAndHeaderDetection\":false,\"disableAutoAnonymousConnectionUpsert\":false,\"hostProperties\":null,\"defaultOutputDestinationConfiguration\":null,\"stagingDefinition\":null}</msdyn_mashupdocument>
        <msdyn_templatename>Demo Power Query template connector</msdyn_templatename>
        <msdyn_templateversion>1.0</msdyn_templateversion>
      </msdyn_dataflowtemplate>
    </msdyn_dataflowtemplates>
    
    パラメーター 詳細
    msdyn_dataflowtemplateid GUID 形式に従って、テンプレートを識別するための新しい GUID を生成します。 この例では、 GUID = fb6ee8dd-b84c-4599-adb6-1812b3878052 を使用します。
    msdyn_uniquename テンプレート レコードの一意の名前を入力します。
    msdyn_category テンプレート レコードのカテゴリ。 この値はそのままにしておきます。
    msdyn_configuration Sustainability Manager でサポートされているデータ カテゴリへのテンプレートのマッピング構成を表す JSON に変更します。 この JSON を取得する方法は、この表の後に記載されています。
    msdyn_description Power Query テンプレートの説明を入力します。
    msdyn_mashupdocument このパラメーターは、コネクタ内のすべての変換のテキスト表現です。 このテキストを取得する方法は、この表の後に記載されています。
    msdyn_templatename テンプレートの名前を入力します。
    msdyn_templateversion テンプレートのバージョン番号を入力してください。

    msdyn_configurationmsdyn_mashupdocument のパラメーターで使用する情報を抽出するには、以下のテキストをコピーしてブラウザーに貼り付けます。 <your_organization> は、あなたの組織の環境名に置き換えてください。

    https://<your_organization>.crm10.dynamics.com/api/data/v9.0/msdyn_dataflowtemplates
    

    すべての msdyn_dataflowtemplates レコードを含む JSON が表示され、移動したいテンプレートを見つけることができます。 フィールドをコピーして貼り付けます msdyn_dataflowtemplates.xml ファイル。

    msdyn_dataflowtemplates.xml ファイル内のフィールドの値を示すスクリーンショット。

参照