サンプル: アシスタント カードの種類 (ユーザー定義カード) を拡張する

サンプルをダウンロードする方法と、カスタム アクションを作成するために使用できるリソース、またはアシスタント アクション カードの拡張について説明します。

ユーザー定義アクション カードの作成

次のプロセスでは、ユーザー定義カードの作成方法を説明します。

  • 手順 1: 拡張アシスタント カードの種類のサンプル ソリューションをダウンロードします。
  • 手順 2: ソリューションをビルドします (ExtPkgDeployer.sln)。
  • 手順 3: パッケージ 配置ツールを使用してパッケージをインポートします。
  • 手順 4: 新しいカードの種類を確認します。
  • 手順 5: Web API を使用して、新しいカードの種類のアクション カードを作成します。
  • 手順 6: 新しいカスタム カードを確認します。

必要条件

組織のユーザー定義カードを作成する前に、前提要件を確認します:

  • パッケージを展開するには、Package Deployer ツール (packagedeployer.exe) を所持している必要があります。 パッケージ 配置ツールをダウンロードするには、「 NuGet からツールをダウンロードする」を参照してください。

  • この機能を使用するには、Dynamics 365 Sales Insights のライセンスを購入するか、試用版を開始して Sales Insights の機能を使用する必要があります。

ステップ 1:拡張アシスタント カードの種類サンプル ソリューションのダウンロード

ダウンロード サンプルのユーザー定義カード ソリューション。

このサンプルは、アシスタントでのユーザー定義カードのプログラムによる作成方法を示します。

パス ExtPkgDeployer\PkgFolder\extensibility_example_sol\WebResources に移動します。 WebResourcesフォルダーの下に、ユーザー定義カードの作成に必要な 3 つファイルを表示できます。

  • スキーマ定義 (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)

  • コマンド (new_commands8db43275-0291-401d-923a-90a6c373cc18)

  • アイコン (new_msicon6aa7c568-4830-4da6-89f9-18a8fd9c2285)

スキーマ定義 (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)

新しいカードの種類のスキーマ定義。

メモ

カードの種類の ID 値が 10000 より多いことを確認します。

<?xml version="1.0" encoding="utf-8" ?>
<entity name="cardtype" displayname="Action Card Type">
  <cardname>Extensibility Example</cardname>
  <cardtypeid>aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb</cardtypeid>
  <cardtype>11000</cardtype>
  <cardtypeicon>webresources/new_msicon</cardtypeicon>
  <softtitle>Extensibility Example</softtitle>
  <summarytext>RA Card Extensibility Example</summarytext> 
  <actions>{"WebClient":{"Actions":{"Open":"Mscrm.HomepageGrid.actioncard.CardCommand"},"Default":{"Open":"Mscrm.HomepageGrid.actioncard.CardCommand"}}, "Mobile":{"Actions":{"Open":"Mscrm.HomepageGrid.actioncard.CardCommand"}}}</actions>
</entity>

コマンド (new_commands8db43275-0291-401d-923a-90a6c373cc18)

このファイルには、アクション カードのコマンドが含まれています。

function CardCommand() {
	window.open("https://aka.ms/salesai-raext");
}

コマンドを実行すると、RibbonDiff エンティティのcustomization.xmlで定義されているがコマンドを呼び出します。

