Curso: Ordenes de transportes (Parte 3)

Curso: Ordenes de transportes (Parte 3)

06 Transporte manual de órdenes.

Una vez que una orden ha sido liberada, ésta se encuentra preparada para ser importada al sistema destino.
El programa de control del transporte se encuentra a nivel del sistema operativo.
La aplicación se llama:

tp.exe (Windows)

tp (Unix)

Está junto con el resto de programas ejecutables de SAP que componen el Kernel en la ruta /usr/sap/<SID>/SYS/exe/run, donde <SID> es el directorio que tiene igual nombre que la base de datos de SAP instalada en el servidor.

El programa tp se debe ejecutar desde la ruta /usr/sap/trans/bin, en el servidor y directorio adecuado dependiendo del sistema operativo:

En sistemas UNIX

Este directorio del transporte deberá estar compartido vía NFS para todos los entornos que conforman la ruta del transporte. Es por ello por lo que podremos acceder a este path desde cualquier servidor al que nos conectemos desde el sistema operativo (por ejemplo vía telnet).

En sistemas Windows NT

Este directorio de transporte deberá estar configurado como compartido para que desde todos los entornos esté disponible, sin embargo sólo será local para uno de ellos. Accederemos a través del emulador MSDOS en el servidor donde la ruta es local.

Presentamos a continuación la estructura en árbol del sistema operativo.

Explicaremos para qué sirve cada directorio:

/usr/sap/trans/bin

Directorio desde donde se lanza el programa de control del transporte, tp.

/usr/sap/trans/data

Directorio donde se almacenan los ficheros data generados en la exportación de datos desde la base de datos que se realiza durante la liberación de una orden.

/usr/sap/trans/cofiles

Directorio donde se almacenan los ficheros cofiles generados en la exportación de datos desde la base de datos que se realiza durante la liberación de una orden.

/usr/sap/trans/log

Directorio donde se almacenan en ficheros los logs de cada una de las órdenes de transporte que se importan al sistema destino.

/usr/sap/trans/buffer

Directorio donde se almacena un listado con todas y cada una de las órdenes de transporte que han sido liberadas desde el sistema origen.

Antes de poder importar al sistema destino, el programa de control del transporte chequea que la orden solicitada se encuentra en el listado mencionado y que está todavía sin transportar; si es así, se ejecuta el transporte al sistema destino.Las órdenes, por defecto, al ser liberadas son añadidas al ”buffer” por lo que no será necesario incluir ninguna orden en este listado a no ser que expresamente hayamos eliminado su entrada de dicho listado o que la orden ya haya sido transportada y queramos volver a ejecutar su transporte.


Veamos a continuación cómo deberemos usar el programa de control para gestionar el transporte de las órdenes ejecutándolo desde el directorio bin mencionado antes:

tp showbuffer <SID>

Nos muestra el listado de órdenes incluídas en el buffer. En lo que sigue, <SID> se refiere al nombre del sistema destino del transporte. Las órdenes que ya han sido transportadas al sistema destino aparecen con el texto already imported.

Todas las ejecuciones del comando tp, independientemente del argumento asociado, devuelven un código de retorno cuyos valores pueden ser:

0 ! Operación ejecutada con éxito.

4 ! Operación ejecutada con advertencias.

8 ! Operación ejecutada con errores.

12 ! Operación ejecutada con Timeout.

Un valor mayor que 8 también indicará que la operación no se ha realizado con éxito.

 

tp delfrombuffer <orden> <SID>

Elimina del listado del directorio buffer la referencia a la orden de transporte seleccionada. No borra la orden físicamente, pero impide que se pueda transportar esa orden.

tp addtobuffer <orden> <SID>

Añade la orden seleccionada al buffer, dejando la orden preparada para ser transportada. Esta operación, por defecto, no es necesario ejecutarla a no ser que una orden sea eliminada con el comando anterior y deseemos posteriormente transportarla.

tp import <orden> <SID>

Importa al sistema destino la orden seleccionada, y lo hace en el mandante cuyo nombre es el mismo que en el sistema origen. Si el mandante destino de la orden no coincide con el mandante origen de la orden, se deberá obligatoriamente especificar el mandante destino con la opción client=<mandante destino> añadida después del <SID>.

tp import all <SID>

Importa al sistema destino especificado todas las órdenes que hayan sido liberadas y que, por tanto, se encuentran en el buffer. Las órdenes son importadas por orden de aparición en buffer, por lo que primero se transportarán las órdenes que han sido liberadas primero. Si el mandante destino no coincide con el origen, se deberá usar la opción especificada en el caso anterior.

