Ažurirajte vrednost finansijske dimenzije iz Ks ++ koda u Dinamics KSNUMKS
Objavio: 19. mart 2025. 21:36:06 UTC
Ovaj članak objašnjava kako ažurirati vrednost finansijske dimenzije iz Ks ++ koda u Dinamics 365, uključujući primer koda.
Update Financial Dimension Value from X++ Code in Dynamics 365
Informacije u ovom postu zasnovane su na Dynamics 365. Takođe bi trebalo da funkcionišu i u Dynamics AX 2012, ali nisam ih eksplicitno testirao.
Skoro su me zadali da ažuriram vrednost jedne finansijske dimenzije na osnovu neke logike u formi.
Verovatno znate, od Dynamics AX 2012 finansijske dimenzije se čuvaju u posebnim tabelama i referenciraju se kroz RecId, obično u polju DefaultDimension.
Celi okvir za upravljanje dimenzijama je donekle kompleksan i često se nađem u situaciji da moram ponovo da pročitam dokumentaciju o tome, možda zato što to nije nešto s čim se često bavim.
U svakom slučaju, ažuriranje polja u postojećem setu dimenzija je nešto što se često pojavljuje, pa sam pomislio da napišem svoj omiljeni recept ;-)
Statička pomoćna metoda može izgledati ovako:
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 vraća novi (ili isti) DimensionDefault RecId, pa ako ažurirate vrednost dimenzije za zapis - što je verovatno najčešći scenario - treba da se pobrinete da ažurirate polje dimenzije na tom zapisu sa novom vrednošću.