Documentos de Académico
Documentos de Profesional
Documentos de Cultura
C12
C12
Copyright
Copyright 2005 SAP ESPAA. Reservados todos los derechos. Prohibida la distribucin, reproduccin o traduccin de este manual o de parte del mismo, sea cual sea el fin y la forma, sin la autorizacin expresa por escrito de SAP ESPAA. La informacin contenida en este manual puede modificarse o complementarse sin previo aviso. Reservados todos los derechos.
SOAP en ABAP
SOAP en ABAP
Objetivos de la presentacin
z Presentamos aqu la forma estndar en la que podemos usar SOAP desde el entorno ABAP, tanto como proveedor de servicios como consumidor. z Veremos las implementaciones disponibles en 6.20 y 6.40. z nicamente se analiza la parte ABAP: no Java, no XI.
Antes de empezar
z Requisitos previos:
z A quien va dirigida:
Introduccin
Introduccin
SOAP
Conceptos bsicos z SOAP (Simple Object Access Protocol) es un lenguaje basado en XML que se utiliza para transmitir mesajes por una red, normalmente a travs de HTTP. z SOAP es la base tcnica de los Web Services. z La forma de invocar a un servicio SOAP se define con una descripcin del servicio escrita en WSDL (Web Services Description Language). z El conjunto de servicios Web disponibles se pueden obtener a travs de un directorio UDDI (Universal Description, Discovery and Integration)
SOAP
z Hasta la versin 6.10, la nica forma en que programas externos podan acceder a la funcionalidad de SAP era a travs de RFC. z RFC es difcil de programar a bajo nivel y es un protocolo cerrado de SAP. z Para ofrecer interconectividad con protocolos estndar, se recurre a conectores externos (Business Connector) y a wrappers de RFC (DCOM, .NET Connector, JCO, etc). z A partir de 6.10 SAP puede hablar HTTP de forma nativa: Se construye un servicio sobre ICF que permite acceder a RFC a travs de SOAP, incluyendo una descripcin WSDL del mismo.
SAP 6.20 como proveedor de servicios Web z En 6.20 existe un servicio en ICF (Internet Control Framework) para acceder a RFC a travs de SOAP z Se puede ofrecer como servicio Web cualquier mdulo de funcin que est disponible para ejecucin remota. z Esto incluye todas las BAPIs. El mapeo de funcionalidad SAP a servicios Web se tendr que hacer por tanto por BAPIs y mdulos de funcin.
Procedimiento para crear un servicio Web en 6.20 z Marcar el modulo de funcin que se desea habilitar como servicio accesible por RFC:
o el contenido del fichero, es la informacin que necesita quin vaya a conectar con el servicio. z Con el WSDL, se podr generar un proxy para .NET, J2EE, ABAP 6.40, XI y otros entornos. z El nico sistema de autentificacin disponible es usuario/contrasea de un usuario SAP. Y nicamente a travs de autenticacin bsica HTTP. z El punto de contacto del servicio Web es la URL /sap/bc/soap/rfc
SAP ESPAA 2005
Programacion de cliente SOAP en ABAP (ABAP como consumidor de servicios Web) z Incluir la definiciones de las clases ABAP para SOAP: INCLUDE SOAPINCL. z Generar un objeto para el documento SOAP: data: soapdoc type ref to CSoapDocument create object soapdoc. z Generar un objeto para el transporte SOAP: data: soaptrans type ref to CSoapTransportHttp. create object soaptrans.
SAP ESPAA 2005
z Crear transporte:
CALL METHOD CSoapTransport=>new_http_transport IMPORTING transport = soaptrans.
z Asignar payload:
CALL METHOD soaptrans->set_payload EXPORTING payload = soapdoc.
z Las limitaciones de SOAP en 6.20 son: z El servicio ICF /sap/bc/soap/rfc es una puerta abierta a todos los mdulos de funcin que estn habilitados para ejecucin remota: no es posible aislar el acceso a un solo servicio Web. z Solo soporta autenticacin por ICF (HTTP bsica, o certificados SSL). z La programacin de cliente en ABAP es compleja y limitada: no permite utilizar WSDL, no soporta toda la especificacin SOAP, etc.
SAP ESPAA 2005
SOAP en ABAP 6. 40
z Mejor integracin SOAP con ABAP z SOAP Framework z Creacin de servicios Web directamente desde BAPIs, mdulos de funcin o transaccin WSCONFIG. z Administracin de servicios Web (WSADMIN) z Mecanismos de control de acceso z Integracin con SAP J2EE y SAP XI
ABAP como proveedor de servicios Web z Se utiliza un servicio ICF: /sap/bc/srt (basado en SOAP Runtime) z Es necesario crear directamente los servicios que queremos que sean invocados, esto permite limitar el acceso SOAP slo a aquella funcionalidad necesaria y no a todas las funciones RFC.
ABAP 6.40 como consumidor de servicios Web z No es necesario programar a bajo nivel. z El acceso se hace a travs de una clase ABAP que reproduce el interfaz del servicio Web. Esta tipo de clase se denomina proxy. z Se genera una clase proxy a travs de la definicin WSDL del servicio con el que queremos conectar.
'Z_RFCSYS_PORT'.
TRY. CALL METHOD RFCSYS->RFC_SYSTEM_INFO EXPORTING INPUT = rfcq IMPORTING OUTPUT = rfcresp. CATCH CX_AI_SYSTEM_FAULT . CATCH CX_AI_APPLICATION_FAULT . ENDTRY.
SAP ESPAA 2005
Preguntas?