NOTA: No se recomienda el uso de esta opción ya que podemos desear importar al sistema destino en un orden distinto al que han sido liberadas las órdenes que se encuentran en el buffer, y este comando tiene un orden de transporte preestablecido.

tp import <orden> <SID> client=<nnn> u1

La opción u1 es el modo incondicional de sobreescritura. Habrá que especificarlo obligatoriamente si deseamos transportar al sistema destino una segunda vez una orden. Esto es así porque el sistema chequea que la orden ya ha sido transportada previamente y no vuelve a ejecutar la importación. Para obligarle a sobrescribir la misma orden que se ha transportado previamente, será necesario especificar la opción u1.

 

Un ejemplo:

Supongamos un sistema de desarrollo D10 en un servidor NT llamado devsap10 y un sistema de producción P10 en otro servidor NT llamado prodsap10. En ambos entornos está establecida la ruta del transporte D10 ! P10 a través de la clase de desarrollo ZDEV. Estableceremos el directorio de transporte C:usrsaptrans localmente en el servidor de producción, prodsap10.
Supongamos que creamos en el mandante 100 de D10 un programa ZREPORT que queremos pasar al mandante 110 de producción. Al crearlo, le asignaremos la clase de desarrollo ZDEV y el sistema nos propondrá un código para su orden de transporte, por ejemplo D10K902010.


Al liberar esta orden, el sistema de desarrollo se conecta a : file://prodsap10/usr/sap/trans para crear en los subdirectorios data y cofiles los ficheros D902010.D10 y K902010.D10 correspondientemente. Abriendo una ventana de MSDOS en el sistema de producción, sistema destino del transporte, ejecutamos:

C:usrsaptransbintp showbuffer PEC

Para comprobar que la orden D10K902010 se encuentra en el buffer; si acaba de ser liberada, aparecerá la última del listado. Una vez comprobado que la orden se encuentra en el buffer del sistema de producción ejecutaremos el transporte al mandante 110. Como el mandante destino y origen no coinciden deberemos usar la opción client=<SID>.

C:usrsaptransbintp import D10K902010 PEC client=110

Una vz que este comando ejecute la importación y su código de retorno sea 0, el programa ZREPORT estará disponible en el sistema de producción.


Existe la opción más amigable de utilizar la transacción STMS (Transport Management System) para realizar los transportes. Los pasos para realizar un transporte una vez lanzada la transacción son:

1.Ir a la cola de transporte correspondiente.
2.Refrescar la cola pulsando el botón “Refresh”.
3.Al final de la lista seleccionamos nuestra orden y hacemos clic en el botón “Transportar” (aquí hay que fijarse en que el botón debe ser el de transporte individual y NO es de transportar todo).
4.Nos saldrá una ventana donde deberemos introducir el mandante destino. En la pestaña Fecha marcar “Inmediatamente” y en la pestaña Opciones desmarcar todo.
5.Nos aparece un pop up preguntando si deseamos realizar el import, elegimos Sí.
6.Por último, deberemos actualizar o refrescar nuestra orden hasta que quede marcada con un tic verde (esto significa que el import se ha realizado correctamente).

07 Configuración de Dominio de Transportes

Configurar TMS

Antes de poder trabajar con el Sistema de Gestión de Transporte (TMS), se debe configurar todos los sistemas SAP en su infraestructura de sistemas.

La configuración de TMS incluye:

  • Configurar el dominio de transporte: Se define que los sistemas SAP en el entorno del sistema forman un dominio de transporte, y que el sistema de desarrollo (principalmente es este) es ser el controlador de dominio de transportes.
  • Configuración de rutas de transporte

Pasos a Realizar

Entramos en el mandante 000 con el usuario DDIC (o un usuario con permisos de administrador).
Por ahora, se va a configurar el sistema de transportes con un domino de un único sistema. Cuando se instale el servidor de producción, se modificará esta configuración para añadir el nuevo sistema.
Ejecutar la transacción STMS. Aparece la ventana de creación de un nuevo dominio de transportes. Introducir los siguientes datos y grabar:

System: <SID>
Description: Sistema Desarrollo
Name: DOMAIN_<SID>
Description: Transport domain

NOTA: Esos son datos de un ejemplo

Elegir la opción de menú Systems Overview y comprobar que el servidor aparece correctamente (verde).


Elegir la opción de menú “Transport Groups, y posteriormente la opción “Configuration> Check Transport Groups.
Todos los elementos han de aparecer de color verde.

Pulsar el botón Transport Groups. Desplegar todos los elementos y comprobar que aparecen todos ellos de color verde.


Hay que crearse una capa de transporte (Elemento que une los Paquetes de las ordenes de transportes con los sistemas destino).

