Bem Vindo Visitante Lista de Usuários

 Todos os Fórums
  ADVPL

Enviar para a impressoraImprimir   

Subject Controle de transações
Mensagem do Enviar e-mail Abrir o Perfil do usuário RLPA RLPA em 4/9/2018 as 15:10 hs
Local: SP   Registrada: 5/9/2007  Postagem: 158
Boa tarde!

Criei uma rotina que utiliza o execauto mata410 para incluir um Pedido de vendas e depois que o pedido é criado eu abra o pedido de venda para alteração usando a função MatA410(Nil, Nil, Nil, Nil, "A410Altera")

Porém, quando fecho a rotina usada para criar o PV, ocorre a seguinte mensagem:

A rotina não pode ser encerrada pois o controle de transações está habilitado e existem transações pendentes no programa "meufonte()", Pilha de chamadas: "minhafuncao()", on __EXECUTE(APLIB090.PRW) 22/02/2018 16:52:33 line : 658

Alguém já passou por isso?

Tem alguma forma de limpar estas pendencias?

Desde já agradeço!


//No meu execauto informo apenas os campos obrigatórios
Begin Transaction
     MsProcTxt("Incluindo Pedido de Venda (SC5)...")
     MsExecAuto({|x, y, z| Mata410(x, y, z)}, aCab, aDet, 3)
          
     dbSelectArea("SC5")
     dbSetOrder(1)
     If lMsErroAuto
          RollBackSx8()
          MsProcTxt("Ocorreu um erro!")
          MostraErro()
          DisarmTransaction()
          Break
     Else
          MsAguarde({|| AcessaPV(cNumPV,"A410Altera")},"Alterar Pedido de Vendas","Abrindo Pedido de Venda "+cNumPV)
     Endif

End Transaction

//depois que tudo deu certo eu abro o pedido de venda para alterar


Static Function AcessaPV(cPedido,cRotina)
     Local aArea := GetArea()
     Private Inclui    := .F.
     Private Altera    := .T.
     Private nOpca     := 1
     Private cCadastro := "Pedido de Vendas"
     Private aRotina := {}
     
     MsProcTxt("Localizando Pedido de Venda "+cPedido)
     
     DbSelectArea("SC5")
     SC5->(dbSetOrder(1))
     SC5->(dbSeek(xFilial("SC5")+cPedido))
     If SC5->(!EOF())
          MsProcTxt("Abrindo Pedido de Venda "+cPedido)
          SC5->(DbGoTo(Recno()))
          MatA410(Nil, Nil, Nil, Nil, cRotina)
     Endif
     SC5->(DbCloseArea())
     MsProcTxt("Fim")
     RestArea(aArea)
Return

Para participar do Fórum você precisa efetuar login primeiro
Caso você não esteja registrado registre-se para participar do fórum

 Mudar para Fórum