<ImportExportXml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Entities>
    <Entity>
      <Name LocalizedName="ActionCard" OriginalName="ActionCard">ActionCard</Name>
      <ObjectTypeCode>9962</ObjectTypeCode>
      <RibbonDiffXml>
        <CustomActions>
          <CustomAction Id="Mscrm.HomepageGrid.actioncard.CardCommand.CustomAction" Location="Mscrm.HomepageGrid.actioncard.MainTab.Actions.Controls._children" Sequence="12">
            <CommandUIDefinition>
              <Button Id="Mscrm.HomepageGrid.actioncard.CardCommand" ToolTipTitle="Open" ToolTipDescription="Open" Command="Mscrm.HomepageGrid.actioncard.CardCommand" Sequence="12" LabelText="Open" Alt="Open" Image16by16="/WebResources/new_msicon" Image32by32="/WebResources/new_msicon" TemplateAlias="o1" ModernImage="new_msicon" />
            </CommandUIDefinition>
          </CustomAction>
          <CustomAction Id="Mscrm.SubGrid.actioncard.CardCommand.CustomAction" Location="Mscrm.SubGrid.actioncard.MainTab.Actions.Controls._children" Sequence="57">
            <CommandUIDefinition>
              <Button Id="Mscrm.HomepageGrid.actioncard.CardCommand" ToolTipTitle="Open" ToolTipDescription="Open" Command="Mscrm.HomepageGrid.actioncard.CardCommand" Sequence="29" LabelText="Open" Alt="Open" Image16by16="/WebResources/new_msicon" Image32by32="/WebResources/new_msicon" TemplateAlias="o1" ModernImage="new_msicon" />
            </CommandUIDefinition>
          </CustomAction>
        </CustomActions>
        <CommandDefinitions>
          <CommandDefinition Id="Mscrm.HomepageGrid.actioncard.CardCommand">
            <EnableRules >
              <EnableRule Id="Mscrm.SelectionCountExactlyOne" />
              <EnableRule Id="Mscrm.NotOffline" />
            </EnableRules>
            <DisplayRules>
            </DisplayRules>
            <Actions>
              <JavaScriptFunction FunctionName="CardCommand" Library="$webresource:new_commands">
                <CrmParameter Value="SelectedControl" />
                <CrmParameter Value="SelectedControlSelectedItemReferences" />
              </JavaScriptFunction>
            </Actions>
          </CommandDefinition>
        </CommandDefinitions>
        <RuleDefinitions>
          <TabDisplayRules />
          <DisplayRules>
          </DisplayRules>
          <EnableRules/>
        </RuleDefinitions>    
      </RibbonDiffXml>       
    </Entity>
  </Entities>
  <Roles></Roles>
  <Workflows></Workflows>
  <FieldSecurityProfiles></FieldSecurityProfiles>
  <Templates />
  <EntityMaps />
  <EntityRelationships />
  <OrganizationSettings />
  <optionsets />
  <WebResources>
	<WebResource>
      <WebResourceId>{6aa7c568-4830-4da6-89f9-18a8fd9c2285}</WebResourceId>
      <Name>new_msicon</Name>
      <DisplayName>new_msicon</DisplayName>
      <WebResourceType>5</WebResourceType>
      <IntroducedVersion>1.0</IntroducedVersion>
      <IsEnabledForMobileClient>0</IsEnabledForMobileClient>
      <IsAvailableForMobileOffline>0</IsAvailableForMobileOffline>
      <DependencyXml>&lt;Dependencies&gt;&lt;Dependency componentType="WebResource"/&gt;&lt;/Dependencies&gt;</DependencyXml>
      <IsCustomizable>1</IsCustomizable>
      <CanBeDeleted>1</CanBeDeleted>
      <IsHidden>0</IsHidden>
      <FileName>/WebResources/new_msicon6aa7c568-4830-4da6-89f9-18a8fd9c2285</FileName>
    </WebResource>
    <WebResource>
      <WebResourceId>{8db43275-0291-401d-923a-90a6c373cc18}</WebResourceId>
      <Name>new_commands</Name>
      <DisplayName>new_commands</DisplayName>
      <WebResourceType>3</WebResourceType>
      <IntroducedVersion>1.0</IntroducedVersion>
      <IsEnabledForMobileClient>0</IsEnabledForMobileClient>
      <IsAvailableForMobileOffline>0</IsAvailableForMobileOffline>
      <DependencyXml>&lt;Dependencies&gt;&lt;Dependency componentType="WebResource"/&gt;&lt;/Dependencies&gt;</DependencyXml>
      <IsCustomizable>1</IsCustomizable>
      <CanBeDeleted>1</CanBeDeleted>
      <IsHidden>0</IsHidden>
      <FileName>/WebResources/new_commands8db43275-0291-401d-923a-90a6c373cc18</FileName>
    </WebResource>
	<WebResource>
      <WebResourceId>{9dd7e039-33a1-4778-9972-66536dc5e829}</WebResourceId>
      <Name>new_cardtype_schema</Name>
      <DisplayName>cardtype_schema</DisplayName>
      <WebResourceType>4</WebResourceType>
      <IntroducedVersion>1.0</IntroducedVersion>
      <IsEnabledForMobileClient>0</IsEnabledForMobileClient>
      <IsAvailableForMobileOffline>0</IsAvailableForMobileOffline>
      <DependencyXml>&lt;Dependencies&gt;&lt;Dependency componentType="WebResource"/&gt;&lt;/Dependencies&gt;</DependencyXml>
      <IsCustomizable>1</IsCustomizable>
      <CanBeDeleted>1</CanBeDeleted>
      <IsHidden>0</IsHidden>
      <FileName>/WebResources/new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829</FileName>
    </WebResource>
  </WebResources>
  <Languages>
    <Language>1033</Language>
  </Languages>
