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

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags msexecauto fina040 ou faça a sua própria pergunta.