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
Pēdējo reizi atjaunināts: 2025. gada 13. novembris 13:37:23 UTC

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


Šī 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ā ierakstā sniegtā informācija ir balstīta uz Dynamics 365. Tai vajadzētu darboties arī Dynamics AX 2012, taču es to neesmu tieši pārbaudījis.

Nesen man uzdeva 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 tiek atsauktas, izmantojot RecId, parasti laukā DefaultDimension.

Viss dimensiju apstrādes ietvars ir nedaudz sarežģīts, un man bieži nākas pārlasīt dokumentāciju par to, iespējams, tāpēc, ka tā nav lieta, ar ko es tik bieži nestrādāju.

Jebkurā gadījumā lauka atjaunināšana esošajā dimensiju kopā notiek bieži, tāpēc nolēmu uzrakstīt savu iecienītāko recepti ;-)


Statiskā lietderības 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 tādu pašu) DimensionDefault RecId, tāpēc, atjauninot ieraksta dimensijas vērtību, kas, iespējams, ir visizplatītākais scenārijs, jums jāpārliecinās, ka šī ieraksta dimensijas lauks ir atjaunināts ar jauno vērtību.

Papildu lasāmviela

Ja jums patika šī ziņa, jums varētu patikt arī šie ieteikumi:


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

Mikkel Christensen

Par autoru

Mikkel 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ā.