Tela inicial protheus

Pessoal eu tenho um programa que gera titulos a receber conforme o bloco que codigo abaixo, este bloco esta inserido no programa.


 aArray := { { "E1_PREFIXO"        , SE1->E1_PREFIXO             , NIL },;
                    { "E1_NUM"      , SE1->E1_NUM     , NIL },;
                    { "E1_PARCELA" , SE1->E1_PARCELA  , NIL },;
                    { "E1_TIPO"     , "AB-"           , NIL },;
                    { "E1_NATUREZ"  , SE1->E1_NATUREZ , NIL },;
                    { "E1_CLIENTE"  , SE1->E1_CLIENTE , NIL },;
                    { "E1_LOJA"     , SE1->E1_LOJA    , NIL },;
                    { "E1_NOMCLI"   , SE1->E1_NOMCLI  , NIL },;
                    { "E1_EMISSAO"  , DDATABASE       , NIL },;
                    { "E1_EMIS1"    , DDATABASE       , NIL },;
                    { "E1_HIST"     , 'LOTE CARTAO: '+SE1->E1_LOTECAR, NIL },;
                    { "E1_VENCTO"   , DDATABASE       , NIL },;
                    { "E1_VENCREA"  , DDATABASE       , NIL },;
                    { "E1_VALOR"    , SE1->E1_DESCTXC , NIL },;
                    { "E1_SALDO"    , SE1->E1_DESCTXC , NIL },;
                    { "E1_STATUS"  , 'A'              , NIL },;
                    { "E1_LOTECAR"  , SE1->E1_LOTECAR , NIL }}

                MsExecAuto( { |x,y| FINA040(x,y)} , aArray, 3)  // 3 - Inclusao, 4 - Alteração, 5 - Exclusão

pois bem depois da atualização para a 2310 esta dando um problema e esta dando um erro conforme mais abaixo, porem se eu pegar essa função e limpar ela, criar uma user function so para fazer o execauto da certinho.

tentei olhar todas as variaveis que o meu programa poderia estar mexendo mas nao tive sucesso

como eu faço para ressetar todas as variaveis como se eu estivesse na tela inicial do protheus ? usei GetArea() erestarea e tudo o que podia, mas nao deu certo.

acionei a totvs e nao estamos conseguindo sair do chao

DIVAIR ZARPELON 12 de set. de 2024, 12:25 BRT apos a migração do sistema para a versao 2310 um processo que eu possuo aqui parou de funcionar, essa processo ja estava no ar a mais de 5 anos, ele simplesmente executa isso

static function _graAbt2(oSay)

LOCAL aArray := {} LOCAL _F local _nAb := 0 PRIVATE lMsErroAuto := .F.

SetFunName("FINA740") for _f:= 1 to len(aTitLiqs) _PREFIXO := aTitLiqs[_f][2] _TITULO := aTitLiqs[_f][3] _PARCELA := aTitLiqs[_f][4]

DbSelectArea("SE1") DbSetorder(1) DbSeek(xFilial('SE1')+ _PREFIXO + _TITULO + _PARCELA,.F.)

do while !eof() .and. _PREFIXO + _TITULO + _PARCELA == SE1->E1_PREFIXO + SE1->E1_NUM + SE1->E1_PARCELA nReg:= SE1->(Recno()) if found() _nAb += 1 aArray := { { "E1_PREFIXO" , SE1->E1_PREFIXO , NIL },; { "E1_NUM" , SE1->E1_NUM , NIL },; { "E1_PARCELA" , SE1->E1_PARCELA , NIL },; { "E1_TIPO" , "AB-" , NIL },; { "E1_NATUREZ" , SE1->E1_NATUREZ , NIL },; { "E1_CLIENTE" , SE1->E1_CLIENTE , NIL },; { "E1_LOJA" , SE1->E1_LOJA , NIL },; { "E1_NOMCLI" , SE1->E1_NOMCLI , NIL },; { "E1_EMISSAO" , DDATABASE , NIL },; { "E1_EMIS1" , DDATABASE , NIL },; { "E1_HIST" , 'LOTE CARTAO: '+SE1->E1_LOTECAR, NIL },; { "E1_VENCTO" , DDATABASE , NIL },; { "E1_VENCREA" , DDATABASE , NIL },; { "E1_VALOR" , SE1->E1_DESCTXC , NIL },; { "E1_SALDO" , SE1->E1_DESCTXC , NIL },; { "E1_STATUS" , 'A' , NIL },; { "E1_LOTECAR" , SE1->E1_LOTECAR , NIL }}

U_ShowArray(aArray)

MsExecAuto( { |x,y| FINA040(x,y)} , aArray, 3) // 3 - Inclusao, 4 - Alteração, 5 - Exclusão

If lMsErroAuto u_dz_enmail("Nao consegui gerar abatimento" + STR_PULA + "Usuario: " + alltrim (cUserName),"Numero do Lote de credito: "+cNumLot,"divair@conpasul.com.br;contasareceber@conpasul.com.br") MostraErro() _Log(" Nao conseguir gerar abatimento "+ Substr(Time(),1,2)+":"+Substr(Time(),4,2)+":"+Substr(Time(),7,2)) else _Log("Abatimento gerado "+ Substr(Time(),1,2)+":"+Substr(Time(),4,2)+":"+Substr(Time(),7,2))

Endif

EndIf

DbGoTo(nReg) DbSelectArea("SE1") dbskip() Enddo

Next

if _nAb == 0

_Log(" Abatimentos nao encontrados "+ Substr(Time(),1,2)+":"+Substr(Time(),4,2)+":"+Substr(Time(),7,2))

endif

return

