- 14 Jun 2021 às 11:03
#65170
Bom Dia a todos.
Estou com uma grande dificuldade (ao menos no meu ponto de vista) para conseguir extrair uma informação no PBI e agradeço muito se alguém puder me ajudar.
Em resumo, eu preciso apresentar o saldo do estoque do produto em alguns cenários. Esse saldo é mensal, ou seja, quanto o produto tinha de estoque no ultimo dia do mês de Janeiro, Fevereiro, etc. Caso o mês não esteja finalizado deve mostrar o saldo da data da atualização do PBI.
A informação do saldo do item está em meu modelo em uma tabela chamada fTransasald, que é uma consulta feita no EPR. Abaixo uma imagem dos dados que essa tabela contem.
https://imgur.com/vKWbzMg
Note que nesta imagem eu destaquei 2 campos importantes, a Data e o ID. A informação do saldo de cada item no ultimo dia de cada mês, sempre no registro do ultimo dia deste mês (ou data mais próxima do ultimo dia) e com o Maior ID. Então se existirem 3 registros com data 31/01/2021, o registro com maior ID deste item e data é onde estará o saldo do produto, na coluna SALQTDEFILIAL.
Para tentar resolver esse problema eu fiz o seguinte. Primeiro criei uma nova tabela usando a função SUMMARIZE afim de agrupar os itens com data e id. Abaixo imagem desta tabela.
https://imgur.com/7Wfn4gw
Além desta função adicionei mais 3 novas colunas:
AnoMes = YEAR('Summarize saldos estoque'[DATATRANSACAO])&"-"&MONTH('Summarize saldos estoque'[DATATRANSACAO])
SaldoQtdFilial = LOOKUPVALUE(fTransasald[SALQTDEFILIAL],fTransasald[ID],'Summarize saldos estoque'[maiorID])
ValorEstFilial = LOOKUPVALUE(fTransasald[SALVALESTFILIAL],fTransasald[ID],'Summarize saldos estoque'[maiorID])
Essa novas colunas servem para serem utilizadas então em outra nova tabela que faz um novo SUMMARIZE destas informações, agora agrupando pelo MAX(DataTransação) para ter as informações de saldo e valor sempre do ultimo dia de cada mês. Abaixo imagem desta tabela.
https://imgur.com/hQ8AYoC
Então é ai que está meu problema. Note que para esse produto que peguei como exemplo (144p) ele tem uma data de saldo no dia 31/01/2021 com o ID 1666489. Esse ID é o maior do mês 01/2021 mas do dia errado.
Nas funções summarize que estão sendo executas o PBI está trazendo, no dia 31/01/2021, o ID 1666489 que pertence a outro dia (no caso deste item dia 30/01/2021) porque o ID que está neste dia é maior que o ID do dia 31. Isso ocorre porque no ERP houve uma movimentação de estoque com data retroativa. Ai o ERP gravou um ID maior para uma data menor.
Neste item o correto seria apresentar para dia 31/01/2021 o ID 1666474 e ai assim as minhas informações da quantidade e saldo ficariam corretas.
O que eu preciso é ajustar isso, fazer buscar o ID correto (maior ID) para a ultima data (maior data) de cada mês, por item.
Espero ter conseguido me expressar para explicar o problema.
Novamente agradeço a quem puder me ajudar.
Abraços.
Att, Rafael.
Estou com uma grande dificuldade (ao menos no meu ponto de vista) para conseguir extrair uma informação no PBI e agradeço muito se alguém puder me ajudar.
Em resumo, eu preciso apresentar o saldo do estoque do produto em alguns cenários. Esse saldo é mensal, ou seja, quanto o produto tinha de estoque no ultimo dia do mês de Janeiro, Fevereiro, etc. Caso o mês não esteja finalizado deve mostrar o saldo da data da atualização do PBI.
A informação do saldo do item está em meu modelo em uma tabela chamada fTransasald, que é uma consulta feita no EPR. Abaixo uma imagem dos dados que essa tabela contem.
https://imgur.com/vKWbzMg
Note que nesta imagem eu destaquei 2 campos importantes, a Data e o ID. A informação do saldo de cada item no ultimo dia de cada mês, sempre no registro do ultimo dia deste mês (ou data mais próxima do ultimo dia) e com o Maior ID. Então se existirem 3 registros com data 31/01/2021, o registro com maior ID deste item e data é onde estará o saldo do produto, na coluna SALQTDEFILIAL.
Para tentar resolver esse problema eu fiz o seguinte. Primeiro criei uma nova tabela usando a função SUMMARIZE afim de agrupar os itens com data e id. Abaixo imagem desta tabela.
https://imgur.com/7Wfn4gw
Além desta função adicionei mais 3 novas colunas:
AnoMes = YEAR('Summarize saldos estoque'[DATATRANSACAO])&"-"&MONTH('Summarize saldos estoque'[DATATRANSACAO])
SaldoQtdFilial = LOOKUPVALUE(fTransasald[SALQTDEFILIAL],fTransasald[ID],'Summarize saldos estoque'[maiorID])
ValorEstFilial = LOOKUPVALUE(fTransasald[SALVALESTFILIAL],fTransasald[ID],'Summarize saldos estoque'[maiorID])
Essa novas colunas servem para serem utilizadas então em outra nova tabela que faz um novo SUMMARIZE destas informações, agora agrupando pelo MAX(DataTransação) para ter as informações de saldo e valor sempre do ultimo dia de cada mês. Abaixo imagem desta tabela.
https://imgur.com/hQ8AYoC
Então é ai que está meu problema. Note que para esse produto que peguei como exemplo (144p) ele tem uma data de saldo no dia 31/01/2021 com o ID 1666489. Esse ID é o maior do mês 01/2021 mas do dia errado.
Nas funções summarize que estão sendo executas o PBI está trazendo, no dia 31/01/2021, o ID 1666489 que pertence a outro dia (no caso deste item dia 30/01/2021) porque o ID que está neste dia é maior que o ID do dia 31. Isso ocorre porque no ERP houve uma movimentação de estoque com data retroativa. Ai o ERP gravou um ID maior para uma data menor.
Neste item o correto seria apresentar para dia 31/01/2021 o ID 1666474 e ai assim as minhas informações da quantidade e saldo ficariam corretas.
O que eu preciso é ajustar isso, fazer buscar o ID correto (maior ID) para a ultima data (maior data) de cada mês, por item.
Espero ter conseguido me expressar para explicar o problema.
Novamente agradeço a quem puder me ajudar.
Abraços.
Att, Rafael.