Saltar al contenido

Guía para Usar RFC_READ_TABLE para Consultar Tablas de SAP

Introducción

Esta guía para el Harmony SAP Connector en Design Studio cubre la consulta de tablas de SAP utilizando la función RFC RFC_READ_TABLE. Para demostrar la consulta de datos de SAP, utilizamos la tabla estándar de SAP KNA1 (datos generales en el maestro de clientes) para consultar los ID y las direcciones de los clientes en Filadelfia.

Esta página está organizada en tres partes:

  • Parte 1: Creación de la Operación SAP

    Primero, usamos Design Studio SAP Connector para crear un SAP Extremo y una Función SAP asociada. Usando la función SAP, creamos una transformación de solicitud y una transformación de respuesta y luego construimos una operación usando esas estructuras. (Los detalles de las asignaciones de transformación aún deben completarse).

  • Parte 2: Modelado de la Consulta en la Instancia SAP

    A continuación, para modelar la consultar que queremos crear en Design Studio, usamos el Generador de funciones de SAP para probar la función RFC en la instancia de SAP.

  • Parte 3: Completando la Operación SAP

    Finalmente, asignamos los campos de las transformaciones de solicitud y respuesta, probamos la operación para obtener una vista previa de los datos que se recuperarán y ejecutamos la operación para recuperar los datos de SAP.

Al final de esta guía, también brindamos consejos para consultar datos de SAP, incluidas consideraciones como las limitaciones de usar este RFC y una alternativa de usar un BAPI.

Parte 1: Creación de la Operación SAP

Primero, usamos Design Studio SAP Connector para crear la estructura de una operación SAP usando la función RFC RFC_READ_TABLE.

Los detalles de las asignaciones de transformación se completarán en Parte 3: Completar la operación SAP.

Siga estos pasos para crear la estructura de la Operación SAP:

  1. Crear el Extremo de SAP
  2. Crear la función SAP
  3. Crear la Transformación de solicitud
  4. Crear la Transformación de respuesta
  5. Crear la operación

Crear el Extremo de SAP

Cree un Extremo de SAP con la información que permitirá que Harmony se conecte a la instancia de SAP.

Crear la Función SAP

Crear una Función SAP con esta configuración:

  • En el paso Tipo, seleccione RFC.

  • En el paso Función, seleccione RFC_READ_TABLE.

Después de hacer clic en Finalizar, la pantalla de configuración de la función SAP muestra las estructuras de solicitud y respuesta generadas, que se muestran en el siguiente paso.

Crear la Transformación de Solicitud

  1. En la pantalla de configuración de funciones de SAP, haga clic en Crear solicitud:

    archivo adjunto

  2. En la siguiente pantalla, use el menú desplegable Fuente para seleccionar la fuente de la transformación. Para esta guía, seleccione (Ninguno) como origen, ya que utilizará valores codificados de forma rígida más adelante cuando configure la transformación en Parte 3: Completar la operación de SAP. Haga clic en Finalizar para crear la transformación de solicitud:

    archivo adjunto

  3. Se muestra la pantalla de configuración de transformación de solicitudes:

    archivo adjunto

Crear la Transformación de Respuesta

  1. En el árbol del proyecto a la izquierda, debajo de Conectores > SAP > Funciones de SAP > RFC_READ_TABLE, localice la función de SAP que creó en Crear la función de SAP. Haga clic con el botón derecho en la función y seleccione Crear Transformación de respuesta.

  2. En la siguiente pantalla, use el menú desplegable Objetivo para seleccionar el objetivo de la transformación. Para esta guía, seleccione Texto como destino, ya que creará un archivo de texto sin formato para usar como destino. Haga clic en Siguiente:

    archivo adjunto

  3. En la siguiente pantalla, use el menú desplegable Definiciones de formatos de archivo disponibles para seleccionar Crear nuevo:

    archivo adjunto

  4. Se muestra un área para crear un nuevo formato de archivo. Para crear un nuevo archivo de texto para los fines de esta guía, ingrese un Nombre de Dirección del cliente. En Crear manualmente, seleccione Documento de texto simple como tipo de documento y Delimitado por caracteres como formato de documento, y luego haga clic en Crear manualmente:

    archivo adjunto

  5. En Definir propiedades de segmento, agregue campos de uno en uno haciendo clic en Nuevo e ingresando el Nombre de campo (Cliente, Nombre, Ciudad, Región y Calle). Haga clic en Finalizar para crear la transformación de respuesta:

    archivo adjunto

  6. Se muestra la pantalla de configuración de transformación de respuesta:

    archivo adjunto

