Dynamics crm 2011 在crm 2011中更改事件时未触发Javascript函数
情景: 步骤1:我正在使用MS CRM 2011。我编写了javascript函数来获取“收件人”字段值(电子邮件实体),并将该值设置到“关于”字段中。它工作正常 第2步:将更新“关于”字段中的值的过程写为“清除”。因为“关于”字段会自动获得一些值。因此我需要将“关于”字段中的值更改为空。它工作正常 步骤3:现在我在onchange事件中调用javascript函数 问题:相关字段值在流程执行后变为清晰。这意味着旧值替换和新值进入相关字段。这就像一个更改事件。旧值替换为空 但是这个函数不会触发。如果打开email表单并更改about字段,它工作正常,这意味着Javascript可以工作 摘要:当我从进程中更改值时,onchange事件没有调用。但是我手动尝试javascript工作正常 如何解决这个问题 **请参阅以下屏幕截图: 使用此Java脚本: 步骤1编码 函数toFieldValueToutherField() { 像这样调用Onchange它没有被触发。Dynamics crm 2011 在crm 2011中更改事件时未触发Javascript函数,dynamics-crm-2011,dynamics-crm,crm,dynamics-crm-online,Dynamics Crm 2011,Dynamics Crm,Crm,Dynamics Crm Online,情景: 步骤1:我正在使用MS CRM 2011。我编写了javascript函数来获取“收件人”字段值(电子邮件实体),并将该值设置到“关于”字段中。它工作正常 第2步:将更新“关于”字段中的值的过程写为“清除”。因为“关于”字段会自动获得一些值。因此我需要将“关于”字段中的值更改为空。它工作正常 步骤3:现在我在onchange事件中调用javascript函数 问题:相关字段值在流程执行后变为清晰。这意味着旧值替换和新值进入相关字段。这就像一个更改事件。旧值替换为空 但是这个函数不会触发。
只有在使用web界面执行操作(在您的情况下是onload、onsave和onchange)时,才会调用JavaScript代码
如果您使用工作流(或插件)更改字段值,则不会执行附加的javascript,因为代码仅在浏览器窗口内执行。如果您使用CRM web界面创建电子邮件,则应在OnLoad事件中将其全部绑定。 OnLoad调用OnCrmPageLoad函数(删除OnChange调用,因为我们使用addOnChange方法) 如果在web界面之外创建电子邮件(即outlook或web服务)时需要强制执行此行为,则必须
使用插件覆盖相关字段(如上所述)我同意@Guido,在这种情况下,我更愿意从插件更新
关于objectid
。
var lookup = new Array();
lookup = Xrm.Page.getAttribute("to").getValue();
if (lookup != null)
{
var name = lookup[0].name;
var id = lookup[0].id;
var entityType = lookup[0].entityType;
Xrm.Page.getAttribute("regardingobjectid").setValue([{ id: id, name: name, entityType: entityType }]);
//Xrm.Page.data.entity.save();
}}
function OnCrmPageLoad() {
//Apply every time the To field changes
Xrm.Page.getAttribute("to").addOnChange(TofieldValuetoOtherField);
//Apply when the from loads
TofieldValuetoOtherField();
}
TofieldValuetoOtherField = function()
{
var lookup = Xrm.Page.getAttribute("to").getValue();
if (lookup)
{
var name = lookup[0].name;
var id = lookup[0].id;
var entityType = lookup[0].entityType;
Xrm.Page.getAttribute("regardingobjectid")
.setValue([{ id: id, name: name, entityType: entityType }]);
}
}