範例:擴充小幫手卡片類型 (自訂卡片)
了解如何下載自訂卡片以及存在哪些可用來建立自訂動作的資源,或了解如何擴充小幫手動作卡。
建立自訂動作卡
下列程序說明如何建立自訂卡片:
- 步驟 1:下載擴充小幫手卡片類型範例解決方案
- 步驟 2:建置解決方案 (ExtPkgDeployer.sln)
- 步驟 3:使用 Package Deployer 工具匯入套件
- 步驟 4:驗證新的卡片類型
- 步驟 5:使用 Web API 建立新卡片類型的動作卡。
- 步驟 6:驗證新的自訂卡片
先決條件
在您的組織中建立自訂卡片之前,請先檢閱先決條件:
您必須有 Package Deployer 工具 (packagedeployer.exe) 才能部署套件。 若要下載 Package Deployer,請參閱從 NuGet 下載工具
若要使用此功能,您必須購買 Dynamics 365 Sales Insights 授權或開始試用,才能使用 Sales Insights 功能。
步驟 1:下載擴充小幫手卡片類型範例解決方案
下載範例自訂卡片解決方案。
範例示範如何以程式設計方式,在小幫手中建立自訂卡片。
移至路徑 ExtPkgDeployer\PkgFolder\extensibility_example_sol\WebResources
。 在 WebResources 資料夾中,您可以看見三個建立自訂卡片所需的檔案。
結構定義 (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)
命令 (new_commands8db43275-0291-401d-923a-90a6c373cc18)
圖示 (new_msicon6aa7c568-4830-4da6-89f9-18a8fd9c2285)
結構定義 (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829)
包含新卡片類型的結構描述定義。
Note
請確定卡片類型識別碼值大於 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>
命令 (new_commands8db43275-0291-401d-923a-90a6c373cc18)
此檔案包含動作卡的命令。
function CardCommand() {
window.open("https://aka.ms/salesai-raext");
}
當您執行命令時,會透過 ActionCard 實體的 customization.xml 中所定義的 RibbonDiff
叫用命令。
<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><Dependencies><Dependency componentType="WebResource"/></Dependencies></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><Dependencies><Dependency componentType="WebResource"/></Dependencies></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><Dependencies><Dependency componentType="WebResource"/></Dependencies></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>
圖示 (new_msicon6aa7c568-4830-4da6-89f9-18a8fd9c2285)
此檔案包含卡片使用的圖示。
步驟 2:建置解決方案 (ExtPkgDeployer.sln)
開啟命令提示字元 (cmd)。
移至根資料夾。
C:\<directory>\RACards Extensibility Example\RACards Extensibility Example\ExtPkgDeployer\PkgFolder
執行命令以建置解決方案。
msbuild ExtPkgDeployer.sln
建置成功後,您可以看到 <folder>\ExtPkgDeployer\bin\Debug
底下產生了 PkgFolder
和 ExtPkgDeployer.dll
。
步驟 3:使用 Package Deployer 工具匯入套件
從
<folder>\ExtPkgDeployer\bin\Debug
資料夾複製PkgFolder
和ExtPkgDeployer.dll
,然後在<PackageDeployerToolLocation>\tools
位置貼上。在您儲存 Package Deployer 工具的資料夾中按兩下
PackageDeployer.exe
,以執行工具。在 Package Deployer 工具的簡介畫面,選擇繼續。
在驗證畫面中,提供驗證詳細資料,連線到您想要部署套件的 Dynamics 365 Sales 執行個體。 如果您有多個組織,而且想要選取您要部署 Unified Service Desk 套件的組織,請選取顯示可用組織清單核取方塊。 選擇登入。
下一個畫面會顯示所選取套件的詳細資訊,以及將會安裝在 Dynamics 365 Sales 執行個體的項目。 檢閱資訊,然後選擇下一步。
安裝準備就緒畫面會顯示選取要部署的套件和部署到的 Dynamics 365 Sales 組織名稱。 檢閱資訊,然後選擇下一步。
下一個畫面會顯示選取要部署之套件的驗證狀態。 順利完成驗證後,選擇下一步。
下一個頁面顯示套件部署狀態。 按下一步。
下一個畫面顯示您剛部署套件的名稱和相關資訊。 檢閱資訊,然後選擇完成結束 Package Deployer 工具。
套件部署之後,會建立識別碼為 00aa00aa-bb11-cc22-dd33-44ee44ee44ee
的新卡片類型,此類型是在結構描述 (new_cardtype_schemaxml9dd7e039-33a1-4778-9972-66536dc5e829) 中定義。
步驟 4:驗證新的卡片類型
驗證辨識碼為 '00aa00aa-bb11-cc22-dd33-44ee44ee44ee' 的卡片類型。 傳送 GET 方法要求。
要求
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
回覆
{
"@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
}
步驟 5:使用 Web API 建立新卡片類型的動作卡
針對使用 Package Deployer 所建立的新卡片類型建立動作卡。 傳送 POST 方法要求。
Request
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})"
}
回應
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)
Note
開啟瀏覽器主控台,並執行命令 sessionStorage.clear();
以清除工作階段快取。
步驟 6:驗證新的自訂卡片
您可以透過使用者身分和系統管理員身分確認是否已在您的組織中建立自訂卡片。
以使用者身分
登入 Dynamics 365 Sales。
在小幫手區段中,您可以看到已建立的動作卡。
以系統管理員身分
登入 Dynamics 365 Sales,然後移至銷售中心應用程式。
移至變更區域,然後選取 Sales Insights 設定。
在網站地圖上,選取小幫手下的見解卡片,以移至管理見解卡片頁面。
在管理見解卡片頁面上,您會看到可在您的組織中啟用自訂動作卡的選項。
若要深入了解如何啟用卡片,請參閱開啟或關閉見解卡片。
找不到應用程式中的功能嗎?
有幾種可能性:
- 您沒有使用此功能的必要授權。 查看比較表和 授權指南以了解根據您的授權可使用哪些功能。
- 您沒有使用此功能的必要安全性角色。
- 若要設定或安裝功能,您必須有系統管理員和自訂角色
- 若要使用銷售相關功能,您必須有主要銷售角色
- 某些工作需要特定功能角色。
- 您的系統管理員並未開啟該功能。
- 您的組織正在使用自訂應用程式。 確切步驟請洽詢您的系統管理員。 本文章中所述的步驟係專用於銷售中心和 Sales Professional 等現成應用程式。