从CRM 3.0中的另一个实体中提取数据?

时间:2010-08-03 13:24:08

标签: dynamics-crm crm dynamics-crm-3

我有一个包含三个字段的表单,我想根据不同实体的三个属性填充这些字段。最好的方法是什么?我根据我在网上发现的东西尝试了这个:

if (crmForm.all.new_name.DataValue == null) { return; }
var sdk = new XrmDataContext(null, null);
var id = crmForm.all.new_name.DataValue[0].id;
var fetchXml = "<fetch mapping=\"logical\"><entity name=\"mag_identificationtype\"><all-attributes /><filter type=\"and\"><condition attribute=\"new_advertisingrate\" operator=\"eq\" value=\"" + id + "\" /></filter></entity></fetch>";
var result = sdk.Fetch(fetchXml);
for (var i = 0; i < result.length; i++) {
crmForm.all.new_mediapaymentplan.DataValue = parseFloat(result[i].attributes["new_mediapaymentplan"]);
}
for (var i = 0; i < result.length; i++) {
crmForm.all.new_yellowpagepayment.DataValue = parseFloat(result[i].attributes["new_fixed_yellowpages_fee"]);
}
for (var i = 0; i < result.length; i++) {
crmForm.all.new_extrapayment.DataValue = parseFloat(result[i].attributes["new_extraadvertisingpayment"]);
}

...但它不起作用,我怀疑那是因为它是专为4.0设计的。有没有办法在3.0中实现这一点,如果有,那是什么?

2 个答案:

答案 0 :(得分:0)

您在代码中使用Advanced CRM Extensions for MS CRM 4.0是正确的,它不适用于3.0。

有许多方法可以在MS CRM 3.0中实现此目的。

  1. 您可以在创建或更新实体或相关实体时使用Callout程序集。

  2. 您可以在创建或更新实体或相关实体时使用自定义工作流程。

  3. 您可以创建一个计划的应用程序来填充这些字段。

  4. 您可以从表单中的JavaScript调用CRM Web服务来查找这些字段。

  5. 我不清楚这些实体是如何相关的。它们是1:N还是N:1

答案 1 :(得分:0)

我曾经遇到过类似的问题,正如Mark所说,你正在使用由XRM社区开发的CRM 4及更高版本的课程。

在您的情况下,我将使用XMLHTTP的原始Web服务调用,如本文所示。

http://blog.customereffective.com/blog/2008/02/calling-the-crm.html

http://ayazahmad.wordpress.com/2006/12/14/calling-custom-web-services-through-mscrm-30-form-a-way-to-duplicate-detection/

首先是调用CRM服务,我认为上面解释的例子来自CRM 3.0。 另一方面,第二个链接仅涉及从javascript调用Web服务,该过程与调用CRM Web服务相同,唯一需要更改的是端点URL。

这样做的方法是手动构建SOAP信封。我记得有一些javascript库可以提取,创建,更新......从javascript到CRM,但不记得它在哪里,我认为它是为CRM 4.0完成的,无论如何我要搜索它和把它贴在这里。

见到你

修改

此链接包含有关我所解释的内容的一些信息:

https://community.dynamics.com/product/crm/crmtechnical/b/crmdelvingintodynamics/archive/2008/07/11/a-microsoft-dynamics-crm-javascript-sdk.aspx

Ascentium曾经在他们的网站上拥有用于javascript的CRM SDK,但现在大部分链接都可以发送到Avanade博客,因此它是一个寻找更多新信息的好地方。

http://blogs.infinite-x.net/2008/07/15/ascentium-crmservice-javascript-library/

http://www.avanadeblog.com/xrm/

但请留意它准备好的版本。

见。