Versão atual:

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

Versão (1):

Ver a versão formatada

tela inicial protheus

Comentário

new question