Histórico da Página
Painel | ||||
---|---|---|---|---|
| ||||
|
Índice
Índice | ||||||
---|---|---|---|---|---|---|
|
...
Eventos globais
Os eventos globais do fluig são executados pela plataforma antes ou após alguma ação ocorrer (Ex: Aprovação de documento, movimentação de processo, publicação de comentário etc). Tais eventos podem ser personalizados através da linguagem Javascript. Os eventos são divididos em eventos do tipo before, que ocorre antes que a ação que disparou o evento seja efetivada e do tipo after, que ocorre após a ação acontecer.
Conector de Widget | ||||||
---|---|---|---|---|---|---|
|
SocialPostEventVO
Informações |
---|
Veja o exemplo em nosso repositório aqui. |
Desenvolvimento de Eventos
...
Evento disparado depois da atualização de um usuário, ou após a gravação de uma nova senha, pelo recurso de reset de senha da tela de login.
Informações |
---|
O evento afterUpdateUser será disparado no reset de senha pela tela de login somente na atualização 1.6.5 ou superior. |
...
Nota | ||
---|---|---|
| ||
|
Dica | ||
---|---|---|
| ||
Quando o evento onNotify for utilizado como evento global, é necessário informar uma constraint extra informando o usuário para fixar as permissões, já que o evento onNotify não é executado por nenhum usuário mas sim pelo sistema. Vale lembrar ainda que quando for utilizar algum dataset interno do fluig, é necessário tambem informar uma constraint. Exemplo: var constraintUser = DatasetFactory.createConstraint("userSecurityId", "nome_do_usuario", "nome_do_usuario", ConstraintType.MUST); |
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 |
Informações |
---|
Veja o exemplo (event-notification) no repositório do fluig clicando aqui. |
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 |
Informações |
---|
Veja o exemplo (event-notification) no repositório do fluig clicando aqui. |
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, editando e removendo uma tarefa personalizada ao final da lista de tarefas:
Bloco de código | ||
---|---|---|
| ||
function onDisplayTasks(tasks) { // Adiciona uma tarefa customizada var newTask = new WorkflowTasksVO(); newTask.setCode("TOTVS"); newTask.setUrl("http://www.totvs.com"); newTask.setProcessDescription("Nova Tarefa"); newTask.setRequesterName("João da Silva"); newTask.setStateDescription("Atividade 1"); newTask.setColleagueName("Ana Maria"); newTask.setStartDateProcess("07/09/2025"); newTask.setDateExpires("07/10/2025"); tasks.add(newTask); for (var i = 0; i < tasks.size(); i++) { // Remove a solicitação com o id 1 if (tasks.get(i).getProcessInstanceId() == 1) { tasks.remove(i); i--; // Necessário para não pular um item após a remoção } else { // Altera a descrição de todos os processos para "Nova Tarefa alterada" tasks.get(i).setProcessDescription("Nova Tarefa alterada"); } } |
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: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; } |
O objeto recebido como parâmetro contém:Disponibilizamos algumas informações para consulta através do método getValue.
Propriedade | Descrição | Tipo | |||
---|---|---|---|---|---|
WKUser | Código do usuário logado expiredTasksSolicitações atrasadas. | IntString | |||
openTasks | Solicitações no prazo. | Int | |||
myRequests | Minhas solicitações. | Int | |||
toApprover | Aprovação de documentos pendentes. | Int | |||
myDocuments | Documentos aguardando aprovação. | Int | |||
WKUserLocale | Idioma do usuário logado. | String | |||
WKCompany | Número da empresa | checkout | Documento em checkout. | Int | learningTasks |
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 | Atividades de Aprendizado. | Int |
Bloco de código | ||||
---|---|---|---|---|
| ||||
function onDisplayTasksSummaryonDisplayTasks(resumeTaskslinks) { 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"));
} |
Objetos utilizados nos eventos
Existem alguns objetos disponibilizados pelo produto que são utilizados nos eventos, nas próximas sessões eles serão explicados seus métodos e seus retornos.
DocumentDto
Este objeto representa o documento e suas propriedades, na tabela abaixo consta mais informações sobre ele:
log.info("Usuário: " + getValue("WKUser"));
} |
Objetos utilizados nos eventos
...
Existem alguns objetos disponibilizados pelo produto que são utilizados nos eventos, nas próximas sessões eles serão explicados seus métodos e seus retornos.
DocumentDto
Este objeto representa o documento e suas propriedades, na tabela abaixo consta mais informações sobre ele:
Função | Descrição da Função | Tipo do Retorno | |||
getDocumentId() | Retorna o número do documento. | int | |||
getVersion() | Retorna o número da versão do documento. | int | |||
getCompanyId() | Retorna o código da empresa em que o documento foi publicado. | Int | |||
getUUID() | Retorna o UUID (identificador Único Global) do documento. | String | |||
getDocumentTypeId() | Retorna o tipo do arquivo físico, se retornar branco ou nulo é porque esse tipo não é conhecido pelo fluig. | String | |||
getLanguageId() | Retorna o código do Idioma do documento. | String | |||
getIconId() | Retorna o código do Ícone do documento. | int | |||
getTopicId() | Retorna o código do assunto do documento. | int | |||
getColleagueId() | Retorna a matricula do usuário que criou o documento. | String | |||
getDocumentDescription() | Retorna a descrição do documento. | String | |||
getAdditionalComments() | Retorna os comentários adicionais do documento. | String | |||
getPhisicalFile() | Retorna o nome do arquivo físico atrelado ao documento. | String | |||
getCreateDate() | Retorna a data de criação. | java.util.Date | |||
getApprovedDate() | Retorna a data de Aprovação. | java.util.Date | |||
getLastModifiedDate() | Retorna a Data da última modificação. | java.util.Date | |||
getDocumentType() | Retorna o tipo do documento, onde: 0 à Pasta raiz 1 à Pasta 2 à Documento normal 3 à Documento externo 4 à Formulário 5 à Registro de formulário 7 à Anexo Workflow 8 à Novo Conteúdo 9 à Aplicativo 10 à Relatório portal à Site portalPage à Página de Site | String | |||
getExpirationDate() | Retorna a data de expiração. | java.util.Date | |||
getParentDocumentId() | Retorna o número da Pasta/Formulário pai | int | |||
getRelatedFiles() | String com o nome do arquivo físico principal e anexos. | String | |||
getActiveVersion() | Retorna se a versão é ativa. | boolean | |||
getVersionDescription() | Retorna a descrição da versão. | String | |||
getDownloadEnabled() | Retorna se o documento permite Download | boolean | |||
getApproved() | Retorna se o documento está em aprovação. | boolean | |||
getValidationStartDate() | Retorna a partir de que data em que o documento poderá ser visualizado | ||||
Função | Descrição da Função | Tipo do Retorno | |||
getDocumentId() | Retorna o número do documento. | int | |||
getVersion() | Retorna o número da versão do documento. | int | |||
getCompanyId() | Retorna o código da empresa em que o documento foi publicado. | Int | |||
getUUID() | Retorna o UUID (identificador Único Global) do documento. | String | |||
getDocumentTypeId() | Retorna o tipo do arquivo físico, se retornar branco ou nulo é porque esse tipo não é conhecido pelo fluig. | String | |||
getLanguageId() | Retorna o código do Idioma do documento. | String | |||
getIconId() | Retorna o código do Ícone do documento. | int | |||
getTopicId() | Retorna o código do assunto do documento. | int | |||
getColleagueId() | Retorna a matricula do usuário que criou o documento. | String | |||
getDocumentDescription() | Retorna a descrição do documento. | String | |||
getAdditionalComments() | Retorna os comentários adicionais do documento. | String | |||
getPhisicalFile() | Retorna o nome do arquivo físico atrelado ao documento. | String | |||
getCreateDate() | Retorna a data de criação. | java.util.Date | |||
getApprovedDategetPublisherId() | Retorna a data de Aprovação. | java.util.Date | matricula do usuário que publicou o documento. | String | |
getCardDescriptiongetLastModifiedDate() | Retorna a Data da última modificação. | java.util.Date | descrição do registro de formulário, para documento do tipo 5. | String | |
getDocumentPropertyNumbergetDocumentType() | Retorna o tipo do documento, onde: 0 à Pasta raiz 1 à Pasta 2 à Documento normal 3 à Documento externo 4 à Formulário 5 à Registro de formulário 7 à Anexo Workflow 8 à Novo Conteúdo 9 à Aplicativo 10 à Relatório portal à Site portalPage à Página de Site | String | |||
getExpirationDate() | Retorna a data de expiração. | java.util.Date | |||
getParentDocumentId() | Retorna o número da Pasta/Formulário pai | int | |||
getRelatedFiles() | String com o nome do arquivo físico principal e anexos. | String | |||
getActiveVersion() | Retorna se a versão é ativa. | boolean | |||
getVersionDescription() | Retorna a descrição da versão. | String | |||
getDownloadEnabled() | Retorna se o documento permite Download | boolean | |||
formulário que foi usado como base para criação do registro de formulário, por isso só tem um valor quando o documento é do tipo 5 (registro de formulário). | int | ||||
getDocumentPropertyVersion() | Retorna a versão do formulário em que o registro de formulário foi criado. | int | |||
getPrivateDocument() | Retorna se o documento/pasta está abaixo da pasta particular. | boolean | |||
getPrivateColleagueId() | Se é um documento particular retorna a matricula do usuário onde este documento está alocado. | String | |||
getIndexed() | Retorna se o documento já foi indexado. | boolean | |||
getPriority() | Retorna a prioridade do documento. | int | |||
getUserNotify() | Retorna se notifica os usuários que tenham esse assunto de interesse. | boolean | |||
getExpiresgetApproved() | Retorna se o documento está em aprovaçãoexpirado. | boolean | |||
getValidationStartDategetVolumeId() | Retorna a partir de que data em que o documento poderá ser visualizado. | java.util.Date | getPublisherId() | Retorna a matricula do usuário que publicou o documentoo volume onde o documento foi publicado, se estiver em branco ele utiliza o volume do pai. | String |
getCardDescriptiongetInheritSecurity() | Retorna a descrição do registro de formulário, para documento do tipo 5. | String | |||
getDocumentPropertyNumber() | Retorna o formulário que foi usado como base para criação do registro de formulário, por isso só tem um valor quando o documento é do tipo 5 (registro de formulário). | int | |||
se herda segurança do pai. | boolean | ||||
getUpdateIsoProperties() | Retorna se atualiza as propriedades da cópia controlada. | boolean | |||
getLastModifiedTimegetDocumentPropertyVersion() | Retorna a versão do formulário em que o registro de formulário foi criado. | int | hora da última modificação em milissegundos. | String | |
getDeletedgetPrivateDocument() | Retorna se o documento /pasta está abaixo da pasta particularestá na lixeira. | boolean | |||
getPrivateColleagueIdgetDatasetName() | Retorna o documento do dataset , se o documento é um formulário. | String | |||
getKeyWord() | Retorna as palavras chaves do documento. Cada palavra é separada por vírgulaSe é um documento particular retorna a matricula do usuário onde este documento está alocado. | String | |||
getIndexedgetImutable() | Retorna se o documento já foi indexadoa versão/revisão é inalterável. | boolean | |||
getPrioritygetDraft() | Retorna a prioridade do documento. | int | se o documento está em edição, para documento do tipo “Novo Conteúdo”. | boolean | |
getInternalVisualizergetUserNotify() | Retorna se notifica os usuários que tenham esse assunto de interesseutiliza visualizador interno. | boolean | |||
getExpiresgetPhisicalFileSize() | Retorna se o documento está expiradotamanho físico do documento principal e anexos. | booleanfloat getVolumeId | |||
getVersionOption() | Retorna | o volume onde o documento foi publicado, se estiver em branco ele utiliza o volume do pai.String | |||
getInheritSecurity() | Retorna se herda segurança do pai. | boolean | |||
getUpdateIsoProperties() | Retorna se atualiza as propriedades da cópia controlada. | boolean | |||
getLastModifiedTime() | Retorna a hora da última modificação em milissegundos. | String | |||
getDeleted() | Retorna se o documento está na lixeira. | boolean | |||
getDatasetName() | Retorna o documento do dataset , se o documento é um formulário. | String | getKeyWord() | Retorna as palavras chaves do ||
a condição de versionamento do documento: 0 = Será mantida a versão 1 = Será criado nova revisão 2 = Será criado nova versão Importante lembrar que no momento da criação de um novo documento o valor sempre será 0. | int |
Bloco de código | ||||
---|---|---|---|---|
| ||||
var doc = getValue("WKDocument");
log.info("Número do documento: "+ doc.getDocumentId() + " - Versão: "+ doc.getVersion()); |
DocumentEditDto
Este objeto representa as propriedades editáveis de um documento, na tabela abaixo consta mais informações sobre ele:
Função | Descrição da função | Tipo do retorno |
---|---|---|
setKeyWord | Adiciona Palavras chaves no documento. Cada palavra é separada por vírgula. |
void |
getImutable()
Retorna se a versão/revisão é inalterável.
boolean
getDraft()
Retorna se o documento está em edição, para documento do tipo “Novo Conteúdo”.
boolean
getInternalVisualizer()
Retorna se utiliza visualizador interno.
boolean
getPhisicalFileSize()
Retorna o tamanho físico do documento principal e anexos.
float
setExpires | Define se o documento deve expirar | void |
setExpirationDate | Define a data de expiração. | void |
setValidationStartDate | Define a data a partir da qual o documento poderá ser visualizado. | void |
Retorna a condição de versionamento do documento:
0 = Será mantida a versão
1 = Será criado nova revisão
2 = Será criado nova versão
Importante lembrar que no momento da criação de um novo documento o valor sempre será 0.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
function beforeDocumentPublisher() {
var docEdit = getValue("WKDocumentEdit");
var dataStartValidation = new Date(2022, 0, 1);
var dataExpiracao = new Date(2022, 11, 31);
docEdit.setKeyWord("testing");
docEdit.setExpires(true);
docEdit.setExpirationDate(dataExpiracao);
docEdit.setValidationStartDate(dataStartValidation);
} |
Nota | ||
---|---|---|
| ||
Lembrando que no javascript, no construtor new Date, o valor do "Mês" começa com o index 0, sendo 0 = Janeiro e 11 = Dezembro, veja outros exemplos clicando aqui. var doc = getValue("WKDocument"); log.info("Número do documento: "+ doc.getDocumentId() + " - Versão: "+ doc.getVersion()); |
ApproverDto
Este objeto representa os aprovadores e suas propriedades, na tabela abaixo consta mais informações sobre ele:
...
SocialPostEventVO | ||
Propriedade / Método | Descrição | Tipo / Retorno |
---|---|---|
getText() | texto do post | String |
getUser() | alias do usuário que está postando | String |
getVisibility() | visibilidade do post | String |
getPostId() | identificador do post | String |
getCreationDate() | data de criação do post | String |
getLastUpdateDate() | data de ultima atualização do post | String |
getSociablegetSociables() | objeto sociable objetos sociables relacionado a esse post. Ex: ImagemImagens, VídeoVídeos, ArtigoArtigos, etc... | List<SociableEventVO> |
getSocial() | objeto social onde o post foi feito. Pode ser timeline de um usuario ou um comunidade | SocialEventVO |
*getAttributes() | Atributos do Analytics em formato de Lista de Strings. Limite de 3 itens | List<String> |
*getFacts() | Fatos dos atributos do Analytics em formato de Lista de Strings. Limite de 3 itens | List<String> |
customData | Mapa em formato JSON onde pode-se persistir dados extras da publicação | Map JSON |
...