Integração por Web Services Versão 1.1 Maio 2010
Índice Índice... 2 Introdução... 3 Arquitectura PRIMAVERA... 4 User Interface... 4 Motor... 4 Interface para o Administrador... 5 Motores PRIMAVERA em Web Services... 6 Exemplo... 6 Criar Projecto Web Service... 6 Criar Aplicação Cliente... 9 Resultado... 11 Anexos... 12 AbreEmpresaTrabalho... 12 Sintaxe... 12 Parâmetros... 12 FechaEmpresaTrabalho... 13 Sintaxe... 13 Comercial.Artigos.ActualizaValorAtributo... 13 Sintaxe... 13 Parâmetros... 13 PRIMAVERA Business Software Solutions, S.A. 2
Introdução Web Services é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. Este documento descreve um exemplo da utilização dos motores PRIMAVERA para integração de aplicações externas via Web Services. Para isso, inicialmente é apresentada uma breve explicação da arquitetura PRIMAVERA. Para o desenvolvimento do exemplo apresentado foi utilizada a ferramenta Microsoft Visual Studio 2008. PKB Documentação de Motores Documentação Base Dados PRIMAVERA Business Software Solutions, S.A. 3
Arquitectura PRIMAVERA Cada um dos módulos PRIMAVERA está dividido em três componentes lógicos que, na prática, correspondem a seis componentes físicos (binários) principais. Esta organização pode ser representada pelo seguinte diagrama: Cada um desses componentes lógicos tem um propósito específico: User Interface O User Interface é responsável por toda a camada de apresentação e recolha de dados ao utilizador. Inclui todos os interfaces visíveis (menus, manutenções, editores, etc.) e corresponde ao executável do módulo (ex.: Gcp750LE.exe). Motor O motor implementa toda a lógica de negócio do módulo e camada de ligação à base de dados. Este componente lógico é composto por três componentes físicos de acordo com a arquitectura do motor (ex.: GcpBE750.dll, GcpBS750.dll e GcpDS750.dll). Os componentes físicos estão publicados como componentes COM e, por isso, estão disponíveis nos projectos VBA PRIMAVERA e também podem ser reutilizados em aplicações externas para aceder às funcionalidades principais dos módulos PRIMAVERA. PRIMAVERA Business Software Solutions, S.A. 4
Interface para o Administrador O Interface para o Administrador é um componente lógico de "User Interface" especial. Implementa todas as funcionalidades de integração com o Administrador PRIMAVERA: parametrizações e serviços do módulo, permissões de segurança e propriedades do módulo. É composto por dois componentes físicos (ex. GcpAudit750.dll e GcpForms750.dll). PRIMAVERA Business Software Solutions, S.A. 5
Motores PRIMAVERA em Web Services O exemplo apresentado tem como função a alteração da descrição de um determinado artigo, na versão 7.50 do ERP PRIMAVERA. No entanto, o mesmo exemplo pode ser aplicado na versão 7.0. Para isso, utilizar a referência Interop.ERPBS700.dll. Exemplo O primeiro passo será a criação de um Web Service que disponibilizará os métodos de acesso aos motores PRIMAVERA. O Web Service deve estar alojado num posto que contenha a aplicação PRIMAVERA instalada. Criar Projecto Web Service 1. Aceda ao Microsoft Visual Studio 2008 e crie um projecto Web Service escolhendo a opção ASP.NET Web Service, em File New Web Site; 2. Adicione, em Web Site Add Reference Browse, a referência: Interop.ERPBS750.dll (disponíveis na pasta dos ficheiros comuns das aplicações, por exemplo, em C:\Program Files\Common Files\PRIMAVERA\SG750 ); PRIMAVERA Business Software Solutions, S.A. 6
3. Desenvolver métodos que retornem os dados pretendidos. Neste exemplo, foi desenvolvido o método UpdateItemDescription que, através do acesso aos motores PRIMAVERA, altera a descrição de um determinado artigo; <WebMethod()> _ Public Function UpdateItemDescription(ByVal Item As String, ByVal NewDescription As String) As Boolean Dim Engine As Interop.ErpBS750.ErpBS Engine = New Interop.ErpBS750.ErpBS Try Engine.AbreEmpresaTrabalho(0, "DEMO", "Administrator", "") 'Open Company Engine.DSO.Comercial.Artigos.ActualizaValorAtributo(Item, "descricao", NewDescription) 'Update Item Description Engine.FechaEmpresaTrabalho() 'Close Company Return True Catch ex As Exception Return False End Try End Function Este método retorna True se alterar a descrição do artigo com êxito e False se ocorrer algum erro. 4. Publicar o Web Service, em Build Publish Web Site; 5. Iniciar o Debug do Web Service, em Debug Start Debugging (F5). Será aberta uma janela do browser. Guardar o URL apresentado, pois irá ser necessário para adicionar a sua referência na aplicação cliente. PRIMAVERA Business Software Solutions, S.A. 7
Se pretender testar o serviço, seleccionar o método, preencher os campos necessários e seleccionar a opção Invoke. Se o método for executado com sucesso, então é apresentada a seguinte mensagem: PRIMAVERA Business Software Solutions, S.A. 8
Criar Aplicação Cliente Para demonstrar um exemplo da chamada de um Web Service foi desenvolvida uma aplicação cliente, em Visual Basic. Nesta aplicação é apresentado um ecrã onde o utilizador deverá preencher o código do artigo e actualizar a sua descrição, através de referências Web Service. 1. Aceda ao Microsoft Visual Studio 2008 e crie um projecto Windows Forms Application, em File New Project Visual Basic; 2. Adicione, em Project Add Service Reference Advanced Add Web Reference (ou Project Add Web Reference se acessível), a referência ao método criado anteriormente, no Web Service, identificando o URL; PRIMAVERA Business Software Solutions, S.A. 9
Garantir que o Web Service se encontra activo. 3. Criar o formulário e os métodos necessários. No exemplo desenvolvido, quando o utilizador clica na botão Confirm do formulário (ver secção Resultado ), será invocado o método UpdateItemDescription do Web Service: Private Sub UpdateButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles UpdateButton.Click Dim PriWS As WebReference.Service PriWS = New WebReference.Service If PriWS.UpdateItemDescription(Me.ItemCode.Text, Me.NewDescription.Text) = True Then MsgBox("The item " & Me.ItemCode.Text & " was successfuly updated.") Else MsgBox("The item " & Me.ItemCode.Text & " was not updated.") End If End Sub WebReference é a referência que foi introduzida para aceder ao método UpdateItemDescription do WebService. PRIMAVERA Business Software Solutions, S.A. 10
Resultado Nesta secção é apresentado o resultado final da aplicação cliente. PRIMAVERA Business Software Solutions, S.A. 11
Anexos Neste capítulo são apresentados, em detalhe, os métodos utilizados no exemplo exposto. Estes métodos estão disponíveis nos motores PRIMAVERA. AbreEmpresaTrabalho Método utilizado na abertura de uma empresa da aplicação PRIMAVERA. Sintaxe Public Sub AbreEmpresaTrabalho( _ ByRef enutipoplataforma As EnumTipoPlataforma, _ ByRef strcodemp As String, _ ByRef strutilizador As String, _ ByRef strpassword As String, _ Optional ByRef objtrans As StdBETransaccao = Nothing, _ Optional ByRef strinstancia As String = "DEFAULT", _ Optional ByRef blnmodoprimario As Boolean = True _ ) Parâmetros enutipoplataforma Nome do tipo da Plataforma (tpempresarial, tpprofissional ou tpfirst). strcodemp Código da empresa (ex. DEMO ). strutilizador Código do utilizador (ex. Administrador ). strpassword objtrans strinstancia blnmodoprimario Password do utilizador. Controlador de transacções. Instância do servidor de dados. Define se é ou não executado em modo primário. PRIMAVERA Business Software Solutions, S.A. 12
FechaEmpresaTrabalho Método utilizado para encerrar uma empresa da aplicação PRIMAVERA. Sintaxe Public Sub FechaEmpresaTrabalho() Comercial.Artigos.ActualizaValorAtributo Utilizado para aceder a valores dos atributos da tabela ArtigosPrecos. Sintaxe Public Sub ActualizaValorAtributo( _ ByRef Artigo As String, _ ByRef Atributo As String, _ ByRef Valor As Variant _ ) Parâmetros Artigo Atributo Valor Artigo no qual se pretende actualizar um atributo. Atributo do artigo que se pretende actualizar. Valor que se pretende gravar no atributo. 1993 2010 PRIMAVERA Business Software Solutions S. A. Todos os direitos reservados. PRIMAVERA Business Software Solutions, S.A. 13