× Linguagem de Programação ADVPL

Perguntas Controle de transações

Mais
6 anos 1 semana atrás #32540 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!

//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.

Tempo para a criação da página:0.089 segundos
Joomla templates by a4joomla