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><Dependencies><Dependency componentType="WebResource"/></Dependencies></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><Dependencies><Dependency componentType="WebResource"/></Dependencies></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><Dependencies><Dependency componentType="WebResource"/></Dependencies></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)
Abra o prompt de comando (cmd).
Vá para a pasta raiz.
C:\<directory>\RACards Extensibility Example\RACards Extensibility Example\ExtPkgDeployer\PkgFolder
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
Copie
PkgFolder
eExtPkgDeployer.dll
da pasta<folder>\ExtPkgDeployer\bin\Debug
e cole-os no local<PackageDeployerToolLocation>\tools
.Execute a ferramenta clicando duas vezes em
PackageDeployer.exe
, na pasta em que você salvou a ferramenta Package Deployer.Na tela de introdução da ferramenta Package Deployer, escolha Continuar.
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.
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.
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.
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.
A próxima página exibe o status de implantação do pacote. Clique em Avançar.
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
Faça logon no Dynamics 365 Sales.
Na seção Assistente, é possível ver o cartão de ação criado.
Como administrador
Faça logon no Dynamics 365 Sales e vá para Aplicativo Hub de Vendas.
Vá para Alterar área e selecione Configurações do Sales Insights.
No mapa do site, selecione Cartões de insights em Assistente e vá para a página Gerenciar os cartões de insights.
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.