Árvore de páginas

Versões comparadas

Chave

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

...

Informações
titleNota:

Atualmente, o tipo de execução imediata não é muito recomendado por ter seu desempenho e qualidade reduzidos.

Exemplos de uso

Reunimos aqui vários cenários onde é possível aplicar o componente atividade de serviços com execução imediata em um processo. Os exemplos contam com xxxxxxxxx

...

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
HTML
<script> (function() { function toggleAreas(isExpand, $parent) { var $items = $parent.find('.panel'); $.each($items, function(idx, el) { var $arrow = $(el).find('span.cloakToggle').find('span'); var $content = $(el).find('span.cloak'); if (isExpand) { $arrow.removeClass('cloakDefaultOpen').addClass('cloakDefaultClose'); $content.show(); } else { $arrow.addClass('cloakDefaultOpen').removeClass('cloakDefaultClose'); $content.hide
();
        dto.setDocumentDescription(FOLDER_NAME);
        
}
dto.setAdditionalComments(ADDITIONAL_COMMENTS + REQUEST_NUMBER);
        
}
dto.setDocumentType(DOCUMENT_TYPE_FOLDER);
        
}
dto.setParentDocumentId(parseInt(PARENT_FOLDER_CODE));
        
$(document).on('click', '#toggleAll-2', function(ev) {
dto.setInheritSecurity(INHERIT_SECURITY);
        
        
ev.preventDefault();
/*
         Como é possível 
var
definir 
isExpand
várias 
= $(this).data('expand');
permissões, é necessário criar um array com todas as permissões
    
var
 
$parent = $(this).nextAll('.sectionColumnWrapper').first(); toggleAreas(isExpand, $parent);
    que serão aplicadas. Cada item do array é uma permissão ou restrição
        */
        var dtosSecurity = new 
$
Array(
this
)
.data('expand', !isExpand)
;
        
});

    
})
    //Definindo permissão total para grupo
        var dtoGroupSecurity = docAPI.newDocumentSecurityConfigDto();
</script> <a id="toggleAll-1" href="#" data-expand="true">Abrir/fechar todos os exemplos</a>
Section
        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 **

Painel
borderColor#ebecf0
Toggle Cloak
id@imediata1
Criar pastas no recurso Documentos da plataforma. Cloak
id@imediata1
trueCenário
Em um processo de Xxxxxxxxxxxxx,
→ Xxxxxxxxxxx Painel
borderColor#ebecf0

Toggle Cloak
id@imediata2
Xxxxxxxxx.

Cloak
id@imediata2
trueCenário
→ Xxxxxxxxxxx Painel
borderColor#ebecf0

Toggle Cloak
id@imediata3
 Xxxxxxxxx.

Cloak
id@imediata3
trueCenário
→ Xxxxxxxxxxx Painel
borderColor#ebecf0

Toggle Cloak
id@imediata4
Xxxxxxxx.

Cloak
id@imediata4
trueCenário
Em um processo de Xxxxxxxxx

→ Significa que xxxxxxxxxxx.

Painel
borderColor#ebecf0

Toggle Cloak
id@imediata5
Xxxxxxxxxxx.

Cloak
id@imediata5
trueCenário
→ Xxxxxxxxxxx


Configurar componente Atividade de serviço

...