Crear su primer servicio de puerta de enlace OData SAP muy simple

Hay tanta información y tecnologías aparentemente nuevas disponibles sobre el desarrollo de aplicaciones móviles y receptivas dentro de SAP en este momento que hace que sea muy difícil saber por dónde comenzar. Así que Fiori es el futuro junto con SAPUI5, qué pasa con SAP Gateway y OData, o incluso HANA, Ariba (o como se llame) y los otros nombres y tecnologías interminables que existen….. ¿Cómo encajan todos estos en el panorama general para un desarrollador de SAP?
Bueno, comencemos a nivel del suelo, es decir, la puerta de enlace Netweaver donde se requieren las habilidades tradicionales de SAP ABAP como parte de la construcción de una aplicación Fiori.La puerta de enlace de SAP ha existido durante muchos años, pero con el paso a las aplicaciones Fiori/Móviles/receptivas, se está utilizando cada vez más y ahora es una parte clave de su entorno SAP.La puerta de enlace permite que el mundo exterior acceda a los datos dentro de su(s) sistema (s) SAP a través de servicios OData.
So Por lo tanto, en este nuevo mundo Fiori, el front-end se crea utilizando SAPUI5 utilizando el IDE Web,
…esto llama a un servicio OData que se ha creado en su sistema SAP a través de SAP Gateway
…el servicio OData utiliza ABAP para recuperar datos SAP y devolverlos a través del servicio OData
El siguiente ejemplo le mostrará cómo crear rápidamente su primer servicio de puerta de enlace OData utilizando código ABAP básico para seleccionar datos de una tabla estándar.
Paso 1-SAP Netweaver Gateway Service Builder
Primero vaya a transaction SEGW donde podrá crear su servicio

Paso 2-Crear proyecto
A continuación, con el botón crear, debe crear un proyecto para almacenar todos sus modelos de datos, implementaciones, tipos de entidades, conjuntos de entidades, etc. No se preocupe demasiado por la terminología en esta etapa, todo se aclarará.

Paso 3: Introduzca los detalles del proyecto
Introduzca un nombre, una descripción y un paquete. Deje todo lo demás como predeterminado a menos que sepa que necesita algo específico.

Paso 4-Importar estructura DDIC
Vamos a basar este ejemplo en un subconjunto de la tabla estándar de SAP EKKO. Dentro del proyecto recién creado, haga clic con el botón derecho en el nodo «Modelo de datos» y seleccione Importar->Estructura DDIC

Paso 5 – Ingrese detalles de la estructura
Ingrese EKKO dentro del campo estructura ABAP e ingrese un nombre de objeto, p. ej. purchaseorder

Paso 6 – Ver propiedades
Expanda el nodo recién creado «Tipo de entidad->purchaseorder» y haga doble clic en el nodo Propiedades

Solo usaremos los pocos campos superiores, así que seleccione todos los campos debajo de Estado y elimínelos

Hasta que se vea así

Nota: La razón por la que no voy a usar todos los campos es porque algunos son incompatibles con un servicio de puerta de enlace sin cambiar el tipo de datos.Le mostraré dónde obtendría el error más abajo si hubiera utilizado todos los campos. Esta información puede ayudarte a entender el error cuando crees uno real en el futuro.
Paso 7-Crear Conjunto de entidades
Guarde su proceso hasta el momento y luego haga clic con el botón derecho en el nodo Conjunto de entidades y seleccione Crear

Paso 8 – Forma alternativa de crear Conjunto de entidades
Alternativamente, haga doble clic en el nodo Conjunto de entidades y luego haga clic en el botón Anexar fila

Paso 9 – Detalles del conjunto de entidades
)

A continuación, seleccione el Tipo de entidad de la ayuda de entrada de selección

Una vez seleccionado, presione aceptar (marca verde)

Ahora se ha creado el conjunto de entidades

Paso 10-Generar servicio de puerta de enlace
Primero haga doble clic en el nodo del proyecto y genere todo el proyecto con el botón» Generar objetos de tiempo de ejecución »

Ahora notará que se han creado Objetos de implementación de servicio.Crear, Eliminar, getEntity(Lectura), GetEntitySet (Consulta) y Actualizar

Paso 11 – Active y mantenga el servicio
Ahora necesita ir a transaction «/IWFND/MAINT_SERVICE» Siempre encuentro que solo puedo hacer que esto funcione si iadd /n al inicio, es decir, /n / IWFND / MAINT_SERVICE

Paso 12 – Agregar servicio
Dentro de /n / IWFND / MAINT_SERVICE haga clic en el botón Agregar servicio

Luego ingrese la información del servicio que desea agregar (Observe que puede usar comodines en este punto para encontrar su servicio)

Presiona enter para encontrar tu servicio o servicios que coincidan con tus criterios de búsqueda. Una vez que haga clic en el que desea agregar

, la siguiente pantalla le muestra los detalles del servicio seleccionado, ingrese los detalles del paquete(es decir, el objeto local) y deje todo como predeterminado. A continuación, pulse el botón ok (marca verde)

Ahora debería recibir un mensaje emergente que indique que su servicio «se creó y que sus metadatos se cargaron con éxito»

Volver a la página anterior

Paso 13-Encuentre su servicio agregado
Ahora volverá al catálogo de servicios, dependiendo de cuántos servicios haya configurado en su sistema, es posible que necesite usar la funcionalidad del filtro para encontrar su nuevo servicio agregado.

