SurrogateKey na importovaných tabulkách

Pokud v Dynamics AX 2012 vytvoříte novou tabulku, její primární a cluster indexy jsou automaticky nastaveny na hodnotu “SurrogateKey”. Pokud ale tabulku naimportujete ze starší verze, SurrogateKey se vůbec nenabídne a nenašel jsem žádnou “normální” cestu, jak toho docílit.

Nicméně… v .xpo nově vytvořené tabulky:

TABLE #Table1
    EnforceFKRelation 1
    PROPERTIES
      Name                #Table1
      CreateRecIdIndex    #Yes
      PrimaryIndex        #SurrogateKey
      ClusterIndex        #SurrogateKey
      Origin              #{A948828D-E7B9-42BD-A619-6305867AF2CE}
    ENDPROPERTIES

se vyskytuje položka EnforceFKRelation a ta je zjevně zodpovědná za toto chování. Její hodnotu lze tedy změnit v .xpo a naimportovat .xpo do AX.

V Dynamics AX můžete tuto hodnotu číst z DictTable.enforceRelationRules() a křížové reference odhalí, že také aktivuje dodatečné validace při kontrole Best Practices.