Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Painel
borderColor#ebecf0

Estado
subtletrue
titleExemplo 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
titleImportante!

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
languagejs
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
borderColor#ebecf0

Estado
subtletrue
titleExemplo 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;
  • Imediato: a consulta aos dados é executada de forma síncrona. Deve ser utilizado quando a execução necessita de um retorno imediato sobre a operação para que o processo possa seguir adiante.

    Dica
    titleDica!

    Saiba mais sobre os tipos de execução em Integração assíncrona via processos workflow.

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:

  • Minuto;
  • Hora;
  • Dia.
Painel
borderColor#ebecf0

Estado
subtletrue
titleExemplo 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:

TentativasA cadaFrequência
101Hora

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:

  • Xxxxxxx: xxxxxxxxx
Xxxxxx: xxxxxxxxxxx


06. Xxxxxxxxxxxxxxx

Painel
borderColor#f2f2f2
bgColor#f2f2f2


...