Saltar al contenido

Crear un servicio HTTP

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

  1. Seleccione un paquete y seleccione Nuevo> Otro propósito del repositorio desde el menú contextual:

  2. Ingrese el texto del filtro HTTP y seleccione Hacia adelante:

    Imagen que muestra step-1b-select-HTTP-service

  3. Entrar a Nombre:Z_GET_DATE_HTTP_XXX y Descripción: Encuentra la fecha del sistema. para su servicio y seleccione Hacia adelante:

    Imagen que muestra el servicio rank-1c-name

  4. Seleccione o cree un solicitar transporte:

    Imagen que muestra el paso-1d-comportamiento-aplicación

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

Imagen que muestra el paso 1e-nuevo-servicio-creado

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.

  1. Abra la clase de controlador haciendo clic en el hipervínculo:

    Imagen que muestra class-2a-open-handler-class

  2. Estructura de clase y declaración de interfaz para IF_HTTP_SERVICE_EXTENSION generado automáticamente.

  3. 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!').

    Imagen que muestra el método de inserción del paso 2b

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

  1. Regrese a su servicio HTTP. Pruebe el servicio de su navegador haciendo clic en el enlace URL:

    Imagen que muestra el paso 4-prueba-servicio-http

  2. Si es necesario, inicie sesión nuevamente. La vista previa se abre automáticamente en una nueva pestaña y muestra algo como esto:

    Imagen que muestra el paso 4b-Hola

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

  1. Salvar (Ctrl+S) y activación (Ctrl+F3) Tu clase.
  2. Pruebe su servicio haciendo clic de nuevo en el enlace URL. Esta vez, la vista previa debería mostrar algo como esto:

.
Imagen que muestra la fecha del paso 6 del sistema

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.

Step9-create-comm-artefacts descripción general

Primero, crea el Caso de comunicación.

  1. Seleccione su paquete, luego seleccione Nuevo> Otro propósito del repositorio … desde el menú contextual.

    step9a-nuevo-otro

  2. Agregar el filtro scen, luego seleccione Caso de comunicación, luego seleccione Hacia adelante.

    caso step9c-create-comm-

  3. Poner un Nombre: Z_WRAP_HTTP_INBOUND_XXX y Suelte, intente elegir el transporte, luego seleccione Finalizar.

Su caso de comunicación es visible.

step9-nua-comm-scen

Hecho

Inicie sesión para responder la pregunta

Paso 9: agregue el servicio HTTP

  1. Sobre el En pestaña, seleccione Agregar….

    paso 10-agregar-servicio-http

  2. IMPORTANTE: Seleccione Navegar. No puede ingresar el nombre. Luego agregue un filtro, por ejemplo Z_HTTP, seleccione su servicio, luego seleccione Finalizar.

    paso10a-buscar-servicio

  3. Tu servicio es visible. Escoger Publicar localmente.

    paso 10-b-publicar-localmente

Hecho

Inicie sesión para responder la pregunta

Paso 10: Cree una configuración de comunicación

  1. 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.

    step11a-open-flp

  2. Oh Gestión de comunicaciones, Seleccione Acuerdo de comunicación. Luego seleccione Nuevo.

    step11b-nuevo

  3. Elija su caso, Z_WRAP_HTTP_INBOUND_XXX de la lista desplegable. Acepte el nombre del conjunto predeterminado (equivalente).

    step11c-nombre-comm-arr

Hecho

Inicie sesión para responder la pregunta

Paso 11: cree un sistema de comunicación

  1. En la pantalla de inicio del Panel, seleccione Sistemas de comunicación.

  2. Ingrese un nombre para Acuerdo de comunicación, entonces para Sistema de comunicación, Seleccione Nuevo.

  3. Entrar a Reconocimiento del sistema y Acepte el nombre del sistema predeterminado (idéntico), luego seleccione Crear.

  4. I Detalles técnicos> General> Nombre de host, entrada Tonto. Deje los otros valores predeterminados y seleccione Salvar.

    step12a-nuevo-sistema

Hecho

Inicie sesión para responder la pregunta

Paso 12: Cree un usuario de comunicación

  1. Desplácese hacia abajo hasta Usuarios para la comunicación entrante, luego cree un nuevo usuario a través del + icono.

    paso 13a-crear-usuario-de-comunicación

  2. Escoger Nuevo Usuario y el Método de autenticación: nombre de usuario y contraseña.

    paso 13b-seleccionar-nuevo-usuario

  3. Ingrese un nombre y una descripción, luego seleccione Sugerir una contraseña, luego seleccione Crear> Aceptar> Guardar.

Hecho

Inicie sesión para responder la pregunta

Paso 13: guarde la configuración de comunicación

paso 14-guardar-comm-arr

Hecho

Inicie sesión para responder la pregunta

más información