1

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

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 中实现这一点,如果有,它是什么?

4

2 回答 2

0

您是正确的,您在代码中使用了 MS CRM 4.0 的高级开发人员扩展,它在 3.0 上不起作用。

在 MS CRM 3.0 中有多种方法可以实现这一点。

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

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

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

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

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

于 2010-08-07T15:23:15.687 回答
0

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

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

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

http://yazahmad.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 曾经在其 Web 中拥有用于 javascript 的 CRM SDK,但现在可用的大部分链接都发送到 Avanade 博客,因此这是查找更多新信息的好地方。

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

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

但请留意它准备的版本。

再见。

于 2011-04-14T13:58:27.697 回答