| Produto: | |
|---|---|
| Linha de Produto: | |
| Segmento: | |
| Módulo: | |
| Função: | NFC - ENVIO DE WORKFLOW |
| País: | Brasil |
| Ticket: | 24289815 |
| Requisito/Story/Issue (informe o requisito relacionado) : | DBSUPINV-6054 |
Descrição: Este ponto de entrada é utilizado para customizar a API de envio do workflow do NFC, podendo ser realizada qualquer implementação de workflow customizado.
Localização: NFC - Processos de envio do workflow (Geração da cotação, Envio de e-mail para o fornecedor, Noivo participante e Nova proposta workflow).
#include 'Protheus.ch'
User Function NFCWFCUSTOM()
Local oJsonWF := Paramixb[1]
Local oJsonResp := JsonObject():New()
Local cNumQuote := ''
Local nCode := 200
Local cMessage := ''
Local lOk := .T.
Local nX := 0
Local aSuppliers := {}
Local cForn := ''
Local cLoja := ''
Local cCorporateName := ''
Local cEmail := ''
Local cLastProp := ''
//-- Exemplo de estrutura do JSON contido em oJsonWF
/*
{
"quotation": "000230", // Número da cotação
"suppliers": [ //-- Array de fornecedores que receberão o workflow
{
"supplier": "000001", // Código do fornecedor
"store": "01", // Código da loja
"corporatename": "HOSPITAL MATER DEI", // Nome do fornecedor
"email": "[email protected]" // E-mail do fornecedor (pode conter mais de um e-mail separado por ponto e vírgula ex: "[email protected];[email protected]")
}
]
}
*/
//-- Cabeçalho da cotação
DHU->(DbSetOrder(1)) //-- DHU_FILIAL+DHU_NUM
cNumQuote := oJsonWF['quotation']
If lOk := DHU->(DbSeek(FWxFilial('DHU') + cNumQuote))
cMessage := "Processo de workflow enviado com sucesso."
/*
Aqui você pode implementar a lógica de envio do workflow para os fornecedores
*/
//Exemplo de obtenção dos e-mails dos fornecedores para envio do workflow
aSuppliers := oJsonWF['suppliers']
For nX := 1 To Len(aSuppliers)
cForn := AllTrim(aSuppliers[nX]['supplier']) //SC8->C8_FORNECE
cLoja := AllTrim(aSuppliers[nX]['store']) //SC8->C8_LOJA
cCorporateName := AllTrim(aSuppliers[nX]['corporatename']) //SC8->C8_FORNOME
cEmail := AllTrim(aSuppliers[nX]['email']) //Email preenchido no envio do workflow
cLastProp := PGCLastProp(cNumQuote,cForn,cLoja,cCorporateName) //Função que retorna a última proposta do fornecedor (C8_NUMPRO)
Conout(cEmail)
// Aqui você pode implementar a lógica de envio do e-mail para o fornecedor
// Utilizando as variáveis cForn, cLoja, cCorporateName, cEmail e cLastProp
Next nX
Else
cMessage := "A cotação não foi localizada na base dados."
EndIf
//Retorne o código 200 para sucesso ou 400 para erro
nCode := Iif(lOk, 200, 400)
//É obrigatório retornar a resposta neste formato
oJsonResp["code"] := nCode
oJsonResp["message"] := cMessage
Return oJsonResp |
Quando este ponto de entrada está ativado, a tela de envio do workflow da cotação é resumida para conter apenas a opção de preenchimento dos e-mails e se envia ou não o workflow, não sendo possível utilizar todas as funcionalidades originais do workflow padrão.
Guia de referência - Novo Fluxo de Compras