on 11-10-2015 2:02 PM
Caros, experts, bom dia!
Algum dos colegas sabe dizer onde posso encontrar a data de cancelamento de um pedido de venda?
Tentei o campo ORDR.ClsDate mas este campo, em nossa base, não esta sendo alimentado.
Tentei também pela tabela ADOC mas não consegui identificar uma informação que mostra a linha em que houve a modificação do campo "ADOC.Docstatus" para "C".
Atenciosamente,
Boa tarde,
lembro que no meu antigo sistema tínhamos essa data por causa da ISO 9000, era um requisito para analisar os pedidos cancelados por data de cancelamento, até o momento não achei nada no SAP.
Sobre a data de atualização temos que tomar cuidado, mesmo o pedido estando cancelado ele aceita atualizações, pode alguém ir no pedido e alterar algo (como por exemplo, uma observação), e atualizar o pedido, perdendo a referência de quando foi cancelado realmente.
O legal seria além do Y do Canceled, ter um campo "CanceledDate", "CanceledTime" e "CanceledUser" pra registrar quem cancelou o documento.
Um jeito que consegui pegar seria a primeira vez que o ADOC.Canceled for igual a "Y", como o cancelamento é uma alteração, ele registra o usuário que cancelou no campo UserSign2, no caso só de cancelament, ele não gera ADOC, então pegamos do pedido mesmo (joguei 999999 no loginstanc pra ficar no final).
No exemplo, estou pesquisando documento 6008, pedido de venda (obj 17)
SELECT TOP 1 * FROM
(
select top 1 T0.DocEntry, t0.UpdateDate, T1.U_NAME, T0.CANCELED, t0.LogInstanc
from adoc T0
INNER JOIN ousr t1 on t1.USERID = t0.UserSign2
where T0.docentry = 6008 and T0.ObjType = 17 and T0.CANCELED = 'Y'
union all
select T0.DocEntry, t0.UpdateDate, T1.U_NAME, T0.CANCELED, 999999 as LogInstanc
from ordr T0
INNER JOIN ousr t1 on t1.USERID = t0.UserSign2
where T0.docentry = 6008 and T0.ObjType = 17 and T0.CANCELED = 'Y'
) G0
order by G0.LogInstanc
Espero ter ajudado
Fabio.
SAP 9.0 PL15 / SAP 9.1 PL8(test)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Boa tarde Thiago, quando você cancela o documento no SAP Business One o sistema atualiza o campo "Canceled" de "N" para "Y" e marca a data de execução desta atualização no UpdateDate.
Com isto você terá que fazer um comparativo entre os registros da ADOC para o seu documento, buscando o momento (registro) em que alterou de 'N' para 'Y' o campo "Canceled" então na primeira linha com "Y" pegar o campo 'UpdateDate', aqui está data em que foi cancelado.
Abraço.
Att,
Rodrigo da Costa Feula
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Rodrigo, muito obrigado pelas considerações.
Como eu estou precisando de uma lista de pedidos cancelados em determinado período, encontrei apenas uma dificuldade em conseguir a informação.
Alguns pedidos são criados e encerrados (ou seja na tabela ADOC somente há uma linha, com os dados anteriores) neste caso eu poderia fazer um select onde o campo ORDR.Canceled="Y" e ORDR.UpdateDate esta dentro do intervalo. Porém outros podem ser encerrados e após isto modificados. Exemplo, criei um pedido em 10/out/2015, cancelei ele em 15/out/2015 e por algum motivo fiz alguma alteração em um determinado campo de usuário em 05/11/2015.
Neste ultimo caso o pedido será mostrado quando emitirmos a pesquisa do ORDR.Canceled="Y" e ORDR.UpdateDate no começo de novembro (com filtro do mes de outubro) e também no começo de dezembro (com filtro do mês de novembro), mas na verdade ele foi cancelado em outubro, apesar da alteração em novembro.
Tu poderia me ajudar a sanar esta pendência? Não consegui desenvolver o tema.
Thiago, na ADOC cada registro tem um numerador.
Pegue o registro com menor numerador, dentro do intervalo do seu documento quando o campo Canceled estiver com 'Y'.
Ou o primeiro registro de atualização do documento que o Canceled está igual a "Y".
Acredito que o resultado será o mesmo;
Abraço,
Rodrigo da Costa Feula
Thiago, pensando em uma consulta SQL, talvez seria interessante o uso de CASE (embora alguns não gostem deste uso).
Se documento com status igual a cancelado e um único registro em adoc
Então Selecionar a data de atualização do documento
Se documento com status igual a cancelado e existir mais de um registro em adoc
Então Selecionar a data de atualização do primeiro registro com cancelado = "Y" na adoc.
Enfim, depois nos posicione com a solução.
Att,
Rodrigo da Costa Feula
User | Count |
---|---|
110 | |
12 | |
11 | |
6 | |
5 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.