Miklix

Frissítse a pénzügyi dimenzió értékét az X++ kódból a Dynamics 365-ben

Megjelent: 2025. február 16. 12:01:06 UTC
Utolsó frissítés: 2025. november 13. 13:36:14 UTC

Ez a cikk egy kódpéldát is tartalmaz, amely bemutatja, hogyan frissíthető egy pénzügyi dimenzió értéke az X++ kódból a Dynamics 365-ben.


Ezt az oldalt angolból gépi fordítással készítettük, hogy minél több ember számára elérhető legyen. Sajnos a gépi fordítás még nem tökéletes technológia, ezért előfordulhatnak hibák. Ha szeretné, itt megtekintheti az eredeti angol nyelvű változatot:

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

Bejegyzésben található információk a Dynamics 365-ön alapulnak. A Dynamics AX 2012-ben is működnie kellene, de még nem teszteltem explicit módon.

Nemrég egyetlen pénzügyi dimenzió értékének frissítésével bíztak meg valamilyen űrlaplogika alapján.

Ahogy valószínűleg tudja, a Dynamics AX 2012 pénzügyi dimenziói külön táblákban tárolódnak, és egy RecId-n keresztül hivatkoznak rájuk, általában egy DefaultDimension mezőben.

A dimenziók kezelésére szolgáló teljes keretrendszer némileg bonyolult, és gyakran kell újraolvasnom a dokumentációját, talán azért, mert nem túl gyakran dolgozom vele.

Mindenesetre egy meglévő dimenziókészlet mezőjének frissítése gyakran előfordul, ezért gondoltam, írok egy leírást a kedvenc receptemről ;-)


Egy statikus segédprogram metódus így nézhet ki:

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

Metódus egy új (vagy azonos) DimensionDefault RecId értéket ad vissza, tehát ha egy rekord dimenzióértékét frissíted – ami valószínűleg a leggyakoribb forgatókönyv –, akkor mindenképpen frissítsd a rekord dimenziómezőjét az új értékkel.

További olvasmányok

Ha tetszett ez a bejegyzés, akkor ezek a javaslatok is érdekelhetik:


Oszd meg a Bluesky-nOszd meg a FacebookonOszd meg a LinkedIn-enOszd meg a Tumblr-enOszd meg X-enOszd meg a LinkedIn-enPin a Pinteresten

Mikkel Christensen

A szerzőről

Mikkel Christensen
Mikkel a miklix.com létrehozója és tulajdonosa. Több mint 20 éves tapasztalattal rendelkezik, mint hivatásos számítógépes programozó/szoftverfejlesztő, és jelenleg teljes munkaidőben dolgozik egy nagy európai informatikai vállalatnál. Amikor nem blogol, szabadidejét érdeklődési körének, hobbijainak és tevékenységeinek széles skálájával tölti, ami bizonyos mértékig tükröződhet a weboldalon tárgyalt témák sokféleségében.