Miklix

从 Dynamics 365 中的 X++ 代码更新财务维度值

已出版: 2025年2月16日 UTC 12:01:43

本文介绍如何在 Dynamics 365 中从 X++ 代码更新财务维度值,包括一个代码示例。


为了使尽可能多的人能够访问本页面,本页面由英文机译而成。遗憾的是,机器翻译技术尚不完善,因此可能会出现错误。如果您愿意,可以在此处查看原始英文版本:

Update Financial Dimension Value from X++ Code in Dynamics 365

这篇文章中的信息基于 Dynamics 365。它也应该适用于 Dynamics AX 2012,但我还没有明确测试过它。

我最近的任务是根据某种形式逻辑更新单个财务维度的价值。

您可能知道,由于 Dynamics AX 2012 财务维度存储在单独的表中并通过 RecId 引用,通常在 DefaultDimension 字段中。

处理尺寸的整个框架有点复杂,我经常发现自己不得不重新阅读有关它的文档,也许是因为我并不经常使用它。

无论如何,更新现有维度集中的字段是经常发生的事情,所以我想我会写下我最喜欢的配方;-)


静态实用方法可能如下所示:

public static DimensionDefault updateDimension( DimensionDefault    _defaultDimension,
                                                Name                _dimensionName,
                                                DimensionValue      _dimensionValue)
{
    DimensionAttribute                  dimAttribute;
    DimensionAttributeValue             dimAttributeValue;
    DimensionAttributeValueSetStorage   dimStorage;
    DimensionDefault                    ret;
    ;

    ret             = _defaultDimension;

    ttsbegin;

    dimStorage      = DimensionAttributeValueSetStorage::find(_defaultDimension);
    dimAttribute    = DimensionAttribute::findByName(_dimensionName);

    if (_dimensionValue)
    {
        dimAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(  dimAttribute,
                                                                                        _dimensionValue,
                                                                                        true,
                                                                                        true);
        dimStorage.addItem(dimAttributeValue);
    }
    else
    {
        dimStorage.removeDimensionAttribute(dimAttribute.RecId);
    }

    ret = dimStorage.save();

    ttscommit;

    return ret;
}

该方法返回一个新的(或相同的)DimensionDefault RecId,因此如果更新记录的维度值 - 这可能是最常见的情况 - 您应该确保使用新值更新该记录上的维度字段。

分享至 Bluesky在 Facebook 上分享在 LinkedIn 上分享在 Tumblr 上分享分享至 X在 LinkedIn 上分享在Pinterest上固定

米克尔·邦·克里斯滕森

关于作者

米克尔·邦·克里斯滕森
迈克尔 是 miklix.com 的创建者和所有者。他拥有 20 多年的专业计算机程序员/软件开发人员经验,目前全职受雇于一家大型欧洲 IT 公司。不写博客时,他把业余时间花在各种兴趣、爱好和活动上,这在一定程度上反映在本网站涵盖的各种主题上。