...
Este evento permite personalizar a conversão de documento realizada pelo TOTVS Fluig Plataforma. Mais informações sobre ele podem ser encontradas no guia Conversores de Documentos.
...
ValidateUpload
Nota |
---|
A partir da versão: 1.8.1- Silver Mist |
Este evento sempre é disparado antes de salvar os valores dos campos customizados de um documento, tanto na publicação como ediçãorealizar upload de arquivo para a plataforma, seja por API Rest, Soap/Webservices ou FTP. Através dele é possível alterar ou validar os valores dos campos customizados dos metadados de um documentovalidar o MIMEType ou Extensão do arquivo que está sendo feito upload e poder bloquear. O evento recebe como parâmetro uma referência aos campos customizadosnão recebe parâmetros, porém temos acesso à função getValue.
Exemplo:
Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
|
function validateCustomMetadatavalidateUpload(fields) {
} |
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.
- Pela herança da pasta pai.
- No cadastro de Campos Customizados, marcando a opção Mostrar em todos 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:
Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
|
function validateCustomMetadata (fields){
log.info("Valor do Campo 1: " + fields.getValue("campo1"));
} |
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:
Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
|
function validateCustomMetadata (fields){
fields.setValue("campo1","Valor para o Campo 1");
} |
Alem dos valores dos campos customizados disponibilizamos algumas informações do documento que está sendo criado ou editado, porém somente para consulta através do método getValue.
...
WKDocumentType
...
ID do tipo de documento
...
Número de acessos
...
Palavras chaves do documento
...
Informações |
---|
Veja o exemplo em nosso repositório aqui. |
Exemplo:
Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
|
function validateCustomMetadata (fields){
log.info("Usuário: " + getValue("WKUser "));
} |
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 |
---|
language | js |
---|
linenumbers | true |
---|
|
function validateCustomMetadata (fields){
if( fields.getValue("campo1") == "Area 1"){
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.
São disponibilizadas algumas propriedades referentes ao documento que está sendo criado ou editado, porém somente para consulta através do método getValue.
...
DocumentDto¹
¹Apenas para atualizar o campo keyWord do documento.
...
List<DocumentSecurityConfigDto>
...
Lista com os documentos relacionados ao documento
...
int
// Exemplo de implementação
// CompanyId da empresa
var companyId = getValue("WKCompany");
// Nome do arquivo com extensão
var fileName = getValue("WKFileName");
// Tamanho do arquivo em bytes
var fileSize = getValue("WKFileSize");
// Caminho absoluto do arquivo
var filePath = getValue("WKFilePath");
// MimeType dos bytes do arquivo, ou seja, independente da extensão
var fileMimeType = getValue("WKFileMimeType");
// UserId do usuário que está realizando o upload
var userId = getValue("WKUser");
// A maioria dos mimetypes executáveis começam com "application/x-"
if (fileMimeType.indexOf("application/x-") !== -1) {
// Porém alguns tipos começam também com "application/x-", como por exemplo: .rar ou .7zip. Então caso deseja permití-los, pode ser feito assim:
if (fileMimeType.indexOf("application/x-rar-compressed") !== -1 || fileMimeType.indexOf("application/x-7z-compressed") !== -1) {
return;
}
throwsIfBlocked();
}
// Podemos bloquear qualquer outro mimetype, por exemplo:
if (fileMimeType.indexOf("application/octet-stream") !== -1 || fileMimeType.indexOf("application/exe") !== -1) {
throwsIfBlocked();
}
// Podemos bloquear também pela extensão do arquivo
if (fileName.match(/.*\.(sh|exe|msi|bat|app)/i)){
throwsIfBlocked();
}
// Função usada para logar uma mensagem no log do servidor e retornar o erro na tela
function throwsIfBlocked() {
log.warn("Usuário: '" + userId + "' da Empresa: '" + companyId + "' tentou realizar o upload "
+ "do Arquivo '" + fileName + "' com o Mimetype: '" + fileMimeType + "' e foi impedido!");
throw "Este formato de documento não está de acordo com as políticas de segurança e portanto não será permitida sua publicação na plataforma.";
}
} |
São disponibilizadas algumas propriedades referentes ao arquivo que está sendo feito upload através do método getValue.
Propriedade | Descrição | Tipo |
---|
WKCompany | Código da Empresa | int |
WKFileName | Nome do arquivo com extensão | String |
WKFileSize | Tamanho do arquivo em bytes | long |
WKFilePath | Caminho absoluto do arquivo | String |
WKFileMimeType | MimeType dos bytes do arquivo, ou seja, independente da extensão | String |
WKUser | Usuário logado | String |
ValidateCustomMetadata
Este evento sempre é disparado 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 |
---|
language | js |
---|
linenumbers | true |
---|
|
function validateCustomMetadata(fields){
} |
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.
- Pela herança da pasta pai.
- No cadastro de Campos Customizados, marcando a opção Mostrar em todos 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:
Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
|
function validateCustomMetadata (fields){
log.info("Valor do Campo 1: " + fields.getValue("campo1"));
} |
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:
Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
|
function validateCustomMetadata (fields){
fields.setValue("campo1","Valor para o Campo 1");
} |
Alem dos valores dos campos customizados disponibilizamos algumas informações do documento que está 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 |
Informações |
---|
Veja o exemplo em nosso repositório aqui. |
Exemplo:
Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
|
function validateCustomMetadata (fields){
log.info("Usuário: " + getValue("WKUser "));
} |
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 |
---|
language | js |
---|
linenumbers | true |
---|
|
function validateCustomMetadata (fields){
if( fields.getValue("campo1") == "Area 1"){
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.
São disponibilizadas algumas propriedades referentes ao documento que está sendo criado ou editado, porém somente para consulta através do método getValue.
Propriedade | Descrição | Tipo |
---|
WKDocument | Objeto do Documento | DocumentDto |
WKDocumentEdit | Objeto do Documento | DocumentEditDto
|
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 |
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, logo a variável WKListApprover só terá informações quando realmente existirem aprovadores na publicação.
Exemplos de implementação:
Deck of Cards |
---|
history | false |
---|
id | Exemplos beforeDcoumentPublisher |
---|
|
Card |
---|
label | 1- Validar informações do documento |
---|
| É possível usar vários objetos e fazer validações e é muito comum validar permissões específicas ao negócio do cliente e não permitir a inclusão do documento. No exemplo abaixo, o trecho de código está mostrando todos os possíveis atributos, declara os possíveis objetos, exibe no log algumas informações desses objetos, depois verifica os aprovadores, validando que não pode conter um usuário administrador como aprovador e exibe todos documentos relacionados. Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
| function 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()); |
|
|
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, logo a variável WKListApprover só terá informações quando realmente existirem aprovadores na publicação.
Exemplos de implementação:
Deck of Cards |
---|
history | false |
---|
id | Exemplos beforeDcoumentPublisher |
---|
|
Card |
---|
label | 1- Validar informações do documento |
---|
| É possível usar vários objetos e fazer validações e é muito comum validar permissões específicas ao negócio do cliente e não permitir a inclusão do documento. No exemplo abaixo, o trecho de código está mostrando todos os possíveis atributos, declara os possíveis objetos, exibe no log algumas informações desses objetos, depois verifica os aprovadores, validando que não pode conter um usuário administrador como aprovador e exibe todos documentos relacionados. Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
| function beforeDocumentPublisher(){
var doc = getValue("WKDocument");
if(listApprover!=null){
var subjectfor(j = getValue("WKSubject");
0; j < listApprover.size(); j++) {
var listApprover = getValue("WKListApprover");
if (listApprover.get(j).getColleagueId().equals("adm")){
var listSeg = getValue("WKListSecurity");
throw "O usuário adm não varpode ser listRelatedaprovador =de getValue(documentos"WKListRelatedDocument");
var state = getValue("WKState");
}
var user = getValue("WKUser");
}
var company = getValue("WKCompany"); }
log.info("Usuário Logado: " + user);
if(listSeg != null){
for(j = 0; j < loglistSeg.info("Empresa: " + company);size(); j++) {
if (listSeg.get(j).getAttributionValue().equals("cvd")){
log.info("Número do documento: "+ doc.getDocumentId() + " - Versão: "+ doc.getVersion());
throw "O usuário cvd não pode estar na segurança de documentos";
if(listApprover!=null){
}
for(j = 0; j < listApprover.size(); j++) { }
}
if (listApprover.get(j).getColleagueId().equals("adm"))( listRelated != null){
log.info("Os seguintes documentos estão relacionados a este throw "O usuário adm não pode ser aprovador de documentos";
documentos: ");
for(j = 0; j < listRelated.size(); j++) { }
}
}
log.info("Nr. documento: "+ listRelated.get(j).getRelatedDocumentId());
if(listSeg != null){
}
for(j =}
0; j < listSeg.size(); j++) {
log.info("Assunto: " + subject);
if (listSeglog.get(j).getAttributionValue().equals("cvd")){
throw "O usuário cvd não pode estar na segurança de documentos";
}
}
info("Estado: " + state);
} |
|
Card |
---|
label | 2- Impedir publicação com descrição repetida |
---|
| Exemplo de evento que impede o usuário de publicar um documento com descrição repetida em uma determinada pasta. Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
| function beforeDocumentPublisher() {
// Exemplo de evento que impede o usuário de publicar um documento com descrição
// repetida em uma determinada pasta levando em consideração também se o documento esta na lixeira.
// caso não queira considerar a lixeira é só remover a validação da mesma, porem o documento poderá
// ser restaurando da lixeira para pasta duplicando assim o nome do arquivo.
var state = getValue("WKState");
if (state == "PUBLISH") {
var doc = getValue("WKDocument");
}
//
Faz validações apenas se o documento estiver sendo publicado na pasta selecionada (trocar o "6" pelo if(numero listRelatedda !=pasta nulldesejada){
// Valida também se o documento esta sendo publicado como novo opção log.info("Os seguintes documentos estão relacionados a este documentos: ");
(getVersionOption), caso seja somente alteração ou seja, nova revisão ou versão passa
for(jif (doc.getParentDocumentId() == 0;6 j < listRelated.size(); j++&& doc.getVersionOption() == 0) {
//###############################################################################################
//documentos ativos
// Reduz log.info("Nr. documento: "+ listRelated.get(j).getRelatedDocumentId());
o retorno de registros para reduzir impacto em performance.
var constraintDocument1 }
= DatasetFactory.createConstraint(
}
log.info("Assunto: " + subject'sqlLimit', '0', '1', ConstraintType.MUST);
// Passando código da log.info("Estado: " + state);
} |
| Card |
---|
label | 2- Impedir publicação com descrição repetida |
---|
| Exemplo de evento que impede o usuário de publicar um documento com descrição repetida em uma determinada pasta. Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
| function beforeDocumentPublisher() {
// Exemplo de evento que impede o usuário de publicar um documento com descrição
// repetida em uma determinada pasta levando em consideração também se o documento esta na lixeira.
// caso não queira considerar a lixeira é só remover a validação da mesma, porem o documento poderá
// ser restaurando da lixeira para pasta duplicando assim o nome do arquivo.
var state = getValue("WKState");
if (state == "PUBLISH") {
pasta pai para o Dataset
var constraintDocument2 = DatasetFactory.createConstraint(
'parentDocumentId', doc.getParentDocumentId(), doc
.getParentDocumentId(), ConstraintType.MUST);
// Consultando apenas registros de documentos ativos.
var docconstraintDocument3 = getValue("WKDocument");
DatasetFactory.createConstraint(
// Faz validações apenas se o documento estiver sendo publicado na pasta selecionada (trocar o "6" pelo numero da pasta desejada)
'activeVersion', 'true', 'true', ConstraintType.MUST);
// ValidaConsultando tambémapenas senos odocumentos documentoque estanão sendoforam publicadoremovidos.
como novo opção (getVersionOption), caso seja somente alteração ou seja, nova revisãovar ouconstraintDocument4 versão passa= DatasetFactory.createConstraint(
if (doc.getParentDocumentId() == 6 && doc.getVersionOption() == 0) {
'deleted', 'false', //###############################################################################################'false', ConstraintType.MUST);
//documentos ativos
Consultando documentos que tenham a mesma descrição informada na
// Reduz o retorno de registros para reduzir impacto em// performance.publicação
var constraintDocument1constraintDocument5 = DatasetFactory.createConstraint(
'sqlLimitdocumentDescription', '0', '1', ConstraintType.MUST);
doc.getDocumentDescription(), doc
// Passando código da pasta pai para o Dataset.getDocumentDescription(), ConstraintType.MUST);
var constraintDocument2datasetDocumentActive = DatasetFactory.createConstraint(getDataset('document', null,
'parentDocumentId', doc.getParentDocumentId(), docnew Array(constraintDocument1, constraintDocument2,
.getParentDocumentId()constraintDocument3, ConstraintType.MUST);
constraintDocument4,
// Consultando apenas registros de documentos ativos.
constraintDocument5), null);
var constraintDocument3 = DatasetFactory.createConstraint(
//###############################################################################################
//Considera o documento 'activeVersion', 'true', 'true', ConstraintType.MUST);que esta na lixeira
// Consultando apenas nosregistros de documentos que não foram removidosinativos.
varconstraintDocument3 constraintDocument4 = DatasetFactory.createConstraint(
'deletedactiveVersion', 'false', 'false', ConstraintType.MUST);
// Consultando apenas nos documentos que tenham a mesma descrição informada naforam removidos.
// publicação
var constraintDocument5 = DatasetFactory.createConstraint(
'documentDescription', doc.getDocumentDescription(), doc
constraintDocument4 = DatasetFactory.createConstraint(
'deleted', .getDocumentDescription()'true', 'true', ConstraintType.MUST);
var datasetDocumentActivedatasetDocumentDeleted = DatasetFactory.getDataset('document', null,
new Array(constraintDocument1, constraintDocument2,
constraintDocument3, constraintDocument4,
constraintDocument5), null);
//###############################################################################################
var isExistDoc = datasetDocumentActive != null && datasetDocumentActive.rowsCount > 0
//Considera o documento que esta na lixeira&& (datasetDocumentActive.getValue(0, "documentDescription") == doc.getDocumentDescription());
// Consultando apenas registros de documentos inativos.
var isExistDocDeleted = datasetDocumentDeleted != null && datasetDocumentDeleted.rowsCount > 0
&& constraintDocument3(datasetDocumentDeleted.getValue(0, "documentDescription") == DatasetFactorydoc.createConstraintgetDocumentDescription());
if (isExistDoc || isExistDocDeleted) {
'activeVersion', 'false', 'false', ConstraintType.MUST);
throw "Já existe //um Consultandodocumento apenascom nosa documentosmesma que foram removidos.descrição informada";
constraintDocument4 = DatasetFactory.createConstraint(}
}
'deleted', 'true', 'true', ConstraintType.MUST);
}
}
|
|
Card |
---|
label | 3- Tornar campo descrição/versão/revisão obrigatório |
---|
| Exemplo de como tornar o campo 'Descrição/Versão/Revisão' de preenchimento obrigatório, apresentado no momento do check-in do documento. Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
| function beforeDocumentPublisher() {
var datasetDocumentDeleteddoc = DatasetFactory.getDataset('document', null,getValue("WKDocument");
// Verifica se a descrição da versão não está preenchida
if new Array(constraintDocument1, constraintDocument2,(doc.getVersionDescription() == "") {
log.info("### Documento: " + doc.getDocumentId() + " - Versão: " + doc.getVersion() + " não está com a Descrição da constraintDocument3, constraintDocument4,Versão preenchida!");
// Informa somente o numero do documento de origem, para o caso de checkin com constraintDocument5), null);
nova versao/revisao
var constraintDocument1 = var isExistDoc = datasetDocumentActive != null && datasetDocumentActive.rowsCount > 0
DatasetFactory.createConstraint('allocatedDocumentPK.sourceDocument', doc.getDocumentId(), doc .getDocumentId(), ConstraintType.MUST);
// Instanciando o dataset
var datasetDocument = && (datasetDocumentActive.getValue(0, "documentDescription") == doc.getDocumentDescription());
DatasetFactory.getDataset('allocatedDocument', null, new Array(constraintDocument1), null);
// Verifica se o vardocumento isExistDocDeletedesta =em datasetDocumentDeleted != null && datasetDocumentDeleted.rowsCount > 0checkout/checkin e exibe a mensagem
&&if (datasetDocumentDeleted.getValue(0, "documentDescription") == doc.getDocumentDescription());
datasetDocument.rowsCount > 0) {
throw "Para efetuar o checkin é necessário ifinformar (isExistDoca ||Descrição isExistDocDeleted) {da Versão!";
}
}
} |
|
Card |
---|
label | 4- Parametrizar keyword do documento |
---|
| Exemplo de uso do parâmetro WKDocumentEdit no evento, para que seja possível atualizar o campo keyWord do documento. Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
| function beforeDocumentPublisher() {
throw "Já existevar umdoc documento com a mesma descrição informada";
= getValue("WKDocument");
log.info("KeyWord Atual: " + doc.getKeyWord());
var docEdit }
= getValue("WKDocumentEdit");
docEdit.setKeyWord("Novo");
}
}
}
log.info("KeyWord Novo: " + docEdit.getKeyWord());
} |
|
Card |
---|
label | 3- Tornar campo descrição/versão/revisão obrigatório | 5- Impedir publicação pela extensão do arquivo físico |
---|
| Exemplo de como impedir a publicação pela extensão do arquivo físico.Exemplo de como tornar o campo 'Descrição/Versão/Revisão' de preenchimento obrigatório, apresentado no momento do check-in do documento. Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
| function beforeDocumentPublisher() {
var doc = getValue("WKDocument");
var ext = [".exe",".reg"];
//for Verifica(var sei a= descrição0; dai versão não está preenchida
< ext.length; i++) {
if (doc.getPhisicalFile().getVersionDescriptionendsWith() == ""ext[i])) {
log.info("### Documento: " + doc.getDocumentId() + " - Versão:throw " + doc.getVersion() + "Desculpe, este tipo de arquivo não estáé compermitido apor Descriçãorazões da Versão preenchida!");
de segurança";
//}
Informa somente }
} |
|
Card |
---|
label | 6- Controlando a versão manualmente em novos documentos |
---|
| Exemplo de uso do parâmetro WKDocumentEdit no evento para que seja possível controlar as propriedades version, validationStartDate e expirationDate do documento. Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
| function beforeDocumentPublisher() {
var doc = getValue("WKDocument");
o numero do documento de origem, para o caso de checkin com nova versao/revisao
log.info("DocumentId Atual: " var constraintDocument1 = DatasetFactory.createConstraint('allocatedDocumentPK.sourceDocument', doc.getDocumentId(), doc .getDocumentId(), ConstraintType.MUST+ doc.getDocumentId());
log.info("Version Atual: " + doc.getVersion());
log.info("DocumentType Atual: " // Instanciando o dataset
var datasetDocument = DatasetFactory.getDataset('allocatedDocument', null, new Array(constraintDocument1), null);
+ doc.getDocumentType());
log.info("ValidationStartDate Atual: " + doc.getValidationStartDate());
log.info("ExpirationDate Atual: " + doc.getExpirationDate());
// VerificaQuando se o documento esta em checkout/checkiné novo e exibeo atipo mensagem
de documento é Documento normal.
if (datasetDocumentdoc.rowsCount > 0getDocumentId() == 0 && doc.getDocumentType() == "2") {
var docEdit = getValue("WKDocumentEdit");
docEdit.setVersion(3);
throwlog.info("Version Novo: "Para efetuar o checkin é necessário informar a Descrição da Versão!";
}
}
} |
| Card |
---|
label | 4- Parametrizar keyword do documento |
---|
| Exemplo de uso do parâmetro WKDocumentEdit no evento, para que seja possível atualizar o campo keyWord do documento. Bloco de código |
---|
language | js |
---|
linenumbers | true |
---|
| function beforeDocumentPublisher() {
var doc = getValue("WKDocument");
+ docEdit.getVersion());
docEdit.setValidationStartDate(stringToDate("26/05/2023 00:00:00"));
log.info("ValidationStartDate Novo: " + docEdit.getValidationStartDate());
docEdit.setExpirationDate(stringToDate("27/05/2023 16:50:30"));
log.info("KeyWordExpirationDate AtualNovo: " + docdocEdit.getKeyWordgetExpirationDate());
}
var docEdit =function getValuestringToDate("WKDocumentEdit"dateString);{
docEdit.setKeyWord("Novo var format = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
log.info("KeyWord Novo: " +return docEditformat.getKeyWordparse(dateString));;
}
} |
|
|
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.
...