Dentro de “Rutas” >> “Tratar” >> “Capa de Transporte” >> “Crear”.

Se puede crear un sistema virtual para unirlo con el nuevo sistema para hacer la conexión como si fuera un sistema Productivo.

Vamos a “STMS” >> “Resumen” >> “Sistemas” >> “Sistema SAP” >>”Crear” >> “Sistema Virtual”

Podemos crearlo con el nombre “DUM” como Dummy.


Después se tienen que unir los 2 sistemas. Se tiene que ir a “Configuración” >> “Configuración Estándar” >> “Sistema de Desarrollo y Productivo”.

Seleccionamos “DBP” como sistema Desarrollo y “DUM” como sistema productivo.


Para cuando ya se tiene los otros 2 sistemas (Calidad y producción), se tiene que hacer es entrar en el sistema en el mandante “000” e ir a la transacción STMS.

Aparecerá un popup muy parecido al que apareció cuando se configuró el sistema de desarrollo. La única diferencia es que en el “System” aparecerá el sistema de Calidad o producción.

Si en el Transport Domain no aparece el nombre del dominio de desarrollo, se tiene que dar al botón que esta al lado de grabar (Dos cuadrados naranja y blanco con una flecha encima).

Se le tiene que dar y seleccionar el dominio de desarrollo (nombre de la maquina de la instancia y el nº de instancia).

Cuando ya se tenga le damos a Grabar.

Ahora se tiene que ir al sistema de desarrollo y en la transacción STMS elegir la opción de menú “Systems Overview.

Aparecerá el sistema nuevo pero con un icono de aprobación. Hasta que no se apruebe el sistema, no va a parecer en el dominio de transportes.

Se tiene que hacer para Calidad y Producción.

Ahora dentro de “rutas” tenemos que ir a “Configuración” >> “Configuración Estandar” >> “Sistema de 3 capas” (Three Systems in Group).


Al final le damos a “Distribuir y Activar”

Tenemos que rellenar los 3 sistemas:

  • Desarrollo
  • Calidad
  • Producción

Entre Desarrollo y calidad, se queda la misma configuración que teníamos con la instancia Virtual.

Entre Calidad y Producción se crear una capa de suministro.

08 Log del transporte.

Existe dentro del sistema SAP R/3 una herramienta que nos proporciona mucha más información sobre el transporte de una orden que el simple código de retorno devuelto por el comando tp. Tal código de retorno nos informa si el transporte se ha ejecutado correctamente, o si por el contrario ha ocurrido algún problema; sin embargo no nos informa qué tipo de problema ha ocurrido.La herramienta del log del transporte está disponible tanto en la transacción SE09 como en la SE10. Podemos pulsar el botón de visualización individual (aparece asociado a un icono de gafas) en la barra de aplicaciones si conocemos el número de orden cuyo log queremos consultar:

También podemos rellenar los parámetros de selección explicados en la sección del WBO y CO para, posteriormente, buscar la orden en el listado que nos aparezca en pantalla y una vez posicionado el cursor sobre la orden deseada, pulsar la opción log del transporte (asociado a una hoja y gafas) dentro de la barra de aplicaciones.Las dos opciones nos llevan a la misma pantalla. En ella, podemos ver desde qué sistema se ha producido el export así como el import en el sistema destino con cada uno de sus pasos.

La importación se realiza en varios pasos, dependiendo su número del tipo de objeto a transportar. Desglosando la estructura en árbol del log podemos obtener distintos niveles de información, cada vez más detallados.Una vez que hemos visto en qué paso del transporte se ha producido un error, haremos doble clic sobre esa línea para acceder a un listado completo del log en ese paso. Esto nos sirve para saber por qué razón se ha producido un error en el transporte y cómo habrá que resolverlo. Los errores más comunes son de información incompleta en el sistema destino para poder activar las modificaciones recién transportadas.


Un ejemplo puede ser que el código fuente de un programa que queramos transportar al sistema destino del transporte haga referencia a una tabla cuya definición se encuentra en otra orden de transporte, todavía sin transportar. Si transportamos primero la orden del código fuente, la importación fallará devolviendo un código de retorno 8.

Si visualizamos el log del transporte de dicha orden veremos que el paso que ha fallado ha sido la generación del código fuente por hacer referencia a una tabla que todavía no existe en el sistema destino.Lo que deberemos hacer será, pasar la orden donde se encuentra la definición de la tabla a la que se hace referencia en el programa y, posteriormente, transportar de nuevo la orden que ha fallado (primero deberemos añadirla manualmente de nuevo al buffer).