Esempio: estendere il tipo di scheda Assistente (scheda personalizzata)
Informazioni sul download e su quali risorse sono disponibili per creare azioni personalizzate o informazioni su come estendere la scheda azione Assistente.
Requisiti di licenza e ruoli
Tipo di requisito | Devi avere |
---|---|
Licenza | Dynamics 365 Sales Premium Ulteriori informazioni: Prezzi di Dynamics 365 Sales |
Ruoli di sicurezza | Addetto personalizzazione del sistema Maggiori informazioni: Ruoli di sicurezza predefiniti per Sales |
Creare una scheda azione personalizzata
Il processo seguente illustra come creare una scheda personalizzata:
- Passaggio 1: scaricare la soluzione di esempio per estendere il tipo di scheda Assistente
- Passaggio 2: creare la soluzione (ExtPkgDeployer.sln)
- Passaggio 3: importare il pacchetto mediante lo strumento Package Deployer
- Passaggio 4: verificare il nuovo tipo scheda
- Passaggio 5: creare la scheda azione per il nuovo tipo di scheda mediante l'API Web.
- Passaggio 6: verificare la nuova scheda personalizzata
Prerequisiti
Rivedi i prerequisiti prima di creare le schede personalizzate nell'organizzazione:
Devi disporre dello strumento Package Deployer (packagedeployer.exe) per la distribuzione di pacchetti. Per scaricare Package Deployer, vedi Scaricare gli strumenti da NuGet
Per utilizzare questa funzionalità, devi acquistare una licenza Dynamics 365 Sales Insights o avviare una versione di valutazione per utilizzare le funzionalità di Sales Insights.
Passaggio 1: scaricare la soluzione di esempio per estendere il tipo di scheda Assistente
Scaricare la soluzione scheda personalizzata di esempio.
Gli esempi mostrano come creare una scheda personalizzata in Assistente a livello di programmazione.
Vai al percorso ExtPkgDeployer\PkgFolder\extensibility_example_sol\WebResources
. Nella cartella WebResources, sono visibili tre file per cui è necessario creare una scheda personalizzata.
Definizione dello schema (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)
Comando (new_commands8db43275-0291-401d-923a-90a6c373cc18)
Icona (new_msicon6aa7c568-4830-4da6-89f9-18a8fd9c2285)
Definizione dello schema (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)
Contiene la definizione dello schema per il nuovo tipo di scheda.
Nota
Verifica che l'ID tipo di scheda sia maggiore di 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)
Il file contiene il comando della scheda azione.
function CardCommand() {
window.open("https://aka.ms/salesai-raext");
}
Quando esegui il comando, questo viene richiamato con RibbonDiff
definito in customization.xml dell'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>
Icona (new_msicon6aa7c568-4830-4da6-89f9-18a8fd9c2285)
Il file contiene l'icona utilizzata per la scheda.
Passaggio 2: creare la soluzione (ExtPkgDeployer.sln)
Apri il prompt dei comandi (cmd).
Vai alla cartella radice.
C:\<directory>\RACards Extensibility Example\RACards Extensibility Example\ExtPkgDeployer\PkgFolder
Esegui il comando per creare la soluzione.
msbuild ExtPkgDeployer.sln
La creazione è riuscita e puoi vedere che nel percorso <folder>\ExtPkgDeployer\bin\Debug
, sono stati generati PkgFolder
e ExtPkgDeployer.dll
.
Passaggio 3: importare il pacchetto mediante lo strumento Package Deployer
Copia
PkgFolder
eExtPkgDeployer.dll
dalla cartella<folder>\ExtPkgDeployer\bin\Debug
e incollata nel percorso<PackageDeployerToolLocation>\tools
.Esegui lo strumento facendo doppio clic su
PackageDeployer.exe
dalla cartella in cui hai salvato lo strumento Package Deployer.Nella schermata introduttiva dello strumento Package Deployer scegli Continua.
Nella schermata di autenticazione immetti i dettagli di autenticazione per connetterti all'istanza di Dynamics 365 Sales in cui desideri distribuire il pacchetto. Se disponi di più organizzazioni e desideri selezionare l'organizzazione in cui si vuoi distribuire il pacchetto Unified Service Desk, seleziona la casella di controllo Visualizza l'elenco delle organizzazioni disponibili. Scegliere Accedi.
Nella schermata successiva vengono visualizzate informazioni dettagliate sul pacchetto selezionato e sulle funzionalità che verranno installate nell'istanza di Dynamics 365 Sales. Esamina le informazioni e scegli Avanti.
Nella schermata Inizio installazione vengono visualizzati il pacchetto selezionato per la distribuzione e il nome dell'organizzazione Dynamics 365 Sales nella quale sarà distribuito il pacchetto. Esamina le informazioni e scegli Avanti.
Nella schermata successiva viene visualizzato lo stato di convalida del pacchetto selezionato per la distribuzione. Una volta completata la convalida con esito positivo, scegliere Avanti.
Nella pagina successiva viene visualizzato lo stato di distribuzione del pacchetto. Fare clic su Avanti.
Nella schermata successiva vengono visualizzati il nome e le informazioni sul pacchetto appena distribuito. Esamina le informazioni e scegli Fine per uscire dallo strumento Package Deployer.
Dopo la configurazione del pacchetto, un nuovo tipo di scheda verrà creato con un ID - 2183dfc0-3c1c-45b7-a331-1943880c25c6
, definito nello schema (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829).
Passaggio 4: verificare il nuovo tipo scheda
Verifica il tipo di scheda con un ID ''2183dfc0-3c1c-45b7-a331-1943880c25c6". Invia una richiesta di metodo GET.
Richiesta
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
Risposta
{
"@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
}
Passaggio 5: creare la scheda azione per il nuovo tipo di scheda mediante l'API Web.
Creare una scheda azione per il nuovo tipo di scheda creato tramite Package Deployer. Invia una richiesta di metodo POST.
Richiedi
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
Apri la console del browser ed esegui il comando, sessionStorage.clear();
per eliminare la cache della sessione.
Passaggio 6: verificare la nuova scheda personalizzata
Puoi verificare le schede personalizzate create nell'organizzazione come utente finale e come amministratore.
Come utente finale
Accedi a Dynamics 365 Sales.
Nella sezione Assistente, puoi visualizzare la scheda azione che hai creato.
Come amministratore
Accedi a Dynamics 365 Sales e seleziona l'app Hub delle vendite.
Vai a Modifica area e seleziona Impostazioni di Sales Insights.
Nella mappa del sito seleziona Schede di informazioni dettagliate in Assistente per andare alla pagina Gestisci schede di informazioni dettagliate.
Nella scheda Gestisci schede di informazioni dettagliate, viene visualizzata un'opzione per abilitare le schede azioni personalizzate create nell'organizzazione.
Per ulteriori informazioni su come abilitare le schede, vedi Attivare o disattivare le schede di informazioni dettagliate.
Non riesci a trovare le opzioni nella tua app?
Le possibilità sono tre:
- Non hai la licenza o il ruolo necessari. Consulta la sezione Requisiti di licenza e ruolo nella parte superiore di questa pagina.
- L'amministratore non ha attivato la funzionalità.
- L'organizzazione utilizza un'app personalizzata. Rivolgiti all'amministratore per verificare i passaggi esatti. I passaggi descritti in questo articolo sono specifici per le app Hub delle vendite e Sales Professional predefinite.