Home

TOTVS | Plataformas e tecnologias

Árvore de páginas

Importante

Caro Cliente,

O TOTVS ECM 3.0 foi fundamentado na tecnologia de interface Flash, do qual a Adobe irá descontinuar seu suporte em 31/12/2020.

Recomendamos que nossos clientes avaliem a utilização do TOTVS Fluig Plataforma, que proporciona uma maior abrangência de recursos e importantes inovações tecnológicas. São inúmeras novidades não só em ECM e BPM que o Fluig entrega aos seus mais de 4 mil clientes, mas também conta com recursos de portais, social e identidade única.

Entre em contato com seu executivo de conta para saber mais detalhes desta oferta.

Índice


Visualização de Documentos


Os documentos devem possuir uma cópia no formato PDF 1.4 para serem visualizados internamente no TOTVS | ECM, cuja especificação está em http://www.adobe.com/devnet/pdf/pdfs/PDFReference.pdf

O ECM faz a conversão automática para PDF com os documentos de texto suportados pelo Microsoft® Word ou OpenOffice.org™. Para os demais tipos, caso seja desejado utilizar o visualizador interno, deve ser construído um plugin de conversão para PDF.


Conhecimentos Necessários


Para construir um conversor faz-se necessário possuir os seguintes conhecimentos:

  • Tecnologia Java™ EE
  • Linguagem Javascript


Construção de um Conversor


O plugin de conversão é composto de duas partes:

  1. Um componente EJB Message-Driven, para receber a solicitação de conversão;
  2. Aplicativo/programa que irá fazer a conversão;
  3. Indicar que o documento utiliza o visualizador interno.

Este capítulo irá apresentar um exemplo de conversor para arquivos texto (txt) em pdf, assim será possível utilizá-lo no visualizador interno do TOTVS | ECM.


Parte 1: Construindo o EJB Message-Driven


Criar um Message-Driven que escute o tópico topic/wdkDocument: Segue fonte exemplo:

package testeconv;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.MessageDriven;
import javax.jms.Message;
import javax.jms.MessageListener;
@MessageDriven(name = "test/TxtConverter", activationConfig = {
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "topic/wdkDocument")
})
public class TxtMessageBean implements MessageListener {
@Override
public void onMessage(Message message) {
try {
String event = message.getStringProperty("event");
if (event != null && event.equals("EXTERNALCONVERTION")) {
String doc = message.getStringProperty("documentpath");
if (doc != null && doc.endsWith(".txt")) {
ProcessBuilder pb = new ProcessBuilder("txt2pdf.exe", doc, doc + ".pdf", "-lpp40");
pb.start();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}


O Message Driven acima configura a propriedade destinationType para “javax.jms.Topic” para indicar que irá escutar um tópico JMS, e a propriedade destination para “topic/wdkDocument” para indicar qual tópico será ouvido. O tópico “topic/wdkDocument” é onde os eventos de publicação são enviados.

Ao receber uma mensagem, deverá verificar o tipo de evento publicado através da StringProperty “event”, se o valor dessa propriedade for “EXTERNALCONVERTION”, significa que o ECM está indicando que é o momento da conversão customizada ser executada.

Para pegar o caminho do documento, verifique a StringProperty “documentpath”.

Após isto, verifica-se a extensão do arquivo para validar se este é o conversor correto, pois pode haver mais de um para extensões diferentes.

Validado os parâmetros, pode-se então chamar o programa conversor, que no caso do exemplo, foi usado o freeware txt2pdf http://www.verypdf.com/txt2pdf/

O documento destino deverá possuir o mesmo nome acrescido da extensão .pdf e este deverá ficar no mesmo diretório. Ex: doc.txt convertido: doc.txt.pdf.

Lembramos que o documento origem não poderá ser modificado, com a penalidade de o ECM indicar que ele foi alterado externamente (validação de CRC).

Este Message-Driven deverá ser empacotado e implantado no servidor de aplicações conforme as especificados do Java™ EE.


Parte 2: Message-Driven para criação de documentos de longo prazo


Pode ser utilizado o message-driven explicado no item anterior na criação de documentos de longo prazo, basta fazer algumas alterações. Para saber se o message-driven esta sendo utilizado para criação do arquivo de longo prazo, existe um novo parâmetro chamado “isLongTerm”, esse parâmetro é uma String, se essa String for igual a “true” é por que o documento que se quer gerar é um PDF/A, considerado arquivo de longo prazo.

O ECM considera apenas o PDF/A como formato possível de gerar documentos de longo prazo via message-driven.

Para identificar a criação de um arquivo de longo prazo, o nome físico do documento deve ser alterado, incluindo a string “PDFA” no final do nome do arquivo. Exemplo: se o nome do arquivo for manual.txt, o nome desse arquivo após a conversão será manual.txtPDFA.pdf. Veja o exemplo abaixo ilustrando as alterações necessárias no message-driven para criar o documento de longo prazo.

Na primeira linha estamos recuperando o valor do parâmetro “isLongTerm” para saber se esta sendo requerida a criação de um arquivo de longo prazo. Após feita a verificação da extensão do documento, verificamos o valor da variável longTerm, se ela não for nula e for igual a “true”, então realizamos a criação chamando o método de conversão de documentos utilizando para isso o nome do arquivo com a string “PDFA.pdf” fazendo doc + “PDFA.pdf”. Segue fonte exemplo:

String longTerm = message.getStringProperty("isLongTerm");
if (doc != null && doc.endsWith(".txt")) {
if (longTerm != null && longTerm.equals("true")) {
String documentName = doc + “PDFA.pdf”;
//Chamar o método de conversão para PDF/A
}
}


Parte 3: Registrando o conversos no ECM


    Na tela GED ou Painel de controle, selecione a tela Eventos:



    Após selecionar esta opção, irá abrir uma tela de edição JavaScript, selecione a opção adicionar e escolha o evento addDocumentConvertionExt.



    O editor irá apresentar a função addDocumentConvertionExt para ser editada. O objetivo dessa função é adicionar as extensões que possuem um conversor customizado, neste caso:


    Atenção:

    Para impressão de documentos publicados com a opção "Atualiza Propriedades Cópia Controlada?". NÃO será utilizado o conversor externo. Como é necessário aplicar as propriedades da cópia controlada no documento original e efetuar uma nova conversão, este processo só pode ser realizado em tempo de execução com o conversor padrão do produto. Portanto, na impressão do documento, pode ocorrer a perda de formatação dependendo dos recursos visuais aplicados em seu conteúdo (bordas, cores, imagens, etc).


    Parte 4: Indicar que o documento utiliza o visualizador interno


    Agora que a extensão .txt foi registrada como possuindo um conversor customizado, basta selecionar a opção utiliza visualizador interno na publicação do documento:





    • Sem rótulos