scieee AI-readable full text Open interactive document viewer

Implementação de ferramenta para geração automática de documentação estruturada

Cátia Franqueira Marta da Cruz

Abstract

Ao longo dos últimos anos, cada vez mais empresas têm investido os seus recursos em sistemas de gestão documental, em busca da melhoria dos seus processos de trabalho para, deste modo, alcançarem produtividades que as permitam crescer no mercado de trabalho. É com esta premissa que a Finantech decidiu criar uma ferramenta de geração automática de documentos, como forma de aperfeiçoar o seu sistema de gestão documental. Esta dissertação procura dar resposta a esta necessidade, dando origem a um protótipo, completamente integrado no SharePoint (a plataforma de gestão documental utilizada pela Finantech), que permite a geração de manuais, documentação técnica e outros documentos, mediante as opções inseridas pelos seus utilizadores. Neste documento encontra-se descrito todo o processo de criação desta ferramenta - a Wiki2Doc - que permite retirar automaticamente os conteúdos da wiki da empresa (integrada no SharePoint), possibilitando a geração da documentação estruturada desejada. São explicados alguns conceitos e é feito um estudo de algumas aplicações existentes no mercado, relacionadas com o trabalho. É ainda apresentado esquematicamente o funcionamento, as tecnologias adotadas e os métodos de implementação e integração do protótipo na plataforma SharePoint. Por último, são introduzidas algumas limitações da ferramenta, juntamente com as conclusões e trabalho futuro a desenvolver pela Finantech.

