我有一个包含三个字段的表单,我想根据不同实体的三个属性填充这些字段。最好的方法是什么?我根据我在网上发现的东西尝试了这个:
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中实现这一点,如果有,那是什么?
答案 0 :(得分:0)
您在代码中使用Advanced CRM Extensions for MS CRM 4.0是正确的,它不适用于3.0。
有许多方法可以在MS CRM 3.0中实现此目的。
您可以在创建或更新实体或相关实体时使用Callout程序集。
您可以在创建或更新实体或相关实体时使用自定义工作流程。
您可以创建一个计划的应用程序来填充这些字段。
您可以从表单中的JavaScript调用CRM Web服务来查找这些字段。
我不清楚这些实体是如何相关的。它们是1:N还是N:1
答案 1 :(得分:0)
我曾经遇到过类似的问题,正如Mark所说,你正在使用由XRM社区开发的CRM 4及更高版本的课程。
在您的情况下,我将使用XMLHTTP的原始Web服务调用,如本文所示。
http://blog.customereffective.com/blog/2008/02/calling-the-crm.html
首先是调用CRM服务,我认为上面解释的例子来自CRM 3.0。 另一方面,第二个链接仅涉及从javascript调用Web服务,该过程与调用CRM Web服务相同,唯一需要更改的是端点URL。
这样做的方法是手动构建SOAP信封。我记得有一些javascript库可以提取,创建,更新......从javascript到CRM,但不记得它在哪里,我认为它是为CRM 4.0完成的,无论如何我要搜索它和把它贴在这里。
见到你
修改强>
此链接包含有关我所解释的内容的一些信息:
Ascentium曾经在他们的网站上拥有用于javascript的CRM SDK,但现在大部分链接都可以发送到Avanade博客,因此它是一个寻找更多新信息的好地方。
http://blogs.infinite-x.net/2008/07/15/ascentium-crmservice-javascript-library/
http://www.avanadeblog.com/xrm/
但请留意它准备好的版本。
见。