Mettre à jour la valeur de la dimension financière à partir du code X++ dans Dynamics 365
Publié : 16 février 2025 à 12 h 05 min 28 s UTC
Dernière mise à jour : 13 novembre 2025 à 13 h 39 min 39 s UTC
Cet article explique comment mettre à jour une valeur de dimension financière à partir d’un code X++ dans Dynamics 365, incluant un exemple de code.
Update Financial Dimension Value from X++ Code in Dynamics 365
Les informations dans ce billet sont basées sur Dynamics 365. Ça devrait aussi fonctionner dans Dynamics AX 2012, mais je ne l’ai pas testé explicitement.
On m’a récemment confié la tâche de mettre à jour la valeur d’une seule dimension financière selon une logique quelconque.
Comme vous le savez probablement, puisque les dimensions financières de Dynamics AX 2012 sont stockées dans des tableaux séparés et référencées via un RecId, généralement dans un champ DefaultDimension.
Tout le cadre de gestion des dimensions est assez complexe et je me retrouve souvent à devoir relire la documentation à ce sujet, peut-être parce que ce n’est pas quelque chose avec lequel je travaille souvent.
Bref, mettre à jour un champ dans un ensemble de dimensions existant est quelque chose qui revient souvent, alors j’ai pensé faire un résumé de ma recette préférée;-)
Une méthode d’utilité statique pourrait ressembler à ceci :
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;
}
La méthode retourne un nouveau (ou le même) DimensionDefault RecId, donc si vous mettez à jour une valeur de dimension pour un enregistrement — ce qui est probablement le scénario le plus courant — vous devriez vous assurer de mettre à jour le champ dimension de cet enregistrement avec la nouvelle valeur.
Lectures complémentaires
Si vous avez apprécié cet article, vous aimerez peut-être aussi ces suggestions :
- Visual Studio se bloque au démarrage lors du chargement des projets récents
- Mettre la machine virtuelle Dynamics 365 FO Dev ou Test en mode maintenance
- Créer un champ de recherche pour une dimension financière dans Dynamics 365
