Usar a classe PriceDisc no DAX não é sempre a coisa mais fácil do mundo. Se você começar com uma linha de ordem de venda ou uma linha de ordem de compra, você tem métodos que te ajudam a recuperar os preços via Trade Agreements, mas se tudo que você tem é o ItemID e o VendAccount / CustAccount as coisas podem se complicar um pouco.
Meu pensamento era que eu devia ser capaz de usar a PriceDisc assim como a classe InventOnHand, ou seja, você coloca informações básicas, e quanto mais informações você colocar mais preciso será o resultado que você obterá. Mas a dificuldade que tive foi que a classe PriceDisc requer um registro da tabela InventDim, algo que você apenas tem se você inicia de uma linha das ordens de venda ou ordens de compra.
A solução para este problema é o InventDimID “AllBlack” o que basicamente significa um registro vazio da tabela IventDim com o IventDimID “AllBlank”. E se o InventDimId não existe? Por isso você deve usar o método findOrCreateBlank() na tabela InventDim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | server static public InventDim findOrCreateBlank(boolean testConfigurationKey = true) { #define.blank('AllBlank') InventDim inventDim; InventDim inventDimAllBlank; InventDimId inventDimIdBlank = #blank; ; if (testConfigurationKey && isConfigurationkeyEnabled(configurationkeynum(LogisticsAdvanced))) return inventDim; inventDim = InventDim::find(inventDimIdBlank); if (inventDim.RecId && InventDim::isInventDimEqual(inventDim, inventDimAllBlank)) return inventDim; if (inventDim.RecId) inventDimIdBlank += '2'; inventDim = InventDim::findDim(inventDimAllBlank); if (inventDim.RecId) return inventDim; ttsbegin; inventDim.InventDimId = inventDimIdBlank; inventDim.insert(true); ttscommit; return inventDim; } |
Este método retorna um buffer InventDim AllBlank se ele existir e cria um se ele não existir. Agora você tem todos os dados que você precisa para obter as informações do Trade Agreements.
Não se esqueça que a moeda e a UnitID também devem bater com seu Trade Agreements.
Uma vez eu já tinha precisado disso, e tinha resolvido usando o findorcreate, agora encontrei um artigo e resolvi traduzir para vocês.
Fonte.: http://www.fourone.se/blog/2008/02/20/the-magic-of-inventdim-%E2%80%9Callblank%E2%80%9D/
[]s
Pichler
Leave a reply