Histórico da Página
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
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.
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
function validateCustomMetadata (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
Bloco de código | ||||
---|---|---|---|---|
| ||||
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.
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
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 | DocumentDto |
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 explicados no capítulo “Objetos utilizados nos eventos” |
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
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.
...
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.
BeforeDocumentRemove
É executado antes do documento ir para a lixeira.
AfterDocumentRemove
É executado logo após o documento ir para a lixeira.
BeforeDocumentRestore
É executado antes do documento ser restaurado da lixeira.
AfterDocumentRestore
É executado logo após o documento ser retaurado da lixeira.
BeforeDocumentRemovePermanently
É executado antes do documento ser excluído permanentemente
AfterDocumentRemovePermanently
É executado logo após o documento ser excluído permanentemente.
BeforeDocumentViewer
Utilizado quando é preciso fazer validação customizada antes da visualização de algum documento.
...
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”. |
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
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 | 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 |
Nota |
---|
Os objetos Dto’s serão explicados no capítulo “Objetos utilizados nos eventos”. |
...
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!"; } } } |
...
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.
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
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
Bloco de código | ||||
---|---|---|---|---|
| ||||
function afterSaveCard(companyId, formId, cardId, versionId, cardData){ var custom = ServiceManager.getService("CustomCard"); var serviceHelper = custom.getBean(); var serviceLocator = serviceHelper.instantiate("com.totvs.technology.webdesk.forms.service.custom.CustomCardServiceLocator"); var service = serviceLocator.getCustomCardPort(); var ar = new Array(); var it = cardData.keySet().iterator(); while (it.hasNext()) { var key = it.next(); var field1 = serviceHelper.instantiate("com.totvs.technology.webdesk.forms.service.custom.CardKeyValue"); field1.setKey(key); field1.setValue( cardData.get(key)); log.info('>' + key + ': ' + cardData.get(key)); ar.push(field1); } var resultArr = serviceHelper.instantiate("com.totvs.technology.webdesk.forms.service.custom.CardKeyValueArray"); resultArr.setItem(ar); 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
Bloco de código | ||||
---|---|---|---|---|
| ||||
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
Bloco de código | ||||
---|---|---|---|---|
| ||||
function afterDeleteCard(companyId,cardId){ var custom = ServiceManager.getService("CustomCard"); var serviceHelper = custom.getBean(); var serviceLocator = serviceHelper.instantiate("com.totvs.technology.webdesk.forms.service.custom.CustomCardServiceLocator"); var service = serviceLocator.getCustomCardPort(); log.info("########## carregou serviço CustomCard"); service.deleteCard(companyId, cardId); } |
...
Este evento é chamado ao realizar a impressão de documentos que utilizam variáveis de cópia controlada. Onde será possível alterar ou obter o valor das variáveis disponibilizadas para este evento que podem ser consultadas em Impressão de Cópia controlada.
Exemplo
Bloco de código | ||||
---|---|---|---|---|
| ||||
function onApplyDocumentPrintProperties(fields) { // Exemplo implementação log.info(fields.get("Document.PrintedDocument.Copies"));//consultando o valor da variável fields.put("Document.PrintedDocument.Copies", "2");//alterando o valor da variável } |
...
São disponibilizados os seguintes parâmetros de consulta:
Parâmetro | Descrição |
---|---|
WKUser | Usuário logado |
WKUserLocale | Local do usuário |
WKCompany | Id do tenant atual |
WKNumAcess | Número de acessos ao documento |
WKComments | Comentários do documento |
WKAuthor | Autor do documento |
WKCreateDate | Data de criação do documento |
WKDescription | Descrição do documento |
WKNumDocument | Número do documento |
WKNumParentDocument | Número do documento pai |
WKNumVersion | Numero da versão |
WKDocumentType | Tipo do documento |
WKExpirationDate | Data de expiração do documento |
WKExpires | Se documento expira ou não |
WKFileSize | Tamanho do documento |
WKKeyWord | Palavras chave do documento |
WKDocumentTypeId | Id do tipo do documento |
WKPrivateDocument | Indica se é documento privado |
WKSubject | Assunto do documento |
WKVolume | Id do volume do documento |
Propriedades que são atualizadas quando o documento é visualizado:
Variável | Descrição | Formato |
---|---|---|
Document.LevelN.ApproverM* | --- |
Document.Author | Autor do documento | Matricula - Nome do autor |
Document.Comments | Comentários do documento | Texto |
Document.ID | Código do documento | Número |
Document.FirstVersionDate | Data da primeira versão | DD/MM/YYYY |
Document.LastUpdateDate | Data da última atualização | DD/MM/YYYY |
Document.CreationDate | Data de criação do documento | DD/MM/YYYY |
Document.ExpiresOn | Data de expiração do documento | DD/MM/YYYY |
Document.ApprovedOn | Data que o documento foi aprovado | DD/MM/YYYY |
Document.VersionDescription | Descrição da Versão/Revisão | Texto |
Document.Description | Descrição do documento | Texto |
Document.Active | Documento ativo | true ou false |
Document.Author.ID | Matricula do autor do documento | número |
Document.Publisher.ID | Matricula do publicador do documento | Número |
Document.Author.Name | Nome do autor do documento | Texto |
Document.Publisher.Name | Nome do publicador do documento | Texto |
Document.Approvers1 | Primeiro aprovador do nível 1 | Nome do aprovador |
Document.Publisher | Publicador do documento | Matricula - Nome do publicador |
Document.Revision | Revisão do documento | Número da Revisão |
Document.ApproversN | Segundo aprovador do nível 1 | Nome do aprovador |
Document.Tag | Tags do documento | Texto |
Document.Version | Versão do documento | Versão,Revisão |
...
onApplyDocumentProtocolProperties
Este evento é chamado ao realizar a impressão com documento de protocolo. Onde será possível alterar ou obter o valor das variáveis disponibilizadas para este evento que podem ser consultadas em Impressão de Cópia controlada.
Exemplo
Bloco de código | ||||
---|---|---|---|---|
| ||||
function onApplyDocumentProtocolProperties(fields) { // Exemplo implementação log.info(fields.get("Document.PrintedDocument.Description"));//consultando o valor da variável fields.put("Document.PrintedDocument.Description", "Descrição do documento");//alterando o valor da variável } |
São disponibilizados os seguintes parâmetros de consulta:
Parâmetro | Descrição |
---|---|
WKUser | Usuário logado |
WKUserLocale | Local do usuário |
WKCompany | Id do tenant atual |
WKNumAcess | Número de acessos ao documento |
WKComments | Comentários do documento |
WKAuthor | Autor do documento |
WKCreateDate | Data de criação do documento |
WKDescription | Descrição do documento |
WKNumDocument | Número do documento |
WKNumParentDocument | Número do documento pai |
WKNumVersion | Numero da versão |
WKDocumentType | Tipo do documento |
WKExpirationDate | Data de expiração do documento |
WKExpires | Se documento expira ou não |
WKFileSize | Tamanho do documento |
WKKeyWord | Palavras chave do documento |
WKDocumentTypeId | Id do tipo do documento |
WKPrivateDocument | Indica se é documento privado |
WKSubject | Assunto do documento |
WKVolume | Id do volume do documento |
...
Propriedades que são atualizadas quando o documento protocolo é impresso:
Variável | Descrição |
---|---|
Document.PrintDate | Data da impressão |
Document.PrintRequester | Requisitante/Solicitante |
Document.PrintedDocument.AreaResponsible | Responsável pela área |
Document.PrintedDocument.Description | Descrição do documento |
Document.PrintedDocument.Comments | Comentários do documento |
Document.PrintedDocument.VersionDescription | Descrição da Versão/Revisão |
Document.PrintedDocument.Tag | Tags do documento |
Document.DocumentNrDocumento | Número do documento |
Document.PrintedDocument.Version | Versão do documento |
Document.PrintedDocument.Revision | Revisão do documento |
Document.DestinationArea | Área |
Document.PrintedDocument.Publisher | Publicador do documento |
Document.PrintedDocument.VersionDescription1 | Descrição da versão do documento |
Document.PrintedDocument.VersionDescription2 | Continuação da descrição da versão do documento |
Document.PrintedDocument.VersionDescription3 | Continuação da descrição da versão do documento |
onApplyDocumentPublishProperties
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
function onApplyDocumentPublishProperties(fields) { // Exemplo implementação log.info(fields.get("Document.Author "));//consultando o valor da variável fields.put("Document.Author", "Autor do Documento");//alterando o valor da variável } |
...
São disponibilizados os seguintes parâmetros de consulta:
Parâmetro | Descrição |
---|---|
WKUser | Usuário logado |
WKUserLocale | Local do usuário |
WKCompany | Id do tenant atual |
WKNumAcess | Número de acessos ao documento |
WKComments | Comentários do documento |
WKAuthor | Autor do documento |
WKCreateDate | Data de criação do documento |
WKDescription | Descrição do documento |
WKNumDocument | Número do documento |
WKNumParentDocument | Número do documento pai |
WKNumVersion | Numero da versão |
WKDocumentType | Tipo do documento |
WKExpirationDate | Data de expiração do documento |
WKExpires | Se documento expira ou não |
WKFileSize | Tamanho do documento |
WKKeyWord | Palavras chave do documento |
WKDocumentTypeId | Id do tipo do documento |
WKPrivateDocument | Indica se é documento privado |
WKSubject | Assunto do documento |
WKVolume | Id do volume do documento |
...
Propriedades que são atualizadas quando o documento é visualizado:
Variável | Descrição | Formato |
---|---|---|
Document.LevelN.ApproverM* | --- |
Document.Author | Autor do documento | Matricula - Nome do autor |
Document.Comments | Comentários do documento | Texto |
Document.ID | Código do documento | Número |
Document.FirstVersionDate | Data da primeira versão | DD/MM/YYYY |
Document.LastUpdateDate | Data da última atualização | DD/MM/YYYY |
Document.CreationDate | Data de criação do documento | DD/MM/YYYY |
Document.ExpiresOn | Data de expiração do documento | DD/MM/YYYY |
Document.ApprovedOn | Data que o documento foi aprovado | DD/MM/YYYY |
Document.VersionDescription | Descrição da Versão/Revisão | Texto |
Document.Description | Descrição do documento | Texto |
Document.Active | Documento ativo | true ou false |
Document.Author.ID | Matricula do autor do documento | número |
Document.Publisher.ID | Matricula do publicador do documento | Número |
Document.Author.Name | Nome do autor do documento | Texto |
Document.Publisher.Name | Nome do publicador do documento | Texto |
Document.Approvers1 | Primeiro aprovador do nível 1 | Nome do aprovador |
Document.Publisher | Publicador do documento | Matricula - Nome do publicador |
Document.Revision | Revisão do documento | Número da Revisão |
Document.ApproversN | Segundo aprovador do nível 1 | Nome do aprovador |
Document.Tag | Tags do documento | Texto |
Document.Version | Versão do documento | Versão,Revisão |
...
Desenvolvimento de Eventos JMS
...
Bloco de código | ||
---|---|---|
| ||
@MessageDriven(mappedName = "custom/DocumentListener", activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"), @ActivationConfigProperty(propertyName = "destination", propertyValue = "topic/wdkDocument")}) |
...
O objeto de retorno será um MapMessage que conterá os seguintes parâmetros:
- event (String): Informa qual o tipo de evento que foi efetuado com o documento, conforme a tabela abaixo:
Evento | Descrição |
---|---|
PUBLISH | Um novo documento publicado |
MODIFY | Documento é modificado |
DELETE | Documento é excluído da base de dados |
SENDRECYCLE | Documento é enviado para lixeira |
DELETEFOLDER | Uma pasta é excluída da base de dados |
EXTERNALCONVERTION | Documento com conversão customizada |
CONVERTIONLONGTERM | Documento convertido para longo prazo |
MOVE | Um ou mais documento ou pastas foram movidos de uma pasta para outra |
RESTORERECYCLE | Restaura documentos e pastas da Lixeira |
- companyId (Integer): Código da empresa em que o documento foi manipulado.
- colleagueId (String): Usuário que efetuou a ação.
- documentId (Integer): Código do documento que sofreu a ação.
- version (Integer): Número da versão do documento.
- lhasCreatedDocument (Boolean): Informa se criou o documento.
- IhasIncreasedVersion (Boolean): Informa se foi incrementada a versão.
- changedApproval (Boolean): Informa se o aprovador foi modificado.
- documento (byte[ ]): Array de bytes com o documento e suas propriedades.
...