Actualizar el valor de la dimensión financiera desde el código X++ en Dynamics 365
Publicado: 16 de febrero de 2025, 12:01:02 UTC
Última actualización: 13 de noviembre de 2025, 13:36:04 UTC
Este artículo explica cómo actualizar el valor de una dimensión financiera desde código X++ en Dynamics 365, e incluye un ejemplo de código.
Update Financial Dimension Value from X++ Code in Dynamics 365
La información de esta publicación se basa en Dynamics 365. También debería funcionar en Dynamics AX 2012, pero no lo he probado explícitamente.
Recientemente me encargaron actualizar el valor de una única dimensión financiera basándome en algún tipo de lógica.
Como probablemente ya sepa, desde Dynamics AX 2012 las dimensiones financieras se almacenan en tablas separadas y se hace referencia a ellas a través de un RecId, generalmente en un campo DefaultDimension.
Todo el marco para manejar dimensiones es algo complejo y a menudo me encuentro teniendo que releer la documentación al respecto, quizás porque no es algo con lo que trabaje muy a menudo.
En fin, actualizar un campo en un conjunto de dimensiones existente es algo que surge con frecuencia, así que pensé en escribir sobre mi receta favorita ;-)
Un método de utilidad estático podría tener el siguiente aspecto:
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;
}
El método devuelve un RecId DimensionDefault nuevo (o el mismo), por lo que si actualiza un valor de dimensión para un registro, que probablemente sea el escenario más común, debe asegurarse de actualizar el campo de dimensión en ese registro con el nuevo valor.
Lectura adicional
Si te ha gustado esta publicación, puede que también te gusten estas sugerencias:
- Visual Studio se bloquea al iniciarse mientras se cargan proyectos recientes
- Creación de un campo de búsqueda para una dimensión financiera en Dynamics 365
- Ponga la máquina virtual de desarrollo o prueba de Dynamics 365 FO en modo de mantenimiento
