Histórico da Página
...
- 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.
...
Já para realizar a edição utiliza-se o fields.setValue, passando como parâmetro, primeiro o nome do campo, em seguida o valor.
...
Alem dos valores dos campos customizados disponibilizamos algumas informações do documento que esta está sendo criado ou editado, porém somente para consulta através do método getValue.
...
As exceções podem ser tratadas utilizando o comando throw. Este comando retornará uma mensagem ao usuário ao tentar salvar o documento.
...
São disponibilizadas algumas propriedades referentes ao documento que esta está sendo criado ou editado, porem porém somente para consulta através do método getValue.
...
Por exemplo: Nem todos os documentos publicados tem aprovador, então logo a variável WKListApprover só terá informações quando realmente existirem aprovadores na publicação.
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
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()); 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
É Este evento é executado antes do documento ir para a lixeira.
...
São disponibilizadas algumas propriedades referentes ao documento que esta está removido, porem porém 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 | |
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 |
AfterDocumentRemove
É Este evento é executado logo após o documento ir para a lixeira.
...
São disponibilizadas algumas propriedades referentes ao documento que foi removido, porem porém 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 |
BeforeDocumentRestore
É Este evento é executado antes do documento ser restaurado da lixeira.
...
São disponibilizadas algumas propriedades referentes ao documento que está sendo restaurado, porem porém 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 |
AfterDocumentRestore
É Este evento é executado logo após o documento ser retaurado restaurado da lixeira.
Exemplo
Bloco de código | ||||
---|---|---|---|---|
| ||||
function afterDocumentRestore() { //Exemplo implementação var doc = getValue("WKDocument"); var subject = getValue("WKSubject"); var listApprover = getValue("WKListApprover"); var listSeg = getValue("WKListSecurity"); var listRelated = getValue("WKListRelatedDocument"); 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()); log.info("Assunto: " + subject); } |
...
São disponibilizadas algumas propriedades referentes ao documento que foi restaurado, porem porém somente para consulta através do método getValue.
...
BeforeDocumentRemovePermanently
É Este evento é executado antes do documento ser excluído permanentemente
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
function beforeDocumentRemovePermanently() { //Exemplo implementação var doc = getValue("WKDocument"); 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()); } |
São disponibilizadas algumas propriedades referentes ao documento que está sendo excluído permanentemente, 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 |
AfterDocumentRemovePermanently
É Este evento é executado logo após o documento ser excluído permanentemente.
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
function afterDocumentRemovePermanently() { //Exemplo implementação var doc = getValue("WKDocument"); 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()); } |
São disponibilizadas algumas propriedades referentes ao documento que foi 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 |
BeforeDocumentViewer
Utilizado Este evento é utilizado quando é preciso fazer validação customizada antes da visualização de algum documento.
...
São disponibilizadas algumas propriedades referentes ao documento que esta está sendo visualizado, porem porém somente para consulta através do método getValue.
...
Informações |
---|
Veja o exemplo (event-document-expiration-date-validation) no repositorio do fluig clicando aqui. |
BeforeDownloadContent
Utilizado Este evento é utilizado quando é preciso fazer validação customizada antes do download de algum documento.
...
São disponibilizadas algumas propriedades referentes ao documento que esta está sendo visualizado, porem porém somente para consulta através do método getValue.
...
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 Este evento é 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 de uma forma externa. Por exemplo, ao criar o um registro de formulário, enviar os dados do mesmo para um Webservice de outro produto.
Exemplo
Bloco de código | ||||
---|---|---|---|---|
| ||||
function afterSaveCard(companyId, formId, cardId, versionId, cardData){ } |
...
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 Este evento é utilizado como complemento do evento afterSaveCard. É chamado toda vez que um formulário ou um registro de formulário é eliminado da lixeira.
...
Nota |
---|
É necessário que a opção " Atualiza propriedades de cópia controlada?" esteja habilitada nas propriedades do documento. |
...
Para a aplicação receber a mensagem com as informações do documento, a classe tem que estender o MessageListener e ter a seguinte linha:
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 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 |
...