Przykład: Rozszerz typ karty Asystenta (karta niestandardowa)

Dowiedz się, jak pobrać i jakie zasoby są dostępne do tworzenia niestandardowych akcji lub uzyskaj więcej informacji na temat poszerzania karty akcji asystenta.

Wymagania dotyczące licencji i ról

Typ wymagania Musisz mieć
Licencja Dynamics 365 Sales Premium
Więcej informacji: Ceny aplikacji Dynamics 365 Sales
Role zabezpieczeń Konfigurator systemu
Więcej informacji: Predefiniowana role zabezpieczeń dla Sales

Utwórz niestandardową kartę akcji

Poniższy proces wyjaśnia, jak utworzyć kartę niestandardową:

  • Krok 1: Pobierz rozwiązanie przykładowe poszerzania karty asystenta
  • Krok 2: Stwórz rozwiązanie (ExtPkgDeployer.sln)
  • Krok 3: Importuj pakiet przy użyciu narzędzia Package deployer
  • Krok 4: Sprawdź nowy typ karty
  • Krok 5: Utwórz kartę akcji dla nowego typu karty przy użyciu interfejsu API sieci Web.
  • Krok 6: Sprawdź nową kartę niestandardową

Wymagania wstępne

Przed utworzeniem niestandardowych kart w organizacji należy przejrzeć wymagania wstępne:

  • Musisz posiadać narzędzie Package Deployer (packagedeployer.exe), aby wdrażać pakiety. Aby pobrać narzędzie Package deployer zobacz Pobieranie narzędzi z NuGet

  • Aby korzystać z tej funkcji należy zakupić licencję Dynamics 365 Sales Insights, lub rozpocząć wersję próbną, aby korzystać z funkcji Sales Insights.

Krok 1: Pobierz rozwiązanie przykładowe poszerzania karty asystenta

Pobierz przykładowe rozwiązanie karty niestandardowej.

Przykłady pokazują sposób programowego tworzenia karty niestandardowej w Asystencie.

Przejdź do ścieżki ExtPkgDeployer\PkgFolder\extensibility_example_sol\WebResources. W folderze WebResources możesz zobaczyć trzy pliki, które są wymagane do tworzenia karty niestandardowej.

  • Definicja schematu (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)

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

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

Definicja schematu (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)

Zawiera definicję schematu dla nowego typu karty.

Uwaga

Upewnij się, że wartość Identyfikatora typu karty jest większa niż 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>

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

Plik zawiera polecenie dla karty akcji.

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

Podczas wykonywania polecenia, polecenie jest wywoływane za pośrednictwem RibbonDiff zdefiniowanego w customization.xml encji 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>

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

Plik zawiera ikonę używaną dla karty.

Krok 2: Stwórz rozwiązanie (ExtPkgDeployer.sln)

  1. Otwórz wiersz polecenia (cmd).

  2. Przejdź do folderu głównego. C:\<directory>\RACards Extensibility Example\RACards Extensibility Example\ExtPkgDeployer\PkgFolder

  3. Wykonaj polecenie, aby utworzyć rozwiązanie. msbuild ExtPkgDeployer.sln

Kompilacja została zakończona pomyślnie i możesz zobaczyć, że w <folder>\ExtPkgDeployer\bin\Debug, PkgFolder i ExtPkgDeployer.dll zostały wygenerowane.

