Esempio: estendere il tipo di scheda Assistente (scheda personalizzata)

Informazioni su come scaricare l'esempio e le risorse disponibili per creare azioni personalizzate o informazioni sull'estensione della scheda di azione dell'assistente.

Creare una scheda azione personalizzata

Il processo seguente illustra come creare una scheda personalizzata:

  • Passaggio 1: Scarica l'esempio di soluzione per estendere il tipo di scheda assistente.
  • Passaggio 2: Compilare la soluzione (ExtPkgDeployer.sln).
  • Passaggio 3: Importare il pacchetto usando lo strumento di distribuzione del pacchetto.
  • Passaggio 4: Verificare il nuovo tipo di scheda.
  • Passaggio 5: Creare una scheda azione per il nuovo tipo di scheda usando 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 il pacchetto deployer, vedere Scaricare gli strumenti da NuGet.

  • Per utilizzare questa funzionalità, devi acquistare una licenza Dynamics 365 Remote Assist 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)

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>aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb</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 per la scheda azione.

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

Quando si esegue il comando , l'oggetto RibbonDiff definito nella customization.xml dell'entità ActionCard richiama il comando .

<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 usata dalla scheda.

Passaggio 2: creare la soluzione (ExtPkgDeployer.sln)

  1. Aprire il prompt dei comandi (cmd).

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

  3. Eseguire il comando per compilare la soluzione. msbuild ExtPkgDeployer.sln

La compilazione ha esito positivo. Vedi che sotto il <folder>\ExtPkgDeployer\bin\Debug, il PkgFolder e il ExtPkgDeployer.dll vengono generati.

Passaggio 3: importare il pacchetto mediante lo strumento Package Deployer

  1. Copia PkgFolder e ExtPkgDeployer.dll dalla cartella <folder>\ExtPkgDeployer\bin\Debug e incolla nella destinazione <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 Remote Assist 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 Remote Assist. 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 Remote Assist 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 - 00aa00aa-bb11-cc22-dd33-44ee44ee44ee, 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 ''00aa00aa-bb11-cc22-dd33-44ee44ee44ee". Invia una richiesta di metodo GET.

Richiesta

GET [Organization URI]/api/data/v9.0/cardtype(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) 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.

Richiesta

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

Risposta

HTTP/1.1 204 No Content  
OData-Version: 4.0  
OData-EntityId: http://[Organization URI]/api/data/v9.0/actioncard(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) 

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

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

    Screenshot di un esempio di carta d'azione estesa.

Come amministratore

  1. Accedi a Dynamics 365 Remote Assist 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 la funzionalità nella tua app?

Esistono alcune possibilità:

  • Non disponi della licenza necessaria per utilizzare questa funzionalità. Consulta la tabella di confronto e la guida alle licenze per vedere quali funzionalità sono disponibili con la tua licenza.
  • Non disponi del ruolo di sicurezza necessario per utilizzare questa funzionalità.
  • 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 Sales Hub e Sales Professional fornite di serie.

Creare schede personalizzate nell'assistente

Configurare l'assistente

Guida per le comunicazioni dei clienti con l'assistente