0

我的一个托管解决方案存在严重问题,我有一个自定义工作流程,它创建了一堆自定义实体,这些自定义实体上有几个货币字段。

以下是我运行工作流程时发生的情况:

  1. 自定义工作流进入“等待”状态并引发空引用异常。
  2. 已经创建了几个实体,但其中一个在货币字段中具有空值(它们默认 onLoad 为 0.00 英镑)。
  3. 当我打开这条记录时,我收到了这篇文章中提到的错误消息。

你应该知道的几件事:

  1. 默认货币在系统中设置(英镑)。
  2. 正如网络上其他地方所建议的那样,我试图在我的表单的 OnLoad() 事件中遵循 JavaScript:

var lookupData = new Array(); 
var lookupItem= new Object(); 
lookupItem.id = "{7bCA916E76-FA28-E211-8C7C-0800273EE9D1}"; 
lookupItem.entityType = "transactioncurrency"; 
lookupItem.name = "Pound Sterling";     
lookupData[0] = lookupItem; 
Xrm.Page.getAttribute("transactioncurrencyid").setValue(lookupData);

如果此 JS 在表单上并且我尝试创建新记录,则会收到错误消息:

错误:“Xrm.Page.getAttribute(..)”为空或不是对象

谁能建议我在这里必须做什么?

此错误仅发生在实时系统上,不会发生在开发环境中。

4

1 回答 1

3

这是因为您尝试设置的货币 ID 在实时环境中与在开发环境中不同。

您需要从 Live 环境中获取“英镑”货币的 ID 并将其放在“插入此处”的位置:

lookupItem.id = "--insert here--"; 
lookupItem.entityType = "transactioncurrency"; 
lookupItem.name = "Pound Sterling";

然后它将起作用。

于 2012-11-23T14:40:16.330 回答