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.

Criação e Customização de Sites

Os Sites utilizam o conceito de Web Parts, que permitem a criação de sites mais ricos e possibilitam a realização de customizações da maneira que desejar. Para facilitar a configuração e utilização, é disponibilizado junto ao produto um exemplo de site, esse exemplo esta na pasta “Sites” criada automaticamente pelo produto na raiz do TOTVS | ECM e pode ser acessado através do link <URL_ECM>/site/cec/1.

Para que um site seja disponibilizado pelo TOTVS | ECM, são necessárias algumas configurações, são elas: Criação de um Layout e a criação de um documento do tipo Site e outro do tipo página de site. A seguir cada um desses itens é explicado.



Layout

O layout é um modelo desenvolvido em HTML que tem como função definir a forma de distribuição dos componente no site. Abaixo tem-se um exemplo de um layout. No exemplo abaixo é importante destacar o uso da tag <LAYOUT:SECTION orientation="V" name="Primeira Secao">. É essa tag que irá definir onde os painéis serão posicionados dentro do site. A orientação pode ser definida como horizontal “H” ou vertical “V” no atributo “orientation”. Já o atributo “name” serve para identificar o Layout Section no momento da edição de um site.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title> TOTVS | ECM - Central de Externalização de Conteúdo </title>
</head>
<body>
<table width="100%">
 <tr>
  <td width="15%"></td>
  <td>
    <table width="100%">
     <tr>
       <td bgcolor="#778899" colspan=2 class="titulo"><center>
       <img src="ByYouECM.png"></img></center>
      </td>
     </tr>
      <tr>
         <td>
           <LAYOUT:SECTION orientation="V" name="Primeira Secao">
         </td>
         <td>
         <LAYOUT:SECTION orientation="V" name="Segunda Secao">
        </td>
        </tr>
         <tr>
          <td>
           <LAYOUT:SECTION orientation="V" name="Terceira Secao">
          </td>
          <td>
             <LAYOUT:SECTION orientation="V" name="Quarta Secao">
           </td>
          </tr>
         </table>
         </td>
         <td width="15%"></td>
      </tr>
    </table>
    </body>
    </html>

Além do arquivo HTML é necessária uma imagem com o nome “icon” que represente a forma gráfica de como vai ficar o layout. Isso irá facilitar a identificação do layout no momento de cadastrar uma nova página.



Site

O site possui o mesmo conceito de uma pasta, onde dentro desse site somente podem ser cadastrados documentos do tipo página de site. A descrição atribuída ao site será utilizada posteriormente para montar a URL do site. Dentro de um site podem existir mais de uma página cadastrada.

Observação

Um site só pode ser criado abaixo de uma pasta com a descrição “Sites” criada na raiz do TOTVS | ECM.



Página de Site

Uma página só pode ser criada abaixo de um site. Ela é responsável por exibir os painéis configurados, por isso uma página deve obrigatoriamente ser relacionada a um layout. Assim como no site, a descrição da página de site será utilizada na URL para acesso a página. A página cadastrada como “index”, não terá necessidade de digitar na URL de acesso a sua descrição, o site irá identificar essa página como sendo a padrão e irá acessá-la.

A URL para acessar uma página é composta da seguinte estrutura:

<URL_ECM>/site/<COD_SITE>/<COD_EMPRESA>/<DESC_PAGINA>

Exemplo: http://localhost:8080/webdesk/site/cec/1/pagina



Painel

Ao abrir uma página através do TOTVS | ECM, serão exibidos os painéis que podem ser editados e customizados, os painéis são as Web Parts dentro do site. As customizações podem ser realizadas utilizando HTML, CSS e JavaScript, além dessas opções, é utilizado também um framework de templates chamado FreeMarker.



FreeMarker

O FreeMarker é um "template engine", uma ferramenta genérica utilizada para geração de saída de texto. Foi desenvolvido para ser prático na geração de páginas Web em HTML.

Exemplo da sintaxe do FreeMarker:


Criação de variáveis:

