ExecAuto Fina080

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