Condividi tramite


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

Icona (new_msicon6aa7c568-4830-4da6-89f9-18a8fd9c2285)

Il file contiene l'icona utilizzata per la scheda.

Passaggio 2: creare la soluzione (ExtPkgDeployer.sln)

  1. Apri il prompt dei comandi (cmd).

  2. Vai alla cartella radice. C:\<directory>\RACards Extensibility Example\RACards Extensibility Example\ExtPkgDeployer\PkgFolder

  3. 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

  1. Copia PkgFolder e ExtPkgDeployer.dll dalla cartella <folder>\ExtPkgDeployer\bin\Debug e incollata nel percorso <PackageDeployerToolLocation>\tools.

  2. Esegui lo strumento facendo doppio clic su PackageDeployer.exe dalla cartella in cui hai salvato lo strumento Package Deployer.

  3. Nella schermata introduttiva dello strumento Package Deployer scegli Continua.

  4. 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.

  5. 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.

  6. 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.

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

  8. Nella pagina successiva viene visualizzato lo stato di distribuzione del pacchetto. Fare clic su Avanti.

  9. 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

  1. Accedi a Dynamics 365 Sales.

  2. Nella sezione Assistente, puoi visualizzare la scheda azione che hai creato.

    Esempio di scheda azione estesa

Come amministratore

  1. Accedi a Dynamics 365 Sales e seleziona l'app Hub delle vendite.

  2. Vai a Modifica area e seleziona Impostazioni di Sales Insights.

  3. Nella mappa del sito seleziona Schede di informazioni dettagliate in Assistente per andare alla pagina Gestisci schede di informazioni dettagliate.

  4. 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.

Creare schede personalizzate nell'assistente

Configurare l'assistente

Guida per le comunicazioni dei clienti con l'assistente