如何获取 AX 2012 中特定主账户的账户结构?

How do I get the account structure for a particular Main Account in AX 2012?

我想获取您可以在 General Ledger --> Setup --> Account structures 中创建的 AX 主账户的账户结构(特别是维度名称),以便在网页中动态创建输入框。

帐户结构形式非常复杂,为帐户结构系统提供支持的数据字典模式也是如此。有没有一种简单的方法可以找到给定主账户的账户结构?

如果您已经知道要为其获取帐户结构的主帐户,则可以使用 DimensionHierarchy::getAccountStructure() 方法,该方法 returns 该主帐户的单个帐户结构 ID。从那里,您可以访问该帐户结构 ID 的 DimensionHierarchyLevel table 中的每个级别,并从 DimensionAttribute table.

中提取您需要的有关帐户结构的任何数据
DimensionHierarchy hierarchy;
DimensionHierarchyLevel hierarchyLevel;
DimensionHierarchyId hId;
int i = 1; // Set to 0 if you also want to get the root MainAccount level

hId = DimensionHierarchy::getAccountStructure(MainAccount::findByMainAccountId("1234").RecId);

do
{
    i++;
    hierarchyLevel = DimensionHierarchyLevel::findByDimensionHierarchyAndLevel(hId, i);
    if (hierarchyLevel)
    {
        info(DimensionAttribute::find(hierarchyLevel.DimensionAttribute).Name);
    }
}
while (hierarchyLevel);