Crear la Operación

  1. Localice la función SAP que creó anteriormente en el árbol del proyecto a la izquierda en Conectores > SAP > Funciones SAP > RFC_READ_TABLE. Haga clic derecho en la función y seleccione Crear operación.

  2. Se crea una operación que utiliza la función SAP con marcadores de posición para otras partes de la operación:

    archivo adjunto

    1. Haga clic con el botón derecho en el marcador de posición Solicitud y seleccione Seleccionar Transformación existente. En el cuadro de diálogo, seleccione la transformación de solicitud que creó anteriormente (RFC_READ_TABLE - Solicitud) y haga clic en Aceptar.

      Nota

      El marcador de posición Fuente se elimina automáticamente, ya que la transformación de solicitud se definió anteriormente para tener una fuente de (Ninguno) ya que los valores codificados se configurarán en un paso posterior.

    2. Haga clic con el botón derecho en el marcador de posición Respuesta y seleccione Seleccionar Transformación existente. En el cuadro de diálogo, seleccione la transformación de respuesta que creó anteriormente (RFC_READ_TABLE - Response) y haga clic en Aceptar.

    3. Haga clic con el botón derecho en el marcador de posición Objetivo y seleccione Crear nuevo objetivo. Ingrese un Nombre de RFC_READ_TABLE y seleccione un Tipo de Almacenamiento temporal. En Parámetros de conexión, proporcione un Nombre de archivo como salida.txt. Guarde el nuevo objetivo:

      archivo adjunto

  3. Regrese a la operación en el árbol del proyecto a la izquierda en Operaciones > RFC_READ_TABLE. Si es necesario, puede restablecer el diseño de la operación utilizando Control+F5(Windows) o Command+F5 (macOS).

    archivo adjunto

Parte 2: Modelado de la Consulta en la Instancia de SAP

A continuación, para modelar la consultar que queremos crear en Design Studio, usamos el Generador de funciones de SAP para probar la función RFC_READ_TABLE.

  1. Inicie sesión en la GUI de SAP.

  2. En el cuadro de búsqueda, ingrese el código de transacción SAP SE16N.

  3. Se muestra la pantalla Visualización de tabla general. Proporcione un nombre de Tabla de KNA1 para mostrar la tabla y sus campos. Los nombres en la columna Nombre técnico son utilizados por el RFC:

    archivo adjunto

  4. En el cuadro de búsqueda, ingrese el código de transacción SAP SE37.

  5. Se muestra Function Builder: Pantalla inicial. Introduzca un Módulo de función de RFC_READ_TABLE. Luego haga clic en Mostrar:

    archivo adjunto

  6. Se muestra la pantalla Function Builder: Display RFC_READ_TABLE. Utilice el menú para seleccionar Probar/Ejecutar:

    archivo adjunto

  7. Se muestra la pantalla Test Function Module: Initial Screen. Una vez configurada como se describe a continuación, la pantalla se ve así:

    archivo adjunto

    1. En la primera tabla, ingrese estos valores en la columna Valor:

      1. QUERY_TABLE: KNA1

      2. DELIMITER: |

        Nota

        El delimitador de tubería es necesario ya que la respuesta de este RFC no está estructurada.

    2. En la segunda tabla, siga estos pasos para configurar la columna Valor para estos campos:

      1. OPTIONS: Haga clic en la celda de valor (0 entradas) para mostrar la pantalla Editor de estructuras: cambiar OPCIONES desde la entrada 1. En el TEXT ingrese las condiciones de la consultar utilizando la versión de SQL de SAP (consulte Consejos para consultar datos de SAP al final de esta página para información del operador):

        archivo adjunto

      2. FIELDS: Haga clic en la celda de valor (0 entradas) para mostrar la pantalla Editor de estructuras: cambiar CAMPOS desde la entrada 1. Agregue estas entradas en el FIELDNAME columna, usando el menú para seleccionar Nueva Línea para cada nueva fila:

        archivo adjunto

        Nota

        Los nombres de campo usan los nombres técnicos como se muestra en la Parte 2, Paso 1.

  8. En la pantalla Test Function Module: Initial Screen, haga clic en el botón Execute:

    archivo adjunto

  9. Se muestra la pantalla Módulo de funciones de prueba: Pantalla de resultados. Haga clic en el DATA celda de valor de la tabla para ver los resultados de la consultar:

    archivo adjunto

  10. Se muestra la pantalla Editor de estructura: Mostrar DATOS de la entrada 1, que muestra los ID y la información de dirección de los clientes en Filadelfia:

    archivo adjunto