veja o erro que acontece Tabela SE1 09/09/24 13:24:26 Prefixo - E1_PREFIXO := MAT No. Titulo - E1_NUM := 000049041 Parcela - E1_PARCELA := 1 Tipo - E1_TIPO := AB- Natureza - E1_NATUREZ := CARTAO Cliente - E1_CLIENTE := 064108 Loja - E1_LOJA := 01 Nome Cliente - E1_NOMCLI := STONE INSTITUICAO DE DT Emissao - E1_EMISSAO := 09/09/24 DT Contab. - E1_EMIS1 := 09/09/24 Historico - E1_HIST := LOTE CARTAO: 004296 Vencimento - E1_VENCTO := 09/09/24 Vencto real - E1_VENCREA := 09/09/24 Vlr.Titulo - E1_VALOR := 11.5 < -- Invalido Saldo - E1_SALDO := 11.5 Status - E1_STATUS := A Lote Cartao - E1_LOTECAR := 004296 Erro --> Ocorreu um erro durante a validacao: type mismatch on + on FCALCISS line : 13860 Called from FA040NATUR line : 3541 Called from EVALVALID line : 1171 Called from ENCHAUTO line : 368 Called from FA040INCLU line : 723 Called from MBROWSEAUTO line : 86 Called from FINA040 line : 391 Called from { |X,Y| FINA040(X,Y)} line : 870 Called from MSEXECAUTO line : 3136 Called from _GRAABT2 line : 870 Called from {|OSAY| _GRAABT2(OSAY) } line : 730 Called from {|| EVAL(BACTION, OSAY), ODLGSVG:END() } line : 100 Called from ACTIVATE line : 0 Called from FWMSGRUN line : 100 Called from GRV_LCTOL line : 730 Called from {|OSAY| GRV_LCTOL(OSAY) } line : 269 Called from {|| EVAL(BACTION, OSAY), ODLGSVG:END() } line : 100 Called from ACTIVATE line : 0 Called from FWMSGRUN line : 100 Called from U_DZ_CART line : 269 Called from SIGAIXB line : 280 Called from __EXECUTE line : 670 Called from FWPREEXECUTE line : 86 Called from {||FWPreExecute('# Seleção Pgo Cartao', 'DZ_CART()', 3, '05', 'xxxxxxxxxx') } line : 422 Called from ACTIVATE line : 0 Called from ACTIVATE line : 790 Called from SIGAFIN line : 177


AJUDA:FALHATUDOK Falha na execução dos processos de validaçao da rotina de geraçao de títulos (FINA040)

nao faz sentido pois se eu lancar manual funciona perfeitamente, no E1_VALOR tenho essa informação

Tipo N Tamanho 17 Decimais 2 Uso Obrig

Funçäo:positivo().and.naovazio().and.fa040natur().and.fa040valor()

tentei tirar a validação do campo mas mesmo assim

pessoal, algo mudou no processo do execauto, e como disse, rotina que rodava a anos att

Bom dia!

Se vc está chamando a rotina na tela inicial, as tabelas do sistema podem não estar abertas! Verifique se, por exemplo Select("SX2") > 0.

a rotina execauto que eu executo da um erro pois ela faz parte de um programa maior, porem se eu pegar a parte so de geração do execauto (sem passar pelo resto do programa ) nao acontece esse erro, é muito estranho, isso aconteceu apos a migração para a 2310, essa rotina ja tem anos, o que que quero fazer é dar algum comando para fechar todas as informações, resetar variaveis como se eu estivesse abrindo o protheus e ai vou chamar a minha rotina entendeu ?

nao sei se entenderam, se eu pego a rotina e executo somente a parte do execauto funciona, dentro de uma rotina que eu executo outras funções ela da esse erro misterioso, essa rotina é executada a anos sem problema, com ceretza alguma coisa mudou na versao 2310, porem nao consegui resolver. minha ideia é resetar o ambiente, como se eu entrasse no protheus apos colocar usuario e senha, ter essas variaveis iniciais, pois a partir desse ceneario incial a função na da erro. Entao eu apos chaar minhas rotinas daria um reset em todas as variaveis como se eu tivesse recem logado. restarea e getare nao funciona

Divair,

No seu fonte, você faz referência a rotina FINA470 no SetFunName(). Essa rotina está descontinuada. Não sei se isso está interferindo, mas faça um teste comentando a linha do SetFunName() e faça um teste pra ver.

Eu colocaria também, depois da montagem do seu Array, a função FWVetByDic() pra ele sempre alinhar o seu array na sequência dos campos no SX3.

Precisa ver se esse seu programa U_ShowArray, não está interferindo também.

@divair

Depois que apliquei no ano passado o 24-07-25_ATUALIZACAO_12.1.2310_BACKOFFICE_EXPEDICAO_CONTINUA
começou o erro Erro type mismatch on * on FCALCISS(FINXIMP.PRW) pois a variavel que é numérica muda para Lógica e da o erro (NPERCISS(L) :.T.) se voltar o RPO não da erro mesmo assim o suporte da Totvs não reproduz e culpa as customizações

O erro começou no Release2310, testei com o ultimo acumulado de Janeiro 2025 e também deu erro, e montei uma base de teste do Release2410 baixei o ultimo acumulado e deu erro tbem… e não mexemos em nada em customizações…

Na Release 2310 se voltar o RPO 24-05-15_ATUALIZACAO_12.1.2310_BACKOFFICE_EXPEDICAO_CONTINUA com as mesmas customizações não da erro…

Você conseguiu alguma solução para esse erro type mismatch on * on FCALCISS(FINXIMP.PRW) ?

O erro ocorre se fizer uma liquidação e logo em seguida Incluir um titulo manual no C. Receber do tipo RA…