【问题标题】:D365 CustomJS - Update Field with AutoNumber Field OnSaveD365 CustomJS - 使用自动编号字段 OnSave 更新字段
【发布时间】:2021-12-09 13:06:01
【问题描述】:

我有一个名为“ID”的自动编号字段,它为记录生成一个 ID。我想将名为“ID_Name”的主要名称字段设置为此。我目前正在使用以下JS:

function setName(executionContext) {

formContext = executionContext.getFormContext();

var name = formContext.getAttribute("id").getValue();
formContext.getAttribute("id_name").setValue(name);

}

很简单。我得到“ID”的值,将其分配给名为 name 的 var,然后将“ID_Name”的值设置为该 var。这会触发 OnSave。

这在编辑记录时可以正常工作。问题是,这在创建新记录时不起作用。我假设因为在 OnSave 触发时,自动编号字段“ID”尚未生成可以使用的值,因此 ID_Name 设置为空白。当然在编辑的时候,ID是有值的,因为记录已经提交了,所以没有问题。有没有办法解决这个问题?

【问题讨论】:

  • 您是否尝试在主要名称字段上设置自动编号?它可以让您免于重复数据...
  • 测试了我之前的建议。用作魅力。添加它作为答案。 :-)

标签: javascript dynamics-crm microsoft-dynamics


【解决方案1】:

只需在实体的主要名称字段中设置 OOB 自动编号选项。无需代码,它可以避免重复数据,应尽可能避免。

【讨论】:

  • 啊!完美,我可以通过调整列的种子值来重置数字。非常感谢!
【解决方案2】:

您可以使用 OnLoad 事件进行一些变通,并在两个字段之间不匹配时触发更新(意味着值尚未保存),但我强烈建议不要使用这种方法。

理想情况下,这可以使用 post 操作中的同步插件来解决,此时在管道中应填充 id 字段(您没有提到是否使用 OOB 自动编号或其他方式来生成此字段),您可以在插件内触发更新。

【讨论】:

  • 只是一个 OOB 自动编号。该死的..我希望这会更简单。
  • 您也可以尝试同步工作流,因为您提到的字段是 OOB 自动编号并且不是主要 guid,您应该在工作流设计器中看到它,值得一试
猜你喜欢
  • 2011-06-07
  • 1970-01-01
  • 1970-01-01
  • 2022-11-30
  • 1970-01-01
  • 2012-01-26
  • 1970-01-01
  • 1970-01-01
  • 2011-03-26
相关资源
最近更新 更多