Miklix

Rifresko vlerën e dimensionit financiar nga kodi X++ në dinamikën 365

Publikuar: 16 shkurt 2025 në 12:02:17 e pasdites, UTC

Ky artikull shpjegon se si të përditësoni një vlerë të dimensionit financiar nga kodi X++ në Dynamics 365, duke përfshirë një shembull kodi.


Kjo faqe u përkthye me makinë nga anglishtja për ta bërë të aksesueshme për sa më shumë njerëz. Fatkeqësisht, përkthimi me makinë nuk është ende një teknologji e përsosur, kështu që mund të ndodhin gabime. Nëse preferoni, mund ta shikoni versionin origjinal në anglisht këtu:

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

Informacioni në këtë postim bazohet në Dynamics 365. Duhet të funksionojë edhe në Dynamics AX 2012, por nuk e kam testuar në mënyrë eksplicite.

Kohët e fundit kisha për detyrë të përditësoja vlerën e një dimensioni të vetëm financiar bazuar në një logjikë forme.

Siç e dini me siguri, meqë dimensionet financiare Dynamics AX 2012 ruhen në tabela të veçanta dhe referohen nëpërmjet një RecId, zakonisht në një fushë DefaultDimension.

I gjithë kuadri për trajtimin e dimensioneve është disi kompleks dhe shpesh më duhet të rilexoj dokumentacionin mbi të, ndoshta sepse nuk është diçka me të cilën punoj kaq shpesh.

Gjithsesi, përditësimi i një fushe në një set dimensioni ekzistues është diçka që vjen shpesh, kështu që mendova të bëj një shkrim të recetës sime të preferuar ;-)


Një metodë statike utilitare mund të duket kështu:

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

Metoda kthen një RecId të ri (ose të njëjtë) DimensionDefault, kështu që nëse përditësoni një vlerë dimensioni për një rekord - që është ndoshta skenari më i zakonshëm - duhet të siguroheni që të përditësoni fushën e dimensionit në atë rekord me vlerën e re.

Shpërndaje në BlueskyShpërndaje në FacebookNdani në LinkedInShpërndaje në TumblrShpërndaje në XNdani në LinkedInPin në Pinterest

Mikkel Bang Christensen

Rreth Autorit

Mikkel Bang Christensen
Mikkel është krijuesi dhe pronari i miklix.com. Ai ka mbi 20 vjet përvojë si programues profesional kompjuteri/zhvillues softuerësh dhe aktualisht është i punësuar me kohë të plotë për një korporatë të madhe evropiane IT. Kur nuk bën blog, ai e kalon kohën e lirë në një gamë të gjerë interesash, hobish dhe aktivitetesh, të cilat mund të reflektohen në një farë mase në shumëllojshmërinë e temave të mbuluara në këtë faqe interneti.