Importante: Si trabaja en SAP S / 4HANA: Los servicios ICF son puntos de entrada directos al sistema ABAP a través del protocolo HTTP. La implementación de servicios ICF con implicaciones para el sistema y la configuración del paisaje es una tarea de seguridad crítica.
Por lo tanto, para seguir las mejores prácticas adoptadas por SAP internamente, considere implementar su servicio como un servicio OData.
Paso 1: crea un servicio HTTP
Seleccione un paquete y seleccione Nuevo> Otro propósito del repositorio desde el menú contextual:
Ingrese el texto del filtro HTTP y seleccione Hacia adelante:
Entrar a Nombre:Z_GET_DATE_HTTP_XXX y Descripción: Encuentra la fecha del sistema. para su servicio y seleccione Hacia adelante:
Seleccione o cree un solicitar transporte:
El nuevo servicio HTTP se muestra en una nueva pestaña. La clase de controlador y la URL se generan automáticamente, en la forma: https://<server:port>/sap/bc/http/sap/<service_name>?sap-client=100
Hecho
Inicie sesión para responder la pregunta
Paso 2: aplicar la clase de controlador
Ahora aplica la clase de controlador, comenzando con una salida de texto simple.
Abra la clase de controlador haciendo clic en el hipervínculo:
Estructura de clase y declaración de interfaz para IF_HTTP_SERVICE_EXTENSION generado automáticamente.
Vaya a la sección de implementación de la clase e ingrese la siguiente declaración en el método:
response->set_text('Hello!').
Hecho
Inicie sesión para responder la pregunta
Paso 3: guardar y activar
Salvar (Ctrl+S) y Activar (Ctrl+F3) Tu clase.
Hecho
Inicie sesión para responder la pregunta
Paso 4: prueba el servicio
Regrese a su servicio HTTP. Pruebe el servicio de su navegador haciendo clic en el enlace URL:
Si es necesario, inicie sesión nuevamente. La vista previa se abre automáticamente en una nueva pestaña y muestra algo como esto:
Hecho
Inicie sesión para responder la pregunta
Paso 5: agregue la fecha del sistema al método
Ahora agregará al método obteniendo primero la fecha del back-end.
En un entorno ABAP, solo puede utilizar las API enumeradas. Por lo tanto, no puedes usarlo. SY-DATUM. En cambio, llamas al método apropiado de clase CL_ABAP_CONTEXT_INFO.
Luego arroja esta variable de fecha a una variable cableada y la envía como antes.
Eliminar la declaración response->set_text('Hello again!'). y agregue lo siguiente a su código:
DATA(system_date) = CL_ABAP_CONTEXT_INFO=>get_system_date( ).
DATA: text type string.
text = system_date.
response->set_text( text ).
Hecho
Inicie sesión para responder la pregunta
Paso 6: prueba el servicio nuevamente
Salvar (Ctrl+S) y activación (Ctrl+F3) Tu clase.
Pruebe su servicio haciendo clic de nuevo en el enlace URL. Esta vez, la vista previa debería mostrar algo como esto:
.
Hecho
Inicie sesión para responder la pregunta
Paso 7: Verifique el código
Tu código debería verse así:
class Z_GET_DATE_HTTP_XXX definition
public
create public .
public section.
interfaces IF_HTTP_SERVICE_EXTENSION .
protected section.
private section.
ENDCLASS.
CLASS Z_GET_DATE_HTTP_XXX IMPLEMENTATION.
method IF_HTTP_SERVICE_EXTENSION~HANDLE_REQUEST.
DATA(system_date) = CL_ABAP_CONTEXT_INFO=>get_system_date( ).
DATA: text type string.
text = system_date.
response->set_text( text ).
endmethod.
ENDCLASS.
Hecho
Inicie sesión para responder la pregunta
Paso 8: Cree un caso de comunicación entrante
Ahora creará los artefactos que necesita para permitir que otros sistemas llamen a su servicio de manera compatible. Esto implica algunos gastos generales para un consumidor; la ventaja, sin embargo, es que puede agregar varios sistemas de consumidores o usuarios (por ejemplo, con diferente autenticación) que apuntan al mismo servicio HTTP, que está incluido en el mismo caso de comunicación.
Primero, crea el Caso de comunicación.
Seleccione su paquete, luego seleccione Nuevo> Otro propósito del repositorio … desde el menú contextual.
Agregar el filtro scen, luego seleccione Caso de comunicación, luego seleccione Hacia adelante.
Poner un Nombre: Z_WRAP_HTTP_INBOUND_XXX y Suelte, intente elegir el transporte, luego seleccione Finalizar.
Su caso de comunicación es visible.
Hecho
Inicie sesión para responder la pregunta
Paso 9: agregue el servicio HTTP
Sobre el En pestaña, seleccione Agregar….
IMPORTANTE: Seleccione Navegar. No puede ingresar el nombre. Luego agregue un filtro, por ejemplo Z_HTTP, seleccione su servicio, luego seleccione Finalizar.
Tu servicio es visible. Escoger Publicar localmente.
Hecho
Inicie sesión para responder la pregunta
Paso 10: Cree una configuración de comunicación
Abra el panel de su sistema. Puede encontrar la URL del panel seleccionando su sistema (es decir, Proyecto ABAP en el Explorador de proyectos) y luego seleccionando Propiedades> Desarrollo ABAP desde el menú contextual.
Oh Gestión de comunicaciones, Seleccione Acuerdo de comunicación. Luego seleccione Nuevo.
Elija su caso, Z_WRAP_HTTP_INBOUND_XXX de la lista desplegable. Acepte el nombre del conjunto predeterminado (equivalente).
Hecho
Inicie sesión para responder la pregunta
Paso 11: cree un sistema de comunicación
En la pantalla de inicio del Panel, seleccione Sistemas de comunicación.
Ingrese un nombre para Acuerdo de comunicación, entonces para Sistema de comunicación, Seleccione Nuevo.
Entrar a Reconocimiento del sistema y Acepte el nombre del sistema predeterminado (idéntico), luego seleccione Crear.
I Detalles técnicos> General> Nombre de host, entrada Tonto. Deje los otros valores predeterminados y seleccione Salvar.
Hecho
Inicie sesión para responder la pregunta
Paso 12: Cree un usuario de comunicación
Desplácese hacia abajo hasta Usuarios para la comunicación entrante, luego cree un nuevo usuario a través del + icono.
Escoger Nuevo Usuario y el Método de autenticación: nombre de usuario y contraseña.
Ingrese un nombre y una descripción, luego seleccione Sugerir una contraseña, luego seleccione Crear> Aceptar> Guardar.
Inicie sesión en XS Advanced CLI como XSA_ADMIN. Usar comando xs-admin-login desde el indicador en la máquina virtual como hxeadm Nota: Si no está usando…
Los tutoriales anteriores son una continuación de los tutoriales anteriores. Se asume que ha creado un TPCH usuario con los permisos correctos e iniciado sesión…