Olá
Estou com um problema no execauto fina080.
O problema ocorre da seguinte maneira: quando faço uma atualização de valores na SE2 antes de entrar no execauto, o execauto retorna erro "pesquisa não encontrada com os dados acima". Já tentei de tudo, posicionar novamente o SE2 no recno correto, dar um getarea rest area pós reclock, ver os indices etc. Alguma idéia do que posso tentar para solucionar o problema? O execauto funciona normal se eu não der update em um campo da se2. Não sei oq pode ser, já tentei de td
METHOD UpdateStatusSE2(cStatus) CLASS BRADESCPAG
RECLOCK("SE2",.F.)
REPLACE SE2->E2_XSTATUS with cStatus
SE2->(MsUnlock())
EndMethod
METHOD ExecFina080(nValorPago,nTipoPag) CLASS BRADESCPAG
Local nY
Private lMsErroAuto := .F.
Private lAutoErrNoFile := .T.
Private cMotivo := alltrim(GetMv("MV_XBDMTV"))
Private nValor := 0
Private aLog := {}
Private cErro := ""
dDataBase := Date()
aBaixa := {}
aAdd( aBaixa, {"E2_FILIAL" , SE2->E2_FILIAL , Nil } )
aAdd( aBaixa, {"E2_PREFIXO" , SE2->E2_PREFIXO , Nil } )
aAdd( aBaixa, {"E2_NUM" , SE2->E2_NUM , Nil } )
aAdd( aBaixa, {"E2_PARCELA" , SE2->E2_PARCELA , Nil } )
aAdd( aBaixa, {"E2_TIPO" , SE2->E2_TIPO , Nil } )
aAdd( aBaixa, {"E2_FORNECE" , SE2->E2_FORNECE , Nil } )
aAdd( aBaixa, {"E2_LOJA" , SE2->E2_LOJA , Nil } )
aAdd( aBaixa, {"AUTMOTBX" , cMotivo , Nil } ) //via parametro motivo baixa
aAdd( aBaixa, {"AUTDTBAIXA" , dDataBase , Nil } ) //
aAdd( aBaixa, {"AUTDTCREDITO", dDataBase , Nil } ) //
aAdd( aBaixa, {"AUTHIST" , 'BAIXA REFERENTE AO TITULO '+alltrim(SE2->E2_NUM)+" via API Bradesco" , Nil } )
aAdd( aBaixa, {"AUTVLRPG" , nValorPago , Nil } ) //se houver divergencia colocar E2_ACRESC ou E2_DECRESC
MsExecAuto( {|ER,UD| FINA080(ER,UD)}, aBaixa, 3 )
If lMsErroAuto
DisarmTransaction()
aLog := GetAutoGRLog()
For nY := 1 To Len(aLog)
If !Empty(cErro)
cErro += CRLF
EndIf
cErro += aLog[nY]
Next nY
Endif
SE2->(DbGoTo(cRecnoTst))
Return cErro
EndMethod