Parte 3: Completar la Operación SAP

En este paso, completamos los detalles de la operación SAP que creamos en Creación de la operación SAP y ejecute la operación para recuperar los datos de SAP:

  1. Configurar la Transformación de solicitud
  2. Configurar la Transformación de respuesta
  3. Implementar el proyecto
  4. Probar la operación
  5. Ejecutar la operación

Configurar la Transformación de Solicitud

  1. En el árbol del proyecto a la izquierda, debajo de Transformaciones > RFC_READ_TABLE - Solicitud, haga doble clic para abrir la transformación de solicitud que creó anteriormente.

  2. Complete la asignación de transformación de la siguiente manera:

    1. En la estructura objetivo, bajo INPUT > RFC_READ_TABLE, haga doble clic para abrir la DELIMITER campo. Ingrese este secuencia de comandos para codificar el delimitador:

      <trans>
      "|"
      </trans>
      
    2. En la estructura objetivo, bajo INPUT > RFC_READ_TABLE, haga doble clic para abrir la QUERY_TABLE campo. Ingrese este secuencia de comandos para usar la tabla KNA1:

      <trans>
      "KNA1"
      </trans>
      
    3. En la estructura de destino, bajo INPUT > RFC_READ_TABLE > FIELDS, haga doble clic para abrir la FIELDNAME campo. Ingrese este secuencia de comandos para el primer nombre de campo:

      <trans>
      "KUNNR"
      </trans>
      
    4. Como hay más campos para agregar pero solo una carpeta, agregue carpetas adicionales haciendo clic derecho FIELDS y seleccionando Crear carpeta adicional para asignaciones. Haga esto para cada campo adicional e ingrese el secuencia de comandos para cada FIELDNAME siguiendo el mismo formato que en el paso anterior:

      archivo adjunto

    5. En la estructura de destino, bajo INPUT > RFC_READ_TABLE > OPTIONS, haga doble clic para abrir la TEXT campo. Ingrese este secuencia de comandos para la consultar:

      <trans>
      "ORT01 EQ 'PHILADELPHIA'"
      </trans>
      

      Consejo

      El RFC_READ_TABLE la función tiene un límite de 75 caracteres por línea de opción, por lo que si su consultar excede eso, puede agregar carpetas adicionales como se describe en el paso anterior.

  3. Cuando las asignaciones estén completas, la estructura de solicitud debería ser similar a esto:

    archivo adjunto

Configurar la Transformación de Respuesta

  1. En el árbol del proyecto a la izquierda, debajo de Transformaciones > RFC_READ_TABLE - Response, haga doble clic para abrir la transformación de respuesta que creó anteriormente. Complete el mapeo de transformación de la siguiente manera:

    1. En la estructura de destino, haga clic con el botón derecho en el _flat_ y seleccione Agregar condición para agregar el elemento de datos llamado Condition como el primer elemento bajo el nodo:

      archivo adjunto

    2. Haga doble clic en el Condition elemento de datos e ingrese este secuencia de comandos para dividir la salida en campos individuales:

      <trans>
      $arr=Split(jbroot$jbresponse$OUTPUT$RFC_READ_TABLE.DATA.WA$, "|");
      true
      </trans>
      
    3. Haga doble clic en cada campo restante de la estructura de respuesta y complete cada secuencia de comandos con las posiciones de la matriz:

      Customer
      <trans>
      $arr[0]
      </trans>
      
      Name
      <trans>
      $arr[2]
      </trans>
      
      City
      <trans>
      $arr[4]
      </trans>
      
      Region
      <trans>
      $arr[6]
      </trans>
      
      Street
      <trans>
      $arr[8]
      </trans>
      
  2. Cuando las asignaciones estén completas, la estructura de respuesta debería ser similar a esto:

    archivo adjunto

