Histórico da Página
A hAPI é uma API (Application Programming Interface) disponibilizada pela plataforma Fluig que permite o acesso a diversas funcionalidades do sistema. Essa API é amplamente utilizada no desenvolvimento de processos e aplicações personalizadas, e é fundamental para quem deseja tirar o máximo proveito da plataforma. Nesta documentação, apresentaremos as principais funções da hAPI e como utilizá-lasEste objeto é o retorno do método startProcess da hAPI.
Descrição
O objeto mais importante nos eventos de processo é a WorkflowSaveAndSendResultVO. Com ele o desenvolvedor pode consultar e atribuir dados do formulário, obter informações da movimentação como id do histórico de movimentação, thread, atividades para onde a solicitação atual pode ser movimentada, outras atividades ativas, solicitação que gerou a solicitação atual (no caso de ser um sub-processo), link para uma determinada atividade (que pode ser usado para o envio de notificações), calcular prazo de conclusão dinamicamente, trabalhar com os anexos da solicitação (adicionando, listando, ou publicando os itens atuais no GED) e atribuir valores como prazo de conclusão, comentários.
Além disso, consegue tomar ações como transferir atividade e iniciar solicitações.
Pode ser utilizada em todos os eventos do processo (before, after, services e condicionais), evento de notificação (onNotify) e eventos globais (como displayCentralTask, afterSaveCard, entre outros). Neste último caso, por não estar associado diretamente à uma solicitação, nem todos os métodos está disponíveis e a documentação do método deve ser consultada antes do desenvolvimento.
Métodos da instância
String getCardValue(String fieldName)
Retorna o valor do campo fieldName no formulário
void setCardValue(String fieldName, String newValue)
Define o valor newValue ao campo de formulário fieldName
Map<String,String> getCardData(int instanceId)
Retorna todos os dados do formulário da solicitação instanceId.
void addCardChild(String tableName, Map<String, String> childData)
Adiciona um novo registro filho na tabela tableName com os dados childData.
boolean removeCardChild(String tableName, int index)
Remove o registro filho de ordem index da tabela tableName.
List<Integer> getChildrenInstances(int instanceId)
Retorna uma lista com os número de solicitações da solicitações geradas diretamente a partir da solicitação instanceId.
Integer getParentInstance(int instanceId)
Retorna o número da solicitação que originou a solicitação atual, ou zero, caso não seja um subprocesso.
List<Integer> getActiveStates()
Retorna uma lista com os códigos de atividades ativas na solicitação atual
void setDueDate(int instanceId, int threadSequence, String userId, Object data, int timeInSeconds)
Define a data data e horário timeInSeconds a tarefa atual da thread threadSequence do usuário userId da solicitação instanceId
void transferTask(List<String> users, String comment, int threadSequence)
Transfere uma atividade ativa na thread threadSequence da solicitação atual para os usuários users e adiciona o comentário comment.
void transferTask(List<String> users, String comment)
Transfere uma atividade ativa na thread 0 da solicitação atual para os usuários users e adiciona o comentário comment.
WorkflowSaveAndSendResultVO startProcess(String processId, int chosenState, List<String> colleagues, String comments, boolean completeTask, Map cardData, Boolean managerMode)
Inicia uma solicitação do processo processId, encaminhando pra tarefa chosenState e para os usuários colleagues com o comentário comments e dados de formulário cardData.
setColleagueReplacement(userId)
setTaskComments("userId", numProcesso, numThread, "obs")
getAdvancedProperty("propriedade")
calculateDeadLineHours(data, segundos, prazo, periodId)
calculateDeadLineTime(data, segundos, prazo, periodId)
getUserTaskLink(numAtiv)
createAdHocTasks(workflowProcessInstanceId, sequenceId, assunto, detalhamento, listatvidadesAhoc)
listAttachments()
publishWorkflowAttachment(documento)
attachDocument(documentId)
...
Este é um objeto de retorno do método de iniciar solicitação. Foi introduzido no fluig 1.8.1 e substitui o retorno anterior que era um mapa com chave do tipo string e valor do tipo Object.
Por questões de retrocompatibilidade, este objeto também é um mapa. Então, todos os códigos que funcionavam antes, continuam funcionando sem problemas.
A recomendação é: usar os novos métodos para novos desenvolvimentos e ajustar os antigos conforme outros ajustes sejam feitos.
Métodos da instância
int getProcessInstanceId()
Retorna um valor numérico com o id da solicitação.
Caso a solicitação não tenha sido criada, retorna zero.
int getTaskSequence()
Retorna um valor numérico com o código da atividade atual.
Caso a solicitação não tenha sido criada, retorna zero.
int getCondition()
Retorna um valor numérico referente a qual condição do gateway foi atendida para definir o próxima atividade.
Caso a solicitação não tenha sido criada ou não tenha passado por um gateway, retorna zero.
int getMovementSequence()
Retorna um valor numérico com o código do histórico de movimentação .
Caso a solicitação não tenha sido criada, retorna zero.
int getDocumentId()
Retorna um valor numérico com o código do formulário associado à solicitação.
Caso a solicitação não tenha sido criada ou não possua um formulário, retorna zero.
int getDocumentVersion()
Retorna um valor numérico com a versão do formulário associado à solicitação.
Caso a solicitação não tenha sido criada ou não possua um formulário, retorna zero.
boolean isMultipleUsers()
Retorna um valor booleano true indicando há mais um usuário possível para a atividade e que deve ser indicado qual o usuário correto ou false quando não há necessidade de escolha.
No caso de uma atividade em consenso configurada para "Nunca selecionar colaboradores" ou atividades do tipo gateway esse retorno sempre será false.
boolean isJoint()
Retorna um valor booleano true indicando há mais um usuário possível para a atividade e que deve ser indicado qual o usuário correto ou false quando não há necessidade de escolha.
boolean isUsingManagerUsers()
Retorna um valor numérico com o código do histórico de movimentação
int getMovementSequence()
Retorna um valor numérico com o código do histórico de movimentação
String getObservation()
Retorna um valor numérico com o código do histórico de movimentação
ProcessLink getProcessLink()
Retorna um valor numérico com o código do histórico de movimentação
List<String> getCurrentAssignees()
Retorna um valor numérico com o código do histórico de movimentação
List<Colleague> getAvailableColleagues()
Retorna um valor numérico com o código do histórico de movimentação
List<Integer> getSubProcessInstancesIds()
Retorna um valor numérico com o código do histórico de movimentação
Retorna o código de documento do registro de formulário atual
...