Dela via


Exempel: Utöka korttypen för assistent (anpassade kort)

Lär dig mer om hur du hämtar och vilka resurser som finns för att skapa anpassade åtgärder eller lär dig mer om hur du utökar åtgärdskort för assistenten.

Licens- och rollbehörigheter

Kravtyp Du måste ha
Licens Dynamics 365 Sales Premium
Mer information: Prissättning för Dynamics 365 Sales
Säkerhetsroller Systemanpassare
Mer information: Fördefinierade säkerhetsroller för Sales

Skapa ett anpassat åtgärdskort

Följande procedur förklarar hur du skapar ett anpassat kort:

  • Steg 1: Hämta exempellösning för den utökade korttypen för assistent
  • Steg 2: bygg lösningen (ExtPkgDeployer.sln)
  • Steg 3: importera paketet med hjälp av Package Deployer-verktyget
  • Steg 4: Kontrollera den nya korttypen
  • Steg 5: Skapa åtgärdskort för den nya korttypen med webb-API.
  • Steg 6: Kontrollera det nya anpassade kortet

Förutsättningar

Granska kraven innan du skapar anpassade kort i organisationen:

  • Du måste använda Package Deployer-verktyget (packagedeployer.exe) för att distribuera paket. För att hämta Package Deployer, se Hämta verktyg från NuGet

  • För att använda den här funktionen måste du köpa en Dynamics 365 Sales Insights-licens eller starta en utvärdering för att kunna använda Sales Insights-funktioner.

Steg 1: Hämta exempellösning för den utökade korttypen för assistent

Hämta exempel på lösningen för anpassade kort.

Exemplen visar hur du skapar ett anpassat kort i assistenten programmässigt.

Gå till sökvägen ExtPkgDeployer\PkgFolder\extensibility_example_sol\WebResources. Under mappen WebResources finns tre filer som krävs för att skapa ett anpassat kort.

  • Schemadefinitionen (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)

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

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

Schemadefinitionen (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)

Den innehåller schemadefinitionen för nya korttypen.

Kommentar

Se till att ID-värde för korttypen är större än 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>

Kommando (new_commands8db43275-0291-401d-923a-90a6c373cc18)

Filen innehåller kommandot för åtgärdskortet.

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

När du kör kommandot kommer kommandot att anropas via RibbonDiff som definieras i customization.xml av entiteten 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>

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

Filen innehåller den ikon som används för kortet.

Steg 2: bygg lösningen (ExtPkgDeployer.sln)

  1. Öppna kommandotolken (cmd).

  2. Gå till rotmappen. C:\<directory>\RACards Extensibility Example\RACards Extensibility Example\ExtPkgDeployer\PkgFolder

  3. Utföra kommandot för att skapa lösningen. msbuild ExtPkgDeployer.sln

Skapandet lyckas och visas under <folder>\ExtPkgDeployer\bin\Debug, PkgFolder och ExtPkgDeployer.dll genereras.

Steg 3: importera paketet med hjälp av Package Deployer-verktyget

  1. Kopiera PkgFolder och ExtPkgDeployer.dll från mappen <folder>\ExtPkgDeployer\bin\Debug och klistra in den på <PackageDeployerToolLocation>\tools-platsen.

  2. Kör verktyget genom att dubbelklicka på PackageDeployer.exe från den mapp där du sparade package deployer-verktyget.

  3. Välj Fortsätt i huvudfönstret för Package Deployer-verktyget.

  4. På autentiseringsskärmen anger du autentiseringsuppgifter för att ansluta till den Dynamics 365 Sales-instans där du vill distribuera paketet. Om du har flera organisationer på servern och vill välja den organisation där du vill distribuera Unified Service Desk-paketet markerar du kryssrutan Visa alltid listan över tillgängliga organisationer. Välj Logga in.

  5. Nästa sida visar detaljerad information om det valda paketet och vad som kommer att installeras på din Dynamics 365 Sales-instans. Granska informationen och välj Nästa.

  6. Skärmen Installationen kan påbörjas visas paketet som valts för distribution och namnet på den Dynamics 365 Sales-organisation där det ska distribueras. Granska informationen och välj Nästa.

  7. Nästa skärm visar verifieringsstatusen för det paket som valts för distribution. När verifieringen är klar väljer du Nästa.

  8. Nästa sida visar status för paketdistributionen. Klicka på Nästa.

  9. Nästa skärm visar namn och information om paketet som du just har distributerat. Granska informationen och välj Slutför för att avsluta Package Deployer-verktyget.

När du distribuerar paketet skapas en ny korttyp med ett ID - 2183dfc0-3c1c-45b7-a331-1943880c25c6, som har definierats i schemat (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829).

Steg 4: Kontrollera den nya korttypen

Kontrollera att korttypen har ID '2183dfc0-3c1c-45b7-a331-1943880c25c6'. Skicka en begäran om att hämta metod.

Begäran

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  

Svar

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

Steg 5: Skapa åtgärdskort för den nya korttypen med webb-API.

Skapa ett åtgärdskort för den nya korttypen som skapats med hjälp av package deployer. Skicka en begäran om att skicka metod.

Begär

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) 

Kommentar

Öppna webbläsarkonsolen och kör kommandot sessionStorage.clear(); för att rensa sessionens cacheminne.

Steg 6: Kontrollera det nya anpassade kortet

Du kan kontrollera anpassade kort som skapas i din organisation som slutanvändare och som administratör.

Som slutanvändare

  1. Logga in på Dynamics 365 Sales.

  2. Under avsnittet Assistent ser du skapade åtgärdskort.

    exempel på utökat åtgärdskort

Som administratör

  1. Logga in på Dynamics 365 Sales och gå till appen Försäljningsnav.

  2. Gå till Ändra område och ange Sales Insights-inställningar.

  3. På webbplatsöversikten väljer du Insiktskort under Assistenten för att gå till sidan Hantera insiktskort.

  4. På sidan Hantera insiktskort finns ett alternativ för att aktivera skapade anpassade åtgärdskort i din organisation.

Om du vill veta mer om hur du aktiverar kort läser du Aktivera eller inaktivera insiktskort.

Hittar du inte alternativen i appen?

Det finns tre möjliga anledningar:

  • Du har inte den licens eller roll som krävs. Kontrollera avsnittet Licens- och rollkrav överst på den här sidan.
  • Din administratör har inte aktiverat funktionen.
  • Din organisation använder en anpassad app. Kontakta administratören om du behöver hjälp med de exakta stegen. Stegen som beskrivs i den här artikeln gäller specifikt för de medföljande apparna Försäljningsnav och Sales Professional.

Skapa anpassade kort i assistenten

Konfigurera assistenten

Guida kundkommunikationen med assistenten