Miklix

Finanzdimensionswert aus X++-Code in Dynamics 365 aktualisieren

Veröffentlicht: 16. Februar 2025 um 12:00:59 UTC
Zuletzt aktualisiert: 13. November 2025 um 13:35:59 UTC

Dieser Artikel erklärt, wie man einen Finanzdimensionswert aus X++-Code in Dynamics 365 aktualisiert, einschließlich eines Codebeispiels.


Diese Seite wurde maschinell aus dem Englischen übersetzt, um sie so vielen Menschen wie möglich zugänglich zu machen. Leider ist die maschinelle Übersetzung noch keine ausgereifte Technologie, so dass Fehler auftreten können. Wenn Sie es vorziehen, können Sie sich die englische Originalversion hier ansehen:

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, ich habe dies jedoch nicht explizit getestet.

Kürzlich wurde ich beauftragt, den Wert einer einzelnen Finanzdimension anhand einer bestimmten Logik zu aktualisieren.

Wie Sie wahrscheinlich wissen, werden in Dynamics AX 2012 die Finanzdimensionen in separaten Tabellen gespeichert und über eine RecId referenziert, üblicherweise im Feld DefaultDimension.

Das gesamte Framework zur Dimensionsverwaltung ist etwas komplex, und ich muss die Dokumentation dazu oft erneut lesen, vielleicht weil ich nicht allzu oft damit arbeite.

Jedenfalls kommt das Aktualisieren eines Feldes in einem bestehenden Dimensionssatz häufig vor, deshalb dachte ich, ich schreibe mal meine Lieblingsmethode auf ;-)


Eine statische Hilfsmethode könnte folgendermaßen aussehen:

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;
}

Die Methode gibt eine neue (oder dieselbe) DimensionDefault RecId zurück. Wenn Sie also einen Dimensionswert für einen Datensatz aktualisieren – was wahrscheinlich der häufigste Fall ist –, sollten Sie sicherstellen, dass Sie das Dimensionsfeld in diesem Datensatz mit dem neuen Wert aktualisieren.

Weitere Informationen

Wenn Ihnen dieser Beitrag gefallen hat, könnten Ihnen auch diese Vorschläge gefallen:


Teilen auf BlueskyAuf Facebook teilenAuf LinkedIn teilenAuf Tumblr teilenTeilen auf XAuf LinkedIn teilenPin auf Pinterest

Mikkel Christensen

Über den Autor

Mikkel Christensen
Mikkel ist der Schöpfer und Eigentümer von miklix.com. Er verfügt über mehr als 20 Jahre Erfahrung als professioneller Computerprogrammierer/Softwareentwickler und ist derzeit in Vollzeit für ein großes europäisches IT-Unternehmen tätig. Wenn er nicht gerade bloggt, verbringt er seine Freizeit mit einer Vielzahl von Interessen, Hobbys und Aktivitäten, was sich bis zu einem gewissen Grad in der Vielfalt der auf dieser Website behandelten Themen widerspiegelt.