Cómo manejar caracteres especiales en cargas de datos SAP BW4HANA

La mayoría de las organizaciones que emplean las soluciones de almacenamiento empresarial de SAP utilizan archivos planos (como el formato .CSV) para cargar una variedad de datos comerciales transaccionales en sus sistemas.

Por lo general, los datos cargados se procesan, limpian y consumen aún más en sistemas ascendentes con lógica empresarial.

Los archivos de datos transaccionales a menudo los preparan usuarios comerciales funcionales, y los errores humanos dentro de los archivos pueden generar datos erróneos en el sistema, lo que genera desafíos importantes. Un tipo de error se refiere a los caracteres especiales. El error suele estar en los campos de descripción debido a errores de procesamiento de texto o operaciones de copiar y pegar. El proceso de carga de datos rechaza los caracteres especiales mientras procesa el resto de los datos, lo que hace que la solicitud de datos parezca errónea en la capa del área de preparación persistente (PSA) o no se procese por completo.

Esta publicación de blog explora una solución para abordar caracteres especiales utilizando una combinación de conjuntos de herramientas existentes y un poco de personalización.

El reto

SAP Business Warehouse (SAP BW) ofrece una solución lista para usar para manejar caracteres especiales utilizando el código de transacción estándar RSKC. Permite a los usuarios mantener todos los caracteres especiales permitidos dentro de SAP BW (por ejemplo, objetos de almacén de datos avanzados [ADSO], InfoCubos, etc.). Esta publicación de blog aborda el desafío de procesar archivos planos que contienen caracteres especiales antes de que los datos se carguen en SAP BW. sistema.

El principal desafío es explorar e identificar una solución que cumpla con los siguientes criterios:

  1. Permita que los datos de transacciones comerciales en el archivo plano que contiene caracteres especiales se procesen sin problemas en capas de SAP BW. Todos los caracteres especiales aparecen como «#» cuando se ven o se examinan los archivos planos de las carpetas AL11, como se muestra en la figura siguiente.
  2. Opcionalmente, permita que los caracteres especiales se reemplacen con un reemplazo configurable.


Solución

Afortunadamente, SAP proporciona un marco rico de conjuntos de herramientas dentro del sistema SAP BW que se puede aprovechar para construir una solución sólida para una experiencia de usuario perfecta. Este conjunto de herramientas incluye InfoPackages con rutinas ABAP y transformaciones con rutinas START/END donde el código ABAP se puede implementar para acceder a la mayoría de los objetos dentro del Sistema (InfoObjects, tablas estándar y personalizadas, etc.)

Supuestos

  • Los archivos planos están disponibles para su procesamiento en un directorio AL11 en una ubicación definida.
  • Esta solución se ha desarrollado e implementado en el sistema SAP BW con las especificaciones que se enumeran a continuación, pero también es aplicable a los sistemas SAP BW4HANA .


Configuración de página de códigos en InfoPackage

La codificación de caracteres es un conjunto de caracteres codificados para el que se ha asignado un número único a cada carácter. Refleja la forma en que el juego de caracteres codificados se asigna a bytes para su manipulación en una computadora. Hay muchos conjuntos de codificación de caracteres, por ejemplo, UTF-8, UTF-16 y UTF-32. En el mundo de SAP, la codificación de caracteres se nombra con la página de códigos, que es un número de cuatro dígitos. En la tabla siguiente se enumeran algunos ejemplos. Los algoritmos asociados con la página de códigos se utilizan para interpretar los conjuntos de datos entrantes en el archivo plano. La figura siguiente muestra las opciones de configuración de la página de códigos en el InfoPackage, que ofrece dos opciones principales para procesar archivos planos.


La primera es cargar archivos de tipo texto desde el servidor de aplicaciones. Deberá configurar una rutina para procesar los archivos planos. Para hacer esto en SAP BW, consulte la primera figura a continuación. Para hacer esto en SAP BW4HANA, consulte la segunda figura.



A continuación, especifique un nombre de archivo plano (que requiere un programa separado para su procesamiento posterior).

Alternativamente, puede cargar archivos de tipo texto desde una estación de trabajo local (que también requiere un programa separado para su procesamiento posterior), pero esta opción no presenta ningún desafío en el procesamiento de caracteres especiales.

Configuración del paquete de información

Para configurar el InfoPackage, siga estos pasos:

Configuración del juego de caracteres

  1. Configuración predeterminada: los sistemas Unicode usarán codificación UTF-16LE (página de códigos = 4103).
  2. Entrada directa: le permite anular la página de códigos del sistema usando la opción «juego de caracteres»:
  3. Página de códigos del sistema : predeterminada, configurada por el sistema como 4103 (UTF-16LE Unicode) .
  4. Página de códigos SAP de uso frecuente : 1100 (según ISO 8859-1); cubre los personajes de Europa Occidental, América del Norte y del Sur, Australia y África.
  5. Otras páginas de códigos de SAP : 1401 (idiomas de Europa del Este), 8000 (japonés), 8400 (chino simplificado), 8300 (chino tradicional), 1500 (ruso) y más también se basan en una página de códigos ISO 8859.

