1 / 50

Utilize qualquer Web Service a partir do Progress 4GL

Utilize qualquer Web Service a partir do Progress 4GL. Luis B. Campos System Engineer. Agenda. Introdução Web Service Basics WSDL Analyzer Chamando um Web Service a partir do 4GL. Web Service Client. Disponível no OpenEdge ® 10.0A AppServer não é necessário

frances
Download Presentation

Utilize qualquer Web Service a partir do Progress 4GL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Utilize qualquer Web Service a partir do Progress 4GL Luis B. Campos System Engineer

  2. Agenda • Introdução • Web Service Basics • WSDL Analyzer • Chamando um Web Service a partir do 4GL Chame Qualquer Web Service a partir do Progress 4GL

  3. Web Service Client • Disponível no OpenEdge® 10.0A • AppServer não é necessário • Client de uma aplicação diferente Chame Qualquer Web Service a partir do Progress 4GL

  4. Web Services – Por que? • Conectividade heterogênea • Na arquitetura SOA eles tornam os serviços distribuídos possíveis • Denominador comun menor que o EDI ou CORBA Chame Qualquer Web Service a partir do Progress 4GL

  5. Web Services – Por que? • Provedores de Web service disponíveis • Produtos: OpenEdge, Oracle, IBM DB/2, SalesForce.com, etc. • Serviços: Google, e-Bay, Commonwealth of Massachusetts, etc. • Plataformas de Desenvolvimento: OpenEdge, .NET™, J2EE, Apache, WebSphere. Chame Qualquer Web Service a partir do Progress 4GL

  6. Web Services – Por que não? • Pode não ser eficiente • Pode não estar disponível Chame Qualquer Web Service a partir do Progress 4GL

  7. Web Service Basics - Onde? Usuários Serviços Empresariais Camada de Apresentação Camada de Integração Camadas de Serviços de Negócio Camadas de Acesso a Dados Fontes de Dados Gerenciadas Fontes de DadosNão Gerenciadas OpenEdge Reference Architecture Chame Qualquer Web Service a partir do Progress 4GL

  8. Agenda • Introdução • Web Service Basics • WSDL Analyzer • Chamando um Web Service a partir do 4GL Chame Qualquer Web Service a partir do Progress 4GL

  9. Web Service Basics – SOAP Message Envelope Header Header Entry Header Entry … Body Body Entry Body Entry … Header opcional Entradas podem ser SOAP Faults (erros) Chame Qualquer Web Service a partir do Progress 4GL

  10. Web Service Basics - WSDL Define • Interface • Codificação dos dados • Transporte • Endereço do serviço Contrato entre o client e o server Chame Qualquer Web Service a partir do Progress 4GL

  11. Anatomia de uma Sessão Web Service WSDL Request WSDL Response SOAP Request SOAP Response SOAP Request SOAP Response Um provedor de Web Service OpenEdge 4GL Client Chame Qualquer Web Service a partir do Progress 4GL

  12. Agenda • Introdução • Web Service Basics • WSDL Analyzer • Introdução • Demonstração do Analyzer • Chamando um Web Service a partir do 4GL Chame Qualquer Web Service a partir do Progress 4GL

  13. Dicionário 4GL/WSDL 4GLWSDL AppServer™..…......….............Web service Persistent procedure..............Port type (interface) Internal procedure..................Operation Chame Qualquer Web Service a partir do Progress 4GL

  14. Linha de Comando do WSDL Analyzer Gera a documentação 4GL para um web service C:\temp> bprowsdldoc http://api.google.com/GoogleSearch.wsdl google Documentation written to file:///c:\temp\google\index.html C:\temp> Chame Qualquer Web Service a partir do Progress 4GL

  15. Anatomia do Projeto do Client WSDL Request WSDL Response Provedor do Web Service WSDL Analyzer OpenEdge 4GL Client Documentos Gerados Chame Qualquer Web Service a partir do Progress 4GL

  16. Documentos Gerados Service index Port type conexão & chamada Data types dados complexos Operation Index Chame Qualquer Web Service a partir do Progress 4GL

  17. Snapshots do Analyzer:Documentação do Serviço Chame Qualquer Web Service a partir do Progress 4GL

  18. Snapshots do Analyzer:Documento do Serviço Chame Qualquer Web Service a partir do Progress 4GL

  19. Snapshots do Analyzer :Port Type – Sumário da Conexão Chame Qualquer Web Service a partir do Progress 4GL

  20. Snapshots do Analyzer :Port Type – Sumário da Operation Chame Qualquer Web Service a partir do Progress 4GL

  21. Snapshots do Analyzer :Port Type – Exemplo da Operation Chame Qualquer Web Service a partir do Progress 4GL

  22. Snapshots do Analyzer :Port Type – Parâmetros da Operation Chame Qualquer Web Service a partir do Progress 4GL

  23. Snapshots do Analyzer :Port Type – Exemplo de Parâmetros Complexos Chame Qualquer Web Service a partir do Progress 4GL

  24. Dados Complexos como TEMP-TABLE addCustomers Procedure prototype PROCEDURE addCustomers: DEFINE INPUT PARAMETER TABLE FOR customerList. DEFINE OUTPUT PARAMETER TABLE FOR conflictList. END PROCEDURE. Chame Qualquer Web Service a partir do Progress 4GL

  25. Dados Complexos como TEMP-TABLE Exemplo DEFINE TEMP-TABLE customerList NAMESPACE-URI http://mycompany.com/schemas/customerList NAMESPACE-PREFIX "cust“ FIELD CustNum AS INTEGER FIELD Name AS CHARACTER XML-NODE-TYPE "Attribute“ FIELD Country AS CHARACTER FIELD Comments AS CHARACTER INDEX CustNum IS PRIMARY UNIQUE CustNum INDEX Name Name INDEX Comments IS WORD-INDEX Comments. Chame Qualquer Web Service a partir do Progress 4GL

  26. Dados Complexos como TEMP-TABLE Parâmetros customerList This value is defined as a TEMP-TABLE. This value can also be expressed as a CustomerTable element in The http://mycompany.com/schemas/customerList namespace. As such, this parameter can be passed as a CHARACTER or LONGCHAR value containing an XML document. View example of XML. Chame Qualquer Web Service a partir do Progress 4GL

  27. Agenda • Introdução • Web Service Basics • WSDL Analyzer • Chamando um Web Service a partir do 4GL • Mapeamento de tipos de dados • Conexão e chamada • Manipulação do Header • Manipulação de Erros Chame Qualquer Web Service a partir do Progress 4GL

  28. Simples Mapeamento de Tipo de Dados Para mapeamentos completos,veja a documentação Chame Qualquer Web Service a partir do Progress 4GL

  29. Dados Complexos Representados de duas formas: • LONGCHAR/CHARACTER de documentos XML serializados • ProDataSet ou TEMP-TABLE quando possível (10.1A) Analyzer mostra exemplos de ambos. Chame Qualquer Web Service a partir do Progress 4GL

  30. Conexão e ChamadaExatamente como um AppServer CREATE SERVER web-svc-handle. web-svc-handle:CONNECT(“-WSDL wsdl-url ws-connect-parms”). RUN port-type-name SET port-type-handle ON web-svc-handle. RUN operation IN port-type-handle(parameters). CREATE SERVER app-server-handle. app-server-handle:CONNECT(“appserver-connect-parms”). RUN persistent-proc PERSISTENT SET procedure-handle ON app-server-handle. RUN internal-proc IN procedure-handle(parameters). Chame Qualquer Web Service a partir do Progress 4GL

  31. Resultados Google no Browser Chame Qualquer Web Service a partir do Progress 4GL

  32. Exemplo de Conexão Selecionado Chame Qualquer Web Service a partir do Progress 4GL

  33. Exemplos de Conexão e Chamada Colados Chame Qualquer Web Service a partir do Progress 4GL

  34. Definições de Variáveis Chame Qualquer Web Service a partir do Progress 4GL

  35. Connect e Set Port Chame Qualquer Web Service a partir do Progress 4GL

  36. Chamada ao Google Chame Qualquer Web Service a partir do Progress 4GL

  37. Resultado da Pesquisa Utilizando DOM Chame Qualquer Web Service a partir do Progress 4GL

  38. Carga da TEMP-TABLE com os Resultados Chame Qualquer Web Service a partir do Progress 4GL

  39. Resultados no 4GL Client Chame Qualquer Web Service a partir do Progress 4GL

  40. Objetos 4GL SOAP Header Header Entry Header Entry Envelope SOAP-HEADER Header SOAP-HEADER-ENTRYREF … SOAP-HEADER-ENTRYREF … Body Body Entry Chame Qualquer Web Service a partir do Progress 4GL

  41. SOAP Headers • Define um callbackport-type-handle:SET-CALLBACK-PROCEDURE( “REQUEST-HEADER | RESPONSE-HEADER”,   “request-handler-name”,web-service-handle). • Escreve um callbackPROCEDURE request-handler-name: DEFINE INPUT PARAMETER soap-header-handle AS HANDLE. DEFINE INPUT PARAMETER operation-namespace AS CHARACTER. DEFINE INPUT PARAMETER operation-local-name AS CHARACTER.END. Chame Qualquer Web Service a partir do Progress 4GL

  42. Anatomia de um Erro no Web Service WSDL Request WSDL Response SOAP Request SOAP Response (FAULT) Provedor do Web Service OpenEdge 4GL Client Chame Qualquer Web Service a partir do Progress 4GL

  43. 4GL SOAP Fault Envelope fault code fault actor Body fault string Body Entry <faultdetail> Chame Qualquer Web Service a partir do Progress 4GL

  44. Fault Objects do 4GL ERROR-STATUS SOAP-FAULT fault info SOAP-FAULT-DETAIL XML Chame Qualquer Web Service a partir do Progress 4GL

  45. SOAP Fault - Faultstring An error was detected while executing the Web Service request. (10893) Chame Qualquer Web Service a partir do Progress 4GL

  46. SOAP Fault - Detail <detail> <errorMessage> msg=The server application returned the error: Invoice not found; targetException=ERROR condition: The Server application has returned an error. (7243) (7211)] </errorMessage> <requestID> 172247e5b58beb30:5bb966:fb4fdb744a:-7fff#9 </requestID> </detail> Chame Qualquer Web Service a partir do Progress 4GL

  47. Resumo OpenEdge 4GL Client Web Service ou AppServer? • Chamar um web service é fácil • Use o WSDL Analyzer SOA-07: Call Any Web Service from the Progress 4GL

  48. Perguntas? Chame Qualquer Web Service a partir do Progress 4GL

  49. Obrigado! Chame Qualquer Web Service a partir do Progress 4GL

  50. Chame Qualquer Web Service a partir do Progress 4GL

More Related