Finanzdimensionswert aus X++-Code in Dynamics 365 aktualisieren
Veröffentlicht: 16. Februar 2025 um 12:00:59 UTC
In diesem Artikel wird erläutert, wie Sie einen Finanzdimensionswert aus X++-Code in Dynamics 365 aktualisieren, einschließlich eines Codebeispiels.
Update Financial Dimension Value from X++ Code in Dynamics 365
Die Informationen in diesem Beitrag basieren auf Dynamics 365. Sie sollten auch in Dynamics AX 2012 funktionieren, aber ich habe sie nicht explizit getestet.
Kürzlich wurde mir die Aufgabe übertragen, den Wert einer einzelnen Finanzdimension basierend auf einer Formularlogik zu aktualisieren.
Wie Sie wahrscheinlich wissen, werden Finanzdimensionen seit Dynamics AX 2012 in separaten Tabellen gespeichert und über eine RecId referenziert, normalerweise in einem DefaultDimension-Feld.
Das gesamte Framework zur Handhabung von Dimensionen ist ziemlich komplex und ich muss die Dokumentation dazu häufig erneut lesen, vielleicht, weil ich nicht so oft damit arbeite.
Da die Aktualisierung eines Felds in einem vorhandenen Dimensionssatz häufig vorkommt, dachte ich mir, dass ich mal mein Lieblingsrezept aufschreiben sollte ;-)
Eine statische Hilfsmethode könnte wie folgt aussehen:
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;
}
Die Methode gibt eine neue (oder dieselbe) DimensionDefault RecId zurück. Wenn Sie also einen Dimensionswert für einen Datensatz aktualisieren – was wahrscheinlich das häufigste Szenario ist –, sollten Sie sicherstellen, dass Sie das Dimensionsfeld in diesem Datensatz mit dem neuen Wert aktualisieren.