Dynamics crm “动态CRM错误”;如果货币字段中存在值,则需要货币;将活动转换为案例后

Dynamics crm “动态CRM错误”;如果货币字段中存在值,则需要货币;将活动转换为案例后,dynamics-crm,dynamics-crm-4,crm,Dynamics Crm,Dynamics Crm 4,Crm,我们有一个Dynamics CRM 4.0实例,在案例实体和所有活动实体(电子邮件、电话等)上都有一些自定义属性,类型为“money”。当我使用内置的“将活动转换为案例”功能时,我发现生成的案例没有货币集,即使创建它的活动有货币集。无论何时打开案例,用户都会收到以下JavaScript错误: 如果货币字段中存在值,则需要货币。选择一个 然后重试 这太烦人了!我怎么修理它?有什么办法可以设置货币吗?它需要同步完成,因为案例在从活动创建时会立即打开。因此,即使我启动了一个工作流来设置货币,用户仍然会

我们有一个Dynamics CRM 4.0实例,在案例实体和所有活动实体(电子邮件、电话等)上都有一些自定义属性,类型为“money”。当我使用内置的“将活动转换为案例”功能时,我发现生成的案例没有货币集,即使创建它的活动有货币集。无论何时打开案例,用户都会收到以下JavaScript错误:

如果货币字段中存在值,则需要货币。选择一个 然后重试


这太烦人了!我怎么修理它?有什么办法可以设置货币吗?它需要同步完成,因为案例在从活动创建时会立即打开。因此,即使我启动了一个工作流来设置货币,用户仍然会至少出现一次错误。另一方面,我是否可以以某种方式抑制警告?我并不真正关心设置货币,我只希望错误消失。

您可能想查看Mitch Milam的这篇文章


更新:在谷歌搜索之后,我发现您可能需要在某个地方设置transactioncurrencyid查找。因此,在您的情况下,它可能在保存中或在工作流代码的执行过程中。我从这里读到的

你可能想看看米奇·米拉姆的这篇文章


更新:在谷歌搜索之后,我发现您可能需要在某个地方设置transactioncurrencyid查找。因此,在您的情况下,它可能在保存中或在工作流代码的执行过程中。我从这里读到的

如果您的表单上有货币字段,CRM需要知道使用哪种货币。验证是否在用户首选项中设置了默认货币(从主页面,然后从“常规”选项卡个性化工作场所)。也就是说,您的每个用户都需要设置默认货币


我还能够解决这个问题,将货币字段添加到表单中,将其默认为美元,然后隐藏该字段。但是,如果内存可用,这并不理想,因为美元货币是系统中的记录,在不同的环境中可以有不同的GUID。

如果表单上有货币字段,CRM需要知道使用哪种货币。验证是否在用户首选项中设置了默认货币(从主页面,然后从“常规”选项卡个性化工作场所)。也就是说,您的每个用户都需要设置默认货币


我还能够解决这个问题,将货币字段添加到表单中,将其默认为美元,然后隐藏该字段。但是,如果内存可用,这并不理想,因为美元货币是系统中的记录,在不同的环境中可以有不同的GUID。

我同意Hadi Teo的观点,即您需要设置transactioncurrencyid。我已经有一段时间没有遇到过这个了,所以我想我记得的是

如果创建了一个新实体,并填充了货币字段,则将设置交易货币。 如果更新实体,则不会设置“交易币种”字段

我还没有用过Activity to Case函数,所以我不太确定它是做什么的。作为解决方法,您可以做的一件事是将transactioncurrencyid添加到表单中。然后,您可以在修改案例之前设置它


另一种是在代码中默认货币。有两个地方可以确定默认货币。首先是用户设置。第二个(如果为空)关闭组织设置。

我同意Hadi Teo的观点,即您需要设置transactioncurrencyid。我已经有一段时间没有遇到过这个了,所以我想我记得的是

如果创建了一个新实体,并填充了货币字段,则将设置交易货币。 如果更新实体,则不会设置“交易币种”字段

我还没有用过Activity to Case函数,所以我不太确定它是做什么的。作为解决方法,您可以做的一件事是将transactioncurrencyid添加到表单中。然后,您可以在修改案例之前设置它


另一种是在代码中默认货币。有两个地方可以确定默认货币。首先是用户设置。第二个(如果为空)关闭组织设置。

通过发现用于美元的transactioncurrencyid,然后更新实体数据库表中所有现有实体记录的transactioncurrencyid列,在我的系统上解决了这个恼人的问题。在这样做之后,我能够在实体表单上添加货币值,而没有进一步的问题。我不确定这个解决方案是否适合所有人,但我不想编写代码来实现这一点,我觉得我不应该这样做,因为如果我向新定义的实体添加了货币属性,我就不需要编写代码来填充transactioncurrencyid字段——它只是默认情况下这样做的。因此,总之,只有将货币字段添加到具有关联现有数据的现有实体时,才会出现此问题

通过发现用于美元的transactioncurrencyid,然后更新实体数据库表中所有现有实体记录的transactioncurrencyid列,在我的系统上解决了这个恼人的问题。在这样做之后,我能够在实体表单上添加货币值,而没有进一步的问题。我不确定这个解决方案是否适合所有人,但我不想编写代码来实现这一点,我觉得我不应该这样做,因为如果我向新定义的实体添加了货币属性,我就不需要编写代码来填充transactioncurrencyid字段——它只是默认情况下这样做的。因此,总之,只有将货币字段添加到具有关联现有数据的现有实体时,才会出现此问题

我想这段代码对下一个
var currency = crmForm.all.transactioncurrencyid;

if (currency.DataValue == null) {
    var lookupData = new Array();
    var lookupItem= new Object();

    //Get transaction currency value from :
    select **TransactionCurrencyId** from MSCRM.dbo.TransactionCurrency
        lookupItem.id = '{The GUID that you get from the SELECT statement above}';
        lookupItem.typename = 'transactioncurrency';
        lookupItem.name = 'US Dollar';
        lookupData[0] = lookupItem;
        currency.DataValue = lookupData;
    //set default currency symbol for all the Money field.
    var defaultSymbol = '$';
    for(var i=0; i < crmForm.all.length ; i++)   {
        var oCtr = crmForm.all[i];
        if(!IsNull(oCtr.IsMoney) && !oCtr.IsBaseCurrency)
        {
            oCtr.CurrencySymbol = defaultSymbol;
        }
    }
}