Implementar el Proyecto

En la barra de herramientas superior, haga clic en el ícono de desplegar adjunto e desplegar todo en el proyecto.

Probar la Operación

En la parte inferior derecha de la transformación de respuesta, haga clic en el icono de prueba de operación archivo adjunto para probar la operación.

Los datos de las tablas de SAP se muestran en cada línea de la transformación de respuesta y muestran cómo se completarían los datos si se ejecutara la operación:

adjunto

Ejecutar la Operación

Abra la operación y haga clic en el icono de ejecución archivo adjunto en la esquina superior derecha.

El Monitor de operación debe indicar que la operación se ejecutó correctamente. Ahora podemos verificar el archivo de salida y ver que los datos consultados se han escrito en el archivo:

adjunto

Sugerencias para Consultar Datos de SAP

Esta sección proporciona sugerencias para consultar datos de SAP:

  • RFC o BAPI: Si se encuentra con limitaciones al usar el RFC RFC_READ_TABLE, hay otras opciones como usar la BAPI BBP_RFC_READ_TABLE o usando un RFC personalizado. Los pasos para usar un BAPI o un RFC personalizado son similares en Design Studio a los pasos presentados para el RFC RFC_READ_TABLE.

  • Límite de fila: El RFC RFC_READ_TABLE tiene un límite de fila de 512 caracteres. Es decir, cada fila de datos no puede exceder los 512 caracteres.

  • Flotante: El RFC RFC_READ_TABLE no devuelve ningún campo que contenga un tipo de datos flotante. El BAPI BPP_RFC_READ_TABLE no tiene esta limitación.

  • ROWSKIPS y ROWCOUNT: El RFC RFC_READ_TABLE devuelve un máximo de 999999 registros a la vez. Como esto puede exceder las limitaciones de la cantidad de registros que puede procesar un extremo en una operación abajo en la cadena, es posible que desee utilizar los campos ROWSKIPS y ROWCOUNT para implementar una forma de fragmentación de datos.

    ROWSKIPS es el número de fila inicial, y ROWCOUNT es el número de filas a buscar. Por ejemplo, ROWSKIPS = 0, ROWCOUNT = 500 obtiene los primeros 500 registros, ROWSKIPS = 501, ROWCOUNT = 500 obtiene los siguientes 500 registros, y así sucesivamente. si se deja en 0, entonces no se implementa fragmentación de datos. El valor máximo para cualquiera de estos campos es 999999.

  • OPTION: El OPTION el campo contiene la condición de consultar. Hay un límite de 75 caracteres para la longitud de la consultar, por lo que si la consultar supera ese límite, se deben crear carpetas adicionales para contener la cadena de consultar completa.

  • Manejo de errores: El RFC RFC_READ_TABLE no devuelve mensajes de error. Errores al usar la BAPI BPP_RFC_READ_TABLE se devuelven a través del conector SAP:

    • Si el nombre de la tabla no es válido:

      (126) TABLE_NOT_AVAILABLE: TABLE_NOT_AVAILABLE Message 029 of class SV type E, Par[1]: DD5T
      
    • Si hay una condición inválida:

      JCO_ERROR_SYSTEM_FAILURE: A condition specified dynamically has an unexpected format.
      
    • Si un nombre de campo no es válido:

      (126) FIELD_NOT_VALID: FIELD_NOT_VALID
      
  • Vistas: Creando vistas en SAP puede ser útil para trabajar con tablas unidas.

  • Operadores de consulta: El lenguaje de consultar de SAP utiliza estos operadores:

    Operador Descripción
    EQ igual a
    NE no es igual a
    LT menos que
    LE menor o igual que
    GT mayor que
    GE mayor o igual que
    LIKE como en LIKE `emma%`