Carácter de reemplazo

Cuando los archivos planos entrantes tienen un carácter que no se puede interpretar utilizando algoritmos de la página de códigos configurada, el sistema asigna un carácter de reemplazo y el valor predeterminado es «#».

Configuración de Endian

En un número binario que consta de varios bytes (por ejemplo, un valor entero sin signo de 32 bits), puede elegir una de dos opciones. El primero es little endian , cuando el byte menos significativo se codifica primero y los bytes restantes se codifican en orden creciente de importancia. El segundo es big endian , cuando el byte más significativo se codifica primero y los bytes restantes se codifican en orden decreciente de importancia.

Para archivos de modo binario y texto, la configuración de endian es «predeterminada», y para los archivos de modo heredado, se pueden configurar las configuraciones de little endian o big-endian.

Procesamiento de archivos planos en la rutina de Infopackage o el programa ABAP

Para realizar operaciones como validaciones funcionales, etc., en el servidor de aplicaciones, el archivo plano debe procesarse utilizando la siguiente sintaxis:

OPEN DATASET <P_FILENAME> FOR INPUT IN <MODE> ENCODING DEFAULT IGNORING CONVERSION ERRORS.

* Realizar operaciones de archivo como lectura, escritura, etc.

CLOSE DATASET <P_FILENAME>.

Dónde:

  • P_FILENAME > es el nombre del archivo del servidor de aplicaciones
  • MODO > es uno de los modos más comunes, BINARIO o TEXTO
  • MODO TEXTO: El archivo se abre para ser leído o escrito línea por línea. Los caracteres de espacio final se eliminan en este modo.
  • MODO BINARIO: El archivo se abre para ser leído o escrito, sin saltos de línea. Se copia el contenido exacto de la memoria.

Cada variante de modo puede calificarse IGNORANDO LOS ERRORES DE CONVERSIÓN para permitir que el sistema elimine cualquier error de conversión en tiempo de ejecución mientras lee/escribe desde/hacia el archivo plano. Siempre que un carácter es reemplazado por un carácter de reemplazo mientras se lee o se escribe, se genera la excepción definida en la clase CX_SY_CONVERSION_CODEPAGE y la especificación IGNORING CONVERSION ERRORS permite que se suprima.

Reemplazo de caracteres especiales en transformaciones

La solución descrita anteriormente aborda el desafío de procesar caracteres especiales a través de InfoPackages en la capa de PSA. Estos caracteres especiales se pueden procesar en capas posteriores, pero pueden causar problemas de visualización en otras capas ascendentes (por ejemplo, Bex o SAP Business Planning and Consolidation o SAP Power BI). El siguiente desafío (pero opcional) es reemplazarlos con caracteres definidos por la empresa.

Esta publicación explora una forma más sencilla de reemplazar caracteres especiales. Sigue estos pasos.

  1. Almacene todos los caracteres válidos (alfabetos, números y símbolos de uso común) en una tabla personalizada (como la que se muestra a continuación). Ésta es una forma de almacenar caracteres especiales; podría haber muchas otras formas.


  1. Ejecute la rutina de inicio dentro de la transformación de SAP BW
  2. Acceda a todos los caracteres válidos (usando claves como VARIANT, SOURCE, DIMENSION, etc. en este ejemplo) y guárdelos en una variable local. Es posible que los conjuntos de caracteres deban concatenarse dependiendo de cómo se almacenaron en la tabla.
  3. Compare el contenido de la descripción de destino (u otros campos) con esta variable local. La lógica podría implementar operaciones ABAP «CO» (solo contiene) o cualquier otra operación de caracteres o cadenas.
  4. Reemplace el contenido de la descripción de destino con otro contenido predefinido.

Resultados

Utilizando la solución alternativa explorada anteriormente, veamos cómo afecta esto a la carga de datos. Configuramos un InfoPackage en nuestro ejemplo con estos criterios:

  • Configuración del juego de caracteres: entrada directa
  • Página de códigos del sistema: 4103 (anulado por el juego de caracteres)
  • Juego de caracteres (1100)
  • Carácter de reemplazo: #
  • Configuración de Endian: predeterminado

A partir de ahí, procesamos un archivo plano que contiene caracteres especiales (como se muestra en la primera figura que miramos) a través del InfoPackage. Después de un procesamiento exitoso, los datos aparecen en la capa de PSA con caracteres especiales resaltados.


Estos datos se cargaron con éxito en la siguiente capa (es decir, DSO avanzado) con los caracteres especiales que se muestran resaltados.


Conclusión

Las organizaciones que emplean SAP Business Warehousing o SAP BW4HANA utilizan archivos planos para cargar una variedad de datos comerciales transaccionales en sus sistemas. Estos conjuntos de datos transaccionales pueden contener caracteres especiales que se rechazan cuando se procesan mediante procesos de carga de datos estándar, o incluso no se procesan por completo. En esta publicación, presentamos una solución para ayudar a superar este problema.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.