RecIds在Dynamics AX 2012中的公共表中是唯一的吗?

时间:2014-05-27 21:40:21

标签: axapta x++

在2012年的Common表中,RecIds是唯一的吗?我读到这是依赖于版本的,但我没有找到任何关于AX 2012的信息。

如果没有,那么是否会破坏AX中表的多态设计,其中所有AX表都从Common延伸? Common声明RecId ...

1 个答案:

答案 0 :(得分:4)

当Microsoft Dynamics AX将记录插入SQL表时,a unique RecId is assigned将记录到每条记录,而不管每条记录与哪个公司相关联。该字段长64位,每个表都是唯一的。

在Axapta 3.0及以下版本中,RecIds每个公司帐户都是唯一的,长度为32位。因此,一家公司的记录不会超过40亿,因为RecId可能是负面的。

多晶型设计?我不确定你在这种情况下的意思,但鉴于RecId,你不知道它属于哪个表,你需要这些信息才能找到记录:

public Common findRecord(TableId _tableId, RecId _recId) 
{
    Common record = new DictTable(_tableId).makeRecord();
    select record where record.RecId == _recId; 
    return record; 
}

在SQL中,没有一个表称为Common。这是一个AX概念,您可以将其视为仅包含方法的界面。