Ahora debería ver los detalles de configuración del servicio y un semáforo verde junto al nodo ICF de ODATA en la esquina inferior izquierda.

Paso 14 – Cliente de puerta de enlace SAP Netweaver
Ahora necesitamos probarlo utilizando el Cliente de Puerta de enlace SAP Netweaver, al que se accede a través del botón «Cliente de puerta de enlace» justo encima del nodo ODATA en la esquina inferior izquierda

A continuación, dejando el URI de solicitud como predeterminado «/sap/opu/odata/sap/ZTEST_PROJECT_SRV/?format format = xml «simplemente haga clic en el botón» Ejecutar »

Debería obtener una respuesta HTTP similar a esta con un código de estado verde


Paso 15-Pruebas adicionales a través de SAP Netweaver Gateway Client
Ahora puede modificar la URL para que termine con «metadata metadata?sap-ds-debug = true»y, a continuación, pulse ejecutar de nuevo, para que podamos devolver las propiedades de metadatos de la entidad purchaseorder

«/sap / opu/odata/sap/ZTEST_PROJECT_SRV / metadata ¿metadatos?sap-ds-debug = true»

Ahora cambie el URI a tener » / purchaseorders?sap-ds-debug = true» al final para que podamos apuntar a los datos de las órdenes de compra del conjunto de entidades

«/sap / opu/odata/sap/ZTEST_PROJECT3_SRV / ¿pedidos de compra?sap-ds-debug = true»


Cuando presione ejecutar, debería obtener el siguiente error, ya que aún no hemos implementado el método que rellena estos datos

Paso 16 – Implementar el método GetEntitySet
Ahora regrese a la transacción SEGW y encuentre los métodos de implementación de servicio creados anteriormente. Busque el que se llama Getentityset (Consulta) y haga clic derecho sobre él. A continuación, seleccione «Ir al Banco de trabajo ABAP»

Aparecerá el siguiente mensaje diciendo que la operación aún no se ha implementado. Simplemente haga clic en aceptar

Ahora se le llevará a tcode SE80. Dentro de la lista de objetos de la izquierda, encuentre el método PURCHASEORDERS_GET_ENTITYSET dentro de Métodos->Métodos heredados.
Una vez que haya encontrado esto, haga clic derecho sobre él y seleccione Redefinir

Dentro del código de método que aparece, simplemente agregue la siguiente instrucción ABAP select
SELECT *
HASTA 10 FILAS
DE ekko
EN LOS CAMPOS CORRESPONDIENTES DE LA TABLA et_entityset.

Guardar y activar

Paso 17-Vuelva a probar el servicio
Vuelva a cambiar el URI a » / sap/opu/odata/sap/ZTEST_PROJECT_SRV / purchaseorders?sap-ds-debug = true»

Esta vez debería obtener algunos datos devueltos

Paso 18 – Más información
Recuerde que mencioné que no se usan todos los campos de la tabla EKKO, ya que algunos no son compatibles.Si los hubiera incluido todos al ejecutar el URI » / sap/opu/odata/sap/ZTEST_PROJECT_SRV / purchaseorders?sap-ds-debug = true » habría recibido el siguiente mensaje de error http:

<?xml version="1.0" encoding="utf-8" ?>- <error xmlns:xsi="http://www.w3.org/2001/XMLSchema-Instance"> <code>HTTP/500/E/Internal Server Error <message>Call of service /sap/opu/odata/sap/ZTEST_PROJECT_SRV/purchaseorders terminated because of an error. The following error text was processed in system TST : The current statement is only supported for character-type data objects.The error occurred on the application server erpukpltm. The termination type was: RABAX_STATE.If the termination type is RABAX_STATE, you will find more information on the cause of termination in system TST in transaction ST22. If the termination type is ABORT_MESSAGE_STATE, you will find more information on the cause of termination on the application server ????? in transaction SM21. If the termination type is ERROR_MESSAGE_STATE, you can search for further information in the trace file for the work process in transaction ST11 on the application server ______. You may also need to analyze the trace files of other work processes. If you do not yet have a user ID, contact your system adminmistrator.</message> </error>

Paso 19-Desarrollo adicional
El siguiente paso es acceder a este servicio de puerta de enlace desde su aplicación SAP Fiori


Instrucciones paso a paso sobre cómo crear su primera transacción web ITS basada en el programa de diálogo ABAP estándar utilizando SE80
SAP Netweaver Business Client
Desarrollo de aplicaciones Web SAP utilizando ITS-Ejemplo de código e información ABAP
Netweaver-Información sobre tecnologías SAP netweaver
Interfaz gráfica de usuario de SAP para HTML-ejecutar SAP en un PC que no tiene instalado el cliente SAP
Mantener servicios web – Uso de SICF de transacciones para activar y mantener servicios web de SAP
Desarrollo de Aplicaciones Web de SAP-Código de ejemplo e información sobre varias áreas de desarrollo web
GUI de SAP para HTML-ejecutar SAP en un PC que no tiene instalado el cliente de SAP
Servidor de transacciones de Internet ( ITS) – ventajas y desventajas
SU lógica de flujo-ventajas y desventajas de usar SU lógica de flujo
Desarrollar transacciones Web de SAP-usar SE80 y luego publicarlo en el ITS

Deja una respuesta

Tu dirección de correo electrónico no será publicada.