...
| Painel |
|---|
|
| Estado |
|---|
| |
|---|
| subtle | true |
|---|
| title | Exemplo de uso |
|---|
|
Em um processo de Aprovação de contrato, o solicitante preenche um formulário solicitando a criação do contrato com informações como o nome do fornecedor, o tipo e o número do contrato, a validade do contrato, dentre outras. Em seguida, o contrato passa por algumas etapas de aprovação e, depois de aprovado, precisa ser armazenado no recurso Documentos. É nesse ponto que pode ser incluído o componente atividade de serviço, para que uma pasta seja criada automaticamente para armazenar o contrato e os documentos relacionados.
Desta forma, quando a última etapa de aprovação for concluída, a solicitação seguirá para uma atividade de serviço que, utilizando as APIs da plataforma, criará a pasta no recurso Documentos com base nas informações fornecidas e nas permissões de acesso definidas no formulário, garantindo que a pasta será única para cada contrato. Um exemplo de código que poderia ser utilizado como script na atividade de serviço é: | Nota |
|---|
| Esse é um exemplo que fica disponível no repositório SAMPLES e, por isso, ele pode ser atualizado lá a qualquer momento. Para ver sua versão mais recente e sempre atualizada, acesso-o a partir do repositório clicando aqui. |
| Bloco de código |
|---|
| function servicetask9(attempt, message) {
//Variáveis globais com os dados do formulário
var FOLDER_NAME = hAPI.getCardValue("txtFolderName");
var PARENT_FOLDER_CODE = hAPI.getCardValue("txtFolderCode");
var GROUP_CODE = hAPI.getCardValue("txtGroupCode");
var INHERIT_SECURITY = hAPI.getCardValue("cbxInheritSecurity") == "true";
//Tipo de documento pasta
var DOCUMENT_TYPE_FOLDER = "1";
//Usuário logado
var USER_LOGGED = getValue("WKUser");
//Número da solicitação para comentário uso na descrição da pasta criada
var REQUEST_NUMBER = getValue("WKNumProces");
// Descrição da pasta criada
var ADDITIONAL_COMMENTS = "This folder was created automatically from fluig BPM - request ";
//Atribuições de segurança
var USER_ATTRIBUTION_TYPE = 1;
var GROUP_ATTRIBUTION_TYPE = 2;
var ALL_USER_ATTRIBUTION_TYPE = 3;
//Níveis de segurança
var READING = 0;
var RECORDING = 1;
var MODIFICATION = 2;
var ALL = 3;
try {
//Instancia um novo documento e define as propriedades básicas
var dto = docAPI.newDocumentDto();
dto.setDocumentDescription(FOLDER_NAME);
dto.setAdditionalComments(ADDITIONAL_COMMENTS + REQUEST_NUMBER);
dto.setDocumentType(DOCUMENT_TYPE_FOLDER);
dto.setParentDocumentId(parseInt(PARENT_FOLDER_CODE));
dto.setInheritSecurity(INHERIT_SECURITY);
/*
Como é possível definir várias permissões, é necessário criar um array com todas as permissões
que serão aplicadas. Cada item do array é uma permissão ou restrição
*/
var dtosSecurity = new Array();
//Definindo permissão total para grupo
var dtoGroupSecurity = docAPI.newDocumentSecurityConfigDto();
dtoGroupSecurity.setAttributionType(GROUP_ATTRIBUTION_TYPE);
dtoGroupSecurity.setAttributionValue(GROUP_CODE);
dtoGroupSecurity.setPermission(true);
dtoGroupSecurity.setShowContent(true);
dtoGroupSecurity.setSecurityLevel(ALL);
//Definindo permissão total para usuário
var dtoUserSecurity = docAPI.newDocumentSecurityConfigDto();
dtoUserSecurity.setAttributionType(USER_ATTRIBUTION_TYPE);
dtoUserSecurity.setAttributionValue(USER_LOGGED);
dtoUserSecurity.setPermission(true);
dtoUserSecurity.setShowContent(true);
dtoUserSecurity.setSecurityLevel(ALL);
//Definindo permissão de modificação para todos os usuários
var dtoAllUsersSecurity = docAPI.newDocumentSecurityConfigDto();
dtoAllUsersSecurity.setAttributionType(ALL_USER_ATTRIBUTION_TYPE);
dtoAllUsersSecurity.setAttributionValue(""); //Para todos os usuários deve-se passar vazio
dtoAllUsersSecurity.setPermission(true);
dtoAllUsersSecurity.setShowContent(true);
dtoAllUsersSecurity.setSecurityLevel(MODIFICATION);
//Definindo restrição para usuário
var dtoGroupRestrictionSecurity = docAPI.newDocumentSecurityConfigDto();
dtoGroupRestrictionSecurity.setAttributionType(GROUP_ATTRIBUTION_TYPE);
dtoGroupRestrictionSecurity.setAttributionValue(GROUP_CODE);
dtoGroupRestrictionSecurity.setPermission(false);
dtoGroupRestrictionSecurity.setShowContent(true);
dtoGroupRestrictionSecurity.setSecurityLevel(MODIFICATION);
//Definindo restrição para todos os usuários
var dtoAllUsersRestrictionSecurity = docAPI.newDocumentSecurityConfigDto();
dtoAllUsersRestrictionSecurity.setAttributionType(ALL_USER_ATTRIBUTION_TYPE);
dtoAllUsersRestrictionSecurity.setAttributionValue("");
dtoAllUsersRestrictionSecurity.setPermission(true);
dtoAllUsersRestrictionSecurity.setShowContent(true);
dtoAllUsersRestrictionSecurity.setSecurityLevel(RECORDING);
//Adicionando permissões no array de segurança
dtosSecurity.push(dtoGroupSecurity);
dtosSecurity.push(dtoUserSecurity);
dtosSecurity.push(dtoAllUsersSecurity);
//Adicionando restrições no array de segurança
dtosSecurity.push(dtoGroupRestrictionSecurity);
dtosSecurity.push(dtoAllUsersRestrictionSecurity);
var FOLDER = docAPI.createFolder(dto, dtosSecurity, null);
log.info("Folder successfully createad: ID :" + FOLDER.getDocumentId());
} catch (e) {
log.error("Could not create folder: \n" + e);
}
} |
** imagem ** |
Configurar componente Atividade de serviço – Rest
...
01. No diagrama do processo, clique no componente Atividade de serviço
que que deseja configurar com um serviço do tipo Rest.
| Painel |
|---|
| borderColor | #f2f2f2 |
|---|
| bgColor | #f2f2f2 |
|---|
|
As configurações disponíveis são exibidas na lateral direita. |
...
| Painel |
|---|
| borderColor | #f2f2f2 |
|---|
| bgColor | #f2f2f2 |
|---|
|
Título Nome da etapa que representa uma consulta de dados de um serviço externo. O nome também pode ser alterado diretamente no componente, clicando sobre seu nome atual e depois em Editar – localizado no lado direito. | Painel |
|---|
| | Estado |
|---|
| |
|---|
| subtle | true |
|---|
| title | Exemplo de uso |
|---|
|
Em um processo de Aprovação de contrato, o componente poderia receber o nome Criar pasta, visto que ele servirá para criar uma pasta específica para armazenar esse contrato no recurso Documentos.
|
Selecione o serviço Serviço que será utilizado para fazer a consulta de dados. É possível selecionar serviços do tipo SOAP Rest que já existem no recurso Serviços do Painel de controle. Tipo de execução Forma como a consulta aos dados do serviço externo será executada. As opções disponíveis são: - Automatizado: a consulta aos dados é executada de forma assíncrona. Deve ser utilizado quando a execução não necessita de um retorno imediato sobre a operação ter sido ou não executada com êxito;
Tentativas Número de vezes que o componente deve tentar executar o script antes que seja encaminhado para o evento intermediário de captura de erro. Esse campo somente é exibido ao selecionar o tipo de execução Automatizado. A cada Intervalo que o componente deve considerar entre uma tentativa e outra de execução. Esse campo somente é exibido ao selecionar o tipo de execução Automatizado. Frequência Unidade de tempo que o componente deve considerar para fazer os intervalos e as tentativas de execução. Esse campo somente é exibido ao selecionar o tipo de execução Automatizado. As opções disponíveis são: | Painel |
|---|
| | Estado |
|---|
| |
|---|
| subtle | true |
|---|
| title | Exemplo de configuração de tentativas |
|---|
|
→ O componente deve tentar executar o script por 10 vezes, tentando 1 vez a cada hora. Sendo assim, a configuração deve ser feita como:
| Tentativas | A cada | Frequência |
|---|
| 10 | 1 | Hora |
|
Mensagem Mensagem que será exibida na conclusão da execução do script de consulta ao serviço. |
03. Clique em Configurar integração.
04. Xxxxxxxxxxx05. Xxxxxxxxxxx Na aba Geral, defina as informações solicitadas para configurar a integração com o serviço.
| Painel |
|---|
| borderColor | #f2f2f2 |
|---|
| bgColor | #f2f2f2 |
|---|
|
Selecione a ação (operação) Ação que será feita Defina o tempo de resposta
Ativar conexão segura (SSL) As opções disponíveis são: Xxxxxx: xxxxxxxxxxx
|
06. Xxxxxxxxxxxxxxx
| Painel |
|---|
| borderColor | #f2f2f2 |
|---|
| bgColor | #f2f2f2 |
|---|
|
|
...