AX NumberSequence:将数字标记为已使用

AX NumberSequence: Mark a number as used

当给定的数字不是由数字序列生成时,如何将其标记为在 NumberSequence 中使用?

让我们假设我导入了自定义 table 的前 10 条记录并且文件已经指定了它的 ID 从 01 到 10, 然后我想拦截 insert() 将给定的数字标记为已使用,以便在导入后,第一个手动创建的记录将分配 ID 11.

这类似于更新 NumberSequence 中的字段 'Next'。

NumberSequenceTable.NextRec 值更新为所需值。 确保格式正确。

示例代码:

NumberSequenceTable numberSequenceTable;

ttsBegin;
select forUpdate numberSequenceTable
    where numberSequenceTable.NumberSequence == 'Acco_1' // as example
;
numberSequenceTable.NextRec = 11;
if (numberSequenceTable.validateField(fieldNum(NumberSequenceTable, NextRec))
    && numberSequenceTable.validateWrite()
)
{
    numberSequenceTable.update();
}
else
{
    throw error("Validation failed");
}
ttsCommit;