Miklix

Atjauniniet finanšu dimensijas vērtību no X++ koda programmā Dynamics 365

Publicēts: 2025. gada 16. februāris 12:01:21 UTC

Šajā rakstā ir paskaidrots, kā atjaunināt finanšu dimensijas vērtību no X++ koda programmā Dynamics 365, tostarp koda piemēru.


Šī lapa tika mašīntulkota no angļu valodas, lai padarītu to pieejamu pēc iespējas vairāk cilvēkiem. Diemžēl mašīntulkošana vēl nav pilnīga tehnoloģija, tāpēc tajā var rasties kļūdas. Ja vēlaties, oriģinālo versiju angļu valodā varat apskatīt šeit:

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

Šajā ziņā sniegtā informācija ir balstīta uz Dynamics 365. Tai vajadzētu darboties arī programmā Dynamics AX 2012, taču es to neesmu īpaši pārbaudījis.

Man nesen tika uzdots atjaunināt vienas finanšu dimensijas vērtību, pamatojoties uz kādu formas loģiku.

Kā jūs droši vien zināt, kopš Dynamics AX 2012 finanšu dimensijas tiek glabātas atsevišķās tabulās un uz tām ir atsauces, izmantojot RecId, parasti laukā DefaultDimension.

Visa dimensiju apstrādes sistēma ir diezgan sarežģīta, un man bieži ir jāpārlasa dokumentācija par to, iespējams, tāpēc, ka es ar to nestrādāju tik bieži.

Jebkurā gadījumā lauka atjaunināšana esošajā dimensiju komplektā ir kaut kas, kas parādās bieži, tāpēc es domāju, ka es uzrakstīšu savu iecienītāko recepti ;-)


Statiskā utilīta metode varētu izskatīties šādi:

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

Metode atgriež jaunu (vai to pašu) DimensionDefault RecId, tādēļ, ja atjaunina ieraksta dimensijas vērtību — tas, iespējams, ir visizplatītākais scenārijs, noteikti atjauniniet šī ieraksta dimensijas lauku ar jauno vērtību.

Kopīgojiet pakalpojumā BlueskyKopīgot FacebookKopīgojiet vietnē LinkedInKopīgojiet vietnē TumblrKopīgot vietnē XKopīgojiet vietnē LinkedInPiespraust vietnē Pinterest

Mikkel Bang Christensen

Par autoru

Mikkel Bang Christensen
Mikels ir miklix.com radītājs un īpašnieks. Viņam ir vairāk nekā 20 gadu pieredze kā profesionālam programmētājam/programmatūras izstrādātājam, un pašlaik viņš strādā pilna laika darbu lielā Eiropas IT korporācijā. Kad viņš neraksta blogus, viņš pavada brīvo laiku, pievēršoties dažādām interesēm, hobijiem un aktivitātēm, kas zināmā mērā var atspoguļoties šajā tīmekļa vietnē aplūkoto tēmu daudzveidībā.