</ImportExportXml>

アイコン (new_msicon6aa7c568-4830-4da6-89f9-18a8fd9c2285)

ファイルには、カードが使用するアイコンが含まれています。

ステップ 2: ソリューションの構築 (ExtPkgDeployer.sln)

  1. コマンド プロンプト (cmd) を開きます。

  2. ルート フォルダーに移動します。 C:\<directory>\RACards Extensibility Example\RACards Extensibility Example\ExtPkgDeployer\PkgFolder

  3. コマンドを実行してソリューションをビルドします。 msbuild ExtPkgDeployer.sln

ビルドが成功しました。 <folder>\ExtPkgDeployer\bin\Debugの下に、PkgFolderExtPkgDeployer.dllが生成されていることがわかります。

ステップ 3: Package Deployer ツールを使用したパッケージのインポート

  1. PkgFolder フォルダーから ExtPkgDeployer.dll<folder>\ExtPkgDeployer\bin\Debugをコピーして、<PackageDeployerToolLocation>\tools に貼り付けます。

  2. Package Deployer ツールを保存したフォルダーから PackageDeployer.exe をダブルクリックしてツールを実行します。

  3. Package Deployerツールの最初の画面で、続行を選択します。

  4. 認証画面では、パッケージを展開したい Dynamics 365 Sales instance の場所に接続するための認証の詳細が提供されます。 組織が複数あり、Unified Service Desk パッケージを展開する組織を選択する場合は、使用可能な組織の一覧を表示するチェック ボックスをオンにします。 ログインを選択します。

  5. 次の画面では、選択したパッケージと、Dynamics 365 Sales instance にインストールされるものの詳細情報が表示されます。 情報を確認し、次へを選択します。

  6. インストールの準備完了画面には、展開するために選択したパッケージと、展開先の Dynamics 365 Sales 組織の名前が表示されます。 情報を確認し、次へを選択します。

  7. 次の画面に、展開するために選択したパッケージの検証ステータスが表示されます。 検証が正常に終了したら、次へ を選択します。

  8. 次のページには、パッケージの展開状態が表示されます。 [次へ] をクリックします。

  9. 次の画面には、展開したパッケージの名前と情報が表示されます。 情報を確認し、完了を選択して、Package Deployer ツールを終了します。

パッケージの展開後、新しいカードの種類が ID - 00aa00aa-bb11-cc22-dd33-44ee44ee44ee で作成され、これはスキーマ (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829).で定義されます。

ステップ 4: 新しいカードの種類の確認

ID 00aa00aa-bb11-cc22-dd33-44ee44ee44ee のついたカードの種類を確認します。 GET メソッド要求を送信します。

依頼

