Bom dia Eraldo,
Não sei lhe informa se o que descreverei é a forma mais atual ou recente, segue:
Algumas informações básicas referente ao retorno do arquivo cnab:
O protheus irá respeitar a configuração realizada na cadastro do arquivo de retorno cnab:
Logo as posições iniciais e finais dos dados do arquivo devem ser atribuídas corretamente de acordo com a informação da coluna campo.
No ponto de entrada F200VAR ele terá variáveis próprias para determinadas informações, não me recordo de todas, mas aconselho entrar em debug e olhar as variáveis declaradas e verificar os valores no momento ou olhar as seguinte referência:
https://tdn.totvs.com/display/public/PROT/FIN0025_CNAB_Array_utilizado_no_ponto_de_entrada_F200VAR
Por exemplo no código abaixo manipulo o valor recebido para receber diretamente também o valor da despesa da transação, não desejei atuar diretamente com as váriaveis padrões, então só atribui no final o valor na variável nValRec.
#include 'protheus.ch'
#include 'parmtype.ch'
user function F200VAR()
Local cBancol := cBANCO
Local cAgencial := CAGENCIA
Local nValRecL := nValRec
Local nDesPesL := nDesPes
if cBancol = '341' .AND. cAgencial<>'1248'
nValRec := nValRecL + nDesPesL
nMulta := 0
//nDesPesL :=100
EndIf
return
A mensagem que irá ser informado no relatório de arquivo cnab é influenciada da forma que foi configurada o código da ocorrência Cnab e inclusive algumas formas de como o retorno irá se comportar de acordo om o título.
Referência:
Cnab Modelo 2, mas a lógica não é muito diferente para o Cnab a receber...
https://centraldeatendimento.totvs.com/hc/pt-br/articles/360006978331-MP-SIGAFIN-CNAB-Como-realizar-a-Gera%C3%A7%C3%A3o-do-Arquivo-de-Retorno-Modelo-2
Juros:
https://centraldeatendimento.totvs.com/hc/pt-br/articles/360017680251-MP-SIGAFIN-CNAB-Calcular-juros-em-uma-baixa-Cnab-quando-banco-n%C3%A3o-considera-juros-no-valor-recebido
Variaveis: https://tdn.totvs.com/display/public/PROT/FIN0025_CNAB_Array_utilizado_no_ponto_de_entrada_F200VAR