Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

 

Índice
outlinetrue
exclude.*ndice
stylenone

...

As exceções podem ser tratadas utilizando o comando throw. Este comando retornará uma mensagem ao usuário ao tentar salvar o documento.


Exemplo 

Bloco de código
languagejs
linenumberstrue
function validateCustomMetadata (fields){
    if( fields.getValue("campo1") == "Area 1"){
        throw "TRATAMENTO DA EXCEÇÃO";
    }
}

...

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 

Bloco de código
languagejs
linenumberstrue
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.

PropriedadeDescriçãoTipo
WKDocumentObjeto do DocumentoDocumentDto
WKSubjectDescrição do Assunto do documentoString
WKListApproverLista dos Aprovadores do documentoList<ApproverDto>
WKListSecurityLista com a segurança do documento

List <DocumentSecurityConfigDto>

WKListRelatedDocument

Lista com os documentos relacionados ao documento

List< RelatedDocumentDto>
WKStateEstado da ação: PUBLISH ou MODIFYString
WKUserUsuário logadoString
WKCompanyCó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.


Exemplo

 

Bloco de código
languagejs
linenumberstrue
unction beforeDocumentPublisher(){
                
                var doc = getValue("WKDocument");
                var subject = getValue("WKSubject");
                var listApprover = getValue("WKListApprover");
                var listSeg = getValue("WKListSecurity");
                var listRelated = getValue("WKListRelatedDocument");
                var state = getValue("WKState");
                var user = getValue("WKUser");
                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(listApprover!=null){
                    for(j = 0; j < listApprover.size(); j++) {          
                        if (listApprover.get(j).getColleagueId().equals("adm")){
                            throw "O usuário adm não pode ser aprovador de documentos";
                        }
                    }
                }
 
 
                if(listSeg != null){
                    for(j = 0; j < listSeg.size(); j++) {    
                        if (listSeg.get(j).getAttributionValue().equals("cvd")){
                            throw "O usuário cvd não pode estar na segurança de documentos";
                        }
                    }
                }
 
 
                if( listRelated != null){
                    log.info("Os seguintes documentos estão relacionados a este documentos: ");
                        for(j = 0; j < listRelated.size(); j++) {         
                            log.info("Nr. documento: "+ listRelated.get(j).getRelatedDocumentId());
                        }
                }
                log.info("Assunto: " + subject);
                log.info("Estado: " + state);
}


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

 

Bloco de código
languagejs
linenumberstrue
function afterDocumentPublisher(){
}