[#assign var = "valor da variavel"]



Imprimir o valor de uma variável na tela:

[#assign var = "valor da variavel"] ${var}



Condição:

[#if condição]

...
[/#if]



Repetição (lista):

[#assign var = ["valor 01", "valor 02", "valor 03"]]

[#list var as x]

Valor da variável: ${x}

[/#list]

Para mais informações, a documentação completa do FreeMarker esta disponível no link http://freemarker.sourceforge.net/docs/index.html.



Sumário de Métodos

A customização de sites é realizada pela criação de scripts. Para isso são disponibilizados pelo TOTVS | ECM alguns métodos que permitem acesso a dados do produto, são eles:


Sumário de métodos
getDataset(String datasetId)Retorna uma lista com todos os resultados da execução do dataset informado.
getCardDataset(String codFichario)Retorna uma lista de mapas com o nome do campo e seu valor para cada ficha.
getCustomDataset(String datasetId)Retorna o resultado da execução do dataset customizado informado.
getDocumentContent(String documentId)Retorna uma String representando o array de bytes do documento.
getDocumentLink(String documentId)Retorna o link para o documento informado.
getDocumentStream(String documentId)Retorna o link para o arquivo físico do documento informado.
getCardContent(String cardId)Retorna o código HTML correspondente a ficha informada com seus campos devidamente preenchidos.
getRssFeeds(String urlRss)Retorna uma lista de RSS da URL informada.
getProcess()Retorna os processos que o usuário logado pode iniciar.
countDocumentsToApprove()Quantidade de Documentos para aprovar.
countExpiredTasks()Quantidade de Solicitações Atrasadas.
countOpenTasksByKind()Quantidade de Solicitações pendentes.
countMyActiveRequests()Quantidade de Solicitações Abertas.
countMyDocuments()Quantidade de documentos aguardando Aprovação
getFavorites(int maxResult)Retorna os documentos favoritos.
getMostPopularDocuments(int maxResult)Retorna os documentos mais acessados.
getTaskCentralLink()Retorna o link para acesso a central de tarefas.
getCurrentUser()Retorna um objeto com as informações do colaborador logado.

Importante

Alguns métodos possuem como retorno um objeto do tipo Document ou processDefinitionVersion. Para saber quais são os atributos destes objetos e poder acessá-los, acesse os datasets chamados “document” ou “processDefinitionVersion”, no item Dataset do menu do TOTVS | ECM. Na visualização do dataset são apresentadas varias colunas, onde cada uma representa um atributo do objeto de retorno, que pode ser acessado nas páginas de site.

Os métodos que retornam um objeto do tipo Document são os seguintes:

- getFavorites;

- getMostPopularDocuments.


O método que retorna um objeto do tipo processDefinitionVersion é o seguintes:

- getProcess.



Exemplos de utilização de alguns métodos


getCardDataset

Levando em consideração que existe no TOTVS | ECM um fichário cadastrado com código 17. Para buscar todas as fichas que estão nesse fichário, segue o exemplo:

[#ftl][#assign listaFichas = getCardDataset("17")]
<table id="box-table-a">
   <tr> <th align="center" colspan="4">Fichas</th></tr>
  [#list listaFichas as ficha]
      <tr><td>
         ${ficha.<nomeCampoDaFicha>}
       </td></tr>
      [/#list]
    </table>

Observação

No lugar da expressão <nomeCampoDaFicha> deve ser colocado o nome do campo da ficha que deseja recuperar o valor.



O exemplo abaixo cria dois links, um para o documento de código 8 e outro para o documento de código 9. Caso o documento correspondente ao código informado não exista, ou o usuário não tenha permissão de acesso ao documento, o método retorna uma String “false”, por isso é utilizada a expressão [#if valor1 != "false"], que somente irá exibir o link para o documento, caso ele realmente exista.

Segue o exemplo:

[#ftl][#assign valor1 = getDocumentLink("8")]
[#assign valor2 = getDocumentLink("9")]
<table id="box-table-a">
      <tr><th align="center" colspan="4">Documentos</th>
      </tr>
     [#if valor1 != "false"]
      <tr><td>
           <a href="${getDocumentLink('8')}" target="_blanck">
               Descrição do documento </a>
    </td></tr>
  [/#if]
  [#if valor2 != "false"]
       <tr><td>
            <a href="${getDocumentLink('9')}" target="_blanck">
               Descrção do document </a>
     </td></tr>
</table>



getCardContent

Levando em consideração que existe no TOTVS | ECM uma ficha cadastrada com código 19. Para buscar o código HTML correspondente a essa ficha e poder renderiza-la, segue o exemplo:

[#ftl][#assign html = getCardContent("19")]
<table id="box-table-a">
   <tr> <th align="center" colspan="4">Favoritos</th></tr>
     <tr><td>
        ${html}
    </td></tr>
</table>



getRssFeeds

 Exemplo utilizando a URL de RSS da TOTVS.

[#ftl][#assign                             rss                                        = 
getRssFeeds("http://totvs.com/c/blogs/rss?areaId=12&companyId=10097")]
<table id="box-table-a">
   <tr> <th align="center" colspan="4" scope="col">RSS 
TOTVS</th></tr>
 [#list rss as valRss]
     <tr><td>
        ${valRss}
     </td></tr>
      [/#list]
    </table>



getFavorites

[#ftl][#assign documentos = getFavorites("5")]
<table id="box-table-a">
   <tr><th align="center" colspan="4">Favoritos</th>
   </tr>
[#list documentos as doc]
    <tr><td>
       <a href="${getDocumentLink(doc.documentPK.documentId)}" 
target="_blank"> ${doc.documentDescription} </a>
      </td></tr>
  [/#list]
 </table>



getProcess

[#ftl][#assign tarefas = getProcess()]
<table id="box-table-a">
   <tr><th align="center" colspan="4">Inicialização de 
Solicitações</th></tr>
  [#list tarefas as val2]
     <tr><td>
<a href="${val2.urlForPortal}" target="_blank"> 
${val2.processDefinitionVersionPK.processId} </a>
     </td></tr>
 [/#list]
</table>



getMostPopularDocument

[#ftl][#assign documentos = getMostPopularDocument("5")]
<table id="box-table-a">
   <tr><th align="center" colspan="4">Documentos mais 
Acessados</th></tr>
 [#list documentos as doc]
[#if getDocumentLink(doc.documentPK.documentId) != "false"]
    <tr><td>
<a href="${getDocumentLink(doc.documentPK.documentId)}" 
target="_blank"> ${doc.documentDescription} </a>
       </td></tr>
     [/#if]
  [/#list]
</table>



getCurrentUser

[#assign colleague = getCurrentUser() ]
<table>
  <tr>
    <td 
colspan="3">${colleague.getColleaguePK().getCompanyId()}</td>
    <td 
colspan="3">${colleague.getColleaguePK().getColleagueId()}</td>
    <td colspan="3">${colleague.getLogin()}</td>
</tr>
</table>