GET [Organization URI]/api/data/v9.0/cardtype(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1  
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  

応答

{
"@odata.context":"https://[Organization URI]/api/data/v9.0/$metadata#cardtype/$entity",
"@odata.etag":"W/"662120\"",
"boolcardoption":false,
"clientavailability":3,
"ispreviewcard":true,
"cardname":"ExtExample",
"cardtypeid":"2183dfc0-3c1c-45b7-a331-943880c25c6",
"cardtypeicon":"webresources/new_msicon",
"intcardoption":0,
"isenabled":true,
"hassnoozedismiss":true,
"softtitle":"Extensibility Example",
"cardtype":11000,
"isliveonly":false,
"_modifiedby_value":"50673658-c5d6-e811-a98c-000d3a1df431",
"versionnumber":662120,
"isbasecard":false,
"actions":"{\"WebClient\":{\"Actions\":{\"Open\":\"Mscrm.HomepageGrid.actioncard.CardCommand\"},\"Default\":{\"Open\":\"Mscrm.HomepageGrid.actioncard.CardCommand\"}}, \"Mobile\":{\"Actions\":{\"Open\":\"Mscrm.HomepageGrid.actioncard.CardCommand\"}}}",
"publishername":"adminsocial",
"modifiedon":"2018-10-26T12:26:14Z",
"summarytext":"RA Card Extensibility Example",
"_transactioncurrencyid_value":null,
"importsequencenumber":null,
"createdon":null,
"overriddencreatedon":null,
"_modifiedonbehalfby_value":null,
"_createdonbehalfby_value":null,
"_createdby_value":null,
"scheduletime":null,
"exchangerate":null,
"grouptype":null,
"stringcardoption":null,
"lastsynctime":null
}

ステップ 5: Web API を使用して新しいカードの種類のアクション カードを作成します

Package Deployer を使用して作成された新しいカードの種類のアクション カードを作成します。 POST メソッド要求を送信します。

依頼

POST http://[Organization URI]/api/data/v9.0/actioncards HTTP/1.1
Content-Type: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  
{
"cardtypeid@odata.bind": "/cardtype(2183dfc0-3c1c-45
b7-a331-1943880c25c6)",
"startdate": "2018-10-20T01:01:01Z",
"expirydate": "2018-10-25T01:01:01Z",
"visibility": true,
"priority": 2000,
"description": "This card should be visible between
start and end date mentioned above",
"title" : "Extensibility Example",
"cardtype": 11000,
"ownerid@odata.bind" : "/systemusers({USER_ID})"
}  

応答

HTTP/1.1 204 No Content  
OData-Version: 4.0  
OData-EntityId: http://[Organization URI]/api/data/v9.0/actioncard(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) 

メモ

ブラウザー コンソールを開き、 コマンド、sessionStorage.clear(); を実行してセッション キャッシュをクリアします。

ステップ 6: 新しいユーザー定義カードの確認

カスタムカードは、組織内でエンドユーザーとして、または管理者として作成されたことを確認できます。

エンド ユーザーとして

  1. Dynamics 365 Sales にログインします。

  2. アシスタントセクションでは、作成したアクション カードを表示できます。

    拡張アクション カードの例のスクリーンショット。

管理者として

  1. Dynamics 365 Sales にログインして、営業ハブ アプリに移動します。

  2. 領域を変更に移動し、Sales Insights設定を選択します。

  3. サイトマップで、アシスタントInsights カードを選択し、Insights カードの管理ページに移動します。

  4. Insights カードの管理ページでは、組織で作成されたユーザー定義アクション カードを有効にするオプションが表示されます。

カードを有効にする方法の詳細については、Insights カードのオンとオフを参照してください。

アプリで機能が見つかりませんか?

次のいくつかの可能性があります:

  • この機能を使用するために必要なライセンスがありません。 ライセンスで使用できる機能を確認するには、 比較表ライセンス ガイド を参照してください。
  • この機能を使用するために必要なセキュリティ ロールがありません。
  • 管理者がこの機能を有効にしていません。
  • 組織でカスタム アプリを使用しています。 正確な手順については、管理者に問い合わせてください。 この記事で説明する手順は、すぐに使用できる Sales Hub アプリと Sales Professional アプリに固有です。

アシスタントでユーザー定義のカードを作成する

アシスタントを構成する

アシスタントを使用して顧客とのコミュニケーションをガイドする