2.9 KiB
2.9 KiB
Portal Fornecedor - contrato do endpoint intermediario
Objetivo
A widget publica nao deve chamar diretamente:
/process-management/api/v2/processes/FlowEssentials_LancamentodeDocumento/start/api/public/ecm/dataset/datasets
Ela deve chamar um endpoint intermediario no servidor, por exemplo:
POST /api/public/portalfornecedor/enviar
Esse endpoint e quem usa fluig_rest no backend.
Request esperado da widget
{
"targetState": 5,
"comment": "Envio via portal fornecedor",
"formFields": {
"data_abertura": "2026-03-13",
"emitido_por": "fornecedor",
"entidade_responsavel": "Empresa X",
"tipo_cadastro": "cpf",
"emailSolicitante": "email@empresa.com.br",
"cpf": "12345678900",
"tipo_documento": "danfe",
"numero_documento": "123456",
"valor": "10,00",
"autorizador_responsavel": "Nome do autorizador",
"justificativa": "Descricao do servico"
}
}
Response de sucesso
{
"success": true,
"message": "Solicitacao enviada com sucesso.",
"processInstanceId": "12345",
"content": {
"processInstanceId": "12345"
}
}
Response de erro
{
"success": false,
"message": "Descricao do erro"
}
Logica esperada no backend
- Receber o JSON da widget.
- Validar os campos obrigatorios.
- Usar
fluigAPI.getAuthorizeClientService(). - Invocar o servico
fluig_rest. - Chamar o endpoint final:
/process-management/api/v2/processes/FlowEssentials_LancamentodeDocumento/start - Retornar para a widget somente o resultado final.
Exemplo de chamada server-side
var clientService = fluigAPI.getAuthorizeClientService();
var requestData = {
companyId: String(getValue("WKCompany") || "1"),
serviceCode: "fluig_rest",
endpoint: "/process-management/api/v2/processes/FlowEssentials_LancamentodeDocumento/start",
method: "post",
timeoutService: "100",
headers: {
"Content-Type": "application/json",
"Accept": "application/json"
},
options: {
encoding: "UTF-8",
mediaType: "application/json",
useSSL: true
},
params: payloadRecebidoDaWidget
};
var vo = clientService.invoke(JSON.stringify(requestData));
var raw = String(vo.getResult() || "");
var response = JSON.parse(raw);
Configuracao da widget
Por padrao a widget usa:
https://api.grupoginseng.com.br/v2/portalfornecedor/enviar_api_public_portalfornecedor_enviar_post
Se necessario, sobrescreva antes de carregar a widget:
<script>
window.portalfornecedorConfig = {
publicEndpointUrl: "https://api.grupoginseng.com.br/v2/portalfornecedor/enviar_api_public_portalfornecedor_enviar_post"
};
</script>
Observacao importante
apiKey no front nao substitui OAuth 1.0 do Fluig. Se existir um header como apiKey,
ele deve ser validado apenas no endpoint intermediario. O endpoint intermediario continua
sendo o responsavel por usar fluig_rest no servidor.