Atualizar valor da dimensão financeira do código X++ no Dynamics 365
Publicado: 16 de fevereiro de 2025 às 12:01:29 UTC
Última atualização: 13 de novembro de 2025 às 13:37:34 UTC
Este artigo explica como atualizar o valor de uma dimensão financeira a partir de 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 neste post são baseadas no Dynamics 365. Elas também devem funcionar no Dynamics AX 2012, mas não as testei explicitamente.
Recentemente, fui incumbido de atualizar o valor de uma única dimensão financeira com base em alguma lógica de formulário.
Como você provavelmente já sabe, no Dynamics AX 2012 as dimensões financeiras são armazenadas em tabelas separadas e referenciadas por meio de um RecId, geralmente em um campo DefaultDimension.
A estrutura geral para lidar com dimensões é um tanto complexa e frequentemente me vejo obrigado a reler a documentação sobre o assunto, talvez porque não seja algo com que eu trabalhe com muita frequência.
De qualquer forma, atualizar um campo em um conjunto de dimensões existente é algo que acontece com frequência, então pensei em escrever sobre minha receita favorita ;-)
Um método utilitário estático poderia ter a seguinte 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;
}
Método retorna um novo (ou o mesmo) RecId de DimensionDefault, portanto, se estiver atualizando o valor de uma dimensão para um registro - o que provavelmente é o cenário mais comum - você deve garantir que atualize o campo de dimensão nesse registro com o novo valor.
Leitura adicional
Se você gostou deste post, você também pode gostar destas sugestões:
- Adicionar método de exibição ou edição por meio de extensão no Dynamics 365
- Criando um campo de pesquisa para uma dimensão financeira no Dynamics 365
- O Visual Studio trava na inicialização ao carregar projetos recentes
