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.

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Obrigado Raphael, vai me ajudar muito!

Tive 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

O comentário do Marcos foi fundamental para fazer funcionar a personalização que eu estava realizando. Obrigado Marcos Bispo

Marcos 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