Histórico da Página
...
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
#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 para posicionar na tabela SC8 referente a proposta do fornecedor
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 |
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas