Miklix

從 Dynamics 365 中的 X++ 程式碼更新財務維度值

已發佈: 2025年2月16日 中午12:01:45 [UTC]

本文介紹如何在 Dynamics 365 中從 X++ 程式碼更新財務維度值,包括一個程式碼範例。


該頁面是由英語機器翻譯而來的,以便盡可能多的人可以訪問。不幸的是,機器翻譯還不是一項完善的技術,因此可能會出現錯誤。如果您願意,可以在這裡查看原始英文版本:

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

這篇文章中的資訊是基於 Dynamics 365。

我最近的任務是根據某種形式邏輯更新單一財務維度的價值。

您可能知道,由於 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 公司。不寫部落格時,他會將業餘時間花在各種各樣的興趣、愛好和活動上,這在一定程度上反映在本網站所涵蓋的主題的多樣性上。