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.
Más información:
Quizas te pueda interesar
De BW a BDC: evolución sin ruptura
mediante BW Private Cloud Edition
Durante los últimos años, el discurso en torno a la analítica SAP ha sido claro: el futuro será Cloud o no será. Nuevas arquitecturas, nuevos paradigmas y una apuesta decidida por la innovación. El mensaje parecía unánime: el futuro es Cloud, romper con lo viejo y...
¿Y después de NetWeaver?
Evolucionando BW y PO hacia Datasphere e Integration Suite
Fechas relevantes – La cuenta atrás ha comenzado El reloj no se detiene para los sistemas "legacy" de SAP. La fecha clave que toda empresa debe tener marcada en rojo en su calendario es el 31 de diciembre de 2027. En este momento finaliza el mantenimiento principal...
SAP BW:transición a una nueva era del dato
sin perder lo que ya funciona
El punto de inflexión en la analítica SAP Durante años, SAP BW ha sido la base sobre la que muchas organizaciones han construido su analítica. Sin embargo, el contexto actual está marcando un punto de inflexión. Las nuevas necesidades del negocio, junto con la...


