Hola que tal buen día comunidad hoy les traigo un aporte que se que a más de uno se que le funcionara y les quiero compartir esto que la verdad en un principio me dio un gran dolor de cabeza debido a que el cliente no contaba con los parches más recientes de ABAP y empecé a realizar estos WS con transacciones ahorita obsoletas, ya posteriormente se puso las pilas el cliente y logre hacer las interfaces de WS necesarias con el famoso SOAMANAGER.
Quiero crear una serie de tutoriales referente a esto donde veremos desde la construcción de nuestro servicio WEB hasta consumir servicios propios y externos dándoles tips de todo lo que me ha pasado y convirtiéndolos en consultores de mayor expertise. Además creando más adeptos a este foro haciéndoles saber que aqui esta todo los de SAP no hay que ir a ningún otro lado .
Sin más que comentar comencemos.
Creación de nuestro servicio a través de la transacción SE37
Ingresamos a la transacción SE37 (Biblioteca de funciones)
Una vez dentro lo primero que haremos será crear un grupo de funciones, para ellos nos vamos al menú Pasar a → Gestión gr.funciones → Crear grupo
Y creamos el nombre del grupo esto es un paso muy importante ya que este grupo será el que expondremos para tener varios métodos dentro del mismo WS.
Ya una vez almacenado en el paquete y transporte el grupo de funciones, ingresamos el nombre de nuestro módulo de función y damos en click en botón Crear
Nos pedirá asignar nuestro módulo de función a un grupo de funciones. Ingresamos la informacion requerida. El grupo de funciones será el cremos previamente
Una vez hecho todo correcto nos mandara la siguiente pantalla
Lo primero será dirigirnos a la solapa de atributos para configurar el acceso remoto.
Forma de ejecución seleccionaremos (Módulo de acceso remoto)
Procederemos a configurar los parámetros de entrada solapa Import, para este caso como será una especie de calculadora estaremos esperando 2 valores de tipo numérico y uno de tipo carácter que será el que nos diga que tipo de operación queremos hacer. Nos quedara algo como lo siguiente:
Para el ejemplo utilice elementos de datos estándar. Podrían utilizar sin problemas los propios.
Ahora continuamos con la solapa Export. Aqui sera donde regresaremos propiamente el resultado quedando algo parecido a esto:
Nota: es importante activar los check’s que activo ya que esto hace que los valores se copien en lugar que se usen por referencia. En todos los modulos de funcion con llamado remoto el traspaso de valores es fundamental.
Listo hora de programar, para ello nos vamos a la solapa Cod. fte.. E ingresamos este pequeño código.
CASE i_oper.
WHEN 'm' OR 'M' OR '*'.
e_res = i_num1 * i_num2.
WHEN 's' OR 'S' OR '+'.
e_res = i_num1 + i_num2.
WHEN 'r' OR 'R' OR '-'.
e_res = i_num1 - i_num2.
WHEN 'd' OR 'D' OR '/'.
e_res = i_num1 / i_num2.
WHEN OTHERS.
ENDCASE.
Guardamos y activamos, al activar nos pedirá no sólo activar el módulo si no también el grupo de funciones activamos todo lo relacionado a lo que estamos haciendo. Al final aparecerá activo como se muestra en la imagen.
Para que sea una buena práctica probamos nuestro servicio de forma local. En la misma pantalla en la que estábamos damos click en ejecutar.
Ingresamos valores para la prueba y ejecutamos.
Y listo todo se ejecuto de una manera correcta
Listo esta mas que claro como creamos este módulo de función a continuación procederé a crear otro módulo de función dentro de este mismo grupo de funciones este nos regresara una subcadena de un texto.Esto con la finalidad de que nuestro WS lleve implícito 2 métodos a ejecutar, más adelante verán más claro esta parte.
Entonces solo procedere a pegar las pantallas que vaya realizando. Comencemos !!!
e_res = i_text+i_ini(i_fin).
Por último y no menos interesante vamos a crear nuestro Servicio WEB
Nos posicionamos en la ventana de código
Y seleccionamos del menú la siguiente opción Utilidades → Mas utilidades → Generar servicio WEB → Del grupo de funciones
Se abrirá la siguiente pantalla para definir el nombre del servicio y una descripción. Una vez terminado damos clic en continuar.
En la siguiente pantalla solo damos clic en continuar.
A continuación nos aparecerán las funciones de las que se compone el grupo nos aseguramos de que estén seleccionadas todas y damos clic en continuar.
Nos pedirá el nivel de seguridad yo en lo particular lo selecciono bajo, y clic en continuar
En la siguiente pantalla nos pedirá establecer un paquete y la orden de transporte donde se cargara nuestro servicio WEB, se lo establecemos y damos clic en continuar.
Listo nos mandara la última pantalla donde solo daremos clic en finalizar.
Solo esperamos a que se genere el servicio y nos mande la siguiente confirmación.
Para validar que nuestro servicio WEB se haya creado satisfactoriamente ingresamos a la transacción SOAMANAGER
Ahi les va un super TIP, como les comentaba mi SOAMANAGER ahí va jalando poco a poco, entonces en mi navegador de IE que es por defecto donde se ejecuta esta transacción me manda el siguiente error
Básicamente lo que me dice es que mi versión de SOAMANAGER no es compatible con el navegador que se ejecuta, pero que creen que hago. Copio la URL y me la llevo al Mozilla Firefox y jala con todo. Con algunos problemas de paquetes de idioma pero jala
Entonces ya saben si nos les funciona el IE pueden usar el Firefox.
Bueno regresando a lo que estábamos, no iremos a la segunda opción llamada Business Administration y seleccionamos la opción de Web Service Administration
En la siguiente pantalla seleccionamos que queremos buscar Servicios le establecemos el nombre de nuestro servicio. Recuerdan cual es? era este ZWS_GLOBAL y listo damos clic en START. Lo cual hará que nos muestre lo siguiente:
Igualmente pueden hacer la búsqueda desde la transacción SE80 de la siguiente forma:
Una vez dentro de la SE80 damos clic en Tratar objeto
Una vez que se muestre la pantalla seleccionamos la solapa de Enterprise Services seleccionamos el radio button Descripción servicio y metemos el nombre del servicio y damos clic en continuar.
Una vez todo correcto nos aparecerá una serie de donde veremos informacion detallada de nuestro WS.
Listo para no hacer más largo este tutorial lo dejo hasta aquí la siguiente parte será:
Web Services - Parte 2 (Configuración Final del Servicio WEB)
Adelanto:
Visualización de WSDL para consumo externo
Configuración de credenciales para uso externo
WS listo para generación de PROXY
Saludos comunidad yo vuelvo a la brevedad !!!
Dejen su likes y sus comentarios.