Поделиться через


Пример: расширение типа карточки в помощнике (настраиваемая карточка)

Узнайте, как загрузить пример карточки и какие есть ресурсы для создания настраиваемых действий, а также узнайте о возможностях расширения карточки действия в помощнике.

Требования к лицензии и роли

Тип требования Вы должны иметь
Виды Dynamics 365 Sales Премиум
Подробнее: Цены на Dynamics 365 Sales
Роли безопасности Настройщик системы
Дополнительные сведения: Предопределенные роли безопасности для Sales

Создание настраиваемой карточки действия

В следующей процедуре поясняется создание настраиваемой карточки:

  • Шаг 1. Загрузите пример решения "Расширение типа карточки в помощнике"
  • Шаг 2. Выполните сборку решения (ExtPkgDeployer.sln)
  • Шаг 3. Импортируйте пакет с помощью Package Deployer
  • Шаг 4. Проверьте, что новый тип карточки присутствует
  • Шаг 5. Создайте карточку действия для нового типа карточки с помощью веб-API.
  • Шаг 6. Проверьте, что новая настраиваемая карточка присутствует

Необходимые условия

Прежде чем создавать настраиваемые карточки в своей организации, проверьте выполнение следующих необходимых условий:

  • Необходимо иметь средство Package Deployer (packagedeployer.exe) для развертывания пакетов. О том, как загрузить Package Deployer, см. в разделе Загрузка средств из NuGet

  • Чтобы использовать эту функцию, необходимо приобрести лицензию Dynamics 365 Sales Insights или начать пробный период для использования функций Sales Insights.

Шаг 1: Загрузите пример решения "Расширение типа карточки в помощнике"

Загрузите решение с примером настраиваемой карточки.

В примерах показано, как создать настраиваемую карточку в помощнике программным образом.

Перейдите по пути ExtPkgDeployer\PkgFolder\extensibility_example_sol\WebResources. В папке WebResources находится три файла, необходимых для создания настраиваемой карточки.

  • Определением схемы (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)

Содержит определение схемы для нового типа карточки.

Заметка

Убедитесь, что значение идентификатора типа карточки больше 10 000.

<?xml version="1.0" encoding="utf-8" ?>
<entity name="cardtype" displayname="Action Card Type">
  <cardname>Extensibility Example</cardname>
  <cardtypeid>2183dfc0-3c1c-45b7-a331-1943880c25c6</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 сущности ActionCard.

<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 появятся папка PkgFolder и файл ExtPkgDeployer.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, где вы хотите развернуть пакет. Если у вас несколько организаций и необходимо выбрать организацию, в которой будет развернут пакет Unified Service Desk, установите флажок "Отображать список доступных организаций". Выберите Имя пользователя.

  5. На следующем экране отображаются подробные сведения о выбранном пакете и элементах, которые будут установлены в выбранный экземпляр Dynamics 365 Sales. Просмотрите сведения и щелкните Далее.

  6. На экране Все готово для установки отображается выбранный для развертывания пакет, а также название организации Dynamics 365 Sales, в которой он будет развернут. Просмотрите сведения и щелкните Далее.

  7. На следующем экране отображается статус проверки выбранного для развертывания пакета. После успешной проверки пакета нажмите кнопку Далее.

  8. На следующей странице отображается статус развертывания пакета. Нажмите кнопку Далее.

  9. На следующем экране отображаются название только что развернутого пакета и сведения о нем. Просмотрите информацию и нажмите кнопку Готово, чтобы закрыть Package Deployer.

После развертывания пакета будет создан новый тип карточки с идентификатором 2183dfc0-3c1c-45b7-a331-1943880c25c6, который определен в схеме (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829).

Шаг 4. Проверьте, что новый тип карточки присутствует

Проверьте новый тип карточки с идентификатором "2183dfc0-3c1c-45b7-a331-1943880c25c6". Отправьте запрос с методом GET.

Запрос

GET [Organization URI]/api/data/v9.0/cardtype(2183dfc0-3c1c-45b7-a331-1943880c25c6) 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. Создайте карточку действия для нового типа карточки с помощью веб-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(2183dfc0-3c1c-45b7-a331-1943880c25c6) 

Заметка

Откройте консоль браузера и выполните команду sessionStorage.clear();, чтобы очистить кэш сеанса.

Шаг 6. Проверьте, что новая настраиваемая карточка присутствует

Проверять созданные в вашей организации настраиваемые карточки можно в качестве конечного пользователя и в качестве администратора.

В качестве конечного пользователя

  1. Войдите в Dynamics 365 Sales.

  2. В разделе Помощник вы можете видеть свою созданную карточку действия.

    пример расширенной карточки действия

В качестве администратора

  1. Выполните вход в Dynamics 365 Sales и перейдите к приложению Центр продаж.

  2. Перейдите к Изменить область и выберите Параметры Sales Insights.

  3. На карте сайта выберите Карточки аналитики в разделе Помощник, чтобы перейти на страницу Управление карточками аналитики.

  4. На странице Управление карточками аналитики есть параметр для включения созданных настраиваемых карточек действия в вашей организации.

Чтобы получить дополнительные сведения о том, как включить карточки, см. раздел Включение или отключение карточек аналитики.

Не можете найти эти параметры в своем приложении?

Существует три возможных причины:

  • У вас нет необходимой лицензии или роли. Проверьте раздел «Требования к лицензиям и ролям» в верхней части этой страницы.
  • Ваш администратор не включил эту функцию.
  • В вашей организации используется пользовательское приложение. Чтобы узнать, какие действия необходимо выполнить, обратитесь к администратору. Описанные в этой статье действия относятся к готовым приложениям "Центр продаж" и Sales Professional.

Создание настраиваемых карточек в помощнике

Настройка помощника

Руководство по связям с клиентом с помощью помощника