Histórico da Página
...
Este evento é disparado sempre antes de salvar os valores dos campos customizados de um documento, tanto na publicação como edição. Através dele é possível alterar ou validar os valores dos campos customizados dos metadados de um documento. O evento recebe como parâmetro uma referência aos campos customizados.
Exemplo
Bloco de código | ||||
---|---|---|---|---|
| ||||
function validateCustomMetadata(fields){ } |
...
- Pela herança da pasta pai.
- No cadastro de Campos Customizados, marcando a opção Mostrar opção Mostrar em todos documentos ou documentos ou da forma padrão.
- Através do WebService CustomFieldsService.
- Na edição dos metadados do documento, pelo usuário.
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”, caso o campo não esteja disponível para este documento.
Exemplo
function validateCustomMetadata (fields){ } |
Já para realizar a edição utiliza-se o fields.setValue, passando como parâmetro, primeiro o nome do campo, em seguida o valor.
Exemplo
function validateCustomMetadata (fields){ fields fields.setValue("campo1","Valor para o Campo 1"); } |
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 |
Exemplo
As exceções podem ser tratadas utilizando o comando throw.
Este comando retornará uma mensagem ao usuário ao tentar salvar o documento.
Exemplo
function validateCustomMetadata (fields){ if if( fields.getValue("campo1") == "Area 1"){ throw throw "TRATAMENTO DA EXCEÇÃO"; } } |
BeforeDocumentPublisher
Utilizado quando é preciso fazer validação customizada nas propriedades da tela de publicação/edição de documentos antes de salva-lo no banco de dados. Dentre todas as propriedades da tela de publicação/edição de documentos não serão tratados os campos customizados, pois já existe um evento que trata esta situação.
Exemplo
function beforeDocumentPublisher(){ } |
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 | |
WKSubject | Descrição do Assunto do documento | String |
WKListApprover | Lista dos Aprovadores do documento | List<ApproverDto> |
WKListSecurity | Lista com a segurança do documento | List <DocumentSecurityConfigDto> |
WKListRelatedDocument | Lista com os documentos relacionados ao documento | List< 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 objetos Dto’s serão explicados no capítulo “Objetos utilizados nos eventos” |
O produto retorna null quando 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ó variável WKListApprover só terá informações quando realmente existirem aprovadores na publicação.
Exemplo
function beforeDocumentPublisher(){
var var doc = getValue("WKDocument"); var var subject = getValue("WKSubject"); var var listApprover = getValue("WKListApprover"); var var listSeg = getValue("WKListSecurity"); var var listRelated = getValue("WKListRelatedDocument"); var var state = getValue("WKState"); var var user = getValue("WKUser"); var var company = getValue("WKCompany");
log.info("Usuário Logado: " + user);
log.info("Empresa: " + company);
log.info("Número do documento: "+ doc.getDocumentId() + " - Versão: "+ doc.getVersion());
if if(listApprover!=null){ for for(j = 0 0; j < listApprover.size(); j++) { if if (listApprover.get(j).getColleagueId().equals("adm")){ throw throw "O usuário adm não pode ser aprovador de documentos"; } } }
if if(listSeg != null null){ for for(j = 0 0; j < listSeg.size(); j++) { if if (listSeg.get(j).getAttributionValue().equals("cvd")){ throw throw "O usuário cvd não pode estar na segurança de documentos"; } } }
if if( listRelated != null null){ log.info("Os seguintes documentos estão relacionados a este documentos: "); for for(j = 0 |
AfterDocumentPublisher
Utilizado quando é preciso fazer alguma manipulação customizada nas propriedades da tela de publicação/edição de documentos depois que ele foi salvo no banco de dados. Dentre todas as propriedades da tela de publicação/edição de documentos não serão tratados os campos customizados.
Exemplo
function afterDocumentPublisher(){ } |
As propriedades recuperadas através do método getValue() são as mesmas do eventos beforeDocumentPublisher e eventos beforeDocumentPublisher e a forma de manipulação das propriedades pode ser vista no exemplo do evento beforeDocumentPublisherevento beforeDocumentPublisher.
BeforeDocumentViewer
Utilizado quando é preciso fazer validação customizada antes da visualização de algum documento.
Exemplo
function beforeDocumentViewer (){ } |
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 | |
WKUser | Usuário logado. | String |
WKCompany | Código da Empresa | int |
Nota |
---|
Os objetos Dto’s serão objetos Dto’s serão explicados no capítulo “Objetos utilizados nos eventos”. |
Exemplo
function beforeDocumentViewer(){ var var doc = getValue("WKDocument"); var var company = getValue("WKCompany"); var var ds try try { var var c1 = DatasetFactory.createConstraint( "allocatedDocumentPK.companyId", company, company, ConstraintType.MUST); var var c2 = DatasetFactory.createConstraint( "allocatedDocumentPK.sourceDocument", doc.getDocumentId(), doc.getDocumentId(), ConstraintType.MUST); var var c3 = DatasetFactory.createConstraint( "allocatedDocumentPK.sourceVersion", doc.getVersion(), doc.getVersion(), ConstraintType.MUST); var var var c4 = DatasetFactory.createConstraint("active", "true","true", ConstraintType.MUST); var constraints = new Arrayds new Array(c1, c2, c3, c4); ds = DatasetFactory.getDataset("allocatedDocument", null null, constraints, null null); } catch catch (e) { log log.error("Erro ao tentar recuperar o documento em CheckOut: " + e.message); } if if(ds!= null null && ds. 0 rowsCount>0){ throw 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"); } } |
Utilizado quando é preciso fazer validação customizada antes do download de algum documento.
Exemplo
function beforeDownloadContent (documentId){ } |
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 | |
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 |
Nota |
---|
Os objetos Dto’s serão objetos Dto’s serão explicados no capítulo “Objetos utilizados nos eventos”. |
Exemplo
function beforeDownloadContent(documentId) { var var companyId = getValue("WKCompany"); var var c1 = DatasetFactory.createConstraint( "documentPK.documentId", documentId, documentId, ConstraintType.MUST); var var var c2 = DatasetFactory.createConstraint( "documentPK.companyId", companyId, companyId, ConstraintType.MUST); var constraints = new Arrayvar new Array(c1, c2); var ds = DatasetFactory.getDataset("document", null null, constraints, null null); if if (ds != null null && ds.rowsCount 0 var > 0) { var parent = ds.getValue(0, "parentDocumentId"); if if (parent == 43 43) { throw throw "Download não permitido!"; } } } |
AfterSaveCard
Utilizado quando ao criar/salvar os dados de um registro de formulário pela Navegação de Documentos ou por movimentações Workflow se deseja salvar os dados do registro de formulário em uma forma externa. Por exemplo, ao criar o registro de formulário, enviar os dados do mesmo para um Webservice de outro produto.
Exemplo
function afterSaveCard(companyId, formId, cardId, versionId, cardData){ } |
Sendo os parâmetros:
Propriedade | Descrição | Tipo |
companyId | Código da Empresa | int |
formId | Código do Formulário | int |
cardId | Código do Registro de Formulário | int |
versionId | Versão do Registro de Formulário | int |
cardData | Dados do Registro de Formulário | Hashmap <String, String> |
Exemplo
function afterSaveCard(companyId, formId, cardId, versionId, cardData){ var var custom = ServiceManager.getService("CustomCard"); var var serviceHelper = custom.getBean(); var var serviceLocator = serviceHelper.instantiate("com.totvs.technology.webdesk.forms.service.custom.CustomCardServiceLocator"); var var var service = serviceLocator.getCustomCardPort(); var ar = new Array new Array(); var var it = cardData.keySet().iterator(); while var while (it.hasNext()) { var key = it.next(); var var field1 = serviceHelper.instantiate("com.totvs.technology.webdesk.forms.service.custom.CardKeyValue"); field1field1 field1.setKey(key); ar ar.push(field1); } var var resultArr = serviceHelper.instantiate("com.totvs.technology.webdesk.forms.service.custom.CardKeyValueArray"); resultArr resultArr.setItem(ar); service service.create(companyId, formId, cardId, versionId, resultArr); } |
AfterDeleteCard
Utilizado como complemento do evento afterSaveCard. É chamado toda vez que um formulário ou um registro de formulário é eliminado da lixeira.
Exemplo
function afterSaveCard(companyId, formId, cardId, versionId, cardData){ } |
Sendo os parâmetros:
Propriedade | Descrição | Tipo |
companyId | Código da Empresa | int |
cardId | Código do Registro de Formulário | int |
Exemplo
function afterDeleteCard(companyId,cardId){ var var custom = ServiceManager.getService("CustomCard"); var var serviceHelper = custom.getBean(); var var serviceLocator = serviceHelper.instantiate("com.totvs.technology.webdesk.forms.service.custom.CustomCardServiceLocator"); var var service = serviceLocator.getCustomCardPort(); service service.deleteCard(companyId, cardId); } |