Krok 3: Importuj pakiet przy użyciu narzędzia Package deployer

  1. Skopiuj PkgFolder i ExtPkgDeployer.dll z folderu <folder>\ExtPkgDeployer\bin\Debug i wklej w lokalizacji <PackageDeployerToolLocation>\tools.

  2. Uruchom narzędzie klikając dwukrotnie PackageDeployer.exe z folderu, w którym zostało zapisane narzędzie Package Deployer.

  3. Na ekranie wprowadzającym narzędzia Package Deployer wybierz Kontynuuj.

  4. Na ekranie autoryzacji podaj szczegóły uwierzytelniania, aby nawiązać połączenie z wystąpieniem Dynamics 365 Sales, w którym chcesz wdrożyć pakiet. Jeśli masz wiele organizacji i chcesz wybrać organizację, w której chcesz wdrożyć pakiet Unified Service Desk, wybierz pole wyboru Wyświetlaj listę dostępnych organizacji. Wybierz Zaloguj.

  5. Następny ekran wyświetla szczegółowe informacje na temat zaznaczonego pakietu i rzeczy, które zostaną instalowane na Twoim wystąpieniu Dynamics 365 Sales. Przejrzyj informacje i wybierz Dalej.

  6. Ekran Gotowy do instalacji wyświetla pakiet wybrany do wdrożenia i nazwę organizacji Dynamics 365 Sales, w której zostanie on wdrożony. Przejrzyj informacje i wybierz Dalej.

  7. Następny ekran wyświetla stan sprawdzania poprawności pakietu wybranego do wdrożenia. Po pomyślnym zakończeniu sprawdzania poprawności wybierz Dalej.

  8. Następna strona wyświetla stan wdrożenia pakietu. Kliknij przycisk Dalej.

  9. Następny ekran wyświetla nazwę i informacje o pakiecie, która został wdrożony. Przejrzyj informacje, i wybierz Zakończ, aby wyjść z narzędzia Package Deployer.

Po wdrożeniu pakietu, nowy typ karty jest tworzony z Identyfikatorem - 2183dfc0-3c1c-45b7-a331-1943880c25c6, który jest zdefiniowany w schemacie (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829).

Krok 4: Sprawdź nowy typ karty

Sprawdź typ karty z identyfikatorem '2183dfc0-3c1c-45b7-a331-1943880c25c6'. Wyślij żądanie metody GET.

Żądanie

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  

Odpowiedź

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

Krok 5: Utwórz kartę akcji dla nowego typu karty przy użyciu interfejsu API sieci Web

Utwórz kartę akcji dla nowego typu karty utworzonego przy użyciu narzędzia Package Deployer. Wyślij żądanie metody POST.

Zażądaj

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) 

Uwaga

Otwórz konsolę przeglądarki i uruchom polecenie, sessionStorage.clear();, aby wyczyścić pamięć podręczną sesji.

Krok 6: Sprawdź nową kartę niestandardową

Można sprawdzić, czy niestandardowe karty są tworzone w organizacji jako użytkownik końcowy i jako administrator.

Jako użytkownik końcowy

  1. Zaloguj się w Dynamics 365 Sales.

  2. W sekcji Asystent widzisz utworzoną kartę akcji.

    przykład rozszerzonej karty akcji

Jako administrator

  1. Zaloguj się do Dynamics 365 Sales i przejdź do Aplikacja centrum sprzedaży.

  2. Przejdź do Zmień obszar i wybierz Ustawienia Sales Insights.

  3. Na mapie witryny wybierz Karty Insights w Asystent, aby przejść na stronę Zarządzanie kartami wyników analiz.

  4. Na stronie Zarządzanie kartami wyników analiz widzisz opcję umożliwiającą włączanie niestandardowych kart akcji tworzonych w organizacji.

Aby dowiedzieć się więcej o sposobie włączania kart, zobacz Włączanie i wyłączanie kart wyników analiz.

Nie możesz znaleźć opcji w swojej aplikacji?

Istnieją trzy możliwości:

  • Nie masz wymaganej licencji ani roli. Zapoznaj się z sekcją Wymagania dotyczące licencji i ról w górnej części tej strony.
  • Administrator nie włączył tej funkcji.
  • Organizacja używa niestandardowej aplikacji. Skontaktuj się z administratorem, aby poznać dokładne kroki. Kroki opisane w tym artykule są specyficzne dla gotowej aplikacjach Centrum sprzedaży lub Sales Professional.

Utwórz karty niestandardowe w Asystencie

Konfigurowanie Asystenta

Używanie asystenta w celu prowadzenia komunikacji z klientami