Nota | ||
---|---|---|
| ||
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 | ||||||||
---|---|---|---|---|---|---|---|---|
|
...
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.
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.
...
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.
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.
Informações | ||
---|---|---|
| ||
Um site só pode ser criado abaixo de uma pasta com a descrição “Sites” criada na raiz do TOTVS | ECM. |
...
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.
...
Exemplo: http://localhost:8080/webdesk/site/cec/1/pagina
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.
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] ... |
...
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.
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. |
Nota | ||
---|---|---|
| ||
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. |
...
- getMostPopularDocuments.
O método que retorna um objeto do tipo processDefinitionVersion é o seguintes:
- getProcess.
...
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:
...
Informações | ||
---|---|---|
| ||
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.
...
Bloco de código |
---|
[#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> |
...
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:
Bloco de código |
---|
[#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> |
...
Exemplo utilizando a URL de RSS da TOTVS.
Bloco de código |
---|
[#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> |
...
Bloco de código |
---|
[#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> |
...
table> |
Bloco de código |
---|
[#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> |
...
Bloco de código |
---|
[#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> |
Bloco de código |
---|
[#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> |
...