xRecord.data 方法生成具有相同 RecId 的记录

xRecord.data method generates record with identical RecId

我了解到 table 的 data 方法创建了一个包含系统字段的记录副本。通常它应该生成一个新的 RecID,这是合理的,否则你不能在同一个 table.

中插入记录

现在我遇到这样一种情况,数据方法正在创建一个具有 相同 RecId 的副本,导致插入操作期间出错。我不确定为什么会发生这种情况,如果您对此主题有任何意见,我将不胜感激。

我在做什么:

这是标准的 AX 方法,为什么不起作用?

table对象的data方法复制所有字段,包括RecId和其他系统字段。 insert 方法负责生成 RecId

根据上述逻辑,您的代码不应因 RecId 索引而失败。
也许另一个唯一索引在起作用?
您很可能在调用该方法时传递了错误或零 RecId

您使用了两个记录缓冲区,这是不必要的,只需更改记录键字段并插入:

while select translation 
    where translation.Category == this.RecId ...
{
    translation.Category = _duplicateComponent;
    translation.insert();
}