Atualizar valor da dimensão financeira do código X++ no Dynamics 365
Publicado: 16 de fevereiro de 2025 às 12:01:31 UTC
Última atualização: 13 de novembro de 2025 às 13:37:36 UTC
Este artigo explica como atualizar um valor de dimensão financeira do código X++ no Dynamics 365, incluindo um exemplo de código.
Update Financial Dimension Value from X++ Code in Dynamics 365
As informações nesta postagem são baseadas no Dynamics 365. Ele também deve funcionar no Dynamics AX 2012, mas eu não o testei explicitamente.
Recentemente, fui incumbido de atualizar o valor de uma única dimensão financeira com base em alguma lógica de forma.
Como você provavelmente sabe, como as dimensões financeiras do Dynamics AX 2012 são armazenadas em tabelas separadas e referenciadas por meio de um RecId, geralmente em um campo DefaultDimension.
Toda a estrutura para lidar com dimensões é um pouco complexa e muitas vezes me vejo tendo que reler a documentação sobre ela, talvez porque não seja algo com que eu trabalho com tanta frequência.
De qualquer forma, atualizar um campo em um conjunto de dimensões existente é algo que aparece com frequência, então pensei em escrever minha receita favorita ;-)
Um método utilitário estático pode ter esta aparência:
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;
}
O método retorna um novo (ou o mesmo) DimensionDefault RecId, portanto, se atualizar um valor de dimensão para um registro - que é provavelmente o cenário mais comum - você deve atualizar o campo de dimensão nesse registro com o novo valor.
Leitura adicional
Se gostou deste post, também pode gostar destas sugestões:
- Coloque o Dynamics 365 FO Virtual Machine Dev ou Test no modo de manutenção
- Adicionar método de visualização ou edição através de extensão no Dynamics 365
- Criação de um campo de pesquisa para uma dimensão financeira no Dynamics 365