Full text

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Implementação de ferramenta para geração automática de documentação estruturada Cátia Cruz DISSERTAÇÃO Mestrado Integrado em Engenharia Informática e Computação Orientador: Nuno Flores (PhD) Orientador na empresa: Pedro Silva 29 de Julho de 2015 Implementação de ferramenta para geração automática de documentação estruturada Cátia Cruz Mestrado Integrado em Engenharia Informática e Computação 29 de Julho de 2015 Resumo Ao longo dos últimos anos, cada vez mais empresas têm investido os seus recursos em sistemas de gestão documental, em busca da melhoria dos seus processos de trabalho para, deste modo, alcançarem produtividades que as permitam crescer no mercado de trabalho. É com esta premissa que a Finantech decidiu migrar toda a informação que tinha guardada em documentos words guardados em pastas, para uma wiki integrada no SharePoint, aperfeiçoando assim, o seu sistema de gestão documental. Surge então a necessidade de criar uma ferramenta (completamente integrada no SharePoint) que permita gerar documentos word, com os conteúdos agora guardados na wiki, para quando é necessário produzir documentação para impressão. Nesta dissertação ncontra-se descrito todo o processo de criação desta ferramenta - a Wiki2Doc - que permite retirar automaticamente os conteúdos da wiki da empresa (integrada no SharePoint), possibilitando a geração da documentação estruturada desejada. São explicados alguns conceitos e é feito um estudo de algumas aplicações existentes no mercado, relacionadas com o trabalho. É ainda apresentado esquematicamente o funcionamento, as tecnologias adotadas e os métodos de implementação e integração do protótipo na plataforma SharePoint. Por último, são introduzidas algumas limitações da ferramenta, juntamente com as conclusões e trabalho futuro a desenvolver pela Finantech. i ii Abstract Over the last years, more companies have invested their resources in document management systems in order to improve their work procedures, which will allow them to achieve high productivity standards and grow in the market. Based on this premise Finantech decided to transfer all the contents and information stored in word files to a wiki integrated in the SharePoint platform. Because of this decision Finantech felt the need to build a tool that creates word documents, with the information stored in the wiki, for matters of producing printing documents to deliver to their clients. The purpose of this project is to develop a prototype, fully integrated in SharePoint that creates manuals, technical reports and other types of documents from templates designed by Finantech, with the information stored in the wiki. This thesis describes the designing and making process of this tool - Wiki2Doc - that automatically withdraws information from the wiki(integrated in SharePoint), and generates the required documentation. Some key concepts are also explained and it’s held a study about the applications already available in the market. Furthermore this paper describes the technologies and procedures that were used to develop the tool and incorporate it in the SharePoint platform. Lastly, are described some of the tool’s limitations along with the conclusions and the future work. iii iv Agradecimentos A entrega desta dissertação marca o final de uma etapa na minha vida e o início de outra ainda mais importante. Foram muitas as pessoas que me acompanharam ao longo deste período, a quem gostava de agradecer. Em primeiro lugar, gostaria de expressar a minha gratidão ao Eng. Nuno Flores da FEUP por ter aceitado ser meu orientador, e por todo o apoio e incentivo que me deu durante estes 4 meses. Gostava também de agradecer à Finantech por me ter proporcionado uma experiência fantástica e a todas as pessoas do Departamento de Integration and Data Analysis (IDA), em especial, ao Pedro Silva e à Patrícia Nogueira por toda a paciência que tiveram e por toda a ajuda e apoio que me deram. Aos meus amigos, Bárbara Correia, Damien Rosa, Maria João Gabriel, Maling Wang e Rita Mendes, pela sua amizade e lealdade, pelo carinho constante que me deram e dão e pelo apoio e força que me deram durante a realização desta dissertação. Ao meu pai, João Cruz, que me ajudou muito durante todo o meu percurso no MIEIC. Às minhas irmãs Ana Sofia e Joana por serem minhas amigas e confidentes e ao Filipe Machado por ser como um pai para mim. Finalmente, um agradecimento muito especial à minha mãe, Anabela Rodrigues, à minha psicóloga, Dra. Paula Morais e ao meu namorado, André Gonçalves pela paciência infinita e pelo apoio constante e incansável. Foram os três pilares mais importantes da minha vida neste último ano. Sem cada uma destas pessoas, teria sido muito mais árdua a chegada ao final desta jornada. O meu sincero obrigado a todos vós. Cátia Cruz v LISTA DE FIGURAS A.17 Manual de Exemplo 2 (Pág.4) . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 xii Abreviaturas e Símbolos MTF Multilateral Trading Facility IDA Integration and DataAnalysis HTML Hypertext Markup Language XML EXtensible Markup Languag IIS Internet Information Service URL Uniform Resource Locator BD Base de Dados PDF Portable Document Format RTF Rich Text Format ODT Open Document Text PHP PHP: Hypertext Preprocessor CSV Comma Separated Values format TXT Text File SQL Structured Query Language SDK Software Development Kit xiii Capítulo 1 Introdução Este documento ilustra todo o desenvolvimento e implementação de uma ferramenta de geração automática de documentos, integrada no SharePoint 2013, o qual se denominou de Wiki2Doc. Relativamente ao conteúdo deste primeiro capítulo, após a apresentação do tema da dissertação, é referido o contexto e enquadramento no qual o projeto foi desenvolvido. Segue-se uma breve descrição dos objetivos do projeto e, por último, é mencionada a restante estrutura do documento. 1.1 Contexto e Enquadramento Numa busca constante pelo aumento da qualidade no local de trabalho, as empresas sentem, cada vez mais, a necessidade de ter a sua documentação organizada/estruturada e preservada de forma a facilitar a administração da mesma. A gestão de documentos é essencial ao bom desempenho de qualquer empresa e um reflexo direto da sua organização interna. A existência de grandes volumes de informação (tanto oriunda do exterior como interna) potencia a perda de documentos, dificulta o acesso à informação (e à sua localização física) e prejudica ainda o controlo dos fluxos de informação. A Finantech é uma empresa que se dedica ao desenvolvimento e manutenção de aplicações de suporte às funções de “BackOffice”, “MiddleOffice” e “FrontOffice” para a Banca e outros Intermediários Financeiros. Possui soluções dedicadas a sistemas de negociação online de Brokers, custódia e liquidação para Bolsas e MTFs, gestão de patrimónios, redes de balcões e lojas financeiras. A gestão documental da Finantech baseava-se em documentos Word guardados em pastas, o que causava diversos problemas na consulta da informação por parte dos funcionários da empresa. Com o passar dos anos, o aumento do volume de negócios da empresa conduziu a um elevado acréscimo na quantidade de informação processada e documentada, suscitando assim a necessidade da empresa ter a sua documentação mais organizada e estruturada. Desta forma, de modo a facilitar o acesso à informação por parte dos seus funcionários, a empresa decidiu adotar o 1 Introdução software SharePoint como plataforma de gestão documental e criar uma wiki(totalmente integrada no Sharepoint) para onde se está a migrar toda a informação contida nos documentos word, permitindo que todo o conhecimento da empresa esteja organizado de forma transversal, sistemática e eficiente. A plataforma de gestão documental está a ser desenvolvida pela área de Integration and Data Analysis (IDA) da empresa desde o início de 2015. Tendo em conta a curta duração deste projeto, existem ainda muitas carências no sistema a serem solucionadas. Uma das principais dificuldades com que os funcionários se deparavam era o facto de terem de estar constantemente a recorrer à wiki para criar os documentos (copiando manualmente o conteúdo pretendido, correndo o risco de perder informação este processo). Assim sendo, em março do ano corrente, foi aprovado pela empresa o desenvolvimento de uma ferramenta que transporta automaticamente os conteúdos da wiki, integrada no SharePoint, para documentos Word, utilizando templates prédefinidos pela Finantech. Abaixo encontra-se um gráfico temporal, representativo das diferentes fases do trabalho. Figura 1.1: Mapa Gantt do Projeto 1.2 Objetivos O propósito deste trabalho consiste em desenvolver uma ferramenta que transporte automaticamente os conteúdos do arquivo digital centralizado (as páginas da wiki integrada no SharePoint) para documentos word (docx), utilizando templates predefinidos pela Finantech, gerando assim os documentos desejados (manuais internos e para clientes, documentação técnica e de análise). Através desta ferramenta, pretende-se que os funcionários possam escolher intuitivamente o conteúdo da wiki a colocar em cada secção do documento a gerar e que o mesmo seja guardado automaticamente no SharePoint. Desta forma, prevê-se não só facilitar e melhorar intuitivamente toda a organização e estruturação dos conteúdos documentais, mas também potenciar a vertente de negócio da Finantech (através da criação e manutenção de documentação final estruturada e organizada para clientes existentes e prospetivos). 2 Introdução 1.3 Estrutura da Dissertação Para além da introdução, este documento é composto por mais 3 capítulos. No capítulo 2, encontram-se descritos alguns conceitos base necessários para o desenvolvimento do projeto e são referidas algumas das ferramentas existentes no mercado relacionadas com este trabalho, nomeadamente, conversores de html para documentos Word (docx). O Capítulo 3 diz respeito às especificações do projeto. É apresentada a motivação do projeto, seguida da descrição pormenorizada da arquitetura do sistema (incluindo uma análise da visão geral, da arquitetura lógica e dos casos de uso). Segue-se um estudo das várias tecnologias utilizadas, da implementação do projeto e do desenvolvimento da interface. Finalmente são referidas limitações quanto à ferramenta Wiki2Doc. As conclusões retiradas e as referências para trabalho futuro são referidas no capítulo 4, o último capítulo deste documento. 3 Introdução 4 Capítulo 2 Trabalho relacionado Neste capítulo, encontram-se descritos alguns conceitos que servem de suporte a este trabalho (necessários para a compreensão da ferramenta desenvolvida) e são apresentadas algumas aplicações e bibliotecas relacionadas com o projeto, nomeadamente alguns conversores de html para ficheiros word. 2.1 Conceitos Base De forma a melhor assimilar todo o processo de implementação da ferramenta desenvolvida, foram explorados alguns conceitos base que facilitam a compreensão das várias fases do projeto. 2.1.1 Gestão documental A implementação de um sistema de gestão documental é um fator decisivo para o negócio de qualquer empresa, na medida em que este permite gerir eficazmente toda a informação processada. São vastos os benefícios da implementação de soluções de gestão documental, variando desde a redução do tempo gasto (no processamento manual de documentos) até à precisão dos materiais acessíveis a todo o tipo de utilizadores destes sistemas. Alguns dos benefícios mais comuns que valorizam as empresas que adotam este tipo de soluções são: •Redução do “ciclo de vida” dos documentos (devido à melhoria na eficiência das diferentes equipas de trabalho); •Melhoria da eficiência individual dos funcionários através de: –Fácil participação na criação e gestão de documentos em qualquer fase de um projeto; –Redução do número de reuniões relativas à documentação; 5 Trabalho relacionado –Centralização de materiais, que conduz a uma fácil recuperação e gestão de qualquer tipo de documento; •Inclusão de agentes externos à empresa em determinados projetos (possibilitando o acesso à documentação, de forma pertinente, a outros parceiros, consultores ou clientes);[SB07] De um modo geral, a eliminação do circuito de papel, a uniformização de metodologias de tratamento de informação, a integração com sistemas de e-mail, fax ou outros e a possibilidade de realizar pesquisas rápidas e eficientes sobre os arquivos digitais representam um forte impacto no funcionamento base das empresas.[HOL] 2.1.2 Geração automática de documentos O papel da documentação tem ganho cada vez mais importância à medida que as empresas procuram atingir níveis superiores de produtividade com recurso a menos funcionários. Neste tipo de ambiente, o trabalho deve ser cuidadosamente documentado de forma a disponibilizar rapidamente e pertinentemente questões de negócio a clientes e a proporcionar uma melhor gestão interna de informação.[KM94] A geração automática de documentos leva à criação de uma estrutura coesa que permite impulsionar todas as componentes do fluxo de trabalho das empresas. Existem inúmeros benefícios associados à geração automática de documentos, nomeadamente: •Eliminar erros nos documentos; •Controlo de versões (por exemplo, assegurar que o documento mais atual é distribuido); •Consolidar múltiplos documentos num único manual; •Reduzir ou eliminar ciclos de revisão de documentos; •Melhorar a produtividade e eficiência da empresa; Para além disto, existem ainda múltiplos benefícios que ajudam indirectamente as empresas que adoptam este tipo de sistemas: 1. Melhoria na precisão da informação: Para gerar a documentação automaticamente, as bases de dados devem ser precisas e constantemente atualizadas para que os documentos gerados sejam minuciosos. Isto leva a que os utilizadores adaptem o seu comportamento, procedendo de forma a manter sempre toda a informação precisa e atualizada. 2. Aumento da conformidade de dados: Como resultado da automatização da documentação, as empresas acabam por adquirir melhorias na conformidade de dados, visto que os seus funcionários acedem aos documentos através da uma única plataforma centralizada, podendo apenas gerar documentação a partir da informação presente na mesma. 6 Trabalho relacionado 3. Redução de recursos associados à documentação: Antes de automatizar a geração de documentos, muitas empresas gastam múltiplos recursos na auditoria e gestão de documentos (não só Recursos Humanos mas também software e tecnologias adicionais). Com a automatização documental, todos estes recursos deixam de ser requeridos, podendo os funcionários ser realocados, sendo também eliminados os custos em tecnologias adicionais. 4. Redução da formação e instrução de novos funcionários: Em qualquer novo emprego, a componente de trabalho mais complicada e desafiante é a compreensão dos processos internos de uma empresa. Com a geração automática de documentos, as empresas passam a ter processos replicáveis que permitem a rápida integração de qualquer novo funcionário (de forma a que este se possa focar no seu “trabalho”), deixando de existir formação em como criar diferentes tipos de documentação. 5. Proteção de dados confidenciais: Muitos dos documentos distribuídos internamente ou para o exterior das empresas contêm dados confidenciais - preços, resultados de vendas, dados de clientes, etc. Os processos de geração automática de documentação acabam por limitar a exposição de certas informações (evitando que estas cheguem à pessoa errada), havendo um maior controlo de permissões e entrega de informação. 6. Redução do número de documentos geridos: Através da geração automática de documentos, passa a existir um controlo elementar das versões da documentação existente e do seu conteúdo, reduzindo o número total de documentos de uma empresa. 7. Elevada consistência de Branding: Quer seja uma empresa com uma dezena ou milhares de funcionários, um Branding consistente é uma qualidade indispensável. Com a geração automatizada de documentos as empresas têm controlo não só do conteúdo da documentação gerada mas também dos vários templates utilizados, assegurando que a empresa apresenta uma uniformidade no que toca à aparência da sua documentação. 8. Criação de serviços repetíveis: Uma das principais qualidades de um sistema de geração automática de documentação é o facto de, qualquer funcionário (quer seja um estagiário ou um funcionário que trabalha há anos na empresa) terá acesso à mesma informação e documentação. Como tal, qualquer um poderá criar documentação correta e precisa à medida que é necessário para o fluxo de trabalho da empresa. [Teca][Tecb] 7 Wiki2Doc •Escolher template que quer utilizar •Dar um nome ao documento que vai gerar •Conseguir escolher para cada seccção do documento a página de wiki que contém o conteúdo desejado para aquela secção •Gerar documento 3.2.2 Requesitos Não-Funcionais Rapidez A ferramenta deve ser capaz de gerar o documento de uma forma rápida de modo a que o utilizador não gaste muito tempo com esta tarefa. Consistência Uma vez que o objetivo da ferramenta é criar um documento pronto para entregar a clientes ou para impressão, é necessário que a transferência de informação seja consistênte, mantendo a ordem em que os conteúdos são apresentados, passando imagens e tabelas e ainda mantendo as definições do texto. Usabilidade De modo a que o utilizador tenha facilidade em utilizar a Wiki2Doc, esta deve apresentar uma interface intuitiva e simples. 3.3 Arquitetura De forma a facilmente compreender a estrutura da ferramenta desenvolvida segue-se a explicação pormenorizada da arquitetura presente no sistema. 3.3.1 Visão Geral No contexto desta dissertação, surge a necessidade de desenvolver uma ferramenta para geração automática de documentação estruturada (manuais, relatórios, etc) utilizando informação contida nas páginas wiki integrada no SharePoint. Após a inserção de conteúdos na wiki, é dada ao utilizador a hipótese de escolher, para cada secção do documento, o conteúdo da página wiki pretendida, gerando (consoante a seleção de templates predefinidos) a documentação desejada. No processo de conversão dos conteúdos das páginas wiki para a documentação word, é utilizada uma biblioteca OpenXML especializada para o Office 2013. Toda a informação do sistema é guardada no SharePoint e em algumas Bases de Dados SQL. 14 Wiki2Doc Figura 3.1: Visão Geral 3.3.2 Arquitetura Lógica A Arquitetura lógica do sistema representa a base lógica do funcionamento da ferramenta desenvolvida. Pretende-se com ela descrever os principais fluxos de informação entre entidades do sistema. A primeira camada representa a interface do utilizador, que é parte integrante do SharePoint. Esta camada estabelece comunicação com uma segunda camada, a Wiki, que pertence ao sistema de geração automática de documentos. A interface do utilizador recebe ainda informação proveniente de uma terceira camada, a geração de documentação. Todas as camadas do sistema de geração automática de documentos comunicam com uma outra camada, referente às Bases de Dados. Figura 3.2: Arquitetura Lógica do Sistema 15 Wiki2Doc 3.3.3 Casos de Uso Relativamente ao diagrama de casos de uso, parte-se do princípio que todos os utilizadores têm o mesmo nível de acesso e privilégios no que toca à utilização da ferramenta desenvolvida. Assim sendo, analisando a figura 3.3, pode-se afirmar que o diagrama de casos de uso auxilia a compreensão dos diferentes cenários em que um utilizador tem possibilidade de interagir com o sistema. Figura 3.3: Casos de Uso do Utilzador 3.4 Tecnologias usadas Nos subcapítulos seguintes são introduzidas as ferramentas que, após uma reflexão ponderada, foram selecionadas para a implementação da ferramenta Wiki2Doc. 3.4.1 Open XML SDK 2.5 De modo a conseguir que o conteúdo das páginas wiki fosse convertido para um ficheiro Word utilizou-se a ferramenta OPEN XML SDK 2.5. O Office Open XML é um formato XML-based desenvolvido pela Microsoft para representar folhas de cálculo, apresentações e documentos de processamento de texto preexistentes que foram codificados em formatos binários definidos pela Microsoft Corporation. 16 Wiki2Doc Cada tipo de documento é especificado por uma linguagem markup: WordprocessingML para documentos de processamento de texto, PresentationML para apresentações e SpreadsheetML para folhas de cálculo.[ECM][kn:b] Estrututa de um Documento WordProcessingML A estrutura básica de um documento WordProcesingML contém os elementos <document> e <body>, seguidos de um ou mais parágrafos representados por <p>. Um parágrafo contém um ou vários elementos run, representado por <r>. Uma região, <r></r>, é um bloco de texto que apresenta propriedades comuns, tal como a sua formatação. Dentro de cada região run existem um ou vários elementos <t> que são blocos de texto.[6] A figura seguinte ilustra a linguagem markup de um documento WordprocessingML Figura 3.4: Exemplo da estrutura básica de um documento WordprecessingML Cada documento WordprocessingML encontra-se organizado em diferentes elementos. Cada elemento é uma região do conteúdo do documento WordprocessingML. Na Figura 3.5 pode-se analisar uma estrutura frequente deste tipo de documentos.[kn:l] Figura 3.5: Elementos de um documento WordprocessingML Classe AltChunk 17 Wiki2Doc Uma das funções disponíveis na API do Open XML é a classe Altchunk (Anchor for Imported External Content). Através dela, consegue-se importar conteúdo de diversos tipos: xml, rtf, texto simples, html, e especificar a localização, dentro do documento, onde vai ser colocado o conteúdo importado para o documento WordProcessingML. Quando é importado conteúdo html é feita a sua conversão para markup WordProcessingML, ou seja, todo o conteúdo que é passado em html é convertido para texto simples, automaticamente.[kn:c] 3.4.2 HtmlAgilityPack O “HtmlAligityPack” é uma biblioteca que permite ao utilizador percorrer ficheiros html. Esta biblioteca transforma conteúdo html numa estrutura em árvore, designada por HTMLDocument. Cada nó da árvore representa uma tag html. O utilizador pode aceder a um HTMLNode e alterar todos os atributos que fazem parte desse nó. É também possível fazer o inverso e converter um HTMLDocument num ficheiro html.[kn:i] Figura 3.6: Representação HTMLDocument 3.4.3 SharePoint Como já foi referido no Capítulo 1, a ferramenta usada pela Finantech para gestão documental, sobre a qual foi construída a Wiki2Doc é o SharePoint. Foi também explicado na secção 2.1.7 do Capítulo 2 parte da arquitetura do SharePoint. A figura seguinte representa a estrutura do site da Finantech. Este é constituído por vários subsites (sendo a wiki um deles) e por outros elementos (como por exemplo bibliotecas) e elementos que já pertencem à site collection (nível precedente ao site na arquitetura do SharePoint). 18 Wiki2Doc Figura 3.7: Estrutura do Site da Finantech 3.5 Implementação Após a descrição detalhada da arquitetura e das tecnologias usadas, segue-se uma descrição pormenorizada do desenvolvimento da solução. A solução implementada envolve três fases distintas: A primeira fase corresponde ao desenvolvimento de um conversor que faz a transformação de conteúdo html para Word. A segunda fase corresponde à integração do conversor na ferramenta SharePoint. A terceira fase corresponde ao desenvolvimento da interface, na plataforma SharePoint. Dado que o projeto se encontra numa fase inicial e que este foi desenvolvido por uma única pessoa, o processo de desenvolvimento utilizado foi o Modelo em Cascata (Waterfall Model) uma 19 Wiki2Doc vez que a sua característica sequencial se adequava mais ao projeto nas condições existentes. 3.5.1 Conversor de Html para Word De modo a fazer a conversão do conteúdo html para docx foi elaborada uma função chamada AltChunkMethod() que recebe um WordprocessingDocument, uma string (que contém o html extraído da página wiki) e o id do altchunk (que é também uma string). Esta função cria um elemento XElement altChunk que é colocado numa zona especifica do documento, sendo o conteúdo da página wiki inserido no ficheiro a partir dessa posição. 1void AltChunkMethod(WordprocessingDocument outDoc, string htmlbuilder, string chunkid) Figura 3.8: Representação do elemento XElement do tipo Altchunk O elemento Altchunk só consegue transferir informação em "blocos", ou seja, o conteúdo que lhe é passado será integralmente colocado no novo ficheiro. Esta particularidade é a razão pela qual o seu tempo de execução é muito reduzido, o que permite que o conversor seja bastante eficaz. 3.5.2 Integração do conversor no SharePoint Depois de implementado o conversor, foi feita a sua integração no SharePoint. De forma a obter o conteúdo de uma página wiki foi desenvolvida uma função chamada GetWikiPageHTML() que retorna uma string com todo o conteúdo html: 1string GetWikiPageHTML(string site_url, string listName, string pageName) Uma vez extraído o html, foram encontrados alguns obstáculos na passagem de imagens dado que o seu atributo “src” não incluía todo o url de referência. Surgiu então a necessidade de usar a biblioteca HTMLAgilityPack para se conseguir encontrar todas as imagens presentes na string e modificar o seu url. Para este efeito foi desenvolvida uma função chamada FindHTMLImages() 20 Wiki2Doc que recebe uma string com o html da página wiki, transformando-o num HTMLDocument (onde são modificados todos os url’s das imagens), e voltando a transformá-lo numa string: 1string FindHTMLImages(string html) Depois de integrado o conversor no SharePoint foi necessário começar a pensar na forma como seriam colocados os conteúdos das várias páginas wiki nas diferentes posições do documento a gerar. Cada documento é criado a partir de um template predefinido, que já está inserido no SharePoint(Anexo A - Figuras A1, A2, A3, A4, e A10, A11, A12, A13) e a wiki da empresa encontra-se organizada por secções e subsecções (Figura 3.9 , Figura 3.10 e Figura 3.11), de modo a que cada página corresponda a uma secção de um template. Como tal, chegou-se à conclusão de que a melhor forma de associar os conteúdos aos templates seria colocando o url da página desejada diretamente abaixo do título da secção do template. Assim, como se pode observar na figura 3.12., cada secção do template a utilizar terá um url (placeholder) ao qual é associada a informação da página wiki que lhe corresponde. Figura 3.9: Índice da wiki integrada no SharePoint (1oNivel) 21 Wiki2Doc Figura 3.10: Índice da wiki integrada no SharePoint (2oNivel - Ferramenta SOAPP) Figura 3.11: Exemplo de página wiki integrada no SharePoint (“O Meu Top 20”) 22 Wiki2Doc Figura 3.12: Template com secção correspondente à página “O Meu Top 20” Tendo em conta que o url das páginas wiki é utilizado como placeholder para os templates, é possível obter os três parâmetros a inserir na função GetWikiPageHTML(), de forma a extrair o conteúdo da respetiva página. De modo a extrair o conteúdo de todas as páginas wiki correspondentes às várias secções de um template, foi implementada a função cíclica, com o número de ciclos igual ao número de url’s presentes no template. btnGenerateManual_Click(). 1void btnGenerateManual_Click(object sender, System.Web.UI.ImageClickEventArgs e) Esta função percorre todo o template e, cada vez que encontra um url, chama a função GetWikiPageHTML() para extrair o conteúdo da página, que é guardado numa string, que por sua vez é passado como parâmetro na função AltChunkMethod() de forma a escrever o conteúdo no documento a gerar. No final os documentos(Anexo A - Figuras A5, A6, A7, A8, A9 e A14, A15, A16, A17) gerados são guardados no SharePoint. A figura seguinte exemplica todo o funcionamento da ferramenta. 23 Conclusões e Trabalho Futuro de maturação. Uma das principais limitações é a sua interface pouco desenvolvida que obriga os utilizadores a terem de aceder ao template e colocar manualmente, nos locais respetivos, os links para das páginas que contém a informação que será colocada naquela secção do documento. Para além deste problema, a Wiki2Doc também não permite gravar diversas versões de um template, ou seja, se o utilizador modificar o template e apagar alguma secção que não seja necessária para o documento final que quer gerar, não consegue recuperar o template na sua forma original. No entanto, face a outras aplicações já disponíveis no mercado, a Wiki2Doc apresenta fortes maisvalias, sendo completamente integrada no SharePoint e, do ponto de vista da Finantech, cem por cento projetada para satisfazer as necessidades da empresa. 4.2 Trabalho Futuro Como continuação do trabalho desenvolvido nesta dissertação, prevê-se que a Finantech irá focar-se fortemente na interface da ferramenta, visto que há ainda bastantes melhorias a efetuar. Após um estudo cuidado e atencioso, a interface poderá ser projetada para ser mais autónoma, intuitiva e user-friendly, evitando, por exemplo, a necessidade de os utilizadores inserirem manualmente informação nos templates (passando a fazê-lo mediante a seleção de opções predefinidas, que variassem consoante os conteúdos disponibilizados na wiki). Uma das funcionalidades a implementar futuramente foca-se ainda na possibilidade de gravar várias versões do mesmo template (para fornecer a diferentes clientes, por exemplo) ou mesmo reaver uma versão antiga de um template ou de um documento previamente gerado. Por último, sugere-se ainda a validação de uma renovação no que toca à estrutura organizacional da informação (tanto dos templates como da wiki), possibilitando a existência de mais do que um tipo de secções, tornando a documentação mais flexível e adaptável a novos requisitos. 30 Referências [BD03] Brain Benz e John R. Durant. XML Programming Bible. Wiley Publishing Inc., 2003. [Bro07] David R. Brookst. An Introduction to HTML and JavaScript: for Scientists and Engineers. Springer, 2007. [ECM] ECMA. Visão geral do office open xml. Technical report, ECMA. [HOL] HOLOS. Holdoc - gestao documental. [KM94] James Shaw Kathleen McKeown, Karen Kukich. Practical issues in automatic documentation generation. 1994. [kn:a] About service applications and services in sharepoint 2013. Disponível em https: //technet.microsoft.com/en-us/library/cc261875.aspx. [kn:b] About the open xml sdk 2.5 for office. Disponível em https://msdn.microsoft. com/EN-US/library/office/bb456487.aspx. [kn:c] Altchunk class. Disponível em https://msdn.microsoft.com/en-us/ library/documentformat.openxml.wordprocessing.altchunk(v= office.14).aspx. [kn:d] Create a web application in sharepoint 2013. Disponível em https://technet. microsoft.com/en-us/library/cc261875.aspx. [kn:e] docusuit. Disponível em http://www.docusuit.com/. [kn:f] ehow. Disponível em http://www.ehow.com/facts_5733176_ file-extension-docx-definition.html. [kn:g] Elements to structure sharepoint. Technical report. [kn:h] Encyclopedia britannica. Disponível em http://www.britannica.com/topic/ wiki. [kn:i] Html agility pack. Disponível em https://htmlagilitypack.codeplex.com/. [kn:j] Phpword. Disponível em https://phpword.codeplex.com/. [kn:k] Softinterface - convert doc. Disponível em http://www.softinterface.com/ Convert-Doc/Convert-Doc.htm. [kn:l] Structure of a wordprocessingml document (open xml sdk). Disponível em https: //msdn.microsoft.com/en-us/library/office/gg278308.aspx. 31 REFERÊNCIAS [kn:m] W3c - html, the web’s core language. Disponível em http://www.w3.org/html/. [SB07] Tony Smith e Seth Bates. SharePoint 2007 User’s Guide: Learning Microsoft’s Collaboration and Productivity Platform. Apress, 2007. [SFF13] Chris Johnson Steve Fox e Donavan Follette. Beginning SharePoint 2013 Development. John Wiley and Sons Inc., 2013. [Teca] Drawloop Technologies. Drawloop technologies. Disponível em http://www.drawloop.com/blog/2015/01/21/ eight-indirect-benefits-of-an-automated-document-generation-process-part-one/ /. [Tecb] Drawloop Technologies. Drawloop technologies. Disponível em http://www.drawloop.com/blog/2015/01/21/ eight-indirect-benefits-of-an-automated-document-generation-process-part-two/ /. 32 Anexo A Templates e Manuais Gerados 33 Templates e Manuais Gerados Figura A.1: Template de Exemplo 1 (Pág.1) 34 Templates e Manuais Gerados Figura A.2: Template de Exemplo 1 (Pág.2) 35 Templates e Manuais Gerados Figura A.3: Template de Exemplo 1 (Pág.3) 36 Templates e Manuais Gerados Figura A.4: Template de Exemplo 1 (Pág.4) 37 Templates e Manuais Gerados Figura A.5: Manual de Exemplo 1 (Pág.1) 38 Templates e Manuais Gerados Figura A.6: Manual de Exemplo 1 (Pág.2) 39 Templates e Manuais Gerados Figura A.13: Template de Exemplo 2 (Pág.4) 46 Templates e Manuais Gerados Figura A.14: Manual de Exemplo 2 (Pág.1) 47 Templates e Manuais Gerados Figura A.15: Manual de Exemplo 2 (Pág.2) 48 Templates e Manuais Gerados Figura A.16: Manual de Exemplo 2 (Pág.3) 49 Templates e Manuais Gerados Figura A.17: Manual de Exemplo 2 (Pág.4) 50