Miklix

Finantsdimensiooni väärtuse värskendamine Dynamics 365 koodist X++

Avaldatud: 16. veebruar 2025, kell 12:01:03 UTC

Selles artiklis selgitatakse, kuidas värskendada finantsdimensiooni väärtust Dynamics 365-s X++ koodist, sealhulgas koodinäidet.


See lehekülg on inglise keelest masintõlgitud, et muuta see võimalikult paljudele inimestele kättesaadavaks. Kahjuks ei ole masintõlge veel täiuslik tehnoloogia, mistõttu võivad esineda vead. Kui soovite, võite vaadata ingliskeelset originaalversiooni siin:

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

Selles postituses olev teave põhineb Dynamics 365-l. See peaks töötama ka Dynamics AX-i 2012-s, kuid ma pole seda otseselt testinud.

Hiljuti tehti mulle ülesandeks värskendada ühe finantsdimensiooni väärtust mingi vormiloogika alusel.

Nagu te ilmselt teate, on Dynamics AX-i 2012 finantsdimensioonid salvestatud eraldi tabelitesse ja neile viidatakse RecID-i kaudu, tavaliselt väljal DefaultDimension.

Kogu mõõtmete käsitlemise raamistik on mõnevõrra keeruline ja ma pean sageli selle kohta dokumente uuesti läbi lugema, võib-olla seetõttu, et ma ei tööta sellega nii sageli.

Igatahes tuleb välja värskendamine olemasolevas dimensioonikomplektis sageli ette, nii et mõtlesin, et panen oma lemmikretsepti kirja ;-)


Staatilise utiliidi meetod võib välja näha järgmine:

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

Meetod tagastab uue (või sama) DimensionDefault RecId, nii et kui värskendate kirje dimensiooniväärtust (mis on ilmselt kõige levinum stsenaarium), peaksite kindlasti värskendama selle kirje dimensioonivälja uue väärtusega.

Jagage Bluesky'sJaga FacebookisJagage LinkedInisJaga TumblrisJaga X-isJagage LinkedInisKinnitage Pinterestis

Mikkel Bang Christensen

Autorist

Mikkel Bang Christensen
Mikkel on miklix.com looja ja omanik. Tal on üle 20 aasta kogemust professionaalse programmeerija/tarkvaraarendajana ning praegu töötab ta täiskohaga suures Euroopa IT-ettevõttes. Kui ta ei kirjuta blogi, veedab ta oma vaba aega mitmesuguste huvide, hobide ja tegevustega, mis võib mingil määral kajastuda sellel veebisaidil käsitletavate teemade mitmekesisuses.