Ejemplo: Ampliar el tipo de tarjeta del asistente (tarjeta personalizada)

Obtenga información sobre cómo descargar el ejemplo y qué recursos están disponibles para crear acciones personalizadas o obtener información sobre cómo extender la tarjeta de acción del asistente.

Crear tarjeta de acción personalizada

El proceso siguiente explica cómo crear una tarjeta personalizada:

  • Paso 1: Descargue la solución de ejemplo del tipo de tarjeta extendida del asistente.
  • Paso 2: Compile la solución (ExtPkgDeployer.sln).
  • Paso 3: Importe el paquete mediante la herramienta del implementador de paquetes.
  • Paso 4: Compruebe el nuevo tipo de tarjeta.
  • Paso 5: Cree una tarjeta de acción para el nuevo tipo de tarjeta mediante la API web.
  • Paso 6: Compruebe la nueva tarjeta personalizada.

Requisitos previos

Revisar los requisitos previos antes de crear las tarjetas personalizadas de la organización:

  • Debe tener la herramienta Package Deployer (packagedeployer.exe) para implementar paquetes. Para descargar el implementador de paquetes, consulte Descarga de herramientas de NuGet.

  • Para usar esta característica debe comprar una licencia de Dynamics 365 Sales Insights o iniciar una prueba para utilizar características avanzadas de Sales Insights.

Paso 1: Descargue la solución de ejemplo para ampliar el tipo de tarjeta del Asistente

Descargar la solución de tarjeta personalizada de ejemplo.

Los ejemplos muestran cómo crear una tarjeta personalizada en el Asistente mediante programación.

Vaya al directorio ExtPkgDeployer\PkgFolder\extensibility_example_sol\WebResources. En la carpeta WebResources puede ver tres archivos necesarios para crear una tarjeta personalizada.

  • Definición de esquema (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)

  • Comando (new_commands8db43275-0291-401d-923a-90a6c373cc18)

  • Icono (new_msicon6aa7c568-4830-4da6-89f9-18a8fd9c2285)

Definición de esquema (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)

Definición de esquema para el nuevo tipo de tarjeta.

Nota

Asegúrese de que el valor del identificador del tipo de tarjeta es mayor que 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)

El archivo contiene el comando para la tarjeta de acción.

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

Al ejecutar el comando, el RibbonDiff definido en el customization.xml de la entidad ActionCard invoca el 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>

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

El archivo contiene el icono que usa la tarjeta.

Paso 2: Crear la solución (ExtPkgDeployer.sln)

  1. Abra la ventana de comandos (cmd).

  2. Vaya a la carpeta raíz. C:\<directory>\RACards Extensibility Example\RACards Extensibility Example\ExtPkgDeployer\PkgFolder

  3. Ejecute el comando para compilar la solución. msbuild ExtPkgDeployer.sln

La compilación se ha realizado correctamente. Verá que bajo el <folder>\ExtPkgDeployer\bin\Debug, el PkgFolder y el ExtPkgDeployer.dll se generan.

Paso 3: Importar el paquete mediante la herramienta Package Deployer

  1. Copie PkgFolder y ExtPkgDeployer.dll desde la carpeta <folder>\ExtPkgDeployer\bin\Debug y péguelo en la ubicación <PackageDeployerToolLocation>\tools.

  2. Ejecute la herramienta haciendo doble clic en PackageDeployer.exe desde la carpeta donde ha guardado la herramienta Package Deployer.

  3. En la pantalla de introducción de la herramienta Package Deployer, elija Continuar.

  4. En la pantalla de autenticación, proporcione los detalles de autenticación para conectarse a la instancia de Dynamics 365 Sales donde desea implementar el paquete. Si tiene varias organizaciones, y desea seleccionar la organización donde desea implementar el paquete Unified Service Desk, active la casilla Mostrar la lista de organizaciones disponibles. Elija Iniciar sesión.

  5. La siguiente pantalla muestra información detallada sobre el paquete seleccionado y los elementos que se instalarán en la instancia de Dynamics 365 Sales. Revise la información y elija Siguiente.

  6. La pantalla Preparado para instalar muestra el paquete seleccionado para implementación y el nombre de la organización de Dynamics 365 Sales donde se implementará. Revise la información y elija Siguiente.

  7. La pantalla siguiente muestra el estado de validación del paquete seleccionado para implementar. Después de que la validación se complete con éxito, elija Siguiente.

  8. La siguiente página muestra el estado de la implementación del paquete. Haga clic en Siguiente.

  9. La pantalla siguiente muestra el nombre y la información del paquete que acaba de implementar. Revise la información y elija Finalizar para salir de la herramienta Package Deployer.

Tras implementar el paquete, se crea un nuevo tipo de tarjeta con un identificador 00aa00aa-bb11-cc22-dd33-44ee44ee44ee, que se define en el esquema (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829).

Paso 4: Comprobar el nuevo tipo de tarjeta

Verifique el tipo de tarjeta con el ID '00aa00aa-bb11-cc22-dd33-44ee44ee44ee'. Envíe una solicitud de método GET.

Solicitud

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  

Respuesta

{
"@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
}

Paso 5: Crear la tarjeta de acción para el nuevo tipo de tarjeta mediante API web.

Cree una tarjeta de acción para el nuevo tipo de tarjeta creado mediante el Package Deployer. Envíe una solicitud de método POST.

Solicitud

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

Respuesta

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

Abra la consola del explorador y ejecute el comando sessionStorage.clear(); para borrar la caché de sesión.

Paso 6: Comprobar la nueva tarjeta personalizada

Puede comprobar que las tarjetas personalizadas se crean en la organización como usuario final y como administrador.

Como usuario final

  1. Inicie sesión en Dynamics 365 Sales.

  2. En la sección Asistente puede ver la tarjeta de acción creada.

    Captura de pantalla de un ejemplo de tarjeta de acción extendida.

Como administrador

  1. Inicie sesión en Dynamics 365 Sales y vaya a la aplicación Centro de ventas.

  2. Vaya a Cambiar área y seleccione Configuración de Sales Insights.

  3. En el mapa del sitio, seleccione Tarjetas de información en Asistente para ir a la página Administrar tarjetas de información.

  4. En la página Administrar tarjetas de información verá una opción para habilitar tarjetas de acciones personalizadas creadas en su organización.

Para obtener más información sobre cómo activar las tarjetas, consulte Activar o desactivar tarjetas de información.

¿No encuentra las características en su aplicación?

Hay algunas posibilidades:

  • No tiene la licencia necesaria para usar esta característica. Consulte la tabla comparativa y la guía de licencias para ver qué funciones están disponibles con su licencia.
  • No tiene el rol de seguridad necesario para usar esta característica.
  • Su administrador no ha activado la característica.
  • Su organización está usando una aplicación personalizada. Consulte al administrador para conocer los pasos exactos. Los pasos descritos en este artículo son específicos de las aplicaciones predeterminadas Sales Hub y Sales Professional.

Cree tarjetas personalizadas en Asistente

Configurar Asistente

Dirigir las comunicaciones con los clientes con el asistente