Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Adicionada a função: getAvailableStatesDetail na hAPI

...

MétodoEspecificação
getCardValue("nomeCampo")

Permite acessar o valor de um campo do formulário do processo, onde:

  • nomeCampo: nome do campo do formulário.
setCardValue("nomeCampo", "valor")

Permite definir o valor de um campo do formulário do processo, onde:

  • nomeCampo: nome do campo do formulário;
  • valor: valor a ser definido para o campo do formulário.
setAutomaticDecision(numAtiv, listaColab, "obs")

Permite definir o fluxo de saída de uma atividade de forma automática, onde:

  • numAtiv: número da atividade destino;
  • listaColab: lista (do tipo String) dos usuários que receberão a tarefa;
  • obs: observação da tarefa;
getActiveStates()Retorna uma lista das atividades ativas do processo.
getActualThread(numEmpresa, numProcesso, numAtiv)

Retorna a thread da atividade que está ativa, lembrando que em caso de atividades paralelas, retorna 0, 1, 2 e assim sucessivamente.

  • numEmpresa: número da empresa;
  • numProcesso: número da solicitação;
  • numAtiv: número da atividade.
Exemplo de uso para esta função:

 

Bloco de código
themeEclipse
languagejavascript
firstline1
linenumberstrue
function afterTaskCreate(colleagueId) {

    var nrProxAtividade = getValue("WKNextState");
    if (nrProxAtividade == "5"){ //atividade entre paralelas
 
		var data = new Date();
		var numEmpresa = getValue("WKCompany");
	
		//seta o dia, mês (Janeiro é 0) e ano
		data.setDate(20);
		data.setMonth(10);
		data.setFullYear(2010);
	   
		// Recupera o numero da solicitação
		var numProcesso = getValue("WKNumProces");
	
		// Seta o prazo para as 14:00
		hAPI.setDueDate(numProcesso, hAPI.getActualThread(numEmpresa, numProcesso, nrProxAtividade), colleagueId, data, 50400);
	}
}
setDueDate(numProcesso, numThread, "userId", dataConclusao, tempoSeg)

Permite alterar o prazo de conclusão para uma determinada atividade do processo, onde:

  • numProcesso: número da solicitação;
  • numThread: número da thread (normalmente 0, quando não se utiliza atividades paralelas);
  • userId: o usuário responsável pela tarefa;
  • dataConclusao: a nova data de conclusão;
  • tempoSeg: tempo que representa a nova hora de conclusão, calculado em segundos após a meia-noite.
Informações

Recomendamos a utilização deste método no evento afterTaskCreate, pois será executado logo após a criação da tarefa. Exemplo:

Bloco de código
themeEclipse
languagejavascript
firstline1
linenumberstrue
function afterTaskCreate(colleagueId) {
	var data = new Date();
	
	//seta o dia, mês (Janeiro é 0) e ano
	data.setDate(20);
	data.setMonth(10);
	data.setFullYear(2010);
	   
	// Recupera o numero da solicitação
	var processo = getValue("WKNumProces");
	
	// Seta o prazo para as 14:00
	hAPI.setDueDate(processo, 0, colleagueId, data, 50400);
}
transferTask(transferUsers, "obs", int numThread)

Transfere uma tarefa de um usuário para outro(s) usuário(s).

  • transferUsers: lista (do tipo String) de usuários;
  • obs: a observação;
  • numThread: sequência da thread, em caso de atividades paralelas.
transferTask(transferUsers, "obs")

Transfere uma tarefa de um usuário para outro(s) usuário(s). Este método não pode ser usado em processos com atividades paralelas:

  • transferUsers: lista (do tipo String) de usuários;
  • obs: a observação.
startProcess(processId, ativDest, listaColab, "obs", completarTarefa, valoresForm, modoGestor)

Inicia uma solicitação workflow, onde:

  • processId: código do processo;
  • ativDest: atividade de destino;
  • listaColab: lista (do tipo String) de usuários;
  • obs: texto da observação;
  • completarTarefa: indica se deve completar a tarefa (true) ou apenas salvar (false);
  • valoresForm: um Mapa com os valores do formulário do processo;
  • modoGestor: indica que o usuário iniciará a solicitação como gestor (true) ou que o usuário iniciará a solicitação apenas como solicitante (false).

Retorna um mapa com informações da solicitação criada. Entre elas, o iProcess que é o número da solicitação criada.

