Árvore de páginas

Versões comparadas

Chave

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

...

Deck of Cards
effectDuration0.5
historyfalse
idsamples
effectTypefade
Card
defaulttrue
id1
labelExemplo 1

Para validar se o usuário está completando uma atividade corretamente, basta utilizar o evento beforeTaskSave e retornar alguma mensagem caso queira disparar um erro. Por exemplo, segue parte de um código de desenvolvimento de um processo sob a plataforma:

Bloco de código
languagejavascript
themeEclipse
firstline1
linenumberstrue
function beforeTaskSave(colleagueId, nextSequenceId, userList) {
	var atividadeAtual = getValue("WKNumState");

	var tipo = hAPI.getCardValue("tipo");
	var eficacia1 = hAPI.getCardValue("eficaz1");  
	var controle1 = hAPI.getCardValue("controle1");
	var eficaz = true;

	var users = new java.util.ArrayList();

	if (ativAtual == 7 && nextSequenceId == 12) {
		if (responsavel == "") {
			throw "Antes de salvar esta solicitação, você deve informar o 'Tipo' no formulário";
		}
	}
}
Card
id3
labelExemplo 3

Para iniciar uma nova solicitação de um outro processo ao finalizar uma solicitação podem ser executados os seguintes procedimentos:

  1. Cadastrar um serviço no fluig em que a URL seja o WSDL do serviço ECMWorkflowEngineService.
  2. Implementar o evento afterProcessFinish utilizando o exemplo abaixo, sendo ‘process2’ o novo processo a ser inicializado.

Bloco de código
languagejs
themeEclipse
firstline1
linenumberstrue
function afterProcessFinish(processId) {
	var user = "adm";
	var pass = "1b09d18a-dbc2-4146-ac33-8864dc283120";
 	var companyId = parseInt(getValue("WKCompany"));
 	var processId = "process2";
	var serviceName = "WorkflowEngineService";

    // Servico <url_fluig>/webdesk/ECMWorkflowEngineService?wsdl
	// Busca o webservice cadastrado com o código "WorkflowEngineService"
	var workflowEngineServiceProvider = ServiceManager.getServiceInstance(serviceName);
	var workflowEngineServiceLocator = workflowEngineServiceProvider.instantiate("com.totvs.technology.ecm.workflow.ws.ECMWorkflowEngineServiceService");
	var workflowEngineService = workflowEngineServiceLocator.getWorkflowEngineServicePort();
 
	// Cria o ProcessAttachmentDtoArray
	var processAttachmentDtoArray = workflowEngineServiceProvider.instantiate("com.totvs.technology.ecm.workflow.ws.ProcessAttachmentDtoArray");

	// Cria o ObjectFactory
	var objectFactory = workflowEngineServiceProvider.instantiate("net.java.dev.jaxb.array.ObjectFactory");
	
	// Cria um String[][]
	var cardData = objectFactory.createStringArrayArray();


    // Cria uma solicitação
	workflowEngineService.simpleStartProcess(user, pass, companyId, processId, "Comment", processAttachmentDtoArray, cardData);	
}
Informações

Existem outros métodos parar iniciar uma solicitação, consulte-os aqui.

Lembre-se de consultar a classe ObjectFactory do serviço, essa classe possui diversos métodos para criar instância de objetos necessários para utilização do serviço.

Card
id4
labelExemplo 4

Exemplo para barrar o usuário de movimentar a solicitação com o campo "nome" vazio. Caso o mesmo salve a solicitação, a ação será permitida.

Bloco de código
languagejs
themeEclipse
firstline1
linenumberstrue
function beforeTaskSave(colleagueId, nextSequenceId, userList) {
	var completTask = getValue("WKCompletTask"); // 'true' - Completando a tarefa; 'false' - Salvando a tarefa
	var fieldName = hAPI.getCardValue("name");
 
	if (completTask == 'true' && (!fieldName || !fieldName.trim()) {
		throw("Não é permitido movimentar uma solicitação com o campo 'Nome' vazio!");
	}
}
Card
labelExemplo 5

Exemplo que permite verificar se o usuário está ou não transferindo uma tarefa:

Bloco de código
languagejs
themeEclipse
linenumberstrue
function beforeTaskCreate(colleagueId) {
	var isTransfer = getValue("WKIsTransfer");

	if (isTransfer !== null) {
		if (JSON.parse(isTransfer)) {
			throw "Não é permitido transferir a atividade!";
		}
	}
}