La PSA en SAP BW, también llamada Persistent Staging Area, es un área donde se almacena la información extraída del sistema fuente y donde la misma permanece inalterable antes de ser transferida a los Cubos/ODSs (InfoProviders) de BW. Cuando decimos inalterable nos referimos a que por ejemplo la información en los Cubos puede estar agregada, sumarizada según alguna características o modificadas a través de una transformación, en cambio en la PSA, la información permanece almacenada tal cual estaba en el Sistema Fuente.
La ventaja de contar con un área de almacenamiento intermedio como la PSA, es justamente poder contar con un lugar dentro de BW donde la información este tal cual a como viene del sistema fuente, lo que nos facilitará el análisis de cualquier problema que detectemos luego cuando la información este almacenada y transformada en Cubos u ODSs.
Las tablas PSA existen para cada Fuente de Datos (Data Sources) y son creadas automáticamente por el sistema al activar la Fuente de Datos.
Las PSA se cargan a través de los Paquetes de Datos (InfoPackages
Los InfoPackages en SAP BW, también llamados InfoPaquetes, se utilizan para ejecutar la extracción de datos desde el sistema fuente (Source System) y cargarlo dentro de la PSA (Persistent Staging Area).
Adicionalmente de proveer la capacidad de ejecutar la extracción como dijimos anteriormente, los InfoPackages nos dan la capacidad de elegir parámetros de la extracción para filtrar los datos y que solo se extraigan aquellos que necesitamos. Por ejemplo, si estamos extrayendo datos de ventas de un sistema externo hacia BW, podríamos configurar el InfoPackage para que solo nos traiga los datos del mes de Octubre configurando el parámetro correspondiente a Fecha de Venta.
Al igual que la PSA, los InfoPaquetes pertenecen a una Fuente de Datos (DataSource) en particular, con la diferencia que los InfoPaquetes deben crearse manualmente mientras que la PSA se crea automáticamente al activar la fuente de datos.
Las transformaciones en SAP BW permiten consolidar, limpiar e integrar datos. Puede semánticamente sincronizar datos de fuentes heterogéneas.
Al cargar datos de un objeto fuente en otro objeto destino, los datos se pasan a través de una transformación. Una transformación convierte los campos de la fuente en el formato del destino.
Cuando hablamos de objetos fuentes estos pueden ser Fuentes de Datos, pero también pueden ser un ODSs, InfoCubos, etc. Es decir se pueden transferir datos desde una Fuente, un ODS o InfoCubo a otro ODS/InfoCubo siempre pasando por la transformación que es la que va a limpiar o transformar los datos de manera que sea consistente la fuente con el destino.
Los usos más frecuentes de las transformaciones son:
- Modificaciones, mejoras o agrupamiento de los datos cargados antes de escribirlos dentro de los infoProviders destinos, los cuales luego serán utilizados para el reporting.
- Actualizaciones condicionales de manera de estar seguros que solo la información necesaria será cargada en el infoProvider destino.
- Transformaciones de unidad, tiempo o moneda de la información que será cargada.
Una transformación consiste en al menos una regla de transformación. Varios tipos de reglas, tipos de transformación y tipos de rutinas están disponibles. Estos permiten crear desde transformaciones muy sencillas a complejas:
- Reglas de Transformación: Las reglas de transformación permiten asignar a cualquier número de campos de origen por lo menos un campo de destino. Se pueden utilizar diferentes tipos de reglas para esto.
- Tipo de Regla: Un tipo de regla es una operación específica que se aplica a los campos cuando se ejecute la carga de datos y los mismos pasen a través de la transformación. Los tipos de reglas son:
- Asignación directa.
- Formula
- Rutina
- Rutina con unidad.
- Tipo de transformación: El tipo de transformación determina cómo se escriben los datos en los campos destino.
- Grupo Regla: Un grupo de reglas es un grupo de reglas de transformación. Los grupos de reglas le permiten combinar varias reglas.
- Rutina: Se utilizan rutinas para implementar la transformación compleja a través de código ABAP. Las rutinas están disponibles como un tipo de regla. También hay tipos de rutinas que se pueden utilizar para implementar transformaciones adicionales.