RecId Common在AX 2012中跨表唯一吗?我读到这是取决于版本的,但是我没有找到关于AX 2012的任何信息。
如果不是,这是否会打破AX中所有表从扩展的表的多态设计Common?并Common声明RecId...
当Microsoft Dynamics AX将记录插入SQL表中时,将为每个记录分配唯一的RecId,而不管每个记录与之关联的公司。该字段为64位长,每个表唯一。
在Axapta 3.0及更低版本中,每个公司帐户的RecId都是唯一的,长度为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;
}
Run Code Online (Sandbox Code Playgroud)
在SQL中,没有表称为Common。这是一个AX概念,您可以将其视为仅包含方法的接口。