Actualizați valoarea dimensiunii financiare din codul X++ în Dynamics 365
Publicat: 16 februarie 2025 la 12:01:32 UTC
Ultima actualizare: 13 noiembrie 2025 la 13:37:39 UTC
Acest articol explică cum se actualizează o valoare a unei dimensiuni financiare din codul X++ în Dynamics 365, inclusiv un exemplu de cod.
Update Financial Dimension Value from X++ Code in Dynamics 365
Informațiile din această postare se bazează pe Dynamics 365. Ar trebui să funcționeze și în Dynamics AX 2012, dar nu l-am testat în mod explicit.
Recent, am fost însărcinat să actualizez valoarea unei singure dimensiuni financiare pe baza unei logici de formular.
După cum probabil știți, deoarece dimensiunile financiare din Dynamics AX 2012 sunt stocate în tabele separate și se face referire la ele printr-un RecId, de obicei într-un câmp DefaultDimension.
Întregul cadru de lucru pentru gestionarea dimensiunilor este oarecum complex și deseori mă trezesc nevoit să recitesc documentația despre acesta, poate pentru că nu este ceva cu care lucrez prea des.
În orice caz, actualizarea unui câmp dintr-un set de dimensiuni existent este ceva ce apare frecvent, așa că m-am gândit să scriu o recenzie despre rețeta mea preferată ;-)
O metodă utilitară statică ar putea arăta astfel:
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 returnează un nou (sau același) DimensionDefault RecId, așa că, dacă actualizați o valoare de dimensiune pentru o înregistrare - ceea ce este probabil cel mai comun scenariu - trebuie să vă asigurați că actualizați câmpul dimensiune din înregistrarea respectivă cu noua valoare.
Lectură suplimentară
Dacă ți-a plăcut această postare, s-ar putea să-ți placă și aceste sugestii:
- Puneți Dynamics 365 FO Virtual Machine Dev sau Test în modul întreținere
- Crearea unui câmp de căutare pentru o dimensiune financiară în Dynamics 365
- Visual Studio se blochează la pornire în timpul încărcării proiectelor recente