setColleagueReplacement(userId)

Seta um usuário substituto, onde:

  • userId: código do usuário substituto.
setTaskComments("userId", numProcesso,  numThread, "obs")

Define uma observação para uma determinada tarefa do processo, onde:

  • userId: usuário responsável pela tarefa;
  • numProcesso: número da solicitação de processo;
  • numThread: é o número da thread (normalmente 0, quando não se utiliza atividades paralelas);
  • obs: a observação.
getCardData(numProcesso)

Retorna um Mapa com todos os campos e valores do formulário da solicitação.

  • numProcesso: número da solicitação de processo.
getAdvancedProperty("propriedade")

Retorna o valor da propriedade avançada de um processo.

  • propriedade: nome da propriedade avançada. 
calculateDeadLineHours(data, segundos, prazo, periodId)

Calcula um prazo a partir de uma data com base no expediente e feriados cadastrados no produto passando o prazo em horas:

  • data: Data inicial (tipo Date);
  • segundos: Quantidade de segundos após a meia noite;
  • prazo: Prazo que será aplicado em horas (tipo int);
  • periodId: Código de Expediente.  

Retorno: Array de Objeto, onde a primeira posição do array é a data e a segunda a hora.

Exemplo:

Bloco de código
themeEclipse
languagejavascript
firstline1
linenumberstrue
function afterTaskCreate(colleagueId) {
   	var data = new Date();

   	//Calcula o prazo
   	var obj = hAPI.calculateDeadLineHours(data, 50000, 2, "Default");
	var dt = obj[0];
	var segundos = obj[1];

   	//Recupera o numero da solicitação
   	var processo = getValue("WKNumProces");

   	//Altera o prazo do processo
	hAPI.setDueDate(processo,0,colleagueId, dt, segundos);
}
calculateDeadLineTime(data, segundos, prazo, periodId)

Calcula um prazo a partir de uma data com base no expediente e feriados cadastrados no produto passando o prazo em minutos:

  • data: Data inicial (tipo Date);
  • segundos: Quantidade de segundos após a meia noite;
  • prazo: Prazo que será aplicado em minutos (tipo int).
  • periodId - Código de Expediente

Retorno: Array de Objeto, onde a primeira posição do array é a data e a segunda a hora.

 Exemplo:

Bloco de código
themeEclipse
languagejavascript
firstline1
linenumberstrue
function afterTaskCreate(colleagueId) {
	var data = new Date();
	//Calcula o prazo
	var obj = hAPI.calculateDeadLineTime(data, 50000, 120, "Default");
	var dt = obj[0];
	var segundos = obj[1];

	//Recupera o numero da solicitação
	var processo = getValue("WKNumProces");

	// Altera o prazo do processo
	hAPI.setDueDate(processo,0,colleagueId, dt, segundos);
}
getUserTaskLink(numAtiv)

Permite buscar o link para movimentação de uma determinada atividade, e utilizá-lo para enviar um e-mail com template customizado, por exemplo.

  • numAtiv: número da atividade
Retorno: link para movimentação da solicitação.

 

Nota
titleAtenção

Este método não retorna link para atividades que ainda não foram criadas, ou seja, não pode ser utilizado em eventos como afterTaskComplete(colleagueId,nextSequenceId,userList) para obter o link da atividade com "nextSequenceId".

 Exemplo:

Bloco de código
themeEclipse
languagejavascript
firstline1
linenumberstrue
function afterTaskCreate(colleagueId) {
	var sequenceId = getValue("WKCurrentState");
	if (sequenceId == 2) {
		var destinatarios = new java.util.ArrayList();
		destinatarios.add(colleagueId);
 
		var parametros = new java.util.HashMap();
		parametros.put("WDK_CompanyId", getValue("WKCompany"));
		parametros.put("WDK_TaskLink", hAPI.getUserTaskLink(sequenceId));
 
		notifier.notify(getValue("WKUser"), "tplCustomizado", parametros, destinatarios, "text/html");	
	}
}
createAdHocTasks(workflowProcessInstanceId, sequenceId, assunto, detalhamento, listatvidadesAhoc)

