從 Dynamics 365 中的 X++ 程式碼更新財務維度值
已發佈: 2025年2月16日 中午12:01:45 [UTC]
本文介紹如何在 Dynamics 365 中從 X++ 程式碼更新財務維度值,包括一個程式碼範例。
該頁面是由英語機器翻譯而來的,以便盡可能多的人可以訪問。不幸的是,機器翻譯還不是一項完善的技術,因此可能會出現錯誤。如果您願意,可以在這裡查看原始英文版本:
Update Financial Dimension Value from X++ Code in Dynamics 365
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;
}
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,因此如果更新記錄的維度值 - 這可能是最常見的情況 - 您應該確保使用新值更新該記錄上的維度欄位。