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:
- Crear el Extremo de SAP
- Crear la función SAP
- Crear la Transformación de solicitud
- Crear la Transformación de respuesta
- 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
-
En la pantalla de configuración de funciones de SAP, haga clic en Crear solicitud:
-
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:
-
Se muestra la pantalla de configuración de transformación de solicitudes:
Crear la Transformación de Respuesta
-
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.
-
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:
-
En la siguiente pantalla, use el menú desplegable Definiciones de formatos de archivo disponibles para seleccionar Crear nuevo:
-
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:
-
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:
-
Se muestra la pantalla de configuración de transformación de respuesta:
Crear la Operación
-
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.
-
Se crea una operación que utiliza la función SAP con marcadores de posición para otras partes de la operación:
-
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.
-
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.
-
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:
-
-
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) oCommand+F5
(macOS).
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.
-
Inicie sesión en la GUI de SAP.
-
En el cuadro de búsqueda, ingrese el código de transacción SAP SE16N.
-
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:
-
En el cuadro de búsqueda, ingrese el código de transacción SAP SE37.
-
Se muestra Function Builder: Pantalla inicial. Introduzca un Módulo de función de RFC_READ_TABLE. Luego haga clic en Mostrar:
-
Se muestra la pantalla Function Builder: Display RFC_READ_TABLE. Utilice el menú para seleccionar Probar/Ejecutar:
-
Se muestra la pantalla Test Function Module: Initial Screen. Una vez configurada como se describe a continuación, la pantalla se ve así:
-
En la primera tabla, ingrese estos valores en la columna Valor:
-
QUERY_TABLE
: KNA1 -
DELIMITER
: |Nota
El delimitador de tubería es necesario ya que la respuesta de este RFC no está estructurada.
-
-
En la segunda tabla, siga estos pasos para configurar la columna Valor para estos campos:
-
OPTIONS
: Haga clic en la celda de valor (0 entradas) para mostrar la pantalla Editor de estructuras: cambiar OPCIONES desde la entrada 1. En elTEXT
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): -
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 elFIELDNAME
columna, usando el menú para seleccionar Nueva Línea para cada nueva fila:Nota
Los nombres de campo usan los nombres técnicos como se muestra en la Parte 2, Paso 1.
-
-
-
En la pantalla Test Function Module: Initial Screen, haga clic en el botón Execute:
-
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: -
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:
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:
- Configurar la Transformación de solicitud
- Configurar la Transformación de respuesta
- Implementar el proyecto
- Probar la operación
- Ejecutar la operación
Configurar la Transformación de Solicitud
-
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.
-
Complete la asignación de transformación de la siguiente manera:
-
En la estructura objetivo, bajo
INPUT
>RFC_READ_TABLE
, haga doble clic para abrir laDELIMITER
campo. Ingrese este secuencia de comandos para codificar el delimitador:<trans> "|" </trans>
-
En la estructura objetivo, bajo
INPUT
>RFC_READ_TABLE
, haga doble clic para abrir laQUERY_TABLE
campo. Ingrese este secuencia de comandos para usar la tabla KNA1:<trans> "KNA1" </trans>
-
En la estructura de destino, bajo
INPUT
>RFC_READ_TABLE > FIELDS
, haga doble clic para abrir laFIELDNAME
campo. Ingrese este secuencia de comandos para el primer nombre de campo:<trans> "KUNNR" </trans>
-
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 cadaFIELDNAME
siguiendo el mismo formato que en el paso anterior: -
En la estructura de destino, bajo
INPUT
>RFC_READ_TABLE > OPTIONS
, haga doble clic para abrir laTEXT
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.
-
-
Cuando las asignaciones estén completas, la estructura de solicitud debería ser similar a esto:
Configurar la Transformación de Respuesta
-
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:
-
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 llamadoCondition
como el primer elemento bajo el nodo: -
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>
-
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>
-
-
Cuando las asignaciones estén completas, la estructura de respuesta debería ser similar a esto:
Implementar el Proyecto
En la barra de herramientas superior, haga clic en el ícono de desplegar 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 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:
Ejecutar la Operación
Abra la operación y haga clic en el icono de ejecución 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:
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 BAPIBBP_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 RFCRFC_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 BAPIBPP_RFC_READ_TABLE
no tiene esta limitación. -
ROWSKIPS
yROWCOUNT
: El RFCRFC_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 camposROWSKIPS
yROWCOUNT
para implementar una forma de fragmentación de datos.ROWSKIPS
es el número de fila inicial, yROWCOUNT
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 en0
, entonces no se implementa fragmentación de datos. El valor máximo para cualquiera de estos campos es999999
. -
OPTION
: ElOPTION
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 BAPIBPP_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%`