Estamos seguros de que en alguna ocasión habéis tenido la necesidad de verificar una orden antes de transportarla. O quizá os preguntabais si dicha orden iba a ser transportada correctamente sin dejar objetos inconsistentes. Hoy os presentamos la herramienta que resuelve todos estos problemas. Una utilidad que anticipa errores antes de realizar un transporte o incluso antes de liberar una orden. Estamos hablando concretamente del report /SDF/CMO_TR_CHECK, utilizable también a través de la transacción /SDF/TRCHECK (ambos incluidos en el componente estándar de SAP ST-PI).
Con este programa es posible predecir errores de transporte antes de llevarlos a cabo. Esto nos permite solucionar más rápidamente la cascada de errores de transporte y dependencias entre ordenes que a veces se genera al pasar entre entornos un desarrollo importante con multitud de transportes. Evitaremos así inconsistencias y disrupciones en la funcionalidad del sistema productivo. O incluso indisponibilidades temporales.
Como requisitos principales indicar que es necesario contar con una RFC correctamente configurada hacia los sistemas origen y destino de la verificación. Además de lo indicado en las notas de 2475591 – Transport Check Report.
Caso práctico, Imaginemos una posible situación de error
Os ponemos un ejemplo muy sencillo pero que servirá para ilustrar la funcionalidad de esta herramienta. Imaginad que creamos un elemento de datos que dejamos en una orden de transporte. Posteriormente creamos una tabla con un campo que utiliza dicho elemento de datos, la activamos y liberamos una segunda orden. A la hora de transferir la tabla al entorno de calidad, si olvidamos pasar la orden con el elemento de datos y transportamos la segunda orden de la tabla, el transporte fallará porque el elemento de datos es desconocido:
Como era de prever, el campo de la tabla no se ha podido activar porque el elemento de datos no se encuentra en el sistema destino:
Este tipo de situaciones, en entornos más complejos y con más objetos y dependencias entre ellos, llega a complicarse mucho.
Manos a la obra
Este error se puede evitar haciendo uso del report /SDF/CMO_TR_CHECK.
Veamos a continuación cómo se utiliza: Nos dirigiremos al sistema de desarrollo. Tras lanzar el programa en la pantalla inicial indicaremos el sistema origen de la orden, el sistema destino, la orden u ordenes que queremos analizar. También tenemos la posibilidad de seleccionar todas las ordenes en la cola de transporte de otro sistema con las opciones Import Queue from System/Client. Indicaremos las clase de chequeos que queremos realizar, en este caso todos:
Los tipos de chequeo disponibles son estos:
- Cross Reference: Analiza que todos los objetos contenidos en las ordenes seleccionadas y sus dependencias se encuentren en los entornos origen y destino. Además de las versiones adecuadas, indicándose la última orden de transporte que los contiene en caso de que no existan. Esta comparación es válida para objetos de repositorio y diccionario ABAP, customizing, notas, objetos BW y vistas CDS. Éstas últimas a partir de versión Basis 7.52. Evitaremos con esta opción los tan molestos y conocidos return codes 8.
- Sequence Check: Esta opción identifica dependencias de secuencia entre transportes que contienen los mismos objetos, subobjetos o claves de parametrización. Muestra un error si dos transportes con los mismos objetos van a ser transportadas en una secuencia incorrecta. O si se va a tratar de importar una orden con un objeto que ya ha sido transportado al sistema destino en una versión más reciente. La comparación se realizará con ordenes de transporte que se han liberado en los últimos 90 días. Si fuese necesario se podría ampliar esta plazo de 90 días en la tabla de customizing /SDF/CMO_TR_CONF.
- Cross Release: Detecta los objetos críticos en las ordenes indicadas en el caso en el que el sistema origen y destino se encuentren en diferente nivel de parches. Si aparecen objetos en esta opción por defecto no deberían ser importados en el sistema destino al pertenecer éstos a componentes inconsistentes. En el caso del customizing se compara si las tablas correspondientes tienen las mismas estructuras. En caso de no ser así aparecerá un error advirtiendo de este problema
- Import Time in Source System: Esta opción muestra el tiempo de import de las ordenes seleccionadas en el sistema origen, generando así una previsión para el tiempo de import en el sistema destino
- Online Import Check: Esta chequeo detecta la criticidad e impacto de un transporte mientras los usuarios finales (o procesos no interactivos como jobs) están trabajando en el sistema destino, normalmente productivo. Para poder hacer un uso veraz de esta característica es necesario actualizar las estadísticas de uso de las tablas y programas involucrados durante al menos una semana. Esta tarea se realiza mediante el report /SDF/OI_ADMIN. Podemos definir los objetos críticos propios haciendo el uso del report /SDF/OI_CRITOBJ, tal y como se indica en el adjunto de la nota 2475591 – Transport Check Report
Resultado
El report finaliza tras comparar ambos sistemas con el siguiente resultado:
Como vemos en la imagen, detecta correctamente que antes de transportar la tabla ZEJEMPLO es necesario transportar el objeto ZEJEMPLO de tipo DTED. Es decir, es un elemento de datos, y además el programa indica que el objeto está únicamente en el sistema origen. En este caso se trata del entorno de desarrollo, y que se encuentra contenido en la orden indicada en el campo Missing Transport.
Los principales estados que nos podemos encontrar en el resultado del report son estos:
- Only in source: los objetos se encuentran únicamente en el sistema origen
- Locked in target system: el objeto se encuentra bloqueado en el sistema destino. Es decir, está siendo tratado o editado
- Other version: se da cuando las versiones de los objetos difieren en los sistemas origen y destino
El resto de chequeos en este ejemplo son correctos:
Midamos ahora el impacto del transporte
Como indicábamos un poquito más arriba, la opción Online Import Check nos permite medir el impacto del transporte en el sistema destino. Para poder comprobar la potencialidad de esta opción, vamos a analizar el transporte de una tabla que modifica la tabla VBAK, que como ya sabéis, tiene un uso intensivo en la mayoría de los sistemas.
Lanzamos de nuevo el report /SDF/CMO_TR_CHECK para esta orden de transporte y vemos en la pestaña Online Import Check el siguiente resumen:
Si hacemos doble-click en el valor del campo Table Reads per Hour nos encontramos con las estadísticas de uso en la tabla por franjas horarias la última semana:
Como podemos ver en la imagen, la franja de las 3 a 4 a.m. del domingo sería la más adecuada para programar el import de la tabla en el entorno productivo.
¿te ha parecido interesante este post? Déjanos tus comentarios aquí 😉