Versão atual:

Problema com ExecAuto Mata241 e DisarmTransaction()

Tenho o seguinte codigo:

    For nX := 1 To Len(aOPs)

        Begin Transaction

            lMsErroAuto := .F.
            MSExecAuto({|x,y,z| MATA241(x,y,z) },aCab,aItens,3)
            If lMsErroAuto
                DisarmTransaction()
                MostraErro()
                Break
            EndIf

            MsExecAuto({|x, y| MATA250(x, y)},aApont, 3 )  
            If lMsErroAuto
                DisarmTransaction()
                MostraErro()
                Break
            EndIf

            MsExecAuto({|x, y| MATA250(x, y)},aApont, 6 )
            If lMsErroAuto
                DisarmTransaction()
                MostraErro()
                Break
            EndIf

        End Transaction

    Next nX

Estou com 2 problemas.

Ao executar o MATA241 pela primeira vez, não tenho nenhum problema, ao terminar o primeiro laçõ e executar o segundo ciclo, da o erro abaixo, e o Protheus fecha.

Saída no final:  AJUSTAR PARAMETRO MV_DOCSEQ

FINAL - MSFINAL.PRW(241) - Params: CSTR: AJUSTAR PARAMETRO MV_DOCSEQ,CSTR1:,LLOGOFF:.F.,LLOGIN:.F.,NTIMER:0 )
PROXNUM - SIGACUSA.PRX(14355) - Params: LSAVE:.T.,LSHOWFINAL:.T. )
A241GRAVA - MATA241.PRX(1999) - Params: CALIAS:SD3,NOPCAO:3,@LCHANGEDOC:.F.,@ACPOUSU: )
A241INCLUI - MATA241.PRX(1048) - Params: CALIAS:SD3,NREG:622,NOPC:3,CNEWDOC:,LCHANGEDOC:.F. )
MATA241 - MATA241.PRX(223) - Params: @XAUTOCAB:,@XAUTOITENS:,NCALLOPCX:3 )
{|X,Y,Z| MATA241(X,Y,Z) } - ESTK0020.PRW(211) - Params: @X:,@Y:,Z:3 )
MSEXECAUTO - MATXFUNB.PRX(3047) - Params: BROTINA:{|X,Y,Z| MATA241(X,Y,Z) },@UPAR1:,@UPAR2:,UPAR3:3,UPAR4:NIL,UPAR5:NIL,UPAR6:NIL,UPAR7:NIL,UPAR8:NIL,UPAR9:NIL,UPAR10:NIL,UPAR11:NIL,UPAR12:NIL,UPAR13:NIL,UPAR14:NIL,UPAR15:NIL )
U_ESTK0020 - ESTK0020.PRW(211)
SIGAIXB - APLIB190.PRW(231) - Params: CBLOCK:ESTK0020 )
__EXECUTE - APLIB090.PRW(654) - Params: CFUNCTION:ESTK0020,CACCESS:xxxxxxxxxx,CDESCRI:Retorno Automação,CMODEXEC:04,CPAI:Retorno Automação,NTYPE:3,LONLOAD:.F.,NOLDMOD:4 )
FWPREEXECUTE - FWPREEXECUTE.PRW(79) - Params: CTITLE:Retorno Automação,CFUNCTION:ESTK0020(),NTYPE:3,CMODULE:04,CACCESS:xxxxxxxxxx )
{ ||   FWPreExecute('Retorno Automação', 'ESTK0020()', 3, '04', 'xxxxxxxxxx') } - FWUIMENUL.PRW(197)
TWINDOW:ACTIVATE - (0)
ACTIVATE - FWAPP.PRW(755) - Params: BACTION:NIL,OUSERAUTH:NIL,OPARAM:NIL )
SIGAEST - APLIB000.PRW(131) - Params: PAR01:NIL )

E meu outro problema é se der algum erro no segundo ou terceiro execauto não esta dando rollback no execauto anterior.

Protheus 12.1.27

Banco MSSQL 2017

Obrigado!

Versão (1):

Ver a versão formatada

Problema com ExecAuto Mata241 e DisarmTransaction()

Comentário

new question