Alguem poderia dispor de um exemplo liberação de pedido de vendas por workflow ou rest?
Alguem poderia dispor de um exemplo liberação de pedido de vendas por workflow ou rest?
Boa noite!
Eu uso a seguinte função:
Static Function fLibPed(cNumPed)
dbSelectArea("SC6")
SC6->(dbSetOrder(1))
SC6->(dbSeek(xFilial("SC6")+cNumPed))
While SC6->(!EOF()) .And. SC6->C6_FILIAL == xFilial("SC6") .And. SC6->C6_NUM == cNumPed
MaLibDoFat(SC6->(RecNo()),SC6->C6_QTDVEN,.F.,.F.,.F.,.F.,)
SC6->(dbSkip())
EndDo
Return
No teu caso, podes receber pelo POST o número do pedido, se posicionar nele na SC5 e chamar esta função. Sempre me ajuda.
A documentação em anexo está em outra pergunta do forum aqui. Tentei achar uma documentação da TOTVS referente a o MaLibDoFAt e não achei. Só acho outros fóruns.
Obrigado Raphael, vai me ajudar muito!
— Marcos Bispo Abrahão 04 de May de 2021Tive que fazer uma correção: MaLibDoFat(SC6->(RecNo()),SC6->C6_QTDVEN,.T.,.T.,.F.,.F.,)
Begin Transaction SC6->(MaLiberOk({cNumPed},.F.)) End Transaction End Transaction
— Marcos Bispo Abrahão 02 de Aug de 2021O comentário do Marcos foi fundamental para fazer funcionar a personalização que eu estava realizando. Obrigado Marcos Bispo
— Felipe Aurélio de Melo 19 de Jan de 2022Marcos Bispo Abrahão, por acaso vc teria como disponibilizar o trecho da rotina, aqui na empresa tenho a mesma liberação porem quando entra mais de um usuario o sistema trava e eu tenho que reiniciar os serviços. Se puder disponibilizar agradeço. Obrigado
Static Function fLibPed(cNumPed)
Local lOk := .F.
dbSelectArea("SC5")
SC5->(dbSetOrder(1))
SC5->(dbSeek(xFilial("SC5")+cNumPed))
If Empty(SC5->C5_LIBEROK) .And. Empty(SC5->C5_NOTA) .And. Empty(SC5->C5_BLQ)
// ponto de entrada - gravação da liberação do pedido de venda
u_BK440GR(1)
dbSelectArea("SC6")
SC6->(dbSetOrder(1))
SC6->(dbSeek(xFilial("SC6")+cNumPed))
While SC6->(!EOF()) .And. SC6->C6_FILIAL == xFilial("SC6") .And. SC6->C6_NUM == cNumPed
MaLibDoFat(SC6->(RecNo()),SC6->C6_QTDVEN,.T.,.T.,.F.,.F.,,,,{||SC9->C9_XXRM := SC5->C5_XXRM,SC9->C9_XXORPED := SC5->C5_XXTPNF})
Begin Transaction
SC6->(MaLiberOk({cNumPed},.F.))
End Transaction
SC6->(dbSkip())
EndDo
// Executar os pontos de entrada
u_MTA410T()
lOk := .T.
Else
lOk := .F.
EndIf
u_MsgLog("RESTLIBPV","Pedido "+cNumPed+" "+iIf(lOk,"liberado","não liberado"))
Return lOk