xRecord.data 方法生成具有相同 RecId 的记录
xRecord.data method generates record with identical RecId
我了解到 table 的 data 方法创建了一个包含系统字段的记录副本。通常它应该生成一个新的 RecID,这是合理的,否则你不能在同一个 table.
中插入记录
现在我遇到这样一种情况,数据方法正在创建一个具有 相同 RecId 的副本,导致插入操作期间出错。我不确定为什么会发生这种情况,如果您对此主题有任何意见,我将不胜感激。
我在做什么:
- 复制现有的产品配置模型
- 当我 运行 调试器时,在某个时候执行线程到达 table 方法 PCClass.duplicateTranslation()
- 在第 20 行和第 22 行中,我们可以看到创建了一条重复记录,然后尝试插入该记录,但失败了,因为它们具有相同的 RecId(请参见下一个屏幕截图)
这是标准的 AX 方法,为什么不起作用?
table对象的data
方法复制所有字段,包括RecId
和其他系统字段。 insert
方法负责生成 RecId
。
根据上述逻辑,您的代码不应因 RecId
索引而失败。
也许另一个唯一索引在起作用?
您很可能在调用该方法时传递了错误或零 RecId
。
您使用了两个记录缓冲区,这是不必要的,只需更改记录键字段并插入:
while select translation
where translation.Category == this.RecId ...
{
translation.Category = _duplicateComponent;
translation.insert();
}
我了解到 table 的 data 方法创建了一个包含系统字段的记录副本。通常它应该生成一个新的 RecID,这是合理的,否则你不能在同一个 table.
中插入记录现在我遇到这样一种情况,数据方法正在创建一个具有 相同 RecId 的副本,导致插入操作期间出错。我不确定为什么会发生这种情况,如果您对此主题有任何意见,我将不胜感激。
我在做什么:
- 复制现有的产品配置模型
- 当我 运行 调试器时,在某个时候执行线程到达 table 方法 PCClass.duplicateTranslation()
- 在第 20 行和第 22 行中,我们可以看到创建了一条重复记录,然后尝试插入该记录,但失败了,因为它们具有相同的 RecId(请参见下一个屏幕截图)
这是标准的 AX 方法,为什么不起作用?
table对象的data
方法复制所有字段,包括RecId
和其他系统字段。 insert
方法负责生成 RecId
。
根据上述逻辑,您的代码不应因 RecId
索引而失败。
也许另一个唯一索引在起作用?
您很可能在调用该方法时传递了错误或零 RecId
。
您使用了两个记录缓冲区,这是不必要的,只需更改记录键字段并插入:
while select translation
where translation.Category == this.RecId ...
{
translation.Category = _duplicateComponent;
translation.insert();
}