Post on 11-Aug-2015
Integração On-line com Sharepoint
2004 / 2005
1990309 - José Miguel de Bessa Carvalho
Departamento de Engenharia Informática
Integração On-line com Sharepoint
2004 / 2005
1990309 - José Miguel de Bessa Carvalho
Departamento de Engenharia Informática 2004
Orientador ISEP: Eng.º Paulo Proença
Supervisor myPartner: Eng.º Rui Cardoso
Integração On-Line com Sharepoint
vii
Agradecimentos
Começo por agradecer a todos os professores que tive, desde a
primária à faculdade, pois sem eles, não poderia ter adquirido os
conhecimentos que me foram fundamentais para o curso, para o estágio e
para a vida.
Quero dar todo o meu apreço a toda a equipa da myPartner, a
empresa que me acolheu nos últimos cinco meses e me fizeram sempre
sentir em casa.
A toda a minha família, à minha namorada, e aos meus amigos, pela
paciência, ajuda e compreensão dadas.
Ao supervisor da myPartner, Eng.º Rui Cardoso, por me ter
acompanhado e ajudado imenso em todas as situações, mas principalmente
por me ter dado esta oportunidade.
Ao Carlos Alberto e ao Eduardo Nogueira, por todo o desafio a que me
sujeitaram e por todas as oportunidades dadas.
Ao estagiário José Miguel Oliveira pela entreajuda que existiu durante
este estágio.
A toda a equipa da myPartner, pela simpatia e boa disposição
mostrada todos estes cinco meses passados e por terem tido a
disponibilidade para mesmo nas situações mais básicas me poderem ajudar.
Ao meu orientador de estágio, Eng.º Paulo Proença, pela
disponibilidade demonstrada.
Quero também dar um agradecimento especial ao ISEP – Instituto
Superior de Engenharia do Porto, por me ter posto ao dispor o Laboratório
.NET.
A todos um muito obrigado,
Miguel Carvalho
2005
Integração On-Line com Sharepoint
ix
Resumo
O objectivo deste projecto consiste no estudo da aplicação Microsoft
Windows Sharepoint Services, e no desenvolvimento de várias
soluções/aplicações possíveis de realizar dentro do mesmo, tendo sido
desenvolvida a integração entre aplicações distintas, neste caso entre o
próprio Sharepoint, o Microsoft Business Solutions Navision, e o Microsoft
Office 2003, integração com Infopath e Excel.
O ponto fulcral do estágio centra-se na análise exaustiva do Microsoft
Windows Sharepoint Services.
Para a integração com Microsoft Business Solutions - Navision, foi necessário
desenvolver vários WebServices que servissem de intermediário entre as
duas aplicações.
Foram também desenvolvidos vários sites e aplicações dentro do Sharepoint,
capazes de satisfazerem as necessidades pretendidas por vários clientes a
que a myPartner quis apresentar o produto.
Finalmente, é de salientar a satisfação do estagiário relativamente ao
trabalho desenvolvido, tendo sido alcançados os requisitos inicialmente
previstos.
Integração On-Line com Sharepoint
xi
Índice
Agradecimentos ......................................................................vii
Resumo ................................................................................. ix
Índice ................................................................................... xi
Índice de Figuras .....................................................................xv
Notação e Glossário ............................................................... xvii
1 Introdução............................................................................ 1
1.1. Enquadramento ........................................................................1
1.2 Apresentação do estágio ..........................................................2
1.3 Tecnologias utilizadas .............................................................3
1.4 Apresentação da Empresa ........................................................4
1.4.1 Organigrama: .............................................................................. 6
1.4.2 Localização da myPartner: .............................................................. 7
1.5 Contributos deste trabalho .......................................................7
1.6 Organização do relatório..........................................................8
2 Contexto........................................................................... 9
2.1 O que é o Sharepoint? .............................................................9
2.2 História do Sharepoint.............................................................9
2.3 Windows Sharepoint Services (WSS).......................................... 11
2.4 Arquitectura ....................................................................... 12
2.5 IIS 6.0 ............................................................................... 17
2.6 Segurança .......................................................................... 18
2.6.1 Autenticação de utilizador .............................................................19
2.6.2 Autenticação Anónima ..................................................................19
2.6.3 Autenticação Básica .....................................................................19
2.6.4 Autenticação Integrada Windows .....................................................20
Integração On-Line com Sharepoint
xii
2.6.5 SSL..........................................................................................20
2.7 Grupo de Administração do Sharepoint...................................... 20
2.8 Grupos de Site..................................................................... 21
2.8.1 Segurança da porta de administração ................................................21
2.8.2 Segurança da ligação SQL Server ......................................................22
2.8.3 Protecção Firewall.......................................................................22
2.9 Funcionalidades................................................................... 22
2.9.1 Listas.......................................................................................23
2.9.2 Bibliotecas ................................................................................24
2.9.3 Quadros de Discussão ...................................................................25
2.9.4 Surveys ....................................................................................25
2.10 Customização de um site SharePoint......................................... 25
2.11 WebParts ........................................................................... 26
2.12 Sharepoint Portal Server (SPS) ................................................ 28
2.12.1 WSS vs SPS .............................................................................30
2.12.2 Requisitos Mínimos ...................................................................31
2.13 Windows Server 2003............................................................ 32
2.13.1 Segurança..............................................................................32
2.13.2 Flexibilidade...........................................................................32
2.13.3 Serviços WEB ..........................................................................33
2.14 Microsoft .NET..................................................................... 33
2.14.1 Framework 1.1 ........................................................................34
2.14.2 Common Language Runtime ........................................................34
2.14.3 CLR Arquitectura .....................................................................35
2.14.4 Bibliotecas .............................................................................35
2.15 Microsoft Visual Studio .NET 2003 ............................................ 36
2.15.1 C# .......................................................................................36
2.16 Microsoft Business Solutions-Navision 4.0................................... 38
2.16.1 Sobre a Microsoft Business Solutions ..............................................42
Integração On-Line com Sharepoint
xiii
2.16.2 Microsoft Business Solutions – Navision Developer’s Toolkit...................42
2.16.3 C/SIDE ..................................................................................43
2.16.4 NAS......................................................................................45
2.17 Microsoft FrontPage 2003 SP1 ................................................. 46
2.18 Microsoft InfoPath 2003 SP1 ................................................... 46
2.19 Web Services ...................................................................... 49
2.19.1 SOAP ....................................................................................50
2.19.2 WSDL....................................................................................51
2.19.2.1 Estrutura de um documento WSDL .............................................51
2.19.3 XML .....................................................................................51
2.19.4 XSL (Etensible Stylesheet Language) ..............................................52
2.19.5 XSD (XML Schema Definition) .......................................................53
2.19.6 XML DOM ...............................................................................53
2.20 Microsoft Message Queuing (MSMQ)........................................... 55
3. Descrição Técnica ..............................................................57
3.1 Desenho da Aplicação ........................................................... 57
3.2 Ligação InfoPath – Web Service................................................ 57
3.3 Ligação Navision – Web Service................................................ 60
3.4 Web Service ....................................................................... 62
3.4.1 Web Methods .............................................................................63
3.4.2 Message Queues ..........................................................................69
3.4.3 Navision ...................................................................................70
3.5 Relatório de Despesas myPartner ............................................. 83
3.6 Web Part EEE (Linha de Encomendas) ....................................... 84
4 Conclusões .......................................................................85
4.1 Objectivos realizados............................................................ 85
4.2 Outros trabalhos realizados .................................................... 85
4.3 Limitações e trabalho futuro................................................... 86
Integração On-Line com Sharepoint
xiv
4.4 Apreciação final................................................................... 86
Bibliografia............................................................................88
ANEXOS.................................................................................89
Anexo 1 – Calendarização do Estágio.................................................. 90
Anexo 2 – Aspecto Básico do WSS ...................................................... 91
Anexo 3 – Site desenvolvido para a EEE .............................................. 92
Anexo 4 – Fórum de Discussão (EEE) .................................................. 93
Anexo 5 – Galeria de Fotos (EEE)....................................................... 94
Anexo 6 – Site desenvolvido para Bulhosa Livreiros ............................... 95
Anexo 7 – Questionários (Surveys) ..................................................... 96
Anexo 8 – Estatísticas de Questionário................................................ 97
Anexo 9 – Desenvolvimento C# para CRM ............................................ 98
Integração On-Line com Sharepoint
xv
Índice de Figuras Figura 1 - Organigrama da Empresa myPartner ...............................................................................6
Figura 2 – Localização da myPartner .................................................................................................7
Figura 3 – Windows Sharepoint Services..........................................................................................11
Figura 4 – Arquitectura do Windows Sharepoint Services(WSS)..................................................12
Figura 5 - Configuração Web Farm ..................................................................................................13
Figura 6 – Diferentes tipos de Bases de Dados ...............................................................................14
Figura 7 – Colecção de sites num servidor virtual .........................................................................15
Figura 8 – Estrutura da Framework .NET ........................................................................................34
Figura 9 – Arquitectura genérica NAS ..............................................................................................45
Figura 10 – Esquema da comunicação entre aplicações................................................................49
Figura 11 – Estrutura do protocolo SOAP ........................................................................................50
Figura 12 – Lógica da tecnologia MSMQ ...........................................................................................55
Figura 13 – Formulário de Encomendas Bulhosa Livreiros ...........................................................58
Figura 14 – Comunicação InfoPath – Web Service ..........................................................................60
Figura 15 - Processo de comunicação entre Navision e web service ..........................................61
Figura 16 – Relatório de Despesas myPartner ................................................................................83
Figura 17 – Webpart de linhas de encomeda (EEE) ......................................................................84
Figura 18 - Calendarização do Estágio.............................................................................................90
Figura 19 - Gráfico de Gantt .............................................................................................................90
Figura 20 - Site base Windows Sharepoint Services ......................................................................91
Figura 21 - Site EEE .............................................................................................................................92
Figura 22 - Fórum de Discussão (EEE) ..............................................................................................93
Figura 23 - Galeria de Fotos EEE ......................................................................................................94
Figura 24 - Site Bulhosa Livreiros.....................................................................................................95
Figura 25 - Questionário Bulhosa......................................................................................................96
Figura 26 - Estatísticas do questionário ..........................................................................................97
Figura 27 - Aplicação desenvolvida para integração em CRM .....................................................98
Integração On-Line com Sharepoint
xvi
Índice de Tabelas Tabela 1 – Comparação entre WSS e SPS .........................................................................................30
Tabela 2 – Requisitos Mínimos ..........................................................................................................31
Tabela 3 – Módulos e secções do Navision.......................................................................................41
Tabela 4 – Utilização da tecnologia XML, pelo InfoPath ..............................................................48
Tabela 5 – Objectos XML DOM ...........................................................................................................54
Integração On-Line com Sharepoint
xvii
Notação e Glossário
WSS Windows Sharepoint Services
SPS Sharepoint Portal Server
STS Sharepoint Team Services
ERP Enterprise Resource Planning
IIS Internet Information Service
XML eXtensible Markup Language
HTML Hypertext Markup Language
SMTP Simple Mail Transfer Protocol
HTTP Hypertext Transfer Protocol
SQL Structured Query Language
MSDN Microsoft Developer Network
SOAP Simple Object Access Protocol
URL Uniform Resource Locator
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 1
1 Introdução
Este documento apresenta um relatório sucinto do trabalho desenvolvido
pelo aluno José Miguel de Bessa Carvalho, enquanto estagiário na empresa
myPartner – Consultoria Informática Lda., no desenvolvimento do estágio
realizado no âmbito da cadeira de Projecto/Estágio do 3º ano do
Bacharelato em Engenharia Informática do Instituto Superior de Engenharia
do Porto, no segundo semestre do ano lectivo de 2004/2005.
1.1. Enquadramento
A realização do estágio envolveu uma análise exaustiva sobre as diferentes
soluções que iriam ser implementadas, pelo que a maior parte do tempo
dispendido durante o mesmo, focou-se na execução da tarefa de análise.
Foram desenvolvidas diversas aplicações, sites, relatórios, entre outros
nomeadamente para a própria empresa myPartner, para a EEE – Empresa de
Equipamento Eléctrico, para a Bulhosa Livreiros.
Para a myPartner, foi desenvolvido um portal que pudesse ser funcional
dentro da própria empresa, funcionando como uma intranet. Relatórios de
despesas a serem preenchidos pelos colaboradores e aprovados pelos
directores, questionários, livrarias de documentos, imagens entre outros.
Para a EEE e para a Bulhosa, foram desenvolvidos portais semelhantes que
pudessem de certa forma mostrar às empresas as funcionalidades e
potencialidades do Sharepoint. Desde toda a gama de templates existentes,
à integração com Navision, para tal desenvolveram-se, para além dos
templates existentes, várias webparts capazes de integrarem o Sharepoint e
serem funcionais em função do pretendido.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 2
1.2 Apresentação do estágio
No decorrer do estágio, foram asseguradas ao Estagiário todas as condições
normalmente disponibilizadas aos funcionários da empresa. Em particular,
foi-lhe concedido um acesso à rede interna da myPartner, com integral
partilha de recursos, o que lhe permitiu ter acesso à Intranet e acesso
ilimitado à Internet. Foi-lhe, também, concedida uma conta de correio
electrónico e todos os programas necessários, que se revelaram essenciais
na evolução do projecto desenvolvido. Adoptando a política interna da
empresa, foi criada uma pasta específica para o projecto, localizada no
servidor da empresa. Foram ainda oferecidos, ao Estagiário, todos os
recursos logísticos indispensáveis à sua ocupação, como acesso a
impressoras, consumíveis de escritório e posto físico de trabalho. Todas
estas facilidades contribuíram de forma significante para a rápida
integração no ambiente de trabalho.
O estágio foi desenvolvido utilizando várias ferramentas, algumas
desconhecidas à partida pelo Estagiário como é o caso do próprio “Microsoft
Windows Sharepoint” e do “Microsoft Virtual PC 2004”. A análise da
tecnologia foi sem dúvida o ponto fulcral do estágio, tornando-se numa
grande componente didáctica, tendo sido necessário despender de bastante
tempo para a realização do trabalho de pesquisa e de investigação,
permitindo, assim, aprofundar os conhecimentos.
Na comunicação com o gestor do projecto (supervisor da myPartner) foi
utilizado o Microsoft Project 2003, onde desde o início do Projecto, foi
delineado um Planeamento com etapas muito minuciosas e com prazos
devidamente estipulados.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 3
1.3 Tecnologias utilizadas
Microsoft Windows Sharepoint Services
Microsoft Windows Server 2003
Microsoft Virtual PC 2004
Microsoft SQL SERVER 2000
Navision 4.0
Microsoft Business Solutions Navision 4.0
WebServices XML desenvolvidos no Microsoft Visual
Studio .NET 2003
Microsoft Office 2003
Microsoft Visual Studio .NET 2003
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 4
1.4 Apresentação da Empresa
O Projecto Empresarial da myPartner:
A myPartner – Consultoria Informática está vocacionada para a oferta de
soluções globais de sistemas de informação, com foco em soluções de
software de gestão. A missão da empresa centra-se no sistema de
informação como factor diferenciador do negócio das empresas e em dotar
os gestores de meios que reforcem o conhecimento e a capacidade de
decisão.
A myPartner tem para oferecer:
• Soluções Software Gestão (ERM Navision)
o Soluções de Parceiros;
o Soluções Verticais;
o Soluções de Mobilidade;
o Business Intelligence (Cognos);
• Serviços de Consultoria
o Consultoria de gestão e de negócio (Melhoria de processos,
Aumento de eficiência e Redução de custos);
o Serviços de implementação e desenvolvimento de soluções
software de gestão (Formação, Implementação, Suporte
continuado e Desenvolvimento aplicacional);
o Desenho de projectos de sistemas de informação (Elaboração
de cadernos de encargos, apoio à selecção de soluções e
avaliação de ROI dos Investimentos);
o Outsourcing (Global ou parcial, Gestão operacional e Gestão
Estratégica);
• Tecnologias de Sistemas de Informação
o Redes e infra-estruturas locais e alargadas;
o Equipamento de Micro-Informática;
o Armazenamento de dados e backup & recovery;
o Soluções de Segurança;
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 5
• Serviços de Tecnologias de Sistemas de Informação
o Serviços de instalação e configurações de tecnologias e infra-
estruturas informáticas (Instalação e configuração de soluções
e Formação na utilização de tecnologias);
o Desenho de projectos de sistemas de informação (Diagnóstico
de infra-estruturas tecnológicas, Recomendações e Desenho de
soluções);
o Outsourcing (Global ou parcial, Gestão operacional e Gestão
Táctica);
Ao nível das soluções de gestão, o principal parceiro é a Microsoft. A
myPartner desenvolveu competências para a implementação do ERP
Navision e para a implementação do MS CRM, como solução de gestão de
relacionamento com clientes, baseada em Outlook. Da mesma forma, tem
disponível uma solução de Mobilidade para ERP Mobile, 100% integrada com
o ERP Navision e com o Outlook.
Ao nível da informação de gestão, e no sentido de levar as soluções ao maior
número possível de empresas, a myPartner tem como escolha preferencial
as soluções da Cognos, para a qual há um importante apoio da Sinfic, que
representa a Cognos em Portugal.
Tem também algumas parcerias especializadas, orientadas para mercados
verticais ou nichos de mercado, complementando a oferta com soluções e
capacidade de implementação amplamente comprovadas. Por exemplo,
para a área de recursos humanos, para a indústria têxtil, para redes de lojas
de retalho ou restauração que necessitem de soluções de front-office e
backoffice integradas.
Na área das tecnologias os principais parceiros são a HP e a IBM, assim como
a Microsoft.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 6
O mais recente parceiro, a Sybari, é o líder do mercado de fornecimento de
soluções inovadoras contra as ameaças de vírus e para a segurança dos
programas de utilização em rede. Esta parceria é fruto da procura constante
de soluções tecnológicas com valor acrescentado adequadas às necessidades
dos clientes.
1.4.1 Organigrama:
Figura 1 - Organigrama da Empresa myPartner
Eduardo NogueiraMarketing & Vendas
Tecnologias SI
Carlos GonçalvesSoluções e Serviços
Soluções Empresariais (16 colaboradores)
Consultoria de Aplicações
Tecnologias de SI( 3 colaboradores)
Gestão Executiva
Projectos de TSI
Serviços de Suporte
Marketing & Vendas(4 colaboradores)
Marketing
Soluções Empresariais Serviços de Suporte
Tecnologias de SI
Área Técnica e de Desenvolvimento
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 7
1.4.2 Localização da myPartner:
Figura 2 – Localização da myPartner
1.5 Contributos deste trabalho
A característica primordial do projecto desenvolvido, foi o facto de este se
tratar do estudo de uma aplicação recente, com vista a ser implementada
na empresa e nos seus clientes. Este tipo de aplicações começa a ganhar
cada vez mais destaque no nosso quotidiano.
Este projecto vai ser posteriormente integrado totalmente na empresa,
permitindo uma facilidade na consulta de diferentes tipos de relatórios,
contactos da empresa, relatórios de despesas, questionários a funcionários,
entre outras funcionalidades, em qualquer lugar e a qualquer momento,
satisfazendo de uma forma mais rápida e eficiente os funcionários e clientes
da empresa.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 8
1.6 Organização do relatório
No primeiro capítulo será feita uma apresentação do trabalho, o seu
enquadramento, onde foi realizado, os contributos e as tecnologias
utilizadas.
No segundo capítulo será descrito o trabalho realizado, o estudo e
desenvolvimento das aplicações. Para cada aplicação será feita uma análise
dos objectivos e seguidamente descrito o seu desenvolvimento.
Da análise constará a informação essencial para a compreensão do projecto
e das aplicações. Conterá ainda toda a informação relevante reunida até a
altura como as diferentes tecnologias usadas, o porquê da sua escolha e a
sua implementação.
Na descrição do desenvolvimento serão mencionadas as principais
funcionalidades das aplicações e como foram implementadas. As figuras que
mostram o interface gráfico com o utilizador permitirão ao leitor ficar com
uma ideia das aplicações e do seu funcionamento.
No terceiro capítulo será feita uma conclusão final que tentará reflectir o
balanço do estágio. Haverá lugar a uma lista de possíveis melhoramentos e
alterações ás aplicações a serem realizadas no futuro. Ainda neste capítulo
será mencionado o trabalho realizado na empresa que não tenha estado
directamente ligado ao projecto.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 9
2 Contexto
No actual mundo empresarial, é essencial existir uma forma eficiente de
partilhar o conhecimento, colaborar e coordenar.
A ferramenta Sharepoint da Microsoft disponibiliza, sob a forma uma
plataforma de última geração para uma intranet/extranet, um sistema que
potencia a inter conectividade, as equipas e o conhecimento de uma
maneira intuitiva e altamente eficiente.
2.1 O que é o Sharepoint?
A oferta Sharepoint, é composta por duas aplicações (Windows Sharepoint
Services e Sharepoint Portal Server) que permitem às organizações a
implementação de ferramentas de colaboração e a partilha de informação.
É desde já indispensável, fazer uma pequena distinção entre os dois
diferentes tipos do dito Sharepoint, Sharepoint Portal Server e Windows
Sharepoint Services.
2.2 História do Sharepoint
Organizar e gerir, informação e actividades, são questões com que todas as
empresas se deparam. Na tentativa de satisfazer as necessidades de um
pequeno departamento, um grupo dentro da Microsoft criou um portal que
satisfizesse estes problemas. Visto que os criadores deste produto eram
responsáveis pelo Office, este foi construído com base em FrontPage Server
Extensions1.
1 FrontPage Server Extensions - Conjunto de programas e scripts que suportam o FrontPage e extendem a funcionalidade do servidor Web.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 10
Esta aplicação tornava a criação de sites locais mais rápida, menos custosa e
mais fácil de manter. Este produto mais tarde denominou-se Sharepoint
Team Services (STS), foi desenvolvido usando extensões, de proprietário,
ISAPI2. Devido a um conjunto limitado de ferramentas, customizar e
extender STS sites tornava-se difícil.
O Windows Sharepoint Services é uma versão aperfeiçoada desta primeira
versão, que foi construído tendo como base a framework .NET. Isto permitiu
ter uma melhor extensibilidade e customizabilidade, devido ao facto de ser
possível criar Web Parts3 utilizando o Visual Studio .NET, com as linguagens
C# ou Visual Basic, e poder, criar novos sites com as mesmas.
Outro problema resolvido na nova versão do Sharepoint foi a escalabilidade,
podendo assim ter um ambiente (Web Farm) que suporta vários utilizadores
e vários sites Web.
Curiosamente o WSS é incompatível com as FrontPage Server Extensions.
2 Internet Server API – API usada no IIS, aplicações desenvolvidas usando ISAPI são mais rápidas do que as desenvolvidas usando CGI, pois tira melhor partido de apontadores de memória e não precisa de ser reiniciada para processar novos pedidos de dados. 3 WebPart - Unidade de informação modular consituída por uma barra de título, uma frame e conteúdo. Web Parts são as fundações de uma página de Web Parts. Todo o site Sharepoint é constituído por estas Web Parts. Uma Web Part é a combinação de um ficheiro de descrição (.dwp) e um ficheiro assembly (.dll), sendo todas as Web Parts baseadas em Web Custom Controls.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 11
2.3 Windows Sharepoint Services (WSS)
O WSS permite criar sites próprios de colaboração para centralizar e
partilhar documentos.
Figura 3 – Windows Sharepoint Services
Para tal, fornece os componentes necessários para a elaboração de sites em
equipa intranets/extranets dedicados à partilha de informações e de
documentos, e enriquece também as aplicações de serviço (entre outras)
facilitando o trabalho em grupo.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 12
2.4 Arquitectura
O WSS faz parte do sistema operativo Windows Server 2003, e fornece uma
framework para a construção de sites, de uma forma relativamente simples,
que possibilitam a partilha de documentos e informação entre equipas,
departamentos e organizações. O WSS tem total integração com o Microsoft
Office 2003, sendo assim possível guardar, editar e criar qualquer
documento Office 2003 a partir de um site Sharepoint.
A framework do WSS está construída em cima do Windows Server 2003, do
IIS4 6.0 e do ASP.NET. A figura 3 mostra a forma como os componentes da
framework do Windows Sharepoint Services, se encadeiam.
Figura 4 – Arquitectura do Windows Sharepoint Services(WSS)
Ao contrário do Sharepoint Team Services, cuja arquitectura era baseada em
servidores Web de estado, no Windows Sharepoint Services toda a
informação de um site Web é armazenada numa base de dados em Microsoft
SQL Server. Desta forma é possível fazer a distribuição de servidores Web
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 13
WSS, havendo assim uma expansão eficiente num ambiente de Web Farm e
resolvendo o problema de escalabilidade do STS.
Figura 5 - Configuração Web Farm
Existem dois tipos de base de dados usados pelo Windows Sharepoint
Services. Uma base de dados de configuração, única para cada distribuição,
que contém toda a informação de configuração para cada servidor Web
físico, servidor virtual IIS e site WSS, e outra base de dados, de conteúdo,
que armazena todos os dados relativos a sites WSS.
A constituição de uma base de dados de distribuição pode variar entre, um
único servidor a correr os componentes do servidor Web WSS e o SQL Server
com ambas as bases de dados, e um cenário de Web Farm com múltiplos
servidores Web e/ou múltiplos servidores de bases de dados.
4 IIS - Internet Information Server – servidor Web usado pela família de sistemas operativos servidores da Microsoft.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 14
Figura 6 – Diferentes tipos de Bases de Dados
Por defeito o WSS usa a conta NT AUTHORITY\NETWORK SERVICE para correr
aplicações IIS. É necessário conceder permissões a esta conta de modo a
poder criar e configurar bases de dados no SQL Server, caso contrário irão
verificar-se erros na instalação e configuração do WSS.
No interior de um servidor virtual é possível a criação de colecções de sites,
que não passam de um conjunto de sites cujo proprietário é o mesmo. Como
o conteúdo e configuração dos sites Sharepoint são armazenados em bases
de dados em SQL Server, as colecções de sites podem ser usadas como
unidades de backup e restauração do sistema, sendo assim possível restaurar
ou distribuir colecções de sites, no mesmo servidor Web ou em servidores
diferentes.
Uma colecção é constituída por um site de alto nível, que é criado
automaticamente, cujo URL é o mesmo que a própria colecção. Esta pode
conter outros sites secundários, que se relacionam com o primeiro de uma
forma pai-filho, como é possível ver na figura 5. Todos os sites de uma
colecção são armazenados na mesma base de dados.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 15
Figura 7 – Colecção de sites num servidor virtual
O objectivo fundamental de um site é ser um contentor de informação. No
WSS esta informação é armazenada em forma de listas, bibliotecas de
documentos e sites filho. Esta informação pode ser restringida ou
disponibilizada a um conjunto, configurável, de utilizadores. Estas
configurações podem ser herdadas de um site pai, ou podem ser únicas para
cada site. Cada utilizador de um site utiliza uma conta Windows definida no
domínio da Active Directory5, numa base de dados de contas local. Existe
um conjunto de grupos e permissões que definem o nível de acessibilidade
de cada utilizador a listas ou bibliotecas de documentos de um site.
Ao nível do interface é possível, de acordo com o nível de permissões do
utilizador, alterar o aspecto e estrutura de navegação usando o browser ou
o FrontPage 2003. Os proprietários ou Web designers, podem customizar um
site adicionando ou removendo Web Parts. Programadores podem também
criar novas Web Parts, usando o Visual Studio .NET 2003, de modo a
extender as potencialidades do Sharepoint, sendo estas Web Parts guardadas
na base de dados de conteúdo.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 16
Em cada site, o WSS suporta a criação de 3 tipos diferentes de páginas Web:
• Basic Page – cria uma nova página simples com a capacidade de
adicionar texto, imagens e tabelas, usando o browser;
• Web Part Page – cria uma página Web Part que possibilita ter uma ou
mais Web Parts na mesma página;
• Sites and Workspaces – cria um site ou workspace filho sob o site
inicial. As permissões podem ser herdadas do site pai ou podem ser
únicas. Existem vários templates para criação destes sites:
o Team Site – cria um site que inclui uma biblioteca de
documentos, e listas do tipo Announcements, Events, Contacts,
Links, e correspondentes hyperlinks de acesso.
o Blank Site – cria um site em branco.
o Document Workspace – este template providencia uma
biblioteca de documentos, uma lista do tipo Task e uma lista
do tipo Links.
o Basic Meeting Workspace – contém uma biblioteca de
documentos e listas do tipo Objectives, Attendees e Agenda.
o Blank Meeting Wrokspace – cria um espaço em branco.
o Decision Meeting Workspace – contém o mesmo conteúdo que
uma Basic Meeting Workspace com a adição da lista Decisions.
o Social Meeting Workspace – cria um espaço onde é possível
encontrar listas do tipo Attendees, Directions, Things To Bring,
tal como uma biblioteca de imagens e uma Web Part que
contém uma imagem ou logotipo da empresa.
o Multipage Meeting Workspace – este template é baseado no
template Basic Meeting Workspace, podendo-se no entanto ter
mais duas páginas de reunião para customização.
A nível técnico um workspace é um site normal, no entanto tem um
objectivo mais focado em reuniões. Embora a reunião em si seja conduzida
5Active Directory – Base de dados que armazena informação sobre utilizadores, grupos, passwords, segurança, entre outros, em plataformas Windows Server 2000 ou Windows
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 17
por pessoa, telefone, ou através de um programa de conferência via
Internet, numa Meeting Workspace é possível acompanhar o progresso da
reunião, visualizar objectivos, documentos necessários para a reunião,
conceder permissões a utilizadores para participarem, podendo também,
funcionar como um registo completo de uma reunião para futura referência.
Visto estes sites terem capacidade para ser completamente alterados, é
possível criar templates a partir de um site.
2.5 IIS 6.0
O IIS é um servidor Web que suporta páginas ASP, Web Services XML, ISAPI e
tecnologias ASP.NET. Na sua instalação é criado um Web site IIS (Default
Web Site), que se encontra à escuta de pedidos HTTP na porta 80, é possível
modificar as portas de escuta, nomes de sites e criar novos sites. É neste
ponto que começa a configuração de um site WSS, podendo-se assim definir
que utilizadores têm acesso aos sites, tempo de time out, formato de
logging, endereço IP, entre outras funcionalidades encontradas em
programas de servidor Web.
Cada site IIS é visto pelo Sharepoint como um servidor virtual. Para que um
site WSS possa correr é necessário extender, com WSS, o servidor virtual
correspondente, sendo também possível extender o WSS para outro servidor
virtual, usando o site de administração, (Sharepoint Central Administration).
Ao contrário do ASP.NET o WSS não cria um directório virtual IIS para cada
site, em vez disso, é criada uma nova entrada na base de dados de
configuração e na base de dados de conteúdo apropriada. Desta forma o IIS
não necessita de saber se uma extensão WSS contém um ou mais sites,
obtendo-se assim uma melhor escalabilidade e manutenção.
Existe a possibilidade de se querer correr sites WSS e aplicações ASP e
ASP.NET no mesmo servidor virtual. O WSS torna isto possível usando um
filtro ISAPI que, intercepta cada pedido enviado para o servidor virtual onde
Server 2003.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 18
se encontram o(s) site(s), e após a inspecção do URL do pedido e a base de
dados de configuração, determina quem deverá processar o pedido, se o
WSS ou o IIS. Estes URLs são especificados nas configurações de servidores
virtuais (managed paths), se os URLs se encontrarem nos caminhos incluídos
(included paths) são processados pelo WSS, caso se encontrem nos caminhos
excluídos (excluded paths) são processados pelo IIS.
Ao ser extendido num servidor virtual, o Windows Sharepoint Services
adiciona um ficheiro de configuração, web.config, ao directório raíz do
servidor virtual anfitrião. Este ficheiro proporciona opções de configuração
para todas as aplicações ASP.NET e sites WSS, podendo-se assim definir o
nível de segurança usado para correr o código das aplicações.
2.6 Segurança
Ao ser criado um novo site, é possível atribuir diferentes permissões por
utilizador, podendo-se notificar cada utilizador, via e-mail, dos seus novos
direitos. Num mesmo site, cada biblioteca de documentos, lista, quadros de
discussão ou surveys podem conter permissões diferentes.
Existem quatro tipos diferentes permissões possíveis:
• Reader – tem apenas acesso de leitura;
• Contributor – pode adicionar conteúdo a bibliotecas de documentos e
listas;
• Web Designer – pode criar listas e bibliotecas, e customizar páginas
Web no site;
• Administrator – tem controlo completo do site.
No WSS o acesso a sites é controlado através de um sistema de membros,
pelo qual cada utilizador é, directa ou indirectamente, associado com uma
permissão que controla as acções específicas que este pode efectuar. Este
controlo é feito através de autenticação de utilizadores, grupo de
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 19
administradores do Sharepoint, grupos de sites, segurança da porta de
administração, segurança de ligação de SQL Server e protecção da Firewall.
2.6.1 Autenticação de utilizador
A autenticação para o Windows Sharepoint Services é baseada nos métodos
de autenticação do IIS. Existem quatro tipos de autenticação, autenticação
anónima, básica, Windows ou SSL. A escolha do método é feita no próprio
IIS, não podendo ser alterada pelas ferramentas de administração do
Sharepoint.
2.6.2 Autenticação Anónima
Este tipo de autenticação providencia acesso a utilizadores que não tenham
contas Windows NT server no servidor, como é o caso de visitantes Web. O
IIS cria uma conta anónima denominada IUSR_nomecomputador, e ao
receber um pedido anónimo, personifica uma conta anónima. O acesso
anónimo pode ser configurado para um servidor virtual em particular ou
para um site situado neste. Para um site Sharepoint permitir acesso anónimo
é necessário primeiro configurar o IIS para permitir este tipo de acesso, e
posteriormente configurar o próprio site no Sharepoint.
2.6.3 Autenticação Básica
A autenticação básica é um protocolo de autenticação suportado pela
maioria dos browsers e servidores Web. Embora transmita utilizadores e
passwords em texto facilmente descodificado, tem algumas vantagens em
relação a métodos mais seguros pelo facto de, funcionar através de uma
firewall de um servidor proxy e assegurar que o site é acessível pela maioria
dos browsers. A combinação da autenticação básica com autenticação SSL,
pode no entanto ajudar a tornar a informação do utilizador mais segura.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 20
2.6.4 Autenticação Integrada Windows
Este método é mais seguro do que a autenticação básica devido ao facto de
encriptar, utilizadores e passwords, numa interacção de múltiplas
transacções entre cliente e servidor. No entanto, não é efectuado através
de uma firewall do servidor proxy e alguns browsers não suportam este tipo
de autenticação. Existe também a possibilidade de utilizar esta
autenticação em combinação com a autenticação básica, deixando a escolha
da autenticação a cabo do browser.
2.6.5 SSL
A Security Sockets Layer fornece privacidade de comunicações, autenticação
e integridade de mensagens para uma ligação TCP/IP. Desta forma clientes
e servidores podem comunicar de modo a prevenir a alteração, visualização
e acesso a mensagens. Este tipo de autenticação proporciona uma maior
segurança na administração do Windows Sharepoint Services.
2.7 Grupo de Administração do Sharepoint
É necessário pertencer-se ao grupo da Domain ADMINS ou ADMINISTRATORS
caso o servidor se encontre num domínio, para se poder instalar o Windows
Sharepoint Server. Este grupo concede permissões aos seus membros, para
poderem controlar as páginas de Administração Central do Sharepoint e a
ferramenta, de linha de comandos, de administração stsadmn.exe. Para
além dos administradores locais, é possível identificar um grupo de domínio
específico que tenha permissões para aceder à área administrativa do WSS.
Assim sendo separam-se os utilizadores que têm acesso administrativo ao
WSS dos que têm acesso administrativo ao servidor local. Os membros do
grupo de administração do Sharepoint embora tenham nível administrativo
no Sharepoint não podem extender servidores virtuais, gerir caminhos,
modificar grupos de administração do Sharepoint, mudar configurações das
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 21
bases de dados ou usar a ferramenta stsadmn.exe. Em contrapartida os
administradores locais não têm quaisquer restrições administrativas.
2.8 Grupos de Site
Os grupos de site são usados para agrupar utilizadores com permissões
idênticas, a um site. A gestão dos utilizadores é delegada dos
administradores do servidor para os administradores e proprietários do site
em questão. Os administradores de um site controlam os direitos e acesso a
este, e podem modificar os membros de um determinado grupo do site.
Os proprietários, principais e secundários, podem ser membros do grupo de
administração do site deles, no entanto são identificados separadamente na
base de dados de configuração como proprietários duma colecção de sites.
Este estatuto pode ser alterado usando ou site de Administração Central, ou
usando a ferramenta stsadmn.exe, no entanto se um proprietário for
removido do grupo de administração de um site, o proprietário continua a
poder efectuar tarefas de administrador no site, pois como utilizador isolado
continua a ter direitos de administração.
2.8.1 Segurança da porta de administração
No caso de um utilizador obter acesso à porta de administração, esse
utilizador pode bloquear outros utilizadores de acederem aos sites deles,
mudar ou apagar conteúdo desses sites ou até mesmo incapacitar o servidor
Web. Na instalação do WSS esta porta é gerada aleatoriamente. Como esta
medida não é suficiente para proteger o acesso, existem outros métodos de
segurança, como é o caso de:
• SSL;
• Firewall ou IIS para restringir o acesso externo de certos domínios;
• Grupo de administradores do Sharepoint de modo a restringir acesso
interno;
• Autenticação Windows no lugar da autenticação básica;
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 22
• Impossibilitar o acesso anónimo.
2.8.2 Segurança da ligação SQL Server
Existem dois tipos de métodos de segurança para a interacção entre o SQL
Server e o WSS:
• Autenticação integrada Windows NT – este método é o mais seguro
dos dois e é o colocado por defeito durante a instalação do WSS. A
ligação ao SQL Server é estabelecida através de uma application pool6
do IIS que é guardada na base de metadados do IIS;
• Autenticação SQL Server – utiliza as credenciais estabelecidas nos
controlos administrativos do WSS para estabelecer a ligação com o
SQL Server. Como a password de administração é enviada pela rede é
recomendado usar a autenticação Windows.
2.8.3 Protecção Firewall
O WSS suporta a ligação através de firewalls, sendo necessário que as portas
80 e 443 estejam abertas. Visto que a autenticação Windows não pode ser
usada juntamente com uma firewall, é necessário utilizar a autenticação
básica.
2.9 Funcionalidades
Para além da integração com o Microsoft Office 2003, o WSS disponibiliza
bibliotecas de documentos e listas, possibilidade de efectuar check-
out/check-in de documentos, criar versões do mesmo documento, alertar
utilizadores sobre acções efectuadas numa biblioteca, definir quotas de
site, bloquear determinados ficheiros e integrar com um sistema de instant
messaging caso esteja instalado no sistema o Microsoft Office Live Meeting.
6 Application pool - Grupo de URLs servidos por um processo
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 23
As listas, bibliotecas de documentos e discussões são algumas das Web Parts
que se encontram de raiz no Windows Sharepoint Services, sendo estas Web
Parts a base de um site WSS.
2.9.1 Listas
Existem vários tipos de listas definidas de base, sendo possível customizar
estas listas, tal como criá-las, importá-las ou exportá-las, baseadas em
folhas de cálculo do Microsoft Excel 2003. Quaisquer alterações no Excel
resultam na actualização da lista original no site Sharepoint.
As listas comuns aos Team sites e aos Workspaces são:
• Announcements – lista de anúncios que possibilita a disponibilização
de informação a uma equipe;
• Contacts – lista de contactos que armazena informação como nome
número de telephone, e-mail, morada. Esta lista oferece a
possibilidade de importar os contactos existentes no Office Outlook
2003, tal como adicionar uma nova pasta de contactos neste;
• Events – a lista de eventos permite definir uma agenda de
acontecimentos, onde é possível guardar datas importantes como
reuniões e prazos. Tal como a lista de contactos é possível
estabelecer uma ligação com o Outlook 2003. Contém duas vistas,
uma de lista e outra de calendário;
• Links – lista que possibilita adicionar hyperlinks;
• Tasks – esta lista possibilita definir tarefas a cumprir, podendo
configurar a prioridade e estado das tarefas;
• Issues – permite a gestão de problemas ou questões, podendo-se
assim atribuir, priorizar um problema assim como monitorizar o seu
estado, desde o seu inicio até ao seu fim;
As seguintes listas encontram-se acessíveis apenas aos Meetings Workspaces:
• Agenda – lista que identifica os tópicos que necessitam de ser vistos,
quem serão os supervisores de cada tópico e a hora de marcação da
reunião;
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 24
• Decisions – permite, aos utilizadores, acompanhar as decisões
resultantes de uma reunião. Caso haja discrepâncias, os utilizadores
podem rever as decisões e actualizá-las conformemente;
• Objectives – disponibiliza uma área com o propósito de listar os
objectivos de uma reunião;
• Text Box – possibilita a adição de um bloco de texto num site
workspace, podendo-se alterar o texto com funcionalidades básicas
de um processador de texto;
• Things To Bring – lista de objectos a levar para um reunião;
2.9.2 Bibliotecas
O WSS possibilita a criação de colecções de ficheiros, podendo estes ser
documentos, imagens ou formulários. Uma biblioteca lista para cada
ficheiro, propriedades e um hyperlink para o ficheiro, podendo desta forma,
caso se tenha o Microsoft Office 2003, abrir o ficheiro, no programa
referente ao template7 da biblioteca.
Uma biblioteca de documentos permite conter todo o tipo de documentos,
podendo no entanto definir-se um template de modo a, ao criar um novo
documento via Sharepoint, o programa usado pelo template abrir-se-á,
podendo-se posteriormente guardar o ficheiro para esta mesma biblioteca. É
também possível guardar vistas, listas e bibliotecas em documentos, se
estes forem guardados como páginas Web. Os templates pré-definidos são
de documentos Word, FrontPage, Excel, PowerPoint, página Web ou página
de Web Parts.
Criando uma biblioteca de imagens é possível visualizar uma galeria de
imagens, onde pode conter uma pequena descrição dessa imagem. Existem
várias vistas para esta biblioteca nomeadamente Details, Thumbnails e
FilmStrip, podendo-se também visualizar as imagens como slideshow, enviá-
las por e-mail e editá-las.
7 Template - Modelo de ficheiro que define um padrão. Todos os ficheiros criados pelo mesmo modelo, partilham características idênticas.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 25
Uma biblioteca de formulários é idêntica a uma biblioteca de documentos
com a excepção de usar o Microsoft Office InfoPath 2003, para criação de
formulários.
2.9.3 Quadros de Discussão
Os Quadros de Discussão possibilitam a criação de fóruns, com vista tipo
newsgroups, de conversação. Contém funcionalidades de gestão de threads
nomeadamente quem pode editar ou visualizar certos posts, e se um
determinado post foi aprovado para visualização.
2.9.4 Surveys
A Web Part Surveys permite a construção de questionários. Estes
questionários podem conter respostas do tipo escolha múltipla, matriz de
escolha, escrita, números, informação contida no site e resposta de sim ou
não. Caso seja resposta de escolha existe a possibilidade de definir se é
obrigatório responder, se as opções são vistas como checkboxes,
radiobuttons ou drop-down menus, se é permitido fill-in de respostas e se
contém valores pré-definidos. De acordo com as respostas dadas é criado um
gráfico automaticamente e é possível definir se é possível um utilizador
visualizar só as suas respostas, nenhuma ou todas.
2.10 Customização de um site SharePoint
Existem várias formas de customizar um site Sharepoint. Pode-se efectuar
esta operação utilizando o browser ou o Microsoft Office FrontPage 2003,
que proporciona mais opções.
Usando o browser pode-se aplicar temas, criar vistas de informação e
adicionar, mover ou remover Web Parts numa página.
No caso da utilização do FrontPage na customização de um site, as
possibilidades extendem-se. Para além de se dispor das mesmas capacidades
que o browser disponibiliza para customização de um site, existe também a
possibilidade de modificar o layout, estrutura e conteúdo de um site da
mesma forma que a um site HTML normal, e de criar Web Parts.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 26
2.11 WebParts
Ao inluir Web Parts e páginas Web Part o WSS disponibiliza uma infra-
estrutura de geração de interfaces de utilizador (UI). Uma Web Part é um
controlo ASP.NET que tem como objectivo expor informação. Estas são
inseridas em zonas Web Part que por sua vez se encontram em páginas Web
Part. Uma zona Web Part é um contentor para agrupar, organizar Web Parts
e providenciar um conjunto de propriedades de configuração das Web Parts.
Por sua vez uma página Web Part armazena zonas Web Part de modo a criar
portais de informação dinâmica.
Web Parts podem ser adicionadas, movidas ou removidas, directamente no
browser e preenchidas por outras Web Parts. É possível assim, usando os
templates existentes no WSS, construir aplicações Web dinâmicas sem ter de
escrever código.
As Web Parts disponíveis no Windows Sharepoint Services incluem:
• Content Editor Web Part – expõe conteúdo Web não estruturado
como por exemplo texto ou imagens;
• Image Web Part – expõe imagens;
• Form Web Part – permite aos utilizadores adicionar formuários HTML;
• Members – lista os membros de um determinado site e o seu estado,
se se encontram online ou offline;
• Page Viewer Web Part – expõe conteúdo ligado como por exemplo
ficheiros, pastas ou páginas Web. Esste conteúdo encontra-se isolado
do restante encontrado na página Web Part;
• XML Web Part – utilizado para expor XML e transformações XSL;
• E as Web Parts referidas no ponto Características;
Existem quatro tipos de galerias de Web Parts:
• Web Part Page Gallery – galeria que disponibiliza Web Parts
específicas de uma página Web Part, mas que são encontram
inactivas. O fecho de uma Web Part numa página, move essa Web
Part para esta galeria;
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 27
• Site Collecion Web Part Gallery – galeria central da colecção de sites.
Contém as Web Parts encontradas no site, juntamente com as cinco
primeiras Web Part referidas acima;
• Virtual Server Web Part Gallery – galeria central de todos os sites
num servidor. É nesta galeria que são disponibilizadas Web Parts
customizadas.
• Online Web Part Gallery – armazena o conjunto de Web Parts que se
encontram disponíveis num serviço Web. Deste modo vários
servidores podem partilhar acesso a uma colecção de Web Parts.
Existem duas formas de customizar Web Parts, utilizando o FrontPage 2003
ou utilizando o Visual Studio .NET 2003.
A utilização do FrontPage torna o processo mais simples pois este já contém
templates e funcionalidades de criação de Web Parts semelhantes à
construção de uma página HTML. O FrontPage utiliza XML e XSLT para criar
sites que possibilitam a busca de informação de base de dados, documentos
XML, Web Services, listas Sharepoint ou mesmo scripts do servidor. Embora
isto possa ser feito do modo gráfico, existe também um modo de código que
possibilita a alteração do código gerado. Um problema da utilização do
FrontPage é o facto de todo o código ser declarativo, podendo ser visto por
qualquer utilizador que tenha acesso ao site.
Utilizando o Visual Studio .NET perde-se um pouco a simplicidade de
implementação, visto a componente gráfica de um site ter de ser toda
programada. No entanto ganha-se em extensibilidade, podendo-se utilizar
todo o poder da plataforma .NET.
No caso da utilização do Visual Studio .NET para criação de Web Parts é
necessário registar as Web Parts como seguras de modo ao Sharepoint poder
utilizá-las. Para tal é necessário instalá-las na GAC8.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 28
2.12 Sharepoint Portal Server (SPS)
O Sharepoint Portal Server, baseado na “Microsoft Digital Dashboard
Framework”, fornece ferramentas, fáceis de utilizar e manter, para criação
de portais corporativos e integração de gestão e pesquisa documental.
O SPS extende as capacidades do Windows Sharepoint Services. O SPS tem o
objectivo de agregar sites WSS, informação e aplicações num único portal. É
construído no topo da camada do WSS e ao ser construído um novo site SPS,
na realidade está a ser construída um nova colecção de sites WSS. No
entanto o SPS utiliza o WSS duma forma restritiva. O SPS cria um novo site
pai numa colecção nova, mas ao ser criado um novo site pessoal, por um
utilizador, o SPS cria também um novo site pai numa colecção nova. Esta
estratégia facilita o backup e restauro de sites pessoais e partilhados.
O SPS introduz ao WSS áreas, listagens. Estas são usadas pelos gestores de
sites portal com vista a agregar informação de outros locais. Uma área é um
contentor de listagens e sub-áreas, As listagens contêm links para conteúdo
fora do portal como documentos, páginas Web ou listas WSS localizadas na
rede, funcionando assim como ligações entre utilizadores e informação fora
do portal.
O SharePoint Portal Server 2003 também permite que os utilizadores
encontrem, de forma rápida, informações relevantes por meio da
individualização e personalização do conteúdo e do layout do portal, bem
como pela definição do público-alvo. A definição de um público-alvo tem
como objectivo informar e actualizar indivíduos com base na sua função
organizacional, participação na equipa, interesse, grupo de segurança ou
qualquer outro critério de participação que pode ser definido com o uso de
notificações ou de Web Parts.
Esta solução acenta numa estrutura de pastas e subpastas web para
armazenamento de informação, definida com base nos conteúdos dos
documentos, controlo de acessos e critérios de publicação.
8 GAC - (Global Assembly Cache) Área de memória reservada para o armazenamento dos
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 29
Paralelamente, cada documento é classificado por categorias, ficando
associado a uma estrutura “virtual de armazenamento” – estrutura de
categorias e subcategorias – definidas com base nas características dos
conteúdos dos documentos.
Cada documento fica assim associado a duas estruturas que permitem, por
um lado, a fácil introdução e manutenção de documentos, através de uma
estrutura lógica de pastas, virada para o Autor de informação e por outro, a
fácil pesquisa através da navegação por uma estrutura lógica de categorias,
virada para o Leitor.
Para além da estrutura de categorias, referida anteriormente, esta solução
da Microsoft, apresenta ainda um eficiente motor de pesquisa, que tem em
linha de conta todos os campos associados a cada documento, apresentando
os resultados por ordem de importância. Em cada pesquisa são analisados, o
nome do ficheiro, as propriedades associadas através do Perfil do
Documento, as categorias e o conteúdo dos documentos.
Outra das funcionalidades de extrema relevância na procura de informação
prende-se com a possibilidade de subscrever documentos, pastas, categorias
ou resultados de pesquisa. Desta forma cada utilizador poderá ser notificado
não só de alterações de informação existente como da existência de novos
documentos que correspondam aos seus critérios de subscrição.
Enquanto portal de informação, permite ainda navegar de uma forma
intuitiva por informação de interesse geral da Empresa, bem como executar
toda a gestão documental em ambiente amigável.
O Portal, composto por Web Parts personalizáveis, permite sem grandes
exigências técnicas ao nível do desenvolvimento, criar componentes no
sentido de facilitar a disseminação e pesquisa de informação, como são
exemplos as janelas sobre bases de dados ou a colocação directa de
relatórios ou folhetos.
assemblies utilizados por aplicações .NET.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 30
2.12.1 WSS vs SPS
O seguinte quadro ilustra as principais diferenças existentes entre o WSS e o
SPS.
Funcionalidades Windows
SharePoint
Services
SharePoint
Portal Server
2003
Alertas
Customização de um site no browser Quadros de discussão Bibliotecas de documentos Document Workspace Meeting Workspace Listas Integração com BizTalk
Integração com Microsoft FrontPage 2003 Integração com Microsoft InfoPath 2003 Surveys (Questionários) Templates Páginas Web Part Categorização automática
Audiências
Áreas de tópicos
Notícias
Sites pessoais
Serviços partilhados
Single sign-on
Directórios de site
Perfis de utilizador
Capacidade de Pesquisa
Pesquisa avançada (Indexação, Topic Assistant)
Tabela 1 – Comparação entre WSS e SPS
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 31
2.12.2 Requisitos Mínimos
Componentes Descrição
Hardware do
Servidor
Intel Pentium III-compatible processor
512 megabytes (MB) of RAM
550 MB of available hard disk drive space
Software do
Servidor
Sistemas Operativos:
Windows Server 2003, Standard Edition
Windows Server 2003, Enterprise Edition
Windows Server 2003, Datacenter Edition
Windows Server 2003, Web Edition (Necessita da versão completa do Microsoft
SQL Server)
Servidor Web:
Microsoft ASP.NET
Internet Information Services (IIS) 6.0 com:
Common files
Simple Mail Transfer Protocol (SMTP) service
World Wide Web service
Bases de Dados do
Servidor
SQL Server 2000, SP3
SQL Server 2000 Enterprise Edition, SP3
SQL Server 2000 Desktop Engine (MSDE 2000)
SQL Server 2000 Desktop Engine (Windows) (WMSDE)
Rede É necessário que as configurações de múltiplos servidores sejam membros do
domínio Microsoft Windows NT 4.0, Windows 2000 ou Windows Server 2003.
Browser Cliente Microsoft Internet Explorer 5.01 with Service Pack 2
Internet Explorer 5.5 with Service Pack 2
Internet Explorer 6
Netscape Navigator 6.2 ou posterior
Mozilla 1.4 ou posterior
Tabela 2 – Requisitos Mínimos
Estes requisitos são identificativos, devendo de acordo com cada
implementação ser ajustados ao ambiente onde será implementado.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 32
2.13 Windows Server 2003
Windows Server 2003 é o sistema operativo de última geração para
servidores de aplicações da Microsoft.
Um servidor de aplicações é uma plataforma de software concebida para
simplificar a concepção, desenvolvimento e execução de aplicações multi-
utilizadores.
Lançado em Abril de 2003, Windows Server 2003 propôs um largo inventário
de novas funcionalidades e tecnologias úteis ao desenvolvimento de
aplicações e à administração.
A estrutura deste software aplicativo é, com efeito, igualmente um dos
servidores de aplicações mais fácil a compreender e utilizar.
2.13.1 Segurança
Para aumentar o nível de segurança por defeito do Windows Server 2003, um
certo número de serviços não são instalados de base e devem ser activados
manualmente. É por exemplo o caso do IIS e das extensões ASP.NET.
Por fim, duas firewalls básicas estão integradas com o sistema operativo.
2.13.2 Flexibilidade
Com o Windows Server 2003, é agora possível para os programadores
trabalhar directamente no servidor de aplicações, com a ajuda de "services
web" e do código gerido, depois executar as aplicações a partir de qualquer
plataforma web.
O Windows Server 2003 permite usar dados móveis e securizados e difundir o
conteúdo multimédia para uma grande variedade de periféricos ligados
(PDA, telemóveis...).
Concebido a partir dos standards da indústria, permite que as empresas
continuem a utilizar e melhorar as suas aplicações existentes e desenvolver
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 33
novas.
Apoia-se na tecnologia .NET e utiliza largamente o princípio dos serviços
WEB que são possíveis de associar às aplicações tradicionais.
2.13.3 Serviços WEB
Um serviço WEB põe à disposição dum site web uma função específica e
possibilita que uma aplicação automaticamente disponibilidade na internet,
sendo os dados trocados carregados por ele. As duas principais vantagens
dos serviços web são a não necessidade de desenvolver completamente toda
a estrutura envolvente a esta troca de dados e a não necessidade de
preocupação com o sistema operativo ou com a linguagem de programação
usada graças a um protocolo de trocas standarderizado.
As trocas fazem-se por transacções de dados entre computadores e um
servidor remoto.
No servidor remoto, é geralmente instalado uma base de dados que vai
trabalhar as informações enviadas pelos computadores clientes que depois
lhes responde.
Também o XML é uma linguagem utilizada para a descrição de informações.
Outras linguagens são utilizadas para descrever os interfaces (WSDL por
exemplo) ou executar remotamente as tarefas (protocolo SOAP).
2.14 Microsoft .NET
O Microsoft .NET é uma aplicação desenhada com o intuito de unificar
sistemas, dispositivos e informação, e consiste em:
-- Framework .NET 1.1;
-- Microsoft Visual Studio 2003;
-- Conjunto de servidores e software cliente.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 34
2.14.1 Framework 1.1
A Framework .NET é um componente Windows cujo objectivo é construir e
correr todo o tipo de software, incluindo aplicações Web, Web Services XML
e aplicações Windows. Suporta mais de vinte linguagens de programação
diferentes e todas as fase de produção de software, desde o
desenvolvimento, passando pelo debugging e distribuição até à manutenção.
É constituída pelo Common Language Runtime(CLR) e um conjunto de
bibliotecas como é possível visualizar na figura 8.
Figura 8 – Estrutura da Framework .NET
2.14.2 Common Language Runtime
O Common Language Runtime é responsável pela execução de aplicações e
serviços em tempo real, tal como integração de linguagens, reforço de
segurança e gestão de memória e processos. Outras das suas funcionalidades
são a gestão de tempo de ciclo, strong naming, manipulação de excepções
entre linguagens e binding dinâmico, que reduzem a quantia de código a ser
programado.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 35
2.14.3 CLR Arquitectura
• Class Loader – Gere a metadata e o carregamento das classes
necessárias;
• MSIL9 to Native Compilers(JIT10) - Converte código MSIL para código
nativo optimizado;
• Code Manager - Controla a execução do código;
• Garbage Collector (GC) - Gestão de memória;
• Security Engine - Procedimentos de segurança baseados na
identificação do utilizador e na localização do código;
• Debug Engine - Permite fazer debug da aplicação;
• Type Checker - Impede conversões inadequadas e gere o acesso às
variáveis;
• Exception Manager - Tratamento de erros;
• Thread Support - Fornece classes e interfaces para utilização de
threads;
• COM Marshaler - Sequencia a distribuição dos componentes;
• Base Class Library (.NET Framework) Support - Faz a integração com a
.NET Framework class library;
2.14.4 Bibliotecas
Funcionalidades standard como input/output, gestão de segurança,
manipulação de strings, comunicação de rede, gestão de texto e thread, e
interfaces de utilizador são providenciadas por classes base, disponíveis na
Framework .NET.
As classes ADO.NET providenciam a interacção com XML através de
interfaces OLE DB, ODBC, Oracle ou SQL Server. As classes XML permitem a
manipulação, procura e tradução de ficheiros XML. As aplicações Web e os
9 MSIL - Microsoft Intermediate Language – linguagem independente de CPU gerada pelo .NET a partir das linguagens disponíveis. É gerada antes ou durante a execução de um programa pelo Virtual Execution System, que é parte integrante do módulo CLR. 10 JIT - Just-in-Time – compilador que gera código máquina durante a execução de um programa
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 36
Web Services são suportados pelas classes ASP.NET, enquanto que as classes
Windows Forms possibilitam o desenvolvimento de aplicações smart client11.
Estas classes encontram-se disponíveis para todas as linguagens suportadas
pela Framework .NET.
2.15 Microsoft Visual Studio .NET 2003
O Microsoft Visual Studio .NET 2003, utilizando as linguagens que
disponibiliza, permite o desenvolvimento de aplicações para o Microsoft
Windows, Web e dispositivos móveis e contém um conjunto de designers e
ferramentas visuais. O suporte para Web Services XML e designers visuais
para aplicações móveis permite a extensão de aplicações para outros
sistemas e dispositivos.
O Windows Forms, compatível com todas as linguagens disponíveis,
permitem herança visual, permitindo a reutilização de lógica de
programação e interface de utilizador através duma solução. É possível criar
forms cujo tamanho é ajustável e criar menus dentro destes.
É um poderoso editor de programação que permite desde debugging por
passos, visualização de valores de variáveis ao longo da execução de uma
aplicação e permite o acesso a todas as potencialidades da Framework .NET.
2.15.1 C#
O C# é uma linguagem baseada em C/C++ com inspiração no Java.
Um programa C# ao ser compilado, cria outro programa em Common
Intermediate Language (CIL). O Common Language Runtime é a
implementação da Microsoft do CIL. Um programa C# compilado também
contém um bloco de metadados, denominado manifest que facilita
capacidades de reflexão. A passagem de código CIL a código executável
11 Smart Client - Aplicação que utiliza Web Services XML como forma de comunicação, processamento local e pode ser distribuída e actualizada num servidor central.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 37
nativo pode ser posteriormente efectuada durante a instalação da aplicação
ou de um modo Just-in-time.
O C# suporta, tal como Java tipos de referência, modelo de herança e
garbage collector, e, tal como C++, tipos de valor, overloading de
operadores, namespaces12, implementação de interface explicita, e os
métodos não são virtuais por defeito. Tenta resolver alguns problemas do
Java e não está restringido a compatibilidades anteriores como por exemplo
C++ está com o C.
As expressões numéricas seguem as regras de precedência e associatividade
do C/C++/Java, existindo também a capacidade de detectar overflow de
inteiros. Para além das declarações condicionais if/while/for/do existe
também o suporte para a declaração foreach, que pode ser utilizada para
iterar um array, ou outro tipo de dados que suporte a interface correcta,
não sendo possível a conversão de um tipo não booleano para true/false.
Nas declarações switch cada case necessita de terminar com uma
declaração break, return, throw ou goto. O C# não permite métodos globais,
estes necessitam de ser declarado numa estrutura ou classe.
O C# distingue claramente tipos de valor de tipos de referência. As
instâncias de tipo de valor residem na stack e são utilizadas directamente,
enquanto que as referências residem na heap e são utilizadas
indirectamente.
Entre os tipos de valor podem ser encontrados as estruturas e enumerações,
cujo acesso aos campos é privado, overloading de operadores, que
necessitam de ser métodos públicos e estáticos, propriedades, que permite
a declaração do acesso de leitura/escrita a um campo lógico sem quebrar a
encapsulação, e indexers que permitem o uso de um tipo definido pelo
utilizador, como se de um array tratasse.
A nível de tipos de referência encontram-se as classes, que permitem a
definição de outras referências, construtores, destrutores, campos,
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 38
propriedades, indexers e operadores, tal como strings, arrays e boxing que é
uma cópia de um valor numa heap que nunca despoleta uma excepção.
O C# permite o mesmo modelo de heranças que o Java, uma classe pode
extender no máximo outra classe. Uma estrutura não pode actuar como um
tipo base nem pode ser derivada de um e, tal como C++, os métodos,
indexers, propriedades e eventos não são virtuais. É possível no C# declarar
destrutores numa classe, não tendo no entanto acesso a modificadores de
acesso ou a parâmetros.
2.16 Microsoft Business Solutions-Navision 4.0
O Microsoft Business Solutions – Navision é um ERP13 que é especificamente
desenhado para empresas de média dimensão, procurando uma solução para
ajudar a aumentar a produtividade, sem perturbar as operações de negócio
do dia a dia.
A solução de negócio é facilmente personalizável e de simples utilização e
manutenção.
O Microsoft Business Solutions - Navision, permite desde planeamentos de
produção e níveis de stock, a encomendas de venda e campanhas de
marketing, usando apenas uma única base de dados segura. A informação
introduzida na base de dados, numa área aplicacional, é simultaneamente
disponível para utilização em outras áreas aplicacionais, para optimizar os
seus processos de negócio e elevar o nível de conhecimento organizacional.
12 Namespaces - Mecanismo que qualifica, unicamente, elementos e relações de modo a evitar conflitos de elementos que tenham o mesmo nome mas provêm de locais diferentes 13 ERP - Enterprise Resource Planning – termo, utilizado na indústria, que define o conjunto de actividades suportado por aplicações multi-módulos, que ajudam uma empresa gerir partes importantes de um negócio. Isto inclui planeamento de produtos, compra de produtos, gestão de inventário, interacção com fornecedores, prestação de serviços a clientes entre outros. Pode incluir também módulos para a gestão financeira e de recursos humanos de uma empresa. Geralmente utiliza ou integra com um sistema de base de dados relacional.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 39
Desde a gestão financeira e CRM, ao supply chain management avançado e o
e-business, o Navision reúne um conjunto de funcionalidades e
características, para capturar, organizar, partilhar e elevar a informação
crítica de negócio ao longo da empresa, assim como, com parceiros chave e
clientes.
A tabela 3 mostra os módulos e secções de cada módulo do Navision.
Módulo Secções
Gestão Financeira
Contabilidade Geral
Gestão de Tesouraria
Cobranças
Pagamentos
Imobilizado
Inventário
Configuração
Vendas e Marketing
Vendas
Processamento de Encomendas
Marketing
Inventário e Preços
Análise e Mapas
Histórico
Configuração
Compras
Planeamento
Processamento de Encomendas
Inventário e Custos
Análise e Mapas
Histórico
Configuração
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 40
Armazém
Encomendas e Contactos
Planeamento e Execução
Produtos Acabados a Processo Encomenda
a Encomenda
Produtos Acabados a Processo Várias
Encomendas
Inventário
Histórico
Configuração
Produção
Desenho do Produto
Capacidades
Planeamento
Execução
Custeio
Histórico
Configuração
Planeamento Recursos
Recursos
Famílias Recursos
Capacidade recurso
Capacidade Família Recurso
Diários recursos
Projectos
Mapas
Histórico
Actividades Periódicas
Configuração
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 41
Serviço
Gestão de Contratos
Planeamento e Distribuição
Processamento Ordens
Histórico
Configuração
Recursos Humanos
Empregados
Registo Ausência
Mapas
Configuração
Administração Administração TI
Configuração Aplicação
Atalhos Este módulo permite a criação de atalhos
para os módulos ou secções mais utilizados
Tabela 3 – Módulos e secções do Navision
Existem algumas funcionalidades adicionais como é o caso de dimensões
avançadas que facilitam a filtragem e classificação de dados contabilísticos.
Com esta funcionalidade é possível atribuir um número ilimitado de
características, como regiões, períodos, ou departamentos, para utilizar nas
transacções contabilísticas. Esta área da aplicação permite a configuração
de regras para a combinação de dimensões e de valores de dimensões. É
também possível controlar o uso de dimensões para tornar mais valioso o
output das dimensões. As regras de dimensão e os dados de análise podem
também ser configurados para necessidades específicas do negócio de cada
organização.
Outra funcionalidade são a capacidade de configurar e manter moedas
múltiplas em várias áreas da aplicação e permitir aos utilizadores
seleccionarem o idioma no qual desejam trabalhar.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 42
A aplicação System Management permite configurar e definir actividades na
base de dados Microsoft Business Solutions - Navision . Menus e formulários
personalizados podem ser atribuídos a utilizadores específicos de modo a
que cada utilizador apenas tenha acesso às funcionalidades necessárias para
a sua função. Em suma, direitos de acesso para as subsidiárias e utilizadores
podem ser definidas e controladas por um administrador.
2.16.1 Sobre a Microsoft Business Solutions
A Microsoft Business Solutions, que inclui as áreas de negócio da Navision
a/s, da Microsoft bCentral™ e da Great Plains®, oferece uma vasta gama de
aplicações de negócio desenhadas para ajudar as empresas de pequena e
média dimensão a estarem mais interligadas com clientes, colaboradores,
parceiros e fornecedores. As aplicações da Microsoft Business Solutions
permitem a automatização dos processos de negócio “end-to-end”, nas
áreas financeira, de distribuição, de projecto, comércio electrónico,
recursos humanos e vencimentos, produção, gestão da cadeia de valor,
business intelligence, gestão de vendas e marketing, e serviço e suporte a
clientes.
2.16.2 Microsoft Business Solutions – Navision Developer’s Toolkit
O toolkit foi desenhado para suportar os parceiros Microsoft Business
Solutions - Navision com a melhor, a mais eficiente e integrada ferramenta
para analisar e actualizar as soluções do cliente bem como add-ons
(soluções verticais). O toolkit integra as ferramentas compare, merge e
impulse workbench numa só ferramenta. O toolkit foi desenhado para ser de
fácil uso, de modo a assegurar alta qualidade e eficiência durante o
processo de actualização. O Microsoft Business Solutions - Navision
Developer’s Toolkit suporta a estrutura de objectos do Microsoft Business
Solutions Navision e tira partido deste conhecimento durante as fases de
diagnóstico, desenvolvimento e implementação.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 43
2.16.3 C/SIDE
O C/SIDE (Client/Server Integrated Development Environment) é o ambiente
de desenvolvimento gráfico integrado do Microsoft Business Solutions -
Navision. Desenhado para uma arquitectura cliente/servidor, o C/SIDE
(pronuncia-se seaside) está construído à volta de um sistema de gestão de
base de dados relacional customizável (RDBMS). Integrado com o RDBMS
encontra-se o C/AL, uma linguagem de desenvolvimento guiada por eventos,
de quarta geração. Além das funcionalidades de gestão financeira e
comercial, o C/SIDE disponibiliza ferramentas de customização que
permitem o desenvolvimento de soluções específicas para o cliente bem
como de funcionalidades completamente novas no Microsoft Business
Solutions - Navision.
Todas as aplicações C/SIDE são baseadas em sete diferentes tipos de
objectos que podem ser acedidos e implementados e executados através do
Object Designer.
Table – Utilizado para armazenar dados, é uma tabela normal de base de
dados, que possibilita ter variados campos de vários tipos de dados. Permite
chaves primárias, scundárias e externas.
Form – Utilizados como interface de acesso à informação armazenada nas
tabelas.
Report – Possibilita a apresentação de informação, podendo-se filtrar e
ordenar essa informação.
Dataport – Utilizados para importar e exportar dados de e para ficheiros de
texto externos.
XMLport – Permite a importação e exportação de dados em formato XML.
Codeunit – O C/AL é uma linguagem utilizada para desenvolver aplicações
em C/SIDE que permite desenhar funções, estabelecer ligações a objectos
de base de dados e ler, escrever e modificar, dados em tabelas. Uma
codeunit contém funções definidas pelo utilizador usando esta linguagem.
Estas funções podem ser utilizadas, através de referências à codeunit que as
engloba, por outros objectos na aplicação. Isto permite encapsulamento de
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 44
código e minimiza o tamanho de cada nova aplicação podendo-se utilizar o
mesmo código para diferentes aplicações. Numa codeunit é possível definir
funções, variáveis locais e globais, e tabelas temporárias, havendo uma
função predefinida OnRun que é sempre executada quando a codeunit
respectiva é chamada.
MenuSuite – Contém o conjunto de menus que são vistos no Navigation
Pane. Este é uma menu de navegação lateral que permite o acesso aos
vários módulos e secções do Navision.
O C/SIDE é baseado em objectos e não orientado a objectos. A diferença
está no facto de num ambiente orientado a objectos é possível criar
objectos baseados em objectos já existentes no sistema, enquanto que no
Navision só é possível criar objectos baseados nos objectos tables, forms,
dataports, XMLports, codeunits, ou menu suite. Esta metodologia torna a
aplicação mais rápida pois existe um número limitado de objectos.
Outros conceitos encontrados no C/SIDE são:
Properties – Controlam o aspecto e comportamento dos objectos e sub-
objectos de uma aplicação;
Triggers – Mecanismo que é despoletado quando certas acções são
efectuadas. É implementado num objecto de uma aplicação;
Keys – Definem a ordem em que os dados de uma tabela são armazenados,
podendo-se definir várias keys de formar a armazenar informação de
variadas formas de modo a acelerar pesquisas;
Fields – Campo de um tabela;
Controls – Objectos que expoem informação, realçam a aparência de um
formulário ou despoletam acções, como por exemplo botões e labels de
texto;
Request Form – Possibilita a especificação de filtros e opções para um
report;
Template – Define o layout geral de um report;
Data Items – Determina que dados conterá um report;
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 45
2.16.4 NAS
O Navision Application Server é um servidor intermédio que executa lógica
de negócio sem a intervenção de um utilizador. Tem a capacidade de
comunicar com serviços externos, agir como um cliente em relação ao
servidor de base de dados e como um servidor para outros serviços.
Ao ser iniciado o NAS abre uma base de dados predefinida e executa código
C/AL numa codeunit predefinida com um parâmetro de arranque. O NAS em
si corre sem apresentar interface alguma. O Navision Application Server
Manager é uma interface que interage com o NAS e permite especificar qual
a base de dados a ser aberta e qual o parâmetro que será enviado para a
função na codeunit.
Figura 9 – Arquitectura genérica NAS
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 46
2.17 Microsoft FrontPage 2003 SP1
O FrontPage 2003 é um conhecido editor gráfico de páginas Web. As
ferramentas gráficas disponíveis tornam mais simples e rápida a criação de
sites Web. A nível de design possibilita a criação de templates Web
dinâmicos que permite ligar o layout de vários sites diferentes, ao ser
actualizado o template, todos os sites sofrem alterações. Contém a
capacidade de visualizar sites de acordo com browsers e resoluções
específicas, manipular tabelas e criar efeitos visuais, como por exemplo
menus pop-up.
O FrontPage gera código à medida que um site vai sendo construído, no
entanto é possível também programar esse código. Permite tecnologias
como HTML, XSLT, Microsoft JScript e Microsoft ASP.NET, e é possível
distribuir ficheiros entre posições locais ou remotas, utilizando SSL, FTP ou
WebDAV.
2.18 Microsoft InfoPath 2003 SP1
O InfoPath 2003 é um programa de desenho e preenchimento de
formulários. Utilizando o XML como linguagem de construção destes,
possibilita a criação de botões, drop-down-menus, caixas de texto, secções
repetitivas, tabelas repetitivas, check boxes, radio buttons, entre outros
tipos de controlos. Usando XML DOM e javascript permite a extensão das
possibilidades embutidas de raiz.
Permite formatação condicional, podendo ser definido padrões de texto a
serem introduzidos, sendo assim, caso o texto não tenha um formato
correcto, despoletada uma caixa de erro. Podem-se definir regras que, caso
certas condições aconteçam, como por exemplo um determinado campo
conter um valor específico, acções específicas serão efectuadas. Estas
acções podem também ser despoletadas pelo uso de botões.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 47
As acções possíveis podem ser o aparecimento de uma caixa de mensagens,
definir um valor num determinado campo, efectuar querys ou submeter
valores a uma Data Connection ou abrir um novo formulário.
Em relação às Data Connections possibilita a recepção ou submissão de
dados, a bases de dados (apenas SQL Server ou Access), a Web Services, a
documentos XML (apenas recepção) e a e-mails.
É possível também estabelecer permissões para cada formulário. Definindo o
domínio e o utilizador Windows, podem ser definidas vistas que se alteram
conforme o utilizador que acede ao formulário. Existindo também o suporte
para assinaturas digitais.
O InfoPath tira partido de várias tecnologias XML, incluindo XSLT, Schemas
XML, XHTML, XPath, DOM, XML Signatures14, e um processador que trabalha
com todas as tecnologias. Para além do uso de namespaces, contém vários
métodos para acesso ao DOM e utiliza instruções especiais armazenadas no
início de um documento XML, cuja informação é passada através do parser
XML para qualquer aplicação que utilize o documento.
A próxima tabela descreve a forma como estas tecnologias são utilizadas.
Nome Descrição
XML Formato de output produzido por um formulário InfoPath.
XSLT Formato de vista dos ficheiros produzidos após o desenho de
um formulário. O InfoPath não suporta XSL-FO nem a
importação de ficheiros arbitrários .xsl.
14 Digital Signature - Assinatura digital baseada em XML que assegura dados contidos em documentos XML
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 48
XML Schema Principalmente utilizados para a validação de dados num
formulário e fornecem a estrutura subjacente de um
documento XML produzido por formulário. É utilizado
também para definir a estructura do ficheiro de definição do
formulário (.xsf)15.
XHTML Reformulação da linguagem HTML de modo a conformar-se
com regras XML
XPath Expressões XPath são utilizadas para ligar controlos ao
formulário e também para validação de dados e formatação
condicional.
DOM Utilizado para aceder programaticamente ao conteúdo do
documento XML produzido pelo formulário, sendo também o
responsável pelo acesso, só de leitura, do conteúdo do
ficheiro xsf.
XML
Signature
Utilizada para assinar digitalmente parte ou a totalidade de
um formulário.
Processador
XML
Carrega a fonte XML, de um documento, para memória,
validando-o utilizando o Schema XML e produzindo a vista do
documento através de XSLT. O processador suportado pelo
InfoPath é o Microsoft XML Core Services (MSXML) 5.0.
Tabela 4 – Utilização da tecnologia XML, pelo InfoPath
15 XSF - Ficheiro XML que contém informaçãosobre todos os ficheiros e components usados num formulário, incluindo customizações de interface, Schemas XML, vistas, lógica de negócio, eventos, entre outros
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 49
2.19 Web Services
A tecnologia .NET estabelece a ligação entre sistemas, informação e
dispositivos através de software, possibilitando a capacidade de construir,
distribuir, gerir e utilizar soluções, utilizando Web Services XML.
De acordo com a World Wide Web Consortium um Web Service é “um
sistema de software desenhado para suportar interacção máquina-para-
máquina através de uma rede, que tem uma interface descrita num formato
processável por máquina (especificamente WSDL). Outros sistemas
interagem com o Web Service de uma forma prescrita pela sua descrição
usando mensagens SOAP, tipicamente expostos usando HTTP com
serialização XML em conjunção com outros standards Web.”
Resumidamente um Web Service é um módulo de software auto-descritivo,
acessível via intranet, ou extranet, através de protocolos como XML e SOAP,
e usado remotamente por outras aplicações. É independente de
plataformas, linguagens de programação e sistemas operativos. A figura
demonstra um esquema para comunicação entre aplicações usando Web
Services.
Figura 10 – Esquema da comunicação entre aplicações
Visto serem auto-descritivos, permitem uma fácil comunicação entre o
cliente e o serviço através de WSDL. Através de UDDI podem ser registados
Outras
aplicações
Utilizadores
Servidor
Pedido XML
Resposta XML
Aplicação
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 50
de modo a poderem ser posteriormente pesquisados. As mensagens são
codificadas utilizando XML, estruturadas utilizando SOAP e acedidas por
HTTP, comunicando por meio de mensagens. É possível assim expor
funcionalidades de programação na Web.
2.19.1 SOAP
O protocolo Simple Object Access Protocol é responsável pela estruturação
das mensagens de um Web Service, tendo o objectivo de trocar informação
em ambientes descentralizados e distribuídos. É baseado em XML/HTTP o
que torna possível a disponibilização de mensagens pela Internet, sem estas
estarem presas a qualquer linguagem ou sistema operativo.
A figura 7 mostra a estrutura de uma mensagem SOAP, o Header contém a
descrição da mensagem a ser enviada, enquanto que o Body contém o corpo
da mensagem, formando-se assim o Envelope, que é a mensagem enviada
em si. O Transport Envelope define como a mensagem será enviada.
Figura 11 – Estrutura do protocolo SOAP
Transport
Envelope
SOAP
Envelope
Header
Body
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 51
À parte de ser necessário enviar mensagens via HTTP POST o protocolo
SOAP não se encontra ligado a nenhum protocolo em particular, o que
permite o envio de mensagens por qualquer protocolo que possa
transmitir XML.
2.19.2 WSDL
O Web Services Description Language é um protocolo utilizado para
descrever um Web Service XML. Através do WSDL torna-se possível expor as
funções disponibilizadas pelo serviço e informação sobre localização do
serviço, procotocolos de transporte e tipos de dados utilizados nas
mensagens.
2.19.2.1 Estrutura de um documento WSDL
• <definitions> - elemento raíz que permite a definição e
referenciação de namespaces;
• <types> - schema embebido no documento que especifica o conjunto
de tipo de dados usados no serviço;
• <message> - descreve abstractamente as mensagens entre o cliente e
o servidor;
• <portType> - define a interface do serviço;
• <binding> - descreve o formato das mensagens e os detalhes do
protocolo de transporte;
• <service> - especifica um ou mais pontos de acesso que são utilizados
para definir o endereço do Web Service que suporta um determinado
binding;
2.19.3 XML
O Extensible Markup Language é uma linguagem que estrutura a informação
de documentos. Esta estrutura pode conter texto, imagens, entre outros
tipos de dados, tal como o papel desse conteúdo no documento. Uma
linguagem markup é uma forma de identificação de estruturas num
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 52
documento, isto é especificado de uma forma standard usando XML. Entre
documentos XML pode-se encontrar transacções e-commerce, gráficos
vectoriais, equações matemáticas, objectos metadata entre outros.
O XML foi criado com o intuito de disponibilizar documentos ricamente
estruturados na Web. Existiam duas possibilidades HTML e o predecessor do
XML, o SGML.
O HTML encontra-se restringido a um conjunto de semânticas e não
proporciona estrutura arbitrária. Embora o SGML proporcione estrutura
arbitrária, é demasiado complexo para ser implementado para um browser,
geralmente é usado para o armazenamento de longa duração de documentos
complexos.
2.19.4 XSL (Etensible Stylesheet Language)
O XSL é uma linguagem que permite a transformação e formatação um
documento XML. Define o modo como o conteúdo de um documento XML é
apresentado, quer seja a nível de um browser, dispositivo móvel ou mesmo
em páginas físicas de um relatório.
O XSL origina 3 normas diferentes:
• XPATH – especifica um modo de navegar e localizar informação num
documento XML;
• XSL-FO – define o modo como os documentos são formatados;
• XSLT – define as transformações efectuadas a um documento XML;
Um processador XSLT trabalha sobre uma representação em árvore da
estrutura hierárquica de um documento XML:
Uma folha de estilo XSLT consiste numa série de templates que,
conjuntamente com expressões baseadas em XPath, determinam
como o processador vai aplica-las aos nós do documento fonte;
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 53
Para cada template, o processador procura no documento o nó que
verifica o padrão definido e aplica as acções definidas nesse
template;
Os templates são instanciados para todos os nós onde é efectuado o
match;
2.19.5 XSD (XML Schema Definition)
A validação de um documento ou uma classe de documentos XML é definida
por um conjunto de regras especificadas num documento XSD. Este
especifica os elementos e atributos que um documento pode conter, o
número e ordem dos elementos filho e os tipos de dados para os elementos
e atributos.
2.19.6 XML DOM
O XML Document Object Model permite o acesso e actualização de
conteúdo, estilo e estrutura de documentos XML, através de programação.
Isto é possível através da interface de object model, constituída por
objectos, propriedades, métodos e eventos que permitem a representação e
manipulação de componentes de um documento XML. O DOM armazena
informação de um documento XML de uma forma hierárquica, tipo árvore,
idêntica à estrutura do próprio documento.
Qualquer documento XML pode ser carregado e todos os seus componentes
acedidos pelo DOM, sendo este documento lido na sua totalidade e
armazenado como um modelo lógico de nós.
Cada nó é definido como sendo de um tipo específico, podendo ter um nó-
pai e nós-filho. Os tipos de nós mais comuns são elemento, atributo ou
texto. O nós do tipo atributo são tratados como propriedades dos nós de tipo
elemento, não sendo assim considerados como nós-filho de um outro nó.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 54
Alguns dos objectos DOM que podem ser utilizados com um documento XML
encontram-se descritos no quadro seguinte.
DOM object XML node type
XMLDOMDocument
Representa o documento XML em si. Expõe
propriedades e métodos que possibilitam a
avegação, e alteração do conteúdo e estrutura do
documento.
XMLDOMNode
Representa um nó na árvore do documento,
suportando tipos de dados, namespaces e
Schemas XML.
XMLDOMNodeList Colecção de nós que permite indexação e iteração
de nós.
XMLDOMElement Representa um elemento num documento XML.
XMLDOMAttribute Representa um atributo num documento XML.
Tabela 5 – Objectos XML DOM
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 55
2.20 Microsoft Message Queuing (MSMQ)
A tecnologia MSMQ permite a comunicação entre aplicações, que não são
executadas simultaneamente, através de redes heterogéneas e sistemas que
possam encontrar-se temporariamente offline. Uma message queue pode
receber múltiplas mensagens de várias aplicações e posteriormente enviá-
las a outras aplicações (figura 10).
Figura 12 – Lógica da tecnologia MSMQ
As message queues podem ser consideradas como um túnel de comunicação
entre duas aplicações diferentes. As message queues usam o princípio FIFO,
sendo a primeira mensagem a ser enviada para uma queue, a primeira a ser
recebido. É possível no entanto mudar esta ordem através da prioridade de
mensagens.
Existem três tipos de message queues, de sistema, privadas e públicas. As
queues de sistema são usadas pelo sistema operativo para envio, de
mensagens, interno, não podendo assim, ser usadas por utilizadores. As
queues públicas e privadas diferem maioritariamente no facto de as públicas
fornecerem routing e as privadas não, podendo ser no entanto ambas
acedidas remotamente.
As queues privadas são uma boa escolha quando, todos os clientes que
acedem a uma queue se encontram próximos desta e têm uma ligação
Aplicações que
enviam
Aplicações que
recebem Message
Queue
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 56
rápida e de confiança. Se as aplicações, que estão em comunicação, estão
distribuídas e comunicam através de um meio não seguro, devem ser usadas
queues públicas.
Aplicações de Message Queuing podem ser desenvolvidas utilizando APIs C++
ou objectos COM, sendo também possível desenvolver aplicações para a
Internet quer seja a nível de servidor ou a nível do cliente
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 57
3. Descrição Técnica
3.1 Desenho da Aplicação
O Navision é um ERP, ao qual pode ser necessário aceder usando aplicações
externas, que muitas vezes não se integram com este ERP.
É possível fazer esta ligação usando um driver ODBC (NODBC no caso do
Navision), no entanto nem todas as aplicações têm opção de ligação a um
Data Source.
Construindo um web service é possível expor a camada de negócio do
Navision, sendo possível deste modo a integração com outras aplicações. O
próprio Infopath integra com um web service de uma forma muito simples, o
que permite usá-lo como um front-end para interagir com a base de dados
Navision.
O Sharepoint, é utilizado como repositório de formulários InfoPath,
permitindo assim, criar uma lógica de gestão documental simples.
3.2 Ligação InfoPath – Web Service
O Infopath é utilizado para a construção de um formulário XML que pesquisa
e insere dados na base de dados Navision. Este formulário é um relatório de
encomendas, que neste caso foi utilizado para a apresentação à Bulhosa
Livreiros, onde um dado cliente da empresa poderá fazer a encomenda de
livros existentes, ou então requisitar livros que a empresa não disponibilize.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 58
A figura seguinte mostra o formulário em pormenor:
Figura 13 – Formulário de Encomendas Bulhosa Livreiros
O formulário é constituído por:
• Um campo, onde o cliente poderá inserir o seu número de cliente, e,
automaticamente carregar os seus dados, tais como nome, endereço,
número de telefone e e-mail.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 59
• Quatro opções gerais, que identificarão mais em pormenor o tipo de
encomenda a realizarem, tais como o tipo de pedido, forma de
distribuição, forma de contacto e tipo de entrega.
• Uma lista de livros existentes, ordenados alfabeticamente onde o
utilizador poderá escolher um ou mais livros, e a quantidade
desejada. Estes livros existentes, são valores preenchidos de acordo
com o retorno dos livros existentes na base de dados.
• Três caixas de texto, onde o utilizador poderá requerer à Bulhosa
Livreiros, um ou mais livros que deseje e respectiva quantidade, de
livros que a empresa não disponibilize ou não tenha em stock.
• Um campo de Notas, onde o cliente poderá deixar alguma notação ou
mensagem importante que queira acrescentar à sua encomenda.
• Finalmente, uma data que seria, neste caso, a data pretendida de
recepção da encomenda.
Todas estas funcionalidades, foram pedidas pela empresa Bulhosa Livreiros,
sendo o formato do formulário do critério da empresa.
Estes valores não podem ser nulos, caso isso aconteça o formulário não pode
ser submetido e mensagens de erro são despoletadas, descrevendo o
correcto preenchimento de cada campo.
A submissão do formulário insere os valores, dos campos preenchidos, no
Navision, via Web Service, publica o formulário XML numa biblioteca
Sharepoint e fecha o formulário. No caso de sucesso o formulário é gravado
com o nome do cliente e data da encomenda, caso não seja possível inserir
os valores no Navision é retornado um erro e as restantes operações não são
efectuadas.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 60
A figura seguinte mostra um diagrama da interacção do Infopath com o Web
Service.
Figura 14 – Comunicação InfoPath – Web Service
3.3 Ligação Navision – Web Service
Esta comunicação é uma forma de arquitectura cliente/servidor. O web
service envia uma mensagem ao Navision, este recebe-a, processa-a e envia
uma resposta de volta.
Foram criadas duas message queues, toNavision e fromNavision que vão
correspondentemente enviar mensagens para o Navision e receber
mensagens do Navision. Estas message queues são privadas, visto, neste
cenário em particular, o Navision se encontrar instalado no mesmo sistema
onde reside o Web Service. O próprio Navision cria uma message queue,
neste caso pública, de forma a administrar a troca de informação.
Formulário
InfoPath
Web Service
Inserção de dados
Resultado da Pesquisa
Pedido de pesquisa
Mensagem de
sucesso/insucesso
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 61
O processo de envio e recepção de mensagens encontra-se representado na
seguinte figura.
Figura 15 - Processo de comunicação entre Navision e web service
Ao ser invocado um dos Web methods do Web Service, é enviada uma
mensagem no formato XML para a message queue toNavision com o nome do
método seguido de, um GUID gerado no envio da mensagem, e dos
argumentos do método.
O NAS pode ser configurado como um serviço Windows, havendo assim a
possibilidade de correr no sistema de servidor mesmo que nenhum utilizador
4
3 2
1
Navision
Database Server
Navision
Application
Server
Web service
Message
Queueing
O web service envia uma
mensagem para uma message
queue (toNavision) com um
GUID próprio
O serviço Windows (NAS),
despoleta o início de uma
codeunit do Navision, que
manipula a chegada de
mensagens.
Após manipulação das
mensagens, é enviada
uma mensagem para
outra message queue
(fromNavision) em
conformidade com a que
tinha sido recebida.
Web service constrói uma
lista com as mensagens
na message queue e
procura o GUID da
mensagem que foi
enviada no início
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 62
tenha efectuado o log-in. Sempre que o serviço se encontra activo, é
executada uma codeunit específica no Navision. Esta verifica o parâmetro,
de start-up, especificado no Navision e executa código conforme o valor
desse parâmetro. Neste caso esse parâmetro enviado despoleta a execução
de uma codeunit (Web Service Handler) implementada com objectivo de
receber mensagens da message queue toNavision.
Esta codeunit efectua o parsing da mensagem recebida e, conforme o seu
valor, executa uma função correspondente, cujos argumentos são os
restantes valores da string. Estas funções executam, ou pesquisa, ou
inserção de valores em tabelas da base de dados, utilizando os argumentos
em questão e posteriormente constroem, utilizando XML DOM, a mensagem
a ser enviada para a message queue fromNavision. Esta mensagem é um
documento XML que contém, o GUID da mensagem recebida da message
queue toNavision e, ou os dados retornados da pesquisa, ou uma mensagem
de insucesso ou sucesso da inserção de valores.
Após o envio da mensagem para a message queue fromNavision, por parte
do Navision, o Web Service cria uma lista das mensagens nesta message
queue e pesquisa qual delas contém o GUID da mensagem enviada
anteriormente. O Web Service pesquisa pela mensagem um número
configurável de vezes. Caso seja encontrada a mensagem, é retornado o seu
conteúdo. Caso contrário é retornado uma mensagem de erro.
3.4 Web Service
Um web service é uma aplicação que executa funções desde simples pedidos
até complicados processos, utilizando XML para construir mensagens SOAP.
O web service foi construído usando o Visual Studio .Net e a linguagem C#.
Em primeiro lugar demonstrar-se-á como construir os web methods usados
para construir este web service.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 63
3.4.1 Web Methods
Os métodos GetTitles e InsertQuotes são muito semelhantes, diferindo na
mensagem que é enviada, o método GetTitles retorna os títulos dos livros
existentes. O método InsertQuotes tem o objectivo de inserir os dados,
enviados na mensagem, na base de dados Navision e retornar o sucesso ou
erro da inserção.
[WebMethod]
public DataSet GetTitles()
{
string GUID =System.Guid.NewGuid().ToString();
System.Messaging.Message request = new System.Messaging.Message("GetTitles(" + GUID + ")");
DataSet ndset = new DataSet();
ndset=Connect(request,GUID);
return ndset;
}
[WebMethod]
public DataSet InsertQuotes(string TituloLivro, string Autor ,string TipoPedido,
string NomeCustomer, string MoradaCustomer, string Entrega, string Editora, string
Quantidade)
{
string GUID =System.Guid.NewGuid().ToString();
System.Messaging.Message request = new System.Messaging.Message("InsertQuotes("
+ TituloLivro + "," + TipoPedido + "," + NomeCustomer + "," + MoradaCustomer + "," +
Entrega + "," + Autor + "," + Editora + "," + Quantidade + "," + GUID + ")");
DataSet ndset = new DataSet();
ndset=Connect(request,GUID);
return ndset;
}
Código 1
As variáveis usadas têm o seguinte propósito:
• TituloLivro – Título do Livro a inserir (InsertQuotes);
• TipoPedido – Tipo de pedido efectuado;
• NomeCustomer – Nome do Cliente;
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 64
• MoradaCustomer – Morada do Cliente;
• Entrega – Tipo de entrega a fazer;
• Autor – Autor do Livro pedido;
• Editora – Editora do Livro a inserir;
• Quantidade – Quantidade pedida;
• GUID – gera um identificador único que será o identificador da
comunicação efectuada;
• request – mensagem que será enviada à message queue
toNavision, e à qual será feito um parse no Navision;
• ndset – DataSet que retorna o conteúdo recebido pelo Navision.
O método Connect recebe como argumento uma mensagem que envia para a
message queue toNavision e procura, na message queue fromNavision, uma
mensagem que tenha o mesmo GUID que a mensagem enviada. O GUID é
colocado no próprio conteúdo da mensagem.
Este processo é efectuado até ser encontrada a mensagem equivalente, ou
até quando se tiver tentado todas as vezes definidas. Se este último caso
acontecer é retornado um DataSet com o número de tentativas que foram
feitas antes retornar o erro.
Caso seja apanhada alguma excepção é retornado um DataSet com a
mensagem de erro.
public DataSet Connect(System.Messaging.Message request,string GUID){
System.Messaging.MessageEnumerator msg_enum;
DataTableCollection table;
DataRowCollection row ;
DataSet DS1=new DataSet(“DataSet”);
DataTable Tbl = DS1.Tables.Add(“Erro”);
DataColumn Col = Tbl.Columns.Add(“Tentativas”,typeof(string));
int Sleep = Convert.ToInt16
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 65
(((string)(System.Configuration.ConfigurationSettings.AppSettings.Get(“Sleep”))));
int Tries = Convert.ToInt16
(((string)(System.Configuration.ConfigurationSettings.AppSettings.Get(“Tries”))));
int Increment = Convert.ToInt16
(((string)(System.Configuration.ConfigurationSettings.AppSettings.Get(“Increment”))));
int i=0;
for(i=0;i<Tries;i++){
try{
mqToNavision.Send(request,”Navision MSMQ-BA”);
System.Threading.Thread.Sleep(Sleep+i*Increment);
mqFromNavision.Formatter = new System.Messaging.XmlMessageFormatter
(new Type[] {typeof (System.Data.DataSet)});
msg_enum = mqFromNavision.GetMessageEnumerator();
msg_enum.Reset();
while(msg_enum.MoveNext()){
DataSet ndset = new DataSet();
ndset.Clear();
ndset.ReadXml (msg_enum.Current.BodyStream, System.Data.XmlReadMode.Auto);
table = ndset.Tables;
row = table[0].Rows;
//compara GUID da mensagem recebida com o GUID criado
if((row[0].ItemArray.GetValue(0).ToString()).CompareTo(GUID)==0){
msg_enum.RemoveCurrent();
return ndset;
}
msg_enum.Current.BodyStream.Close();
}
}
catch(MessageQueueException ex){
DataSet DS=new DataSet(“DataSet”);
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 66
DataTable Tbl2 = DS.Tables.Add(“Erro”);
DataColumn Col2 = Tbl2.Columns.Add(“Excepcao”,typeof(string));
Tbl2.Rows.Add(new object[] {ex.Message});
return DS;
}
}
Tbl.Rows.Add(new object[] {“Tentativas:” + i});
return DS1;
}
Código 2
As variáveis usadas têm o seguinte propósito:
• request – contém a mensagem a enviar à message queue
toNavision;
• msg_enum – lista de mensagens encontradas na message queue
fromNavision;
• ndset – DataSet que retorna o conteúdo da mensagem recebida
pelo Navision;
• table – DataTableCollection auxiliar inicializada com a colecção
tabelas contida em ndset;
• row – DataRowCollection auxiliar inicializada com a colecção
de linhas pertencentes à primeira tabela de table;
• DS1 – DataSet que é retornado se após um certo número de
tentativas não for possível encontrar a mensagem procurada;
• Tbl – DataTable que é adicionada à DataSet DS1;
• Col – DataRow que é adicionada à DataTable Tbl;
• Sleep – tempo de espera para processamento das mensagens
por parte do Navision;
• Tries – número de tentativas de recepção de mensagens do
Navision;
• Increment – incremento ao tempo de espera após tentativas;
• DS - DataSet que é retornado caso seja apanhada alguma
excepção nas message queues;
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 67
• mqToNavision – referência à message queue toNavision;
• mqFromNavision – referência à message queue fromNavision.
As variáveis Sleep, Tries e Increment recebem o seu valor do ficheiro de
configuração do web service. Este ficheiro é construído pelo .NET ao criar
um novo projecto Web Service, e possibilita a definição de variáveis de
configuração, sendo possível, deste modo, mudar o conteúdo destas
variáveis sem ter de recompilar o código.
As message queues toNavision e fromNavision são ambas message queues
privadas, criadas nas Private Queues encontradas na lista Message Queues
do Server Explorer do Visual Studio.
Ao criar um novo projecto ASP.NET Web Service, o Visual Studio inclui no
código alguns namespaces necessários para uso de certos métodos. Outros
namespaces foram posteriormente adicionados de modo a aceder a outras
funcionalidades.
Ao enviar uma mensagem para o Navision etiquetamo-la como “Navision
MSMQ-BA” de modo a ser reconhecida pelo trigger do Navision
(CC2::Messagereceived), que a recebe.
Um namespace é uma secção de código que é identificada por um nome
específico. A framework do .NET usa nomeação hierárquica de modo a
agrupar tipos em categorias lógicas com funcionalidades semelhantes.
Usando namespaces resolvem-se problemas de conflitos de nomeação de
classes, funções, etc., dentro de projectos.
Os namespaces usados têm o seguinte propósito:
• System – contém classes fundamentais que definem valores e
referências a tipos de dados, eventos, interfaces, atributos e
excepções mais usuais, é a raiz de todos os namespaces;
• System.Collections – contém classes e interfaces que definem
várias colecções de objectos tais como listas, filas, arrays,
hashtables, etc.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 68
• System.ComponentModel – contém classes usadas na
implementação do comportamento, run-time e design-time, de
componentes e controlos;
• System.Data – contém classes que constituem a arquitectura
ADO:NET (permite a construção de componentes que gere,
eficientemente, dados de múltiplos data sources);
• System.Diagnostics – contém classes que permitem a
interacção com logs de eventos, contadores de performance e
processos de sistema;
• System.Web – contém classes e interfaces que possibilitam a
comunicação entre browser e servidor;
• System.Web.Services – contém classes que possibilitam a
criação de web services XML usando ASP.NET e clientes XML
web service;
• System.Xml – contém suporte standard para processamento de
XML;
• System.Messaging – contém classes que permitem a connecção,
monitorização e administração de message queues, tal como o
envio, a recepção e peek de mensagens.
Cada web service XML necessita de um namespace único. O .NET cria um
com o namespace http://tempuri.org/ como default. É recomendado mudar
o namespace para algo mais permanente. Neste caso o namespace foi um
dado para http://srvmyp06/Apps/Bulhoa/WSBulhosa.
namespace Bulhosa
{
[WebService(Namespace="http://srvmyp06/Apps/Bulhoa/WSBulhosa")]
public class WSBulhosa : System.Web.Services.WebService
{
public WSBulhosa()
{
InitializeComponent();
}
Código 3
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 69
3.4.2 Message Queues
As message queues são o túnel de comunicação entre Navision e o web
service. As message queues usam o princípio FIFO, sendo a primeira
mensagem a ser enviada para uma queue, a primeira a ser recebido. É
possível no entanto mudar esta ordem através da prioridade de mensagens.
Existem três tipos de message queues, de sistema, privadas e públicas.
As de sistema são usadas pelo sistema operativo para envio de mensagens
interno, não podendo ser usadas por utilizadores. As públicas e privadas
diferem maioritariamente no facto de as públicas fornecerem routing e as
privadas não, podendo serem no entanto ambas acedidas remotamente.
As queues privadas são uma boa escolha quando, todos os clientes que
acedem a uma queue se encontram próximos desta e têm uma ligação
rápida e de confiança. Se as aplicações, que estão em comunicação, estão
distribuídas e comunicam através de um meio não seguro, devem ser usadas
queues públicas.
As queues usadas, neste caso, foram as privadas visto que, o web service e o
Navision se encontram na mesma máquina.
Existem algumas considerações a ter em conta que são as seguintes:
• Após a criação das message queues dar permissões de recepção
e envio de mensagens ao ASPNET, que é um utilizador criado
pela framework .Net 1.1 com o propósito de correr processos
asp.net usados no Microsoft’s Internet Information Services.
Tem basicamente o único uso de permitir correr o
ASP.NET(framework de programação construída em cima da
framework .net) no servidor de web local;
• Mudar permissões de um utilizador, que seja administrador,
para Full control
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 70
Estas mudanças podem ser feitas do seguinte modo:
• Ir ao Control Panel;
• Abrir Administrative Tools;
• Entrar em Computer Management;
• Nos Services and Applications seleccionar Message Queuing;
• Abrir as Properties da message queue em questão, que se
encontra neste caso nas Private Queues, e em Security mudar
as permissões dos utilizadores;
• Caso um dos utilizadores necessários não estejam presentes
clickar em Add e adicionar um novo.
3.4.3 Navision
Um ERP é um sistema de informação usado para planear e gerir funções
básicas de negócio tais como orçamentação, contabilidade, recursos
humanos, compras, vendas e marketing, etc.
O Microsoft Business Solutions-Navision é constituído por várias aplicações
diferentes.
• Um cliente que acede tanto a uma base de dados, nativa,
Navision como a uma base de dados SQL;
• Um servidor de base dados que estabelece a ligação entre a
base de dados e o cliente, podendo o cliente ligar-se
directamente à base de dados;
• O Navision Application Server (NAS) é um servidor intermédio
que, sem a necessidade de intervenção de um utilizador,
executa lógica de negócio. Pode servir de cliente para um
servidor e de cliente para outros serviços. É necessário ter em
conta o utilizador usado para fazer o log on do serviço. Deverá
ser um utilizador do tipo Administrator.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 71
O NAS ao ser iniciado é corrido como um serviço Windows tal como o
servidor de base de dados. A sua interface gráfica recebe um conjunto de
parâmetros que usa para abrir a base de dados respectiva e, de acordo com
parâmetro de Start-Up, é executado uma determinada codeunit.
Uma codeunit é um recipiente de código C/AL que pode ser usado nos
objectos da aplicação. É uma espécie de classe que torna possível a
definição funções, variáveis locais, globais, tabelas temporárias, etc.
Para definir uma codeunit basta abrir o cliente Navision, abrir a base de
dados e companhia a usar e no Object designer (para abrir carregar
shift+F12) ir a Codeunit e fazer New, ou pressionar F3.
É na codeunit 1 ApplicationManagement que se encontra o trigger
NASHandler. Este trigger é disparado caso, ao ser iniciado o NAS, o servidor,
base de dados e companhia, coincidam com os parâmetros introduzidos,
recebendo como argumento o Start Up parameter do NAS, que neste caso é
WEBSERVICE.
Ao verificar que o parâmetro recebido é WEBSERVICE vai ser executada
outra codeunit. A variável WSHandler é uma referência a essa codeunit.
IF CGNASStartedinLoop = FALSE THEN
CASE Parameter OF
'WEBSERVICE':
WSHandler.RUN;
'MAILLOG':
CODEUNIT.RUN(CODEUNIT::"E-Mail Dispatcher");
Código 4
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 72
A nova codeunit criada tem o nome Web Service Handler e o ID 90000.
Esta codeunit recebe a mensagem da message queue toNavision, faz o
parsing do seu conteúdo e, conforme o pedido, chama outra codeunit
(BizLayer), enviando uma nova mensagem, com o conteúdo processado em
BizLayer, para a message queue fromNavision.
É necessário colocar esta codeunit como SingleInstance de modo a que as
variáveis continuem instanciadas depois do trigger retornar. Isto é feito nas
Properties que se encontram no menu View.
Também no menu View e posteriormente em C/AL Globals, é possível
aceder à zona de definição de variáveis globais, constantes de texto e
funções.
Nesta codeunit foram definidas as seguintes variáveis globais:
• InMsg – Automation – 'Navision Communication Component
version 2'.InMessage;
• InS – InStream;
• XMLDom – Automation – 'Microsoft XML, v3.0'.DOMDocument;
• XMLNode – Automation – 'Microsoft XML, v3.0'.IXMLDOMNode;
• BizLayer – Codeunit – BizLayer Entry Point;
• Request – Text(50);
• Parameters – Text(50);
• OutMsg – Automation – 'Navision Communication Component
version 2'.OutMessage;
• OutS – OutStream;
• MQBus – Automation – 'Navision MS-Message Queue Bus
Adapter'.MSMQBusAdapter;
• CC2 – Automation – 'Navision Communication Component
version 2'.CommunicationComponent.
Esta codeunit ao ser corrida cria um adaptador bus para message queues,
um componente de comunicação e uma referência para um documento XML.
De seguida é adicionado o adaptador à componente de comunicação, cujos
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 73
eventos são capturados pelo Navision e é especificada a message queue à
qual se está à escuta de mensagens.
OnRun()
CREATE(MQBus);
CREATE(CC2);
CREATE(XMLDom);
CC2.AddBusAdapter(MQBus,1);
MQBus.OpenReceiveQueue('.\private$\tonavision',0,0);
Código 5
A variável CC2 tem que ser definida com a opção WithEvents de modo a
possibilitar event handlers. Deste modo ao ser recebida uma mensagem o
Código 6, representado em seguida, vai ser executado.
CC2::MessageReceived(VAR InMessage : Automation "''.IDISPATCH")
// carrega a mensagem para um documento XML e procura o no string
InMsg := InMessage;
InS := InMsg.GetStream();
XMLDom.load (InS);
XMLNode := XMLDom.selectSingleNode ('string');
// efectua o parsing do pedido e conforme o valor chama a funcao apropriada
ParseRequest (XMLNode.text);
CASE Request OF
'Titulo':
Bulhosa.ByTitle(Parameters[1], Parameters[2],XMLDom);
'Autor':
Bulhosa.ByAuthor(Parameters[1], Parameters[2],XMLDom);
'Editora':
Bulhosa.ByEditora(Parameters[1], Parameters[2],XMLDom);
'Sinopse':
Bulhosa.BySinopse(Parameters[1], Parameters[2],XMLDom);
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 74
'GetTitles':
Bulhosa.ByTitle('ALL', Parameters[1],XMLDom);
'ClientHist':
Bulhosa.ClientHist(Parameters[1], Parameters[2],Parameters[3],XMLDom);
'GetClient':
BEGIN
Bulhosa.GetClient(Parameters[1], Parameters[2],XMLDom);
END;
'InsertQuotes':
Bulhosa.InsertQuotes
(Parameters[1],Parameters[2],Parameters[3],
Parameters[4],Parameters[5],Parameters[6],
Parameters[7],Parameters[8],Parameters[9],XMLDom);
// abre a queue de resposta e cria a nova mensagem
MQBus.OpenWriteQueue('.\private$\fromnavision',0,0);
OutMsg := CC2.CreateoutMessage('Message queue://.\private$\fromnavision');
XMLDom.save (OutMsg.GetStream());
// envia a mensagem
OutMsg.Send(0);
Código 6
Inicialmente uma variável de stream é inicializada com o conteúdo da
mensagem recebida. De seguida carrega-se esse conteúdo para um
documento XML, como se de um ficheiro se tratasse, e efectua-se uma
query por um nó de nome string. Este nó terá o pedido efectuado pelo web
service, neste caso específico poderá ser ou ByTitle ou InsertQuotes.
Estes dois tipos de pedidos têm diferentes formatos, como é possível
verificar no Código 1, a função ParseRequest (Código 7) faz o parsing do
pedido, e coloca o tipo de pedido e os parâmetros que o seguem, num
vector.
Dependendo do pedido, é executada uma de duas funções da codeunit
Bulhosa Request Processin. Finalmente é aberta a queue de resposta
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 75
(fromNavision), é criada uma nova mensagem, o documento XML é salvo e a
mensagem enviada.
ParseRequest(string : Text[250])
Request := COPYSTR (string, 1, STRPOS (string, '(') - 1);
auxstring := COPYSTR (string, STRPOS (string, '(') + 1, STRLEN (string) - STRPOS
(string, '(') - 1);
argpos := 1;
commapos := STRPOS (auxstring, ',');
WHILE (commapos <> 0) DO
BEGIN
Parameters[argpos] := COPYSTR (auxstring, 1, commapos - 1);
auxstring := COPYSTR (auxstring, STRPOS (auxstring, ',') + 1);
argpos := argpos + 1;
commapos := STRPOS (auxstring, ',');
END;
Parameters[argpos] := auxstring;
ParCount := argpos;
Código 7
A codeunit Bulhosa Request Processin contém duas funções principais, A
GetTitles (Código 8) e a InsertQuotes (Código 9). A primeira retorna, num
ficheiro XML, os títulos dos livros da tabela BulhosaLivros existente no
Navision. A segunda insere em duas tabelas, denominadas “Sales Header” e
“Sales Lines”, que representam a encomenda efectuada e as linhas da
encomenda respectivamente, e retorna o sucesso ou insucesso dessa
inserção.
A função ByTitle tem apenas uma variável local que referencia a tabela
BulhosaLivros. Isto é possível indo ao menu View > C/AL Locals e na secção
Variables definiu-se uma nova variável de nome Livros, do tipo Record e
subtipo BulhosaLivros. Esta função, é utilizada não só para vermos os títulos
dos livros existentes, mas também numa outra webpart desenvolvida para
pesquisarmos um livro pelo seu título, podendo por exemplo pesquisar quais
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 76
os livros que começam por uma certa letra. Foram também desenvolvidas
outras funções de pesquisa, como por exemplo, poder pesquisar por editora
ou sinopse, mas aqui já nada tem que ver com o formulário Infopath
existente, são sim utilizadas nas webparts criadas.
XMLDom.loadXML (('<?xml version="1.0"?><DataSet/>'));
XMLRoot := XMLDom.documentElement;
MESSAGE(Titulo);
IF Titulo='---' THEN BEGIN
AddElement (XMLRoot,'QUEUE',XMLNode);
AddAttribute (XMLNode, 'GUID', GUID);
AddElement (XMLRoot,'Livros',XMLNode);
AddAttribute (XMLNode, 'No.','---');
AddAttribute (XMLNode, 'Titulo','Nenhuma procura realizada');
AddAttribute (XMLNode, 'Autor','---');
AddAttribute (XMLNode, 'Editora','---');
AddAttribute (XMLNode, 'Sinopse','---');
AddAttribute (XMLNode, 'Preco','---');
AddAttribute (XMLNode, 'Imagem','---');
END
ELSE BEGIN
IF Titulo='ALL' THEN BEGIN
Livros.SETFILTER (Titulo, ('*'));
END
ELSE BEGIN
Livros.SETFILTER (Titulo, ('*'+Titulo+'*'));
END;
IF Livros.FIND('-') THEN BEGIN
AddElement (XMLRoot,'QUEUE',XMLNode);
AddAttribute (XMLNode, 'GUID', GUID);
REPEAT
AddElement (XMLRoot,'Livros',XMLNode);
AddAttribute (XMLNode, 'No.', Livros."No.");
AddAttribute (XMLNode, 'Titulo', Livros.Titulo);
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 77
AddAttribute (XMLNode, 'Autor',Livros.Autor);
AddAttribute (XMLNode, 'Editora',Livros.Editora);
AddAttribute (XMLNode, 'Sinopse',Livros.Sinopse);
AddAttribute (XMLNode, 'Preco',FORMAT(Livros.Preco));
AddAttribute (XMLNode, 'Imagem',Livros.Imagem);
UNTIL (Livros.NEXT = 0);
END
ELSE
BEGIN
AddElement (XMLRoot,'QUEUE',XMLNode);
AddAttribute (XMLNode, 'GUID', GUID);
AddElement (XMLRoot,'Livros',XMLNode);
AddAttribute (XMLNode, 'No.', '---');
AddAttribute (XMLNode, 'Titulo','Livro(s) nao encontrado(s)');
AddAttribute (XMLNode, 'Autor','---');
AddAttribute (XMLNode, 'Editora','---');
AddAttribute (XMLNode, 'Sinopse','---');
AddAttribute (XMLNode, 'Preco','---');
AddAttribute (XMLNode, 'Imagem','---');
END;
END
ByAuthor(Autor : Text[30];GUID : Text[50];VAR XMLDom : Automation "'Microsoft XML,
v3.0'.DOMDocument")
XMLDom.loadXML (('<?xml version="1.0"?><DataSet/>'));
XMLRoot := XMLDom.documentElement;
IF Autor='---' THEN BEGIN
AddElement (XMLRoot,'QUEUE',XMLNode);
AddAttribute (XMLNode, 'GUID', GUID);
AddElement (XMLRoot,'Livros',XMLNode);
AddAttribute (XMLNode, 'No.','---');
AddAttribute (XMLNode, 'Titulo','Nenhuma procura realizada');
AddAttribute (XMLNode, 'Autor','---');
AddAttribute (XMLNode, 'Editora','---');
AddAttribute (XMLNode, 'Sinopse','---');
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 78
AddAttribute (XMLNode, 'Preco','---');
AddAttribute (XMLNode, 'Imagem','---');
END
ELSE BEGIN
IF Autor='ALL' THEN BEGIN
Livros.SETFILTER (Autor, ('*'));
END
ELSE BEGIN
Livros.SETFILTER (Autor, ('*'+Autor+'*'));
END;
IF Livros.FIND('-') THEN BEGIN
AddElement (XMLRoot,'QUEUE',XMLNode);
AddAttribute (XMLNode, 'GUID', GUID);
REPEAT
AddElement (XMLRoot,'Livros',XMLNode);
AddAttribute (XMLNode, 'No.', Livros."No.");
AddAttribute (XMLNode, 'Titulo', Livros.Titulo);
AddAttribute (XMLNode, 'Autor',Livros.Autor);
AddAttribute (XMLNode, 'Editora',Livros.Editora);
AddAttribute (XMLNode, 'Sinopse',Livros.Sinopse);
AddAttribute (XMLNode, 'Preco',FORMAT(Livros.Preco));
AddAttribute (XMLNode, 'Imagem',Livros.Imagem);
UNTIL (Livros.NEXT = 0);
END
ELSE
BEGIN
AddElement (XMLRoot,'QUEUE',XMLNode);
AddAttribute (XMLNode, 'GUID', GUID);
AddElement (XMLRoot,'Livros',XMLNode);
AddAttribute (XMLNode, 'No.', '---');
AddAttribute (XMLNode, 'Titulo','Livro(s) nao encontrado(s)');
AddAttribute (XMLNode, 'Autor','---');
AddAttribute (XMLNode, 'Editora','---');
AddAttribute (XMLNode, 'Sinopse','---');
AddAttribute (XMLNode, 'Preco','---');
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 79
AddAttribute (XMLNode, 'Imagem','---');
END;
END
Código 8
A função InsertQuotes é mais complexa do que a representada no Código 8
devido ao facto de para além de retornar valores, inserir também dados em
duas tabelas da base de dados. Inicialmente gera um código de encomenda,
e insere na tabela “Sales Header” os valores respeitantes à mesma.
De seguida, são inseridos os valores na tabela “Sales Lines” correspondentes
às linhas de encomenda inerentes à encomenda inserida na tabela”Sales
Header”.
InsertQuotes(TituloLivro : Text[100];TipoPedido : Text[30];NomeCustomer :
Text[100];MoradaCustomer : Text[200];Entrega : Text[30];Autor
XMLDom.loadXML (('<?xml version="1.0"?><DataSet/>'));
XMLRoot := XMLDom.documentElement;
EVALUATE(qtd_aux,Quantidade);
//procura ultimo numero de encomenda usado
NoSeriesLine.SETFILTER("Series Code",'V-PROP');
NoSeriesLine.FIND('-');
//insere nova de encomenda na sales header
EVALUATE(AUX,NoSeriesLine."Last No. Used");
AUX:=AUX+1;
SalesHeader.INIT;
SalesHeader."No.":=FORMAT(AUX);
SalesHeader."Sell-to Customer No.":=FORMAT(5000);
SalesHeader."Sell-to Customer Name":=NomeCustomer;
SalesHeader."Sell-to Address":=MoradaCustomer;
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 80
SalesHeader.INSERT;
//modifica o ultimo usado para o novo
NoSeriesLine.VALIDATE("Last No. Used",FORMAT(AUX));
NoSeriesLine.MODIFY;
//insere novas linhas de encomenda
//insercao do item
SalesLine.INIT;
SalesLine."Document Type":=SalesLine."Document Type"::Quote;
SalesLine."Document No.":=FORMAT(AUX);
SalesLine."Line No.":=10000;
SalesLine.Type:=SalesLine.Type::Item;
SalesLine."No.":=FORMAT(1500);
SalesLine.Description:=TituloLivro;
SalesLine.Quantity:=qtd_aux;
SalesLine.INSERT;
IF Entrega='CORREIO' THEN BEGIN
SalesLine.INIT;
SalesLine."Document Type":=SalesLine."Document Type"::Quote;
SalesLine."Document No.":=FORMAT(AUX);
SalesLine."Line No.":=20000;
SalesLine.Type:=SalesLine.Type::"Charge (Item)";
SalesLine."No.":='V-FRETE';
SalesLine.Description:='Encargo Frete Div. (Venda)';
SalesLine.Quantity:=1;
SalesLine."Unit Price":=10;
SalesLine.INSERT;
END;
//autor
SalesLine.INIT;
SalesLine."Document Type":=SalesLine."Document Type"::Quote;
SalesLine."Document No.":=FORMAT(AUX);
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 81
SalesLine."Line No.":=30000;
SalesLine.Description:=Autor;
SalesLine.INSERT;
//editora
SalesLine.INIT;
SalesLine."Document Type":=SalesLine."Document Type"::Quote;
SalesLine."Document No.":=FORMAT(AUX);
SalesLine."Line No.":=40000;
SalesLine.Description:=Editora;
SalesLine.INSERT;
SalesLine.INIT;
SalesLine."Document Type":=SalesLine."Document Type"::Quote;
SalesLine."Document No.":=FORMAT(AUX);
SalesLine."Line No.":=50000;
SalesLine.Description:=TipoPedido;
SalesLine.INSERT;
SalesHeader.SETFILTER("No.",FORMAT(AUX));
IF SalesHeader.FIND('-') THEN BEGIN
AddElement (XMLRoot,'QUEUE',XMLNode);
AddAttribute (XMLNode, 'GUID', GUID);
AddElement (XMLRoot,'Estado',XMLNode);
AddAttribute (XMLNode, 'Valor', 'Valores inseridos');
END
ELSE
BEGIN
AddElement (XMLRoot,'QUEUE',XMLNode);
AddAttribute (XMLNode, 'GUID', GUID);
AddElement (XMLRoot,'Estado',XMLNode);
AddAttribute (XMLNode, 'Valor', 'Valores nao inseridos');
END;
Código 9
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 82
As funções AddElement e AddAtribute são usadas para a construção do
documento XML. AddElement tem a variável local NewChildNode –
Automation – 'Microsoft XML, v3.0'.IXMLDOMNode e AddAttribute a variável
local XMLNewAttributeNode – Automation – 'Microsoft XML,
v3.0'.IXMLDOMNode.
AddElement
(VAR XMLNode : Automation "'Microsoft XML, v3.0'.DOMDocument"; NodeName : Text[250];
VAR CreatedXMLNode : Automation "'Microsoft XML, v3.0'.IXMLDOMNode")
NewChildNode := XMLNode.ownerDocument.createNode('element', NodeName, '');
XMLNode.appendChild(NewChildNode);
CreatedXMLNode := NewChildNode;
AddAttribute(VAR XMLNode : Automation "'Microsoft XML, v3.0'.IXMLDOMNode";Name :
Text[260];NodeValue : Text[260])
IF NodeValue <> '' THEN BEGIN
XMLNewAttributeNode := XMLNode.ownerDocument.createAttribute(Name);
XMLNewAttributeNode.nodeValue := NodeValue;
XMLNode.attributes.setNamedItem(XMLNewAttributeNode);
END;
Código 10
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 83
3.5 Relatório de Despesas myPartner
Foi desenvolvido para a myPartner o relatório de despesas a seguir
apresentado.
Figura 16 – Relatório de Despesas myPartner
Este relatório, foi elaborado com a finalidade de ser utilizado na intranet da
myPartner, para que os seus funcionários pudessem de uma forma simples e
uniforme, preencher as suas despesas mensais.
Foi integrado no WSS de forma a poder passar por todo o caminho a que um
relatório de despesas está sujeito. O funcionário, ao preencher o formulário
e submetê-lo, seria enviado um e-mail ao seu autorizador, que por sua vez,
teria de consultar o relatório e fazer uma apreciação, dessa apreciação
surgiria uma aprovação ou rejeição de documento, caso o autorizador não se
pronunciasse sobre o relatório, este ficaria num estado pendente. Ao ser
rejeitado, seria enviado um e-mail ao funcionário com os motivos da
rejeição. A ideia seria, ao aprovar, o formulário seria enviado para a
secretária que imprimiria o relatório e o arquivaria. Solução esta que
acabou por não ser desenvolvida.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 84
3.6 Web Part EEE (Linha de Encomendas)
De seguida é mostrada umas das muitas webparts criadas, tendo em vista a
integração do Windows Sharepoint Services com Microsoft Business Solutions
– Navision:
Figura 17 – Webpart de linhas de encomeda (EEE)
Nesta webpart de linhas de encomenda, foi utilizado o webservice criado
para a EEE, com ligação a Navision, de forma a podermos fazer a pesquisa
por cliente, no entanto, é possível efectuar uma pesquisa filtrada por parte
de um nome ou de o nome completo de um parceiro/cliente, podendo-se
desta forma procurar, por exemplo, todos os clientes que contenham a
palavra “LDA”. De modo a simplificar a busca, as pesquisas são efectuadas
utilizando apenas letras maiúsculas. Desta lista, será escolhido qual o
cliente desejado, que aparecerá como um hyperlink, e ao clicarmos no seu
nome, poderemos ter acesso a todas as encomendas efectuadas pelo
mesmo, estas, aparecerão também como um hyperlink onde também, da
mesma forma, ao clicarmos, temos acesso às linhas que fazem parte dessa
encomenda.
Podendo assim concluir que esta é uma webpart composta por três
webparts, sendo todas dependentes umas das outras.
Integração On-Line com Sharepoint
«autor» 85
4 Conclusões
4.1 Objectivos realizados
O objectivo deste estágio consistiu no estudo e desenvolvimento de
aplicações em Windows Sharepoint Services.
De início foi proposto pela myPartner, a instalação/configuração do produto
e análise com todas as potencialidades da aplicação, o que levou a um
trabalho de pesquisa intenso, visto o Estagiário não ter conhecimento
profundo sobre esta aplicação.
Foi proposta, a realização de várias aplicações, desde desenvolvimentos de
webparts baseadas em templates existentes, à customização das mesmas.
Tendo sido finalmente, cumprido o principal objectivo, a integração entre
as diferentes aplicações, Microsoft Business Solutions - Navision e Windows
Sharepoint Services.
Podendo-se assim concluir que os objectivos pretendidos para este estágio,
foram cumpridos.
4.2 Outros trabalhos realizados
Ao longo deste estágio, foram realizados outros trabalhos que não estavam
previstos no planeamento efectuado. O âmbito dos mesmos também não se
enquadra directamente no trabalho desenvolvido no geral.
Dos quais se destacam:
• Desenvolvimento em Visual Studio .NET de uma aplicação para
integrar com Microsoft CRM, apresentada em anexo;
• Conversões de dados de AS/400 para Microsoft CRM.
É de salientar ainda a presença nos seguintes “Workshops”:
• ISV Community Days – Integração de aplicações com o Microsoft
Office System (Oeiras – Hotel Real Oeiras);
• Office Developer Workshop (Porto – Ace Plus);
• Workshop de Sharepoint Portal Server (Porto – Rumos);
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 86
4.3 Limitações e trabalho futuro
É objectivo do estagiário a continuação do projecto desenvolvido,
promovendo novas funcionalidades e melhorias.
Dado que o estágio foi efectuado utilizando uma aplicação não conhecida
pelas pessoas que fazem parte da equipa da myPartner, o trabalho do
estagiário ajudará a estruturar soluções quer para clientes, quer
internamente.
Futuramente, a myPartner, abrirá esta aplicação a uso interno, com os
desenvolvimentos realizados durante o estágio e que serão desenvolvidos
posteriormente.
Quanto a limitações da tecnologia, torna-se complicado fazer algum tipo de
afirmação, dado que o tempo despendido com a mesma não permitiu
dominá-la integralmente, deixando sim uma noção do seu grande potencial.
4.4 Apreciação final
O estagiário julga, ao longo da realização deste relatório, ter avaliado de
forma criteriosa todo o processo de estágio. Para evitar a repetição, é seu
propósito, neste espaço, salientar o aspecto fulcral de toda esta
experiência.
O estágio caracterizou-se como um componente do processo de formação do
estagiário, com objectivos educacionais formativos e como factor de
interesse curricular.
O período de estágio permitiu ampliar as competências pessoais e
profissionais do estagiário. A sua integração no ambiente empresarial foi
essencial para aplicação prática de conhecimentos teóricos adquiridos ao
longo do curso.
Foi possível identificar que em projectos deste tipo, em particular no
desenvolvimento de aplicações, o maior desafio não foi a transformação do
conhecimento em software, mas sim a aquisição de conhecimentos
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 87
necessários para desenvolver e estabelecer processos, cujo o produto final é
uma aplicação ou um documento.
Realça-se o facto de que ao longo da realização do relatório foi difícil
transmitir de uma forma fidedigna a totalidade do esforço disponibilizado ao
longo do trabalho executado durante o estágio, tornou-se então necessário
dispensar bastante tempo para realização de pesquisa bibliográfica e
investigação, assim como todo o investimento pessoal dispendido.
Finalmente, é de salientar a satisfação do estagiário relativamente ao
trabalho desenvolvido que permitiu uma aquisição de vastos conhecimentos,
estando, também, consciente que o estágio resultou de um esforço genuíno
da sua parte e da entidade acolhedora, que proporcionou uma oportunidade
profissional de grande valor e mérito.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 88
Bibliografia
DEI-ISEP (2002), Normas de elaboração de relatório de estágio. Normas de
avaliação
Halstead, Patrick (2005) Developing Solutions with Microsoft Infopath.
Microsoft Press
Hillier, Scott (2004) Microsoft SharePoint: Building Office 2003 Solutions.
Apress
Sharp, John (2003) Microsoft Visual C# .NET Step by Step. Microsoft Press
MSDN Library for Visual Studio .NET 2003
Internet:
http://msdn.microsoft.com/
http://portal.sharepointsolutions.com/
http://www.discuss-sharepoint.com/
http://www.sharepointcustomization.com/
http://www.sharepointblogs.com/
http://www.gotsharepoint.com/
http://www.sharepointknowledge.com/
http://wss.sharepointtips.com/
http://www.gotdotnet.com/team/sharepoint/
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 90
Anexo 1 – Calendarização do Estágio
Inicio do estágio: 14/02/05
Figura 18 - Calendarização do Estágio
Figura 19 - Gráfico de Gantt
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 91
Anexo 2 – Aspecto Básico do WSS
Figura 20 - Site base Windows Sharepoint Services
Aspecto básico de um site baseado em Microsoft Windows Sharepoint
Services. Onde se pode reparar, nas diferentes web parts que o constituem,
tais como Announcements, Links e Events.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 92
Anexo 3 – Site desenvolvido para a EEE
Figura 21 - Site EEE
Site desenvolvido para a Empresa de Equipamentos Eléctricos, já bastante
modificado do site base. Como se pode reparar, já apresenta uma série de
links na quick lauch da esquerda, tais como as web parts desenvolvidas,
Produtos e Encomendas.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 93
Anexo 4 – Fórum de Discussão (EEE)
Figura 22 - Fórum de Discussão (EEE)
Aspecto do fórum criado para EEE, já com alguns exemplos, e demonstração
de como por exemplo responder a um post.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 94
Anexo 5 – Galeria de Fotos (EEE)
Figura 23 - Galeria de Fotos EEE
Aspecto da galeria de fotos desenvolvida para a EEE, onde se pode destacar
as imagens de equipamento eléctrico disponíveis. Para esta galeria, existem
diferentes formas de a poder consultar, tal como se pode reparar, em
detalhe (Details), simplesmente os seus ícones (Thumbnails) e com
descrição (Filmstrip).
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 95
Anexo 6 – Site desenvolvido para Bulhosa Livreiros
Figura 24 - Site Bulhosa Livreiros
Site desenvolvido para a Bulhosa Livreiros, já bastante modificado do site
base. Como se pode reparar, já apresenta uma série de novas web parts, e
um aspecto bastante alterado.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 96
Anexo 7 – Questionários (Surveys)
Figura 25 - Questionário Bulhosa
Questionário desenvolvido para a Bulhosa Livreiros, com objectivo de saber
a opinião dos clientes em relação ao último livro lido, ao local preferido de
compras e ao nível a que classifica as diferentes livrarias existentes.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 97
Anexo 8 – Estatísticas de Questionário
Figura 26 - Estatísticas do questionário
Este quadro de estatísticas, corresponde a um template já existente no
Sharepoint, que associa a um questionário, neste caso o anterior
apresentado, um gráfico gerado em função das respostas obtidas.
Integração On-Line com Sharepoint
José Miguel de Bessa Carvalho 98
Anexo 9 – Desenvolvimento C# para CRM
Figura 27 - Aplicação desenvolvida para integração em CRM
Esta aplicação teve como objectivo filtrar dados, isto é, conforme a pessoa
que executava a aplicação, seriam filtrados os dados para si mesmo.
Assim:
• Caso fosse um director, teria acesso a todos os relatórios de despesas
existentes;
• Caso fosse um funcionário, teria acesso apenas aos seus relatórios;
• Caso fosse um chefe de vendas (que tem funcionários associados a si)
poderia ver os seus relatórios, e os dos seus subordinados.