Permite a criação de atividades adhoc dentro dos eventos do Fluig

  • workflowProcessInstanceId - Número da solicitação workflow no qual se deseja criar as tarefas.
  • sequenceId - Código de sequencia da atividade de SubprocessoAdhoc.
  • Assunto - Assunto da listagem das tarefas que será repassado ao formulário de atividade ad-hoc.
  • Detalhe - Texto com o detalhamento das atividades em questão. Esse texto também será repassado para o formulário da atividade ad-hoc.
  • listaAtividadesAdhoc - É a lista de atividades contento o que quando e quem executará as tarefas ad-hoc.

 

Nota
titleAtenção

Certifique-se que o sequenceId é a sequência da atividade ad-hoc . Normalmente este atividade contém o símbolo do sub-processo comum acompanhado do identificado: "~", conforme exemplo abaixo :

 

A sequência pode ser consultada a partir do plugin Fluig Designer verificando o campo código ao visualizar as propriedades da atividade de subprocesso ad-hoc.

 

 

Exemplo:

Bloco de código
themeEclipse
languagejavascript
firstline1
linenumberstrue
function afterStateEntry(sequenceId){
	//lista das tarefas
	var adHocTasks = new Array();
	// variavel com o código da solicitação do processo.
    var process = getValue("WKNumProces");
    
    //criando uma tarefa
    var task = { name:"nome da tarefas", responsible:"adm", dueDate:"10/10/2014"};
    //adicionando a tarefa criada para a lista de tarefas
    adHocTasks.push(task);
	
    
    // process    = numero da solicitacao 
    // sequenceId = codigo processstate da atividade que tem o processo ad-hoc
    // meeting    = nome do assunto em questao
    // detalhe    = detalhamento do assunto
    // adHocTasks   lista te tarefas
   
    hAPI.createAdHocTasks(process, sequenceId, "Assunto das tarefas", "Detalhamento do assunto ", adHocTasks);
	 
	
}
listAttachments()

Retorna a lista de anexos do processo.

 

Nota
titleAtenção

O formulário do processo não é retornado, apenas anexos do tipo GED e Workflow.

publishWorkflowAttachment(documento)

Permite publicar anexos workflow da solicitação no GED do Fluig, onde:

  • documento : Anexo workflow a ser publicado no GED.

 

Nota
titleAtenção

É obrigatório informar o id da pasta destino do documento através do método setParentDocumentId, conforme o exemplo abaixo.

 

Exemplo:

Bloco de código
themeEclipse
languagejavascript
firstline1
linenumberstrue
function beforeStateEntry(sequenceId){
	if (sequenceId == 4) {
		var calendar = java.util.Calendar.getInstance().getTime();
		var docs = hAPI.listAttachments();
		for (var i = 0; i < docs.size(); i++) {
			var doc = docs.get(i);
			
			if (doc.getDocumentType() != "7") {
				continue;
			}
			
			doc.setParentDocumentId(27);
			doc.setVersionDescription("Processo: " + getValue("WKNumProces"));
			doc.setExpires(false);
			doc.setCreateDate(calendar);
			doc.setInheritSecurity(true);
			doc.setTopicId(1);
			doc.setUserNotify(false);
			doc.setValidationStartDate(calendar);
			doc.setVersionOption("0");
			doc.setUpdateIsoProperties(true);
			
			hAPI.publishWorkflowAttachment(doc);
		}
	}
}

attachDocument(documentId)

Âncora
attachDocumentDocs
attachDocumentDocs

Permite anexar documentos do GED a solicitação workflow, onde:

  • documentId : Código do documento a ser anexado a solicitação.

Exemplo:

Bloco de código
themeEclipse
languagejavascript
firstline1
linenumberstrue
function beforeStateEntry(sequenceId) {
	var docList = [44, 46, 135];
	
	if (sequenceId == 2) {
		for (var i = 0; i < docList.length; i++) {
			var docId = docList[i];
			hAPI.attachDocument(docId);
		};	
	}
}

getAvailableStatesDetail(companyId, userId, processId, processInstanceId, threadSequence)

Retorna detalhes das atividades disponíveis para seleção.

 

Parâmetros:

  • companyId: código da empresa.
  • userId: id do usuário.
  • processId: código do processo.
  • processInstanceId: número da solicitação.
  • threadSequence: Indica se existe atividade paralela no processo. Se não existir o valor é 0 (zero), caso exista, este valor pode ser de 1 a infinito dependendo da quantidade de atividade paralelas existentes no processo.

 

Retorno: ProcessStateDto[].

 

Nos eventos existe a possibilidade de integração com serviços de dados. Tais serviços podem ser WebServices, AppServer Progress® e Dataset.

...