on 09-10-2014 5:31 PM
Boa tarde pessoal,
alguém sabe um select fácil pra eu filtrar transações reconciliadas e não reconciliadas no lançamento contábil manual?
Eu quero fazer um select na tabela OJDT (Cabeçalho) e JDT1 (Detalhe dos lançamentos), filtrando conciliados ou não, igual ao filtro que tem no SAP.
Abraço
Fabio
SAP 8.82 PL16 / SAP 9.0 PL13
Fabio
Dentro do Gerenciador de Consultar existe uma pasta chamada sistema onde existem várias consultas prontas relacionadas a Reconciliação, de uma olhada talvez elas possam te ajudar.
Abçs
Eduardo Gama
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Eduardo, pesquisei as consultas, nem lembrava delas, e descobri onde procurar, a informação, toda reconciliação está na tabela ITR1.
Aqui acontece as vezes cancelamento de reconciliação, como exemplo abaixo, cancelei 4x uma reconciliação.
Descobri a tabela na consulta do sistema/Reconciliação interna por nro de transação, onde apresentou os dados da ITR1
Pra filtrar, fiz um esquema de soma de valores do campo ReconSum, eu somei esse campo, se o valor for diferente de zero, foi reconciliado.
select
CASE WHEN (select sum(TA0.ReconSum) from ITR1 TA0 WHERE TA0.TransId = T0.TransId) <> 0
THEN 'Reconciliado'
END as StatusReconciliacao,
t0.TransId,
t0.RefDate,
t0.Memo,
t1.Account,
t1.Debit,
t1.Credit
from ojdt t0
inner join jdt1 t1 on t1.TransId = t0.TransId
where t0.refdate > '01/08/2014' T0.TransId >= 46460
Abraço,
Fabio.
Bom dia pessoal,
Complementando minha resposta, ficou muito difícil usar esse SQL que publiquei, então resolvi descobrir como o SAP faz, utilizando a ferramenta SQL Server Profile, que meu grande mestre SAP Cesar Sastre me ensino a usar.
Descobri que o SAP pra saber se está conciliado ou não, testa dois campos da tabela JDT1, o campo BalDueCred e o campo BalDueDeb, se esses campos estiverem zerados, o lançamento foi conciliado.
Segue abaixo nova SQL que fiz para mostrar se está ou não conciliado.
-- Cheques recebidos.
select
CASE
WHEN abs(T1.BalDueCred)+abs(T1.BalDueDeb) = 0
THEN 'Reconciliado nº ' + (SELECT CONVERT(VARCHAR(MAX), MAX(TA0.[ReconNum])) FROM [dbo].[ITR1] TA0 WHERE TA0.[TransId] = t0.TransId)
END as StatusReconciliacao,
t0.TransId,
t0.RefDate,
t0.Memo,
t1.Account,
t1.Debit,
t1.Credit,
T1.BalDueCred,
T1.BalDueDeb
from ojdt t0
inner join jdt1 t1 on t1.TransId = t0.TransId
where t1.Account like '1.1.2.7%' -- Minha conta de cheques recebidos.
Abraço
Fabio.
Boa tarde Fábio, tenho utilizado bastante a JDT1 para relatórios diversos (consultas).
Já observei que quando realizamos uma reconciliação interna de PN o sistema preenche:
JDT1.MthDate com a data em que foi realizada a reconciliação interna.
Sugiro que você realize testes com esta coluna, onde a princípio: caso a coluna esteja vazia equivale a linha não reconciliada, estando com data preenchida equivale a linha conciliada. Obs.: Nos casos em que utilizei regra parecida estava olhando para as linhas de JDT1 onde Account era a conta controle de C/R.
Espero ter colaborado.
Bons testes para você!
Depois dê um feedback aqui, comentando se deu certo.
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.
Boa tarde Rodrigo,
no primeiro momento funcionou o campo, mas infelizmente quando há cancelamento de reconciliação, ele mantém a data neste campo.
Por exemplo, fiz 4 operações pra testar, ele manteve o valor.
Mas descobri com a dica do Eduardo como pegar a informação,, segue na próxima resposta,,
abraço.
Fabio
User | Count |
---|---|
85 | |
7 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 | |
3 | |
2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.