DEV Community

Liz Vidotti
Liz Vidotti

Posted on

Gerador de documentos para o Salesforce Industries

O Gerador de Documentos para Industries é uma aplicação que permite que o usuário crie documentos a partir de templates pré-definidos ou templates customizados. Dessa forma, os documentos são gerados de forma rápida, consistente e precisa.

Com esta aplicação, podemos mesclar arquivos de texto, como editor de textos ou de slides com outras fontes de dados, como registros de objetos Salesforce, para criar contratos, propostas, cotações e relatórios. Os documentos gerados podem ser exportados no formato .docx, .ppt e .pdf.

Vantagens

  • Gerar documentos de forma rápida e precisa;
  • Controle de versões, onde podemos criar diversas versões de um único template, de acordo com as mudanças que atendam as necessidades de negócio;
  • Contratos de venda com a capacidade de mesclar dados de mais de um objeto Salesforce;
  • Documentos de proposta detalhados, que mesclam diversos segmentos de dados em um único documento;
  • Cotações complexas e integradas;
  • Criação de relatórios simples e/ou complexos.

Document Template Designer

Esta ferramenta permite criar templates de documentos a partir de templates existentes ou completamente novos, de forma declarativa, ou seja, sem a necessidade de códigos. Podemos configurar parágrafos, colunas, mesclar textos e imagens, etc. Os templates ajudam a otimizar os processos de negócio.

Ela permite que os documentos sejam gerados em formato HTML, Microsoft Word (.docx) e Microsoft PowerPoint (.pptx). Para a criação de documentos complexos, que necessitam de cálculos, lógica e inserção de dados dinâmicos, podemos configurar tokens para os templates, que suportam diversos tipos e funções:

  • Variáveis: podemos passar as informações necessárias, em formato JSON, para o preenchimento do documento. Essas informações são armazenadas em variáveis e permitem que os dados sejam preenchidos de forma dinâmica;
  • Conteúdo de repetição: podemos inserir, por exemplo, listas de produtos em um único documento;
  • Condicionais: podemos inserir determinada informação quando condições pré-definidas no template são atendidas;
  • Imagens;
  • Editor de textos: podemos configurar cor, fonte, parágrafos, etc;
  • Hyperlink: podemos inserir URLs dinâmicas para a criação de documentos.

Mapeamento de dados

Podemos mesclar dados de registros de objetos Salesforce para a criação de documentos. Os objetos que podem ser utilizados são: Contract, Opportunity, Order e Quote. Podemos criar diversas seções no mesmo documento, onde cada seção importa dados de um único objeto.

O mapeamento de dados baseado em objetos é tipicamente usado para criar documentos no formato HTML. Ele é de fácil construção, porém é menos flexível do que o mapeamento de dados JSON.

Image description

Também é possível mesclar dados de sistemas externos ao Salesforce. Esses dados devem ser integrados ao Salesforce no formato JSON. Podemos criar um componente DataRaptor ou classe Apex para extração e formatação dos dados que serão enviados para o gerador de documentos.

O mapeamento de dados baseado em dados JSON é usado para a criação de documentos HTML, Microsoft Word e Microsoft PowerPoint, e a fonte de dados pode ser interna ou externa ao Salesforce.

Image description

Para que possamos inserir as informações necessárias para a geração de documentos, utilizamos os chamados tokens. Esses tokens podem ser de vários tipos:

  • Variável: mostra o valor da variável que é passada para o template através de elemento no formato JSON;
{{token_name}}
Enter fullscreen mode Exit fullscreen mode
  • Conteúdo de repetição: repete o conteúdo de uma seção;
{{#token_name}} //o sinal # indica que o conteúdo se repete tantas vezes forem a quantidade de itens dos dados de entrada no formato JSON
{{/token_name}} //aqui é indicada a _tag_ de fechamento
AND
{{^token_name}} //o sinal ^ indica o que deve ser exibido caso o item não exista ou esteja vazio.
{{/token_name}} //aqui é indicada a _tag_ de fechamento
Enter fullscreen mode Exit fullscreen mode
  • Condicionais: se determinada condição é verdadeira, a seção é mostrada no documento;
{{#IF_token_name}} //aqui, a seção aparecerá somente se a condição for VERDADEIRA
{{/IF_token_name}} //tag de fechamento
AND
{{^IF_token_name}} //aqui, a seção aparecerá somente se a condição for FALSA
{{/IF_token_name}} //tag de fechamento
Enter fullscreen mode Exit fullscreen mode
  • Imagem: inserir imagem de forma dinâmica;
{{IMG_<imagetokenname>}}
Enter fullscreen mode Exit fullscreen mode
  • Rich text: mostra o conteúdo rich text em seu formato original;
{{RTB_<richtexttokenname>}}
Enter fullscreen mode Exit fullscreen mode
  • Hyperlinks: inserir URL dinâmica;
{{HYP_<hyperlinktokenname>}}
Enter fullscreen mode Exit fullscreen mode

Os dados recebidos podem vir de uma classe Apex ou do componente DataRaptor.

Client-side & server-side

Podemos criar processos para geração de documentos através de componentes Omniscript, Integration Procedure e classes Apex. O processo pode ser client-side ou server-side.

  • Client-side: o processo é tipo síncrono, através de um componente Omniscript, onde o usuário precisa executar ações, como preenchimento de informações necessárias para a geração do documento. Este processo utiliza recursos do navegador web e, por estes motivos, funciona com arquivos menores.
  • Server-side: o processo é tipo assíncrono, ou seja, ocorre através de um processo automático, sem a necessidade de interação do usuário. Este processo utiliza recursos do próprio Salesforce, o que permite a criação de arquivos maiores e criação de arquivos em lote.

Client-side

Para preencher as informações necessárias na criação de documentos client-side, podemos:

  • Criar um Omniscript: podemos criar um Omniscript que capture os dados de entrada do usuário em um formulário e leve os dados para o document template;
  • Customizar o Omniscript padrão na plataforma: para que o Omniscript seja capaz de gerar o documento, o template configurado deve ter sempre dois DataRaptors relacionados; o DataRaptor Extract e o DataRaptor Transform;
  • Uitilizar a entrada de dados do tipo JSON: podemos criar um classe Apex que extraia os dados do Salesforce e leve os dados no formato JSON para o document template. Este processo é ideal para documentos que possuam mais de 200 itens.

Server-side

  • Automatizar a geração de documentos com APIs;
  • Utilizar diversas ferramentas, como classes Apex, Integration Procedures e Omniscripts;
  • Gerar documentos mais pesados e/ou múltiplos documentos através de processos batch, que utilizam os recursos do Salesforce, ao invés dos recursos do navegador. Documentos mais pesados normalmente possuem muitas linhas, tabulação complexa e muitos tokens;

Fonte:
Deep Dive into Salesforce Document Generation
Industries Document Generation Foundation

Top comments (0)