2016-11-07 41 views
2

我有一個完全可定製的電子商務後端,可以在其中查看我的客戶的資料和銷售情況。我會在電話號碼或電子郵件地址下面集成一個鏈接,在我的Dynamics CRM上打開相應的聯繫頁面。我做了一些研究,我看到了一些可能做這項工作的URI模式,但每個實體都有它自己的實體ID(GUID)。如何獲取與電話號碼(或電子郵件)相匹配的實體的GUID,以打開聯繫人頁面並顯示聯繫人信息?通過Dynamics SOAP Web服務? 任何意見將不勝感激!Dynamics CRM - 來自外部Web應用程序的頁面

回答

2

使用web api endpoint過濾記錄。對於例如你的情況的客戶(賬戶/聯繫人):

的主鍵始終entityname + id(所以如果你的實體名爲foo_bar這樣的名稱,實體主鍵(ID)是foo_barid)。

http://contoso.com/myorganization/api/data/v8.0/accounts?$filter=address1_telephone1 eq '123-456-7890'&$select=accountid 

結果:

{ 
    "@odata.context":"http://consoto.com/myorganization/api/data/v8.0/$metadata#accounts(accountid)","value":[ 
    { 
     "@odata.etag":"W/\"137091357\"","accountid":"12345678-abf1-e511-80d5-00155d3af123" 
    } 
    ] 
} 

然後,您可以建立一個網址,這將有助於用戶導航到該記錄:

http://consoto.com/myorganization/main.aspx?etn=account&pagetype=entityrecord&id=12345678-abf1-e511-80d5-00155d3af159 

要使用SOAP端點,使用圖書館等SDK.Soap.jsXrmServiceToolKit.js。隨着SOAP終端上的CRM路線圖非常明確(不久的將來折舊),web api應該成爲默認選項。

+0

謝謝你的回答!但WebApi僅適用於Dynamics 2016嗎?對於JS庫,可以在另一個Web App中使用這些庫,或者我必須將它們集成到Web Ressource中? –

0

首先,您的電子商務解決方案使用哪種編程語言。這決定了你的進一步步驟。或者是CRM訪問庫可供選擇。

基本上,如果您用C#編寫的後端,您將不會有任何問題,因爲該語言的SDK立即可用。其他的語言更棘手,不過,我相信無論如何可以找到所需的庫。

接下來,您的後端應該查詢CRM所需記錄的GUID。這裏通過mobilephone號搜索contact一個例子FetchXML查詢:

<fetch> 
    <entity name="contact" > 
    <attribute name="contactid" /> 
    <filter> 
     <condition attribute="mobilephone" operator="eq" value="555-555-555" /> 
    </filter> 
    </entity> 
</fetch> 

你造成GUID將在結果contactid場被發現。通過這個GUID你可以打開你需要的記錄。

雖然如果您已經定製了您的電子商務解決方案,那麼從CRM中獲取所有需要的信息並將其顯示在您自己的界面中會更有意義?

有時這可能是有益的,因爲將用戶重定向到CRM可能需要通過授權程序。這可能會減慢你的流量。

相關問題