- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Controle de transações
×
Linguagem de Programação ADVPL
Perguntas Controle de transações
- rodrigolparaujo
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 78
- Obrigados Recebidos: 0
6 anos 7 meses atrás #32540
por rodrigolparaujo
Controle de transações foi criado por rodrigolparaujo
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!
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
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Controle de transações
Tempo para a criação da página:0.066 segundos