Miklix

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

已發佈: 2025年2月16日 中午12:01:45 [UTC]
最後更新: 2025年11月13日 下午1:38:06 [UTC]

本文說明如何在 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 上

Mikkel Christensen

關於作者

Mikkel Christensen
麥可 是 miklix.com 的創建者和所有者。他有超過 20 年的專業電腦程式設計師/軟體開發人員經驗,目前全職受僱於一家歐洲大型 IT 公司。不寫部落格時,他會將業餘時間花在各種各樣的興趣、愛好和活動上,這在一定程度上反映在本網站所涵蓋的主題的多樣性上。