Si tienes la necesidad de realizar periódicamente un borrado selectivo de datos de un Advanced ODS y quieres evitar el report estándar de borrado selectivo con el fin de mejorar el rendimiento de dicho proceso, te presentamos una solución eficaz y muy fácil de implementar.

Esta solución se basa en el campo técnico RECORDMODE que encontramos en los Advanced ODS. Comenzaremos con una pequeña presentación del mismo. Los diferentes valores de este campo, como su descripción nos indica, “Procedimiento delta BW: Modo de registro”, nos informan de cómo ha actualizado la delta el registro en el destino de datos. Este campo se genera técnicamente sin necesidad de tratarlo durante el proceso de desarrollo del ETL.




El campo técnico RECORDMODE

Los posibles valores que toma el campo técnico RECORDMODE son los siguientes:



De todas estas posibles opciones de valores para el campo RECORDMODE, nos centraremos en la opción D.

Tras esta breve presentación del campo RECORDMODE, el cual va a ser nuestro aliado para realizar el borrado de datos, se procede a explicar cómo realizar el borrado de datos de un ODS mediante el campo técnico RECORDMODE.

Inicialmente, se debe identificar la transformación que tiene como destino de datos el ODS en el cual queremos realizar el borrado, ya que será en la rutina final de esta transformación donde se implementará la lógica para realizar el borrado.

Una vez conocidos los criterios para el borrado de datos, se generará en la rutina final la lógica requerida para su identificación y se modificará el valor del campo RECORDMODE de estos registros insertándole el valor RECORDMODE = ‘D’. De esta manera, en el result_package se tendrán los registros que se desean borrar con RECORDMODE = ‘D’, dejando en el resto de registros el valor por defecto para este campo.

Al contrario de este ejemplo, por norma general, este campo no es modificado de forma explícita en una transformación: suele dejarse el valor por defecto.

Una vez implementada la lógica, solo falta lanzar la carga del flujo de datos para verificar que el borrado se realiza correctamente en el mismo proceso de carga de datos.

En el siguiente ejemplo se tiene la lógica implementada para el borrado selectivo de los datos correspondientes a los registros que se van a cargar.

MOVE-CORRESPONDING wa_ods TO wa_result_package.
wa_result_package-recordmode = ‘D’.
APPEND wa_result_package TO RESULT_PACKAGE.

Con esta implementación, podemos realizar el proceso de borrados selectivo evitando la penalización de rendimiento que supone el uso del report estándar. La esencia de esta lógica se basa en algo tan sencillo como manipular el valor del campo técnico recordmode en la rutina final de la transformación.

Este campo es clave para los procesos de carga en BW y muy interesante, por lo que puede ser base de futuros artículos vistos en este blog. Esperamos que este artículo te haya sido de utilidad. Si tienes alguna pregunta no dudes en dejarla en los comentarios o ponerte en contacto con nosotros.