我有一个完全可定制的电子商务后端,我可以看到我的客户'概况和销售。我想在电话号码或电子邮件地址下集成一个链接,在我的Dynamics CRM上打开相应的联系页面。我做了一些研究,我看到了一些可能正在完成工作的URI模式,但每个实体都有自己的实体ID(GUID)。如何获取与电话号码(或电子邮件)匹配的实体的GUID,以打开其中显示的联系人的联系页面?通过Dynamics SOAP Web服务? 任何建议将不胜感激!
答案 0 :(得分:2)
使用web api端点过滤记录。对于例如在您的情况下客户(帐户/联系人):
主键始终为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"
}
]
}
然后,您可以构建一个URL,以帮助用户导航到记录:
http://consoto.com/myorganization/main.aspx?etn=account&pagetype=entityrecord&id=12345678-abf1-e511-80d5-00155d3af159
要使用SOAP端点,请使用SDK.Soap.js或XrmServiceToolKit.js等库。随着SOAP端点上的CRM路线图非常清晰(近期的折旧),web api应该是默认选项,至少可以实现。
答案 1 :(得分:0)
首先,您的电子商务解决方案使用哪种编程语言。这决定了你的进一步措施。或者更确切地说是CRM访问库可供选择。
基本上,如果您的后端用C#编写,那么您将不会遇到任何问题,因为该语言的SDK可立即使用。不过,其他语言比较棘手,我相信无论如何都可以找到所需的库。
接下来,您的后端应该查询CRM以获取记录所需的GUID。这是一个示例FetchXML查询,用于按contact
号码搜索mobilephone
:
<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可能需要通过授权程序。这可能会减慢您的流量。