- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- PE para retorno de CNAB sem remessa
Perguntas PE para retorno de CNAB sem remessa
- Hboleta
- Autor do Tópico
- Desconectado
- Membro Iniciado
- Postagens: 11
- Obrigados Recebidos: 0
Preciso tratar arquivos de retorno de CNAB a receber de vários campos, os títulos vem migrados de outro sistema, e a remessa também é feita por esse outro sistema. Os títulos podem ser de cobrança registrada ou não registrada. Nesse cenário, nenhum deles têm remessa.
Como eu não tenho um ID CNAB, pensei em baixar os títulos usando o nosso número. Alguém tem um PE pra essa situação, ou poderia indicar qual o melhor PE pra tratar disso?
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
- Postagens: 3676
- Obrigados Recebidos: 6
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³ F200VAR ºAutor ³Luiz ALberto º Data ³ 06.09.12 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Ponto de entrada executado no momento do retorno de cobrançaº±±
±±º ³ do banco itau para alteração da natureza financeira
de titulos em carteira de desconto º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ AP º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function F200VAR()
Local aValores := PARAMIXB[01]
Local aArea := GetArea()
Local cIdCnab := SubStr(aValores[16],38,10) /// Captura do ID Cnab
Local cNNum := SubStr(aValores[16],83,12) /// Captura do Nosso Numero
//aValores := ( { cNumTit, dBaixa, cTipo, cNsNum, nDespes, nDescont, nAbatim, nValRec, nJuros, nMulta, nOutrDesp, nValCc, dDataCred, cOcorr, cMotBan, xBuffer,dDtVc,{} })
If !Empty(cIdCnab) // Se o ID Cnab Estiver Preenchido então localiza o Titulo
cNumTit := cIdCnab
// Posiciona no Registro do Titulo
If !SE1->(dbSetOrder(19), dbSeek(cNumTit))
Return
Endif
ElseIf !Empty(cNNum)
// Posiciona no Registro do Titulo com Base no Nosso Numero
// Novo Indice Criado E1_FILIAL + E1_NUMBCO
// Colocar o Numero da Ordem do Indice Criado na Tabela SE1
If !SE1->(dbSetOrder(27), dbSeek(xFilial("SE1")+cNNum))
Return
Else
cNumTit := SE1->E1_PREFIXO + SE1->E1_NUM + SE1->E1_PARCELA
Endif
Endif
RestArea(aArea)
Return
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- Hboleta
- Autor do Tópico
- Desconectado
- Membro Iniciado
- Postagens: 11
- Obrigados Recebidos: 0
Nesse caso preciso incluir um índice na minha SE1 e garantir que a ordem dele não seja sobreposta em alguma atualização, certo?
Valeu!
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
- Postagens: 3676
- Obrigados Recebidos: 6
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- Hboleta
- Autor do Tópico
- Desconectado
- Membro Iniciado
- Postagens: 11
- Obrigados Recebidos: 0
#include "rwmake.ch"
User Function F200VAR()
Local aValores := PARAMIXB[01]
Local aArea := GetArea()
Local cNNum := SubStr(aValores[16],95,12) /// Captura do Nosso Numero
//aValores := ( { cNumTit, dBaixa, cTipo, cNsNum, nDespes, nDescont, nAbatim, nValRec, nJuros, nMulta, nOutrDesp, nValCc, dDataCred, cOcorr, cMotBan, xBuffer,dDtVc,{} })
// Posiciona no Registro do Titulo com Base no Nosso Numero
// Novo Indice Criado E1_FILIAL + E1_NUMBCO A ordem dele é 27
If !SE1->(dbSetOrder(27), dbSeek(xFilial("SE1")+cNNum))
Return
Else
cNumTit := SE1->E1_PREFIXO + SE1->E1_NUM + SE1->E1_PARCELA
Endif
Endif
RestArea(aArea)
Return
Quando eu debugo, a variável cNNum está sendo carregada corretamente, mas o título não á baixado. Será que preciso carregar mais algum dado?
Na linha If !SE1->(dbSetOrder(27), dbSeek(xFilial("SE1")+cNNum)), qual o papel do "!"?
Valeu!
Por favor Acessar ou Registrar para participar da conversa.
- GuPadrao
- Desconectado
- Membro Especialista
- Postagens: 86
- Obrigados Recebidos: 1
Hugo escreveu:
If !SE1->(dbSetOrder(27), dbSeek(xFilial("SE1")+cNNum))
Return
Else
cNumTit := SE1->E1_PREFIXO + SE1->E1_NUM + SE1->E1_PARCELA
Endif
Endif
RestArea(aArea)
Return
Quando eu debugo, a variável cNNum está sendo carregada corretamente, mas o título não á baixado. Será que preciso carregar mais algum dado?
Na linha If !SE1->(dbSetOrder(27), dbSeek(xFilial("SE1")+cNNum)), qual o papel do "!"?
Valeu!
Hugo, não sei no seu caso mas tive um problema parecido e era questão de ocorrencias CNAB, ele não localizava.
O papel da "!" é negar a condição, nesse caso SE O INDICE "NÃO" FOR SE1->(dbSetOrder(27), dbSeek(xFilial("SE1")+cNNum))
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- PE para retorno de CNAB sem remessa