Interface web
Permite definir uma chamada para uma interface web para o tratamento de tarefas, que abrange a tela inicial e a tela com tarefas realizados pelos usuários.
As propriedades deste executor são organizadas pelos agrupadores:
Executor
Escolha o executor: "Interface WEB".
Scripts...
Acesse a tela Editor de JavaScript.
Variáveis...
Acesse a tela Editor de Variáveis.
Utilizar servidor workflow
Determine se deseja utilizar a interface de um sistema externo que está no mesmo servidor do Workflow, considerando:
- Mesmo domínio: informe na URL apenas o contexto: /<contexto>/<caminhodainterface>.<extensao >;
- Domínio diferente: informe a URL completa: http://<servidor>:<porta>/contexto/<contexto>/<caminhodainterface>.<extensao >.
Observação
Apenas é possível adicionar um protocolo e domínio à URL quando a caixa de seleção Utilizar servidor workflow não estiver selecionada.
URL
Defina a URL de acordo com as condições:
- Informe o caminho e os parâmetros da chamada da interface web;
- Variáveis pelo padrão Placeholder;
- Na tela inicial, informe o nome do processo através do Placeholder padrão (opcional):
Exemplo:http://<servidor>:<porta>/contexto/index.htm?processName=${context.processName}&processId=${context.processId}
Responsável
Informe o responsável pelo tratamento da pendência. Sendo possível selecionar uma variável do processo do tipo Long em ordem alfabética.
Timeout
Determine o timeout da chamada da interface web, informando a quantidade em minutos, com no mínimo 0 e no máximo 35.791 minutos.
Quando a caixa de seleção Permitir capturar o erro (erro de negócio) não estiver assinalado e o timeout for atingido, o Workflow trata como um erro de ambiente. Ou seja não é considerado um erro gerado por validações de regras de negócio, ocorridos na execução de um processo devido a algum problema no seu modelo ou lançado por um End Event de erro.
A autenticação entre o sistema e a interface web é realizada através do tokenSenior, que é gerado e enviado no corpo da requisição POST quando for web service do tipo REST ou chamado como parâmetro quando for web service SOAP.
Importante
Ao incluir uma interface, é necessário guardar o tokenSenior da requisição e utilizá-lo para chamada dos web services.
A validação do tokenSenior é configurada na Central de Configurações Senior, que atinge todos os sistemas que utilizam esta configuração. Inclusive, ao informar um valor, em minutos, para validade deste token, este é utilizado também para os sistemas Portal Corporativo e Gestão do Ponto. Quando esta validade for atingida, o tokenSenior é invalidado e, implicitamente, a interface não responderá ao Workflow.
Nas tarefas é necessário o envio do tokenFlow para interface web. Isto ocorre, pois é imprescindível a chamada do web service do Workflow, SOAP ou REST, que dá a sequência a este processo. É possível adicionar este tokenFlow apenas em formato Placeholder na URL ou através do método BeforeExecute.
URL: http://localhost:8081/context?<nomedoparâmetro>=${tokenFlow};
No envio dos dados de entrada para interface através do método através do JavaScript, utilize a função context.getTask().getInput(). As informações ali adicionadas são transformadas em JSON e enviadas no corpo da requisição.
Retorno
Os dados de retorno são definidos pelo desenvolvedor da interface a partir de um serviço REST ou SOAP, através do web service de resposta, tipo REST. O retorno da interface web à tarefa pode ocorrer de duas maneiras:
- Conforme formato XML (web service SOAP):
<?xml version="1.0" enconding=ISO-8859-1"?>
<user>usuário</user>
<password>senha</password>
<encrypt>encriptação</encrypt>
<token>token do processo</token>
<params>
//Aqui devem ser informado os parâmetros
//Esse formato não sendo respeitado, o conteúdo não poderia ser lido pelo Workflow e um erro será retornado durante a execução
<field-name>field-value</field-name>
<field-name>field-value</field-name>
<field-name>field-value</field-name>
</params>
</xml>
- Conforme formato JSON (web service do tipo REST):
{
response: {
"string-name": "string-value",
"int-name": int-value,
"double-name": double-value,
"boolean-name": "boolean-value",
"date-name": "date-value", //Respeita o formado ISO-8601 (www.w3.org/TR/NOTE-datetime)
"datetime-name": "datetime-value", //Respeita o formato ISO-8601
"binary-name": "binary-value", //Respeita o formato Base64 (en.wikipedia.org/wiki/Base64)
"long-name": long-value,
"object-name": {
"field-name": "field-value"
"field-name": "field-value",
"field-name": "field-value"
},
"list-name": [
{"field-name": "field-value"},
{"field-name": "field-value"}
]
}
}
Quando o retorno não está em algum destes formatos, um erro de negócio é lançado na execução do processo.
Através do método AfterExecute também é possível obter os dados de retorno da interface. Para isto, utilize a função context.getTask().getOutput().

English
Español


