Histórico da Página
...
Nota | ||
---|---|---|
| ||
|
afterReleaseProcessVersion
Evento disparado após a criação ou modificação nas configurações de um determinado processo.
Nota | ||
---|---|---|
| ||
Caso o processo possua o evento "afterReleaseVersion" implementado, este evento global será desconsiderado na liberação de novas versões do processo em questão. |
Abaixo segue um exemplo de como implementar esse evento:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
function afterReleaseProcessVersion(processXML){ var pdv = getValue("ProcessDefinitionVersionDto"); var processInfo = "\n### Nova versão de processo liberada: ###"; processInfo += "\n User: " + getValue("WKUser"); processInfo += "\n processDescription: " + pdv.getProcessDescription(); processInfo += "\n processId: " + pdv.getProcessId(); processInfo += "\n version: " + pdv.getVersion(); log.info(processInfo + "\n"); } |
São disponibilizadas algumas propriedades referentes ao processo que esta sendo liberado, porém somente para consulta através do método getValue.
Propriedade | Descrição | Tipo |
WKCompany | Código da empresa | long |
WKUser | Usuário logado | String |
ProcessDefinitionVersion | Objeto com propriedades da versão do processo alterada | ProcessDefinitionVersionDto |
beforeSendNotification
Evento disparado antes do envio de uma notificação ao usuário. Pode ser utilizado quando for necessário adicionar alguma informação à nota ou alterar a prioridade de uma notificação, possibilitando o cancelamento do envio da notificação caso seja definida uma prioridade através do evento.
Informações | ||
---|---|---|
| ||
Por questões de segurança, somente os campos priority e note podem ser alterados. Outras alterações não serão consideradas. |
Nota | ||
---|---|---|
| ||
Caso seja lançada uma exceção através do evento a notificação não será enviada, mas esse não é o modo correto de cancelar o envio. Definir o campo priority como "NONE" impede que a notificação seja enviada sem a necessidade de lançar exceção. |
Abaixo segue um exemplo de como implementar esse evento:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
function beforeSendNotification(notification) { if (notification.eventType == "DENOUNCED_CONTENT") { notification.priority = "NONE"; } if (notification.eventType == "DOCUMENT_APPROVED") { notification.priority = "NORMAL"; } if (notification.eventType == "DOCUMENT_REPROVED") { notification.priority = "HIGH"; } if (notification.eventType == "LIKE") { notification.priority = "LOW"; } } |
São disponibilizadas algumas propriedades referentes à notificação que está sendo enviada.
Propriedade | Descrição | Tipo |
aliasSender | Alias de quem enviou a notificação. Pode vir nulo nos casos em que a notificação é enviada pelo sistema. | String |
aliasReceiver | Alias de quem vai receber a notificação. | String |
place | Lugar onde foi feita a ação que gerou a notificação. Pode vir nulo quando não for um lugar socializavel. | |
object | Objeto sobre o qual foi feita a ação que gerou o alerta. | |
eventType | Tipo do evento que gerou a notificação. | String |
metadata | Metadados da notificação. | Hashmap <String, String> |
priority | Prioridade da notificação. Valores válidos: NONE, LOW, NORMAL, HIGH. | String |
note | Nota enviada junto à notificação. | String |
afterSendNotification
Evento disparado após o envio de uma notificação ao usuário. Pode ser utilizado quando for necessário registrar alguma informação, para auditoria, por exemplo.
Abaixo segue um exemplo de como implementar esse evento:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
function afterSendNotification(notification){ log.info("notification as send for " + notification.aliasReceiver); } |
São disponibilizadas algumas propriedades referentes à notificação que foi enviada.
Propriedade | Descrição | Tipo |
aliasSender | Alias de quem enviou a notificação. Pode vir nulo nos casos em que a notificação é enviada pelo sistema. | String |
aliasReceiver | Alias de quem vai receber a notificação. | String |
place | Lugar onde foi feita a ação que gerou a notificação. Pode vir nulo quando não for um lugar socializavel. | |
object | Objeto sobre o qual foi feita a ação que gerou o alerta. | |
eventType | Tipo do evento que gerou a notificação. | String |
metadata | Metadados da notificação. | Hashmap <String, String> |
priority | Prioridade da notificação. | String |
note | Nota enviada junto à notificação. | String |
onDisplayTasks
Este evento é disparado antes de serem exibidas as tarefas das aba "Tarefas a concluir" , "Minhas solicitações", "Tarefas em pool", "Tarefas em consenso" e "Minhas tarefas sob gerência" na central de tarefas. Através dele é possível inserir, alterar ou remover itens da central de tarefas. O evento recebe como parâmetro uma lista de WorkflowTasksVO das tarefas existentes.
Exemplo adicionando uma tarefa personalizada ao final da lista de tarefas:
Bloco de código | ||
---|---|---|
| ||
function onDisplayTasks(tasks) { var newTask = new WorkflowTasksVO(); newTask.description = "TOTVS 001"setCode("Fluig"); newTask.url = setUrl("http://www.totvs.com"; fluig.com"); newTask.setProcessDescription("Nova Tarefa"); newTask.setRequesterName("João da Silva"); newTask.setStateDescription("Atividade 1"); newTask.setColleagueName("Ana Maria"); newTask.setDateExpires("07/10/2025"); tasks.add(newTask); } |
Disponibilizamos algumas informações para consulta através do método getValue.
Propriedade | Descrição | Tipo |
---|---|---|
WKUser | Código do usuário logado. | String |
WKUserLocale | Idioma do usuário logado. | String |
WKCompany | Número da empresa. | Int |
taskUserId | Código do usuário substituído, em caso de visualização da central como substituto. Nos demais casos retorna o usuário logado. | String |
taskType | Indicador do tipo de tarefas que estão sendo exibidas, “open” tarefas a concluir e “requests” para minhas solicitações. | String |
filter | Filtros utilizados. | Map<String, Object> |
order | Ordenação aplicada. | String |
maxResult | Número de resultados por página. | Int |
page | Número da página atual. | Int |
taskId | Em caso de pool, quando o taskType for pool, o taskId trará uma string contendo o tipo no caso ‘Role’ para papel ou ‘Group‘ para grupo e seu código. Exemplo: ‘Pool:Role:admin’ para um pool do papel ‘admin’. | String |
Bloco de código | ||||
---|---|---|---|---|
| ||||
function onDisplayTasks(links){ log.info("Usuário: " + getValue("WKUser")); } |
onDisplayTasksSummary
Este evento é disparado antes de serem exibidos os contadores das abas e gráficos da central de tarefas e widgets de BPM. Através dele é possível alterar números de tarefas pendentes de cada tipo.
Exemplo alterando o número de tarefas abertas e no prazo:
Bloco de código | ||
---|---|---|
| ||
function onDisplayTasksSummary(resumeTasks) { resumeTasks.openTasks=20; } |
O objeto recebido como parâmetro contém:
Propriedade | Descrição | Tipo |
---|---|---|
expiredTasks
| Solicitações atrasadas. | Int |
openTasks | Solicitações no prazo. | Int |
myRequests | Minhas solicitações. | Int |
toApprover | Aprovação de documentos pendentes. | Int |
myDocuments | Documentos aguardando aprovação. | Int |
checkout | Documento em checkout. | Int |
learningTasks | Atividades de Aprendizado. | Int |
Bloco de código | ||
---|---|---|
| ||
function onDisplayTasksSummary(resumeTasks) { resumeTasks.expiredTasks=10; resumeTasks.openTasks=20; resumeTasks.myRequests=30; resumeTasks.toApprover=40; resumeTasks.myDocuments=50; resumeTasks.checkout=60; resumeTasks.learningTasks=70; } |
Disponibilizamos algumas informações para consulta através do método getValue.
Propriedade | Descrição | Tipo |
---|---|---|
WKUser | Código do usuário logado. | String |
WKUserLocale | Idioma do usuário logado. | String |
WKCompany | Número da empresa. | Int |
taskUserId | Código do usuário substituído, em caso de visualização da central como substituto. Nos demais casos retorna o usuário logado. | String |
Bloco de código | ||||
---|---|---|---|---|
| ||||
function onDisplayTasks(links){ log.info("Usuário: " + getValue("WKUser")); } |
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
import java.util.Enumeration; import javax.ejb.ActivationConfigProperty; import javax.ejb.MessageDriven; import javax.jms.MapMessage; import javax.jms.Message; import javax.jms.MessageListener; @MessageDriven(mappedName = "custom/DocumentListener", activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"), @ActivationConfigProperty(propertyName = "destination", propertyValue = "topic/wdkDocument") }) public class DocumentListenerMessageBean implements MessageListener { @Override public void onMessage(Message message) { try { System.out.println("========Document Listener========"); System.out.println("Message received: " + message.getJMSMessageID()); if (message instanceof MapMessage) { MapMessage mm = (MapMessage) message; @SuppressWarnings("unchecked") Enumeration<String> es = mm.getPropertyNames(); while (es.hasMoreElements()) { String prop = es.nextElement(); System.out.println(prop + ": " + mm.getObjectProperty(prop)); } } System.out.println("========Fim Document Listener========"); } catch (Exception e) { e.printStackTrace(); } } } |
function onDisplayTasks(tasks) { var newTask = new WorkflowTasksVO(); newTask.setCode("Fluig"); newTask.setUrl("http://www.fluig.com"); newTask.setProcessDescription("Nova Tarefa"); newTask.setRequesterName("João da Silva"); newTask.setStateDescription("Atividade 1"); newTask.setColleagueName("Ana Maria"); newTask.setDateExpires("07/10/2025"); tasks.add(newTask);}