Dynamics CRM - 来自外部Web应用程序的页面

时间:2016-11-07 16:34:23

标签: dynamics-crm crm microsoft-dynamics

我有一个完全可定制的电子商务后端,我可以看到我的客户'概况和销售。我想在电话号码或电子邮件地址下集成一个链接,在我的Dynamics CRM上打开相应的联系页面。我做了一些研究,我看到了一些可能正在完成工作的URI模式,但每个实体都有自己的实体ID(GUID)。如何获取与电话号码(或电子邮件)匹配的实体的GUID,以打开其中显示的联系人的联系页面?通过Dynamics SOAP Web服务? 任何建议将不胜感激!

2 个答案:

答案 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.jsXrmServiceToolKit.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可能需要通过授权程序。这可能会减慢您的流量。