Histórico da Página
...
Índice | ||||||
---|---|---|---|---|---|---|
|
Objetivo
Este guia é destinado aos desenvolvedores internos e externos do fluig que desejam manipular os eventos de documentos. O objetivo é apresentar o seu funcionamento e a descrição dos campos utilizados.
Pré-requisitos
Conhecer o conceito e as orientações sobre o Desenvolvimento de Eventos.
Eventos globais JavaScript
Os eventos de documentos são um conjunto de scripts carregados pela API de Documentos, os quais são desenvolvidos utilizando Javascript JavaScript e são chamados durante a execução de ação em Documentos ou em momentos específicos de interação em Documentos.
...
No contexto deste evento a variável fields pode ser usada para consultar ou modificar os valores dos campos customizados de um documento. Não permitindo adicionar novos campos.
Para inserir novos campos em um documento existe varias maneiras disponíveis.
...
Para consultar o valor de um campo customizado neste evento, utiliza-se o fields.getValue passando como parâmetro o código do campo desejado. Retornando “null” null, caso o campo não esteja disponível para este documento.
...
Alem dos valores dos campos customizados disponibilizamos algumas informações do documento que esta sendo criado ou editado, porém somente para consulta através do método getValue.
WKUser | Código do usuário |
WKCompany | Número da empresa |
WKNumParentDocument | Número da pasta pai |
WKDocumentType | Tipo do documento |
WKDocumentTypeId | ID do tipo de documento |
WKPrivateDocument | Se o documento esta sendo publicado na pasta particular (true/false) |
WKNumAcess | Número de acessos |
WKComments | Comentários do documento |
WKAuthor | Código do autor do documento |
WKCreateDate | Data de criação do documento |
WKDescription | Descrição do documento |
WKNumDocument | Número do documento |
WKNumVersion | Número da versão do documento |
WKExpirationDate | Data de expiração do documento |
WKExpires | Documento expira? (true/false) |
WKFileSize | Tamanho do documento em bytes |
WKKeyWord | Palavras chaves do documento |
WKVolume | Volume do documento |
WKSubject | Assunto relacionado ao documento |
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
function beforeDocumentPublisher() {
// Exemplo de evento que impede o usuário de publicar um documento com descrição
// repetida em uma determinada pasta .
var state = getValue("WKState");
if (state == "PUBLISH") {
var doc = getValue("WKDocument");
// Faz validações apenas se o documento estiver sendo publicado na pasta
// 624
if (doc.getParentDocumentId() == 624) {
// Reduzir o retorno de registros para reduzir impacto em
// performance.
var constraintDocument1 = DatasetFactory.createConstraint(
'sqlLimit', '1', '1', ConstraintType.MUST);
// Passando código da pasta pai para o Dataset
var constraintDocument2 = DatasetFactory.createConstraint(
'parentDocumentId', doc.getParentDocumentId(), doc
.getParentDocumentId(), ConstraintType.MUST);
// Consultando apenas registros de documentos ativos.
var constraintDocument3 = DatasetFactory.createConstraint(
'activeVersion', 'true', 'true', ConstraintType.MUST);
// Consultando apenas nos documentos não foram removidos.
var constraintDocument4 = DatasetFactory.createConstraint(
'deleted', 'false', 'false', ConstraintType.MUST);
// Consultando documentos que tenham a mesma descrição informada na
// publicação
var constraintDocument5 = DatasetFactory.createConstraint(
'documentDescription', doc.getDocumentDescription(), doc
.getDocumentDescription(), ConstraintType.MUST);
var datasetDocument = DatasetFactory.getDataset('document', null,
new Array(constraintDocument1, constraintDocument2,
constraintDocument3, constraintDocument4,
constraintDocument5), null);
if (datasetDocument.rowsCount > 0) {
throw "Já existe um documento com a mesma descrição informada";
}
}
}
}
|
...
São disponibilizadas algumas propriedades referentes ao documento que esta sendo criado ou editado, porem somente para consulta através do método getValue.
Propriedade | Descrição | Tipo |
---|---|---|
WKDocument | Objeto do Documento | DocumentDto |
WKSubject | Descrição do Assunto do documento | String |
WKListApprover | Lista dos Aprovadores do documento | List<ApproverDto>List<ApproverDto> |
WKListSecurity | Lista com a segurança do documento | List <List<DocumentSecurityConfigDto> |
WKListRelatedDocument | Lista com os documentos relacionados ao documento | List< RelatedDocumentDto>RelatedDocumentDto> |
WKState | Estado da ação: PUBLISH ou MODIFY | String |
WKUser | Usuário logado | String |
WKCompany | Código da Empresa | int |
Nota |
---|
Os objetos Dto’s serão explicados no capítulo “Objetos utilizados nos eventos” |
O produto retorna null quando for necessário pegar umas das propriedades do documento que não exista.
Por exemplo: Nem todos os documentos publicados tem aprovador, então a variável WKListApprover só terá informações quando realmente existirem aprovadores na publicação.
...
As propriedades recuperadas através do método getValue() são as mesmas do eventos beforeDocumentPublisher e a forma de manipulação das propriedades pode ser vista no exemplo do evento beforeDocumentPublisher.
...
Propriedade | Descrição | Tipo |
---|---|---|
WKDocument | Objeto do Documento | DocumentDto |
WKSubject | Descrição do Assunto do documento | String |
WKListApprover | Lista dos Aprovadores do documento | List<ApproverDto>List<ApproverDto> |
WKListSecurity | Lista com a segurança do documento | List <List<DocumentSecurityConfigDto> |
WKListRelatedDocument | Lista com os documentos relacionados ao documento | List< RelatedDocumentDto>RelatedDocumentDto> |
WKState | Estado da ação: PUBLISH ou MODIFY | String |
WKUser | Usuário logado | String |
WKCompany | Código da Empresa | int |
...
Propriedade | Descrição | Tipo |
---|---|---|
WKDocument | Objeto do Documento | DocumentDto |
WKSubject | Descrição do Assunto do documento | String |
WKListApprover | Lista dos Aprovadores do documento | List<ApproverDto>List<ApproverDto> |
WKListSecurity | Lista com a segurança do documento | List <DocumentSecurityConfigDto> |
WKListRelatedDocument | Lista com os documentos relacionados ao documento | List< RelatedDocumentDto>RelatedDocumentDto> |
WKState | Estado da ação: PUBLISH ou MODIFY | String |
WKUser | Usuário logado | String |
WKCompany | Código da Empresa | int |
...
São disponibilizadas algumas propriedades referentes ao documento que foi restaurado, porem somente para consulta através do método getValue.
Propriedade | Descrção | Tipo |
---|---|---|
WKUser | Código do usuário | String |
WKCompany | Número da empresa | int |
WKDocument | Objeto do Documento | DocumentDto |
WKUserLocale | Idioma do Usuário logado | String |
WKSubject | Assunto do documento | String |
...
São disponibilizadas algumas propriedades referentes ao documento que está sendo excluído pernamentementepermanentemente, porem porém somente para consulta através do método getValue.
Propriedade | Descrição | Tipo |
---|---|---|
WKUser | Código do usuário | String |
WKCompany | Número da empresa | int |
WKDocument | Objeto do Documento | DocumentDto |
WKUserLocale | Idioma do Usuário logado | String |
...
São disponibilizadas algumas propriedades referentes ao documento que esta sendo visualizado, porem somente para consulta através do método getValue.
Propriedade | Descrição | Tipo |
---|---|---|
WKDocument | Objeto do Documento | DocumentDto |
WKUser | Usuário logado | String |
WKCompany | Código da Empresa | int |
Nota |
---|
Os objetos Dto’s serão explicados no capítulo “Objetos utilizados nos eventos”. |
Exemplo
Bloco de código | ||||
---|---|---|---|---|
| ||||
function beforeDocumentViewer(){ var doc = getValue("WKDocument"); var company = getValue("WKCompany"); var ds try { var c1 = DatasetFactory.createConstraint( "allocatedDocumentPK.companyId", company, company, ConstraintType.MUST); var c2 = DatasetFactory.createConstraint( "allocatedDocumentPK.sourceDocument", doc.getDocumentId(), doc.getDocumentId(), ConstraintType.MUST); var c3 = DatasetFactory.createConstraint( "allocatedDocumentPK.sourceVersion", doc.getVersion(), doc.getVersion(), ConstraintType.MUST); var c4 = DatasetFactory.createConstraint("active", "true","true", ConstraintType.MUST); var constraints = new Array(c1, c2, c3, c4); ds = DatasetFactory.getDataset("allocatedDocument", null, constraints, null); }catch (e) { log.error("Erro ao tentar recuperar o documento em CheckOut: " + e.message); } if(ds!=null && ds.rowsCount>0){ throw "Este documento está em Check Out e não pode ser visualizado. Foi gerado o documento " + ds.getValue(0,"allocatedDocumentPK.destinationDocument") + " que está sob responsabilidade do usuário com matrícula "+ ds.getValue(0,"colleagueId"); } } |
...
São disponibilizadas algumas propriedades referentes ao documento que esta sendo visualizado, porem somente para consulta através do método getValue.
Propriedade | Descrição | Tipo |
---|---|---|
WKDocument | Objeto do Documento | DocumentDto |
WKSubject | Descrição do Assunto do documento | String |
WKUserLocale | Idioma do Usuário logado | String |
WKUser | Usuário logado | String |
WKCompany | Código da Empresa | int |
...
Exemplo
Bloco de código | ||||
---|---|---|---|---|
| ||||
function beforeDownloadContent(documentId) { var companyId = getValue("WKCompany"); var c1 = DatasetFactory.createConstraint( "documentPK.documentId", documentId, documentId, ConstraintType.MUST); var c2 = DatasetFactory.createConstraint( "documentPK.companyId", companyId, companyId, ConstraintType.MUST); var constraints = new Array(c1, c2); var ds = DatasetFactory.getDataset("document", null, constraints, null); if (ds != null && ds.rowsCount > 0) { var parent = ds.getValue(0, "parentDocumentId"); if (parent == 43) { throw "Download não permitido!"; } } } |
...
Utilizado como complemento do evento afterSaveCard. É chamado toda vez que um formulário ou um registro de formulário é eliminado da lixeira.
...