Exemple : Étendre le type de carte de l’Assistant (carte personnalisée)
Découvrez comment effectuer un téléchargement et quelles ressources sont présentes pour créer des actions personnalisées, ou apprenez à étendre la carte d’action de l’Assistant.
Licences et rôles requis
Type de condition requise | Vous devez disposer d’une |
---|---|
Licence | Dynamics 365 Sales Premium Pour plus d’informations : Tarification de Dynamics 365 Sales |
Rôles de sécurité | Personnalisateur du système Pour plus d’informations : Rôles de sécurité prédéfinis pour Sales |
Créer une carte d’action personnalisée
La procédure suivante explique comment créer une carte personnalisée :
- Étape 1 : Télécharger l’exemple de solution Étendre le type de carte de l’Assistant
- Étape 2 : Générer la solution (ExtPkgDeployer.sln)
- Étape 3 : Importer le package à l’aide de l’outil Package Deployer
- Étape 4 : Vérifier le nouveau type de carte
- Étape 5 : Créer une carte d’action pour le nouveau type de carte à l’aide de l’API Web.
- Étape 6 : Vérifier la nouvelle carte personnalisée
Configuration requise
Examinez la configuration préalable requise avant de créer les cartes personnalisés dans votre organisation :
Vous devez disposer de l’outil Package Deployer (packagedeployer.exe) pour déployer des packages. Pour télécharger l’outil Package Deployer, voir Télécharger les outils à partir de NuGet.
Pour utiliser cette fonctionnalité, vous devez acheter une licence Dynamics 365 Sales Insights ou lancer une version d’évaluation pour utiliser les fonctionnalités de Sales Insights.
Étape 1 : Télécharger l’exemple de solution Étendre le type de carte de l’Assistant
Téléchargez l’exemple de solution de carte personnalisée.
Les exemples montrent comment créer une carte personnalisée dans l’Assistant par programme.
Accédez au chemin d’accès ExtPkgDeployer\PkgFolder\extensibility_example_sol\WebResources
. Sous le dossier WebResources, vous trouverez trois fichiers nécessaires pour créer une carte personnalisée.
Définition de schéma (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)
Commande (new_commands8db43275-0291-401d-923a-90a6c373cc18)
Icône (new_msicon6aa7c568-4830-4da6-89f9-18a8fd9c2285)
Définition de schéma (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)
Le fichier contient la définition de schéma pour le nouveau type de carte.
Note
Vérifiez que la valeur ID du type de carte est supérieure à 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>
Commande (new_commands8db43275-0291-401d-923a-90a6c373cc18)
Le fichier contient la commande pour la carte d’action.
function CardCommand() {
window.open("https://aka.ms/salesai-raext");
}
Lorsque vous exécutez la commande, celle-ci est appelée via la méthode RibbonDiff
définie dans le fichier customization.xml de l’entité 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>
Icône (new_msicon6aa7c568-4830-4da6-89f9-18a8fd9c2285)
Le fichier contient l’icône utilisée pour la carte.
Étape 2 : Générer la solution (ExtPkgDeployer.sln)
Ouvrez une invite de commandes (cmd).
Accédez au dossier racine.
C:\<directory>\RACards Extensibility Example\RACards Extensibility Example\ExtPkgDeployer\PkgFolder
Exécutez la commande pour générer la solution.
msbuild ExtPkgDeployer.sln
La génération aboutit, et vous pouvez voir que sous le dossier <folder>\ExtPkgDeployer\bin\Debug
, les fichiers PkgFolder
et ExtPkgDeployer.dll
sont générés.
Étape 3 : Importer le package à l’aide de l’outil Package Deployer
Copiez les fichiers
PkgFolder
etExtPkgDeployer.dll
à partir du dossier<folder>\ExtPkgDeployer\bin\Debug
et collez-les dans l’emplacement<PackageDeployerToolLocation>\tools
.Exécutez l’outil en double-cliquant sur le fichier
PackageDeployer.exe
à partir du dossier d’enregistrement de l’outil Package Deployer.Dans l’écran d’introduction de l’outil Package Deployer, choisissez Continuer.
Dans l’écran d’authentification, fournissez les informations d’authentification pour vous connecter à l’instance Dynamics 365 Sales où vous voulez déployer le package. S’il y a plusieurs organisations et que vous souhaitez sélectionner l’organisation où le package Unified Service Desk sera déployé, activez la case à cocher Afficher la liste des organisations disponibles. Choisissez Connexion.
L’écran suivant affiche des informations détaillées sur le package sélectionné et les éléments qui seront installés sur votre instance de Dynamics 365 Sales. Passez les informations en revue et choisissez Suivant.
L’écran Prêt pour l’installation affiche le package sélectionné pour le déploiement et le nom de l’organisation Dynamics 365 Sales sur laquelle il sera déployé. Passez les informations en revue et choisissez Suivant.
L’écran suivant indique le statut de validation du package sélectionné pour le déploiement. Une fois la validation terminée, choisissez Suivant.
La page suivante affiche le statut du déploiement du package. Cliquez sur Suivant.
L’écran suivant indique le nom et les informations relatives au package que vous venez de déployer. Passez en revue les informations, puis choisissez Terminer pour quitter l’outil Package Deployer.
Après avoir déployé le package, un nouveau type de carte est créé avec un ID - 2183dfc0-3c1c-45b7-a331-1943880c25c6
, qui est défini dans le schéma (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829).
Étape 4 : Vérifier le nouveau type de carte
Vérifiez le type de carte avec un ID « 2183dfc0-3c1c-45b7-a331-1943880c25c6 ». Envoyez une requête de méthode GET.
Requête
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
Réponse
{
"@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
}
Étape 5 : Créer une carte d’action pour le nouveau type de carte à l’aide de l’API Web
Créez une carte d’action pour le nouveau type de carte créé à l’aide de l’outil Package Deployer. Envoyez une requête de méthode POST.
Demander
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)
Note
Ouvrez la console du navigateur et exécutez la commande, sessionStorage.clear();
pour effacer le cache de la session.
Étape 6 : Vérifier la nouvelle carte personnalisée
Vous pouvez vérifier que les cartes personnalisées sont créées dans votre organisation en tant qu’utilisateur final et en tant qu’administrateur.
En tant qu’utilisateur final
Connectez-vous à Dynamics 365 Sales.
Sous la section Assistant, vous pouvez voir votre carte d’action créée.
En tant qu’administrateur
Connectez-vous à Dynamics 365 Sales et accédez à l’application Centre des ventes.
Accédez à Changer de zone et sélectionnez Paramètres de Sales Insights.
Dans le plan de site, sélectionnez Cartes d’information sous Assistant pour accéder à la page Gérer les cartes d’information.
Dans la page Gérer les cartes d’information, une option permet d’activer les cartes d’action personnalisées créées dans votre organisation.
Pour en savoir plus sur la manière d’activer les cartes, voir Activer ou désactiver les cartes d’information.
Vous ne trouvez pas les options dans votre application ?
Il existe trois possibilités :
- Vous n’avez pas la licence ou le rôle nécessaire. Consultez la section Exigences en matière de licence et de rôle en haut de cette page.
- Votre administrateur n’a pas activé la fonctionnalité.
- Votre organisation utilise une application personnalisée. Consultez votre administrateur pour connaître les étapes exactes. Les étapes décrites dans cet article sont spécifiques aux applications prêtes à l’emploi Centre des ventes ou Sales Professional.