Compartilhar via


Exemplo: estender o tipo de cartão do assistente (cartão personalizado)

Saiba como baixar recursos e quais deles estão presentes para criar ações personalizadas ou saiba como estender o cartão de ação do assistente.

Requisitos de licença e função

Tipo de requisito Você deve ter
Licença Dynamics 365 Sales Premium
Mais informações: Preços do Dynamics 365 Sales
Direitos de acesso Personalizador de Sistema
Mais informações: Direitos de acesso predefinidos para o Sales

Criar um cartão de ação personalizado

O seguinte processo explica como criar um cartão personalizado:

  • Etapa 1: baixar a extensão da solução de exemplo do tipo de cartão do Assistente
  • Etapa 2: Criar a solução (ExtPkgDeployer.sln)
  • Etapa 3: Importar o pacote usando a ferramenta Package Deployer
  • Etapa 4: Verificar o novo tipo de cartão
  • Etapa 5: Criar o Cartão de ação para o novo tipo de cartão usando a API Web.
  • Etapa 6: Verificar o novo cartão personalizado

Pré-requisitos

Verifique os pré-requisitos antes de criar os cartões personalizadas em sua organização:

  • Você deve ter a ferramenta Package Deployer (packagedeployer.exe) para implantar pacotes. Para baixar o Package Deployer, consulte Baixar as ferramentas do NuGet

  • Para usar este recurso, você deverá comprar uma licença do Dynamics 365 Sales Insights ou iniciar uma avaliação para usar recursos avançados do Sales Insights.

Etapa 1: baixar a extensão da solução de exemplo do tipo de cartão do Assistente

Baixar o exemplo de solução de cartão personalizado.

Os exemplos mostram como criar um cartão personalizado no Assistente de modo programático.

Siga o caminho ExtPkgDeployer\PkgFolder\extensibility_example_sol\WebResources. Na pasta WebResources, você pode ver três arquivos necessários para criar um cartão personalizado.

  • Definição de Esquema (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)

  • Comando (new_commands8db43275-0291-401d-923a-90a6c373cc18)

  • Ícone (new_msicon6aa7c568-4830-4da6-89f9-18a8fd9c2285)

Definição de Esquema (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)

Contém a definição de esquema para o novo tipo de cartão.

Nota

Verifique se o valor da ID do tipo de cartão é superior a 10000.

<?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>

Comando (new_commands8db43275-0291-401d-923a-90a6c373cc18)

O arquivo contém o comando para o cartão de ação.

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

Quando você executa o comando, este é invocado por meio de RibbonDiff definido no customization.xml da entidade 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>

Ícone (new_msicon6aa7c568-4830-4da6-89f9-18a8fd9c2285)

O arquivo contém o ícone que é usado para o cartão.

Etapa 2: Criar a solução (ExtPkgDeployer.sln)

  1. Abra o prompt de comando (cmd).

  2. Vá para a pasta raiz. C:\<directory>\RACards Extensibility Example\RACards Extensibility Example\ExtPkgDeployer\PkgFolder

  3. Execute o comando para criar a solução. msbuild ExtPkgDeployer.sln

A compilação é bem-sucedida e você pode ver que, em <folder>\ExtPkgDeployer\bin\Debug, foram gerados PkgFolder e ExtPkgDeployer.dll.

Etapa 3: Importar o pacote usando a ferramenta Package Deployer

  1. Copie PkgFolder e ExtPkgDeployer.dll da pasta <folder>\ExtPkgDeployer\bin\Debug e cole-os no local <PackageDeployerToolLocation>\tools.

  2. Execute a ferramenta clicando duas vezes em PackageDeployer.exe, na pasta em que você salvou a ferramenta Package Deployer.

  3. Na tela de introdução da ferramenta Package Deployer, escolha Continuar.

  4. Na tela de autenticação, forneça os detalhes de autenticação para se conectar à instância do Dynamics 365 Sales na qual você deseja implantar o pacote. Se houver várias organizações e você desejar selecionar a organização onde deseja implantar o pacote Unified Service Desk, marque a caixa de seleção Exibir lista de organizações disponíveis. Escolha Logon.

  5. A próxima tela exibe informações detalhadas sobre o pacote selecionado e os itens que serão instalados na sua instância do Dynamics 365 Sales. Examine as informações e escolha Avançar.

  6. A tela Pronto para Instalar exibe o pacote selecionado para implantação e o nome da organização do Dynamics 365 Sales na qual ele será implantado. Examine as informações e escolha Avançar.

  7. A próxima tela exibe o status de validação do pacote selecionado para ser implantado. Depois que a validação for concluída com êxito, escolha Avançar.

  8. A próxima página exibe o status de implantação do pacote. Clique em Avançar.

  9. A próxima página exibe o nome e as informações sobre o pacote que você acabou de implantar. Revise as informações e escolha Concluir para sair da ferramenta Package Deployer.

Após a implantação do pacote, um novo tipo de cartão será criado com uma ID - 2183dfc0-3c1c-45b7-a331-1943880c25c6, que é definido no esquema (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829).

Etapa 4: Verificar o novo tipo de cartão

Verifique o tipo de cartão com uma ID "2183dfc0-3c1c-45b7-a331-1943880c25c6". Envie uma solicitação de método GET.

Solicitação

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  

Resposta

{
"@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
}

Etapa 5: Criar o Cartão de ação para o novo tipo de cartão usando a API Web

Crie um Cartão de Ação para o novo tipo de cartão criado usando o Package Deployer. Envie uma solicitação de método POST.

Solicitar

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})"
}  

Response

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) 

Nota

Abra o console do navegador e execute o comando sessionStorage.clear(); para limpar o cache da sessão.

Etapa 6: Verificar o novo cartão personalizado

Você pode verificar os cartões personalizados criados em sua organização como usuário final e administrador.

Como usuário final

  1. Faça logon no Dynamics 365 Sales.

  2. Na seção Assistente, é possível ver o cartão de ação criado.

    exemplo de cartão de ação estendida

Como administrador

  1. Faça logon no Dynamics 365 Sales e vá para Aplicativo Hub de Vendas.

  2. Vá para Alterar área e selecione Configurações do Sales Insights.

  3. No mapa do site, selecione Cartões de insights em Assistente e vá para a página Gerenciar os cartões de insights.

  4. Na página Gerenciar os cartões de insights, você vê uma opção para habilitar cartões de ação personalizados criados em sua organização.

Para saber mais sobre como habilitar cartões, consulte Ativar ou desativar cartões de insights.

Não consegue encontrar as opções no aplicativo?

Há três possibilidades:

  • Você não tem a licença ou função necessária. Verifique a seção Requisitos de licença e função no topo desta página.
  • Seu administrador não ativou o recurso.
  • Sua organização está usando um aplicativo personalizado. Verifique com o administrador as etapas exatas. As etapas descritas neste artigo são específicas para os aplicativos Sales Professional e Hub de Vendas prontos para uso.

Criar cartões personalizadas no Assistente

Configurar o Assistente

Orientar as comunicações do cliente com o assistente