知識庫搜尋控制項 (用戶端參考)
發行︰ 2017年1月
適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online
您可以將知識庫搜尋控制項新增至已啟用知識管理功能之 Dynamics 365 執行個體中的實體表單。 您可以使用此控制項,以程式設計方式來自動化或增強使用者使用該控制項時的搜尋體驗,以運用 Dynamics 365 中的知識。其他資訊:知識管理實體
注意
-
您可以選擇原生 Dynamics 365 知識或 Parature 知識做為知識管理及搜尋的來源。 如果您使用 Parature 做為知識庫來源,而且知識庫搜尋控制項存在於表單中,則應已建立與 Parature 的連接,您才能直接進行 Parature API 呼叫,而不需要安全性權杖。 不過,這些會是跨網域要求,因此您必須使用跨來源資源共用 (CORS)。
不支援 CRM Online 2016 更新 1 和 Dynamics 365 Service Pack 1 (內部部署) 中推出的下列新用戶端 API,如果您使用 Parature 做為知識庫來源:PostSearch 事件、addOnPostSearch、removeOnPostSearch、getTotalResultCount 和 openSearchResult。
-
在 CRM Online 2016 更新 1 和 Dynamics 365 SP1 (內部部署) 版本中,知識庫搜尋控制項也可針對 Dynamics 365 行動用戶端支援 (行動電話和平板電腦)。
知識庫搜尋控制項是一種 Xrm.Page.ui 控制項,它可支援控制項具備的所有標準方法。 不過它也支援其他事件和方法。 如需標準控制項方法的詳細資訊,請參閱 Xrm.Page.ui 控制項 (用戶端參考)。
如果您知道控制項的名稱,可以使用下列程式碼進行存取,其中 <name> 代表控制項的名稱。
kbSearchControl = Xrm.Page.getControl("<name>");
注意
當知識庫搜尋控制項新增至社交窗格時,名稱會是 "searchwidgetcontrol_notescontrol"。 此名稱不可以變更。
本主題的所有範例都將使用 kbSearchControl 表示表單中的知識庫搜尋控制項。
本主題內容
知識庫搜尋控制項事件
知識庫搜尋控制項方法
知識庫搜尋控制項事件
對這個控制項使用事件,可讓程式碼回應選取的或開啟的項目。
OnResultOpened
當知識庫文章在知識庫搜尋控制項中以並列方式或透過彈出動作開啟時,此事件就會發生。 使用 addOnResultOpened 和 removeOnResultOpened 方法來管理這個事件的事件處理常式。
OnSelection
當知識庫文章在知識庫搜尋控制項中選取時,此事件就會發生。 使用 addOnSelection 和 removeOnSelection 方法來管理這個事件的事件處理常式。
PostSearch
此事件發生在搜尋完成並顯示結果時。 使用新的 addOnPostSearch 和 removeOnPostSearch 方法來管理這個事件的事件處理常式。
知識庫搜尋控制項方法
使用方法讓知識庫搜尋控制項設定或移除事件處理常式,並且與搜尋查詢和搜尋結果互動。
addOnPostSearch
使用此方法新增事件處理常式至 PostSearch 事件。
參數:函數。 要新增的函數。
範例:將名為 myFunction 的函數新增至 PostSearch 事件。
kbSearchControl.addOnPostSearch(myFunction);
addOnResultOpened
使用此方法新增事件處理常式至 OnResultOpened 事件。
參數:函數。 要新增的函數。
範例:將名為 myFunction 的函數新增至 OnResultOpened 事件。
kbSearchControl.addOnResultOpened(myFunction);
addOnSelection
使用此方法新增事件處理常式至 OnSelection 事件。
參數:函數。 要新增的函數。
範例:將名為 myFunction 的函數新增至 OnSelection 事件。
kbSearchControl.addOnSelection(myFunction);
getSearchQuery
使用此方法取得做為知識庫管理控制項的搜尋準則使用的文字。
傳回值:字串。 搜尋查詢的文字。
範例:將變數 searchQuery 設定為搜尋查詢的文字。
var searchQuery = kbSearchControl.getSearchQuery();
getSelectedResults
使用此方法可取得目前選取的搜尋控制項結果。 目前選取的結果也代表目前開啟的結果。
傳回值:KBSearchResult。 目前選取的結果。
範例:將變數 kbSearchResult 設定為目前選取的結果。
var kbSearchResult = kbSearchControl.getSelectedResults();
KBSearchResult 屬性
下表說明 KBSearchResult 物件的屬性。
屬性 |
類型 |
描述 |
---|---|---|
answer |
String |
包含文章內容的 HTML 標記。 您可將此內容傳遞至自訂動作,該動作可將此內容包含在電子郵件中傳送給客戶。 |
articleId |
String |
Dynamics 365 或 Parature 部門中的文章識別碼 此值做為其他索引鍵使用。 您可以用它查看此文章是否已存在 Dynamics 365 中。 |
articleUid |
String |
Dynamics 365 或 Parature 系統的唯一文章識別碼。 使用 Parature 做為知識來源時,這會包含 Parature 帳戶識別碼及部門識別碼,例如「7924/8112/Article/25」。 此值做為其他索引鍵使用。 此識別碼是建立新的知識庫記錄同時建立文章關聯時所需 (如果尚未存在的話)。 |
attachmentCount |
編號 |
文章中的附件數目。 這只有在使用 Parature 做為知識來源時才適用。 |
createdOn |
Date |
文章建立的日期。 此值將使用目前使用者的時區及格式。 您可能想要在商務邏輯中使用文章期限。 |
expiredDate |
Date |
文章已過期或將要過期的日期。 使用 Dynamics 365 做為知識來源時,這會是 null。 您可以將這個日期與目前資料做比較,以判斷文章是否已過期。 此值會使用目前使用者的時區及格式。 |
folderHref |
字串 |
Parature 中文章的資料夾路徑連結。 這只有在使用 Parature 做為知識來源時才適用。 |
href |
字串 |
文章在 Parature API 中的直接連結,這可用來直接取得文章內容。 這只有在使用 Parature 做為知識來源時才適用。 |
isAssociated |
Boolean |
表示文章是否與上層記錄相關聯。 您可以在將文章與目前記錄產生關聯之前,使用表單指令碼或在表單指令碼起始的另一個程序中查看此值。 |
lastModifiedOn |
Date |
上次修改文章的日期。 此值將使用目前使用者的時區及格式。 |
publicUrl |
String |
文章的支援入口網站 URL。 如果入口網站 URL 選項已關閉,這會是空白。 使用自訂動作將此包含在電子郵件的內容連結中,傳送給客戶。 |
published |
Boolean |
指出文章是否處於已發行狀態。 如果已發行,則為 True,否則為 False。 您應該先檢查文章是否已發行,再將相關資訊傳送給客戶。 |
question |
String |
文章的標題。 如果您要在任何商務程序中參考文章,可以使用此值依名稱參考它。 |
rating |
Number |
文章的評等。 |
searchBlurb |
String |
一小段文章內容,當中包含搜尋查詢找到的區域。 使用此內容可在搜尋清單中提供文章的概要給使用者,幫助使用者判斷這是否就是他們尋找的文章。 |
serviceDeskUri |
String |
Dynamics 365 或 Parature 服務台中文章的連結。 使用此連結可透過 Dynamics 365 或 Parature 服務台開啟文章。 |
timesViewed |
Number |
客戶在入口網站上檢視文章的次數。 |
getTotalResultCount
取得搜尋控制項中找到的結果計數。
傳回值:整數。 搜尋結果的計數。
範例:將變數 searchCount 設定為搜尋控制項中搜尋結果的計數。
var searchCount = kbSearchControl.getTotalResultCount();
openSearchResult
藉由指定結果編號,開啟搜尋控制項中的搜尋結果。
var openResultStatus = kbSearchControl.openSearchResult(resultNumber, mode);
引數
resultNumber (Integer):數值,指定要開啟的結果編號。 結果編號從 1 開始。 必要。
mode (String):指定 "Inline" 或 "Popout"。 選擇性。 如果您未指定引數的值,則會使用預設 ("Inline") 選項。
"Inline" 模式會以內嵌方式開啟結果,在控制項的讀取窗格中,或是在參考資料面板的參考資料面板索引標籤中。 "Popout" 模式會在彈出視窗中開啟結果。
傳回值:布林值。 開啟指定的搜尋結果的狀態。 如果成功則傳回 1,不成功則傳回 0。 方法將傳回 -1,如果指定的 resultNumber 值不存在,或者指定的 mode 值無效。
removeOnPostSearch
使用此方法從 PostSearch 事件中移除事件處理常式。
參數:函數。 要移除的函數。
範例:將名為 myFunction 的函數從 PostSearch 事件中移除。
kbSearchControl.removeOnPostSearch(myFunction);
removeOnResultOpened
使用此方法從 OnResultOpened 事件中移除事件處理常式。
參數:函數。 要移除的函數。
範例:將名為 myFunction 的函數從 OnResultOpened 事件中移除。
kbSearchControl.removeOnResultOpened(myFunction);
removeOnSelection
使用此方法從 OnSelection 事件中移除事件處理常式。
參數:函數。 要移除的函數。
範例:將名為 myFunction 的函數從 OnSelection 事件中移除。
kbSearchControl.removeOnSelection(myFunction);
setSearchQuery
使用此方法設定做為知識庫管理控制項的搜尋準則使用的文字。
參數:字串。 搜尋查詢使用的文字。
範例:將搜尋查詢的文字設定為 "How to solve the problem"。
kbSearchControl.setSearchQuery("How to solve the problem");
另請參閱
在 Dynamics 365 中使用知識文章
在 Dynamics 365 中使用 Parature 知識
用戶端程式設計參考
撰寫 Microsoft Dynamics 365 表單的程式碼
在用戶端上擴充 Microsoft Dynamics 365
Microsoft Dynamics 365
© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權