115
Integração On-line com Sharepoint 2004 / 2005 1990309 - José Miguel de Bessa Carvalho Departamento de Engenharia Informática

Integração online com share point

Embed Size (px)

Citation preview

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

v

À minha família…

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 89

ANEXOS

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.