Estamos seguros de que en alguna ocasión te has visto en la necesidad ejecutar comandos de Sistema Operativo en el host que alberga una instancia SAP, pero por desgracia no tenías acceso para poder hacerlo. En el post de hoy os traemos una pequeña guía para que podáis hacer frente a este tipo de situaciones.
Información importante a tener en cuenta
Es imprescindible tener en mente los siguientes puntos:
- Los comandos se ejecutarán siempre con el usuario <SID>adm de la instancia SAP o SAPService<SID> en el caso de windows.
- Todos los comandos y permisos estarán restringidos a los grupos y permisos concedidos a este usuario, <SID>adm o sapservice<SID>
- En caso de encontrarnos en un sistema SAP con varios servidores de aplicación, los comandos se ejecutarán en el servidor en el que nos hayamos logueado
- Los posibles comandos a ejecutar dependerán de la versión y Sistema Operativo del servidor de aplicación
- Bajo ningún concepto utilicéis estos métodos para hacer el mal 😉
A grandes rasgos, es posible lanzar comandos en el Sistema Operativo de la instancia SAP por dos vías:
Report RSBDCOS0
Este report emula una interfaz de comandos de Sistema Operativo desde SAP. El programa nos presenta una línea editable en amarillo en la que podremos escribir los comandos que requiramos y nos permite ejecutarlos tras pulsar la tecla ENTER.
¿Qué necesitamos?
Para poder ejecutar el report RSBDCOS0 necesitaremos tener acceso a las transacciones SA38/SE38, que las transacciones SM69 y SM49 no estén bloqueadas en el sistema, y los siguientes objetos y valores de autorización como se indica en la nota 2297349
Es importante tener en cuenta que este report no tiene las mismas características que una shell de comandos, y que sus funciones están limitadas. Por ejemplo los comandos interactivos no funcionan correctamente o de la forma habitual, o que simplemente devuelvan un error.
Si lanzamos el report tiene la siguiente forma:
Como se puede ver en el ejemplo de la imagen, hemos lanzado varios comandos en un Sistema Operativo Linux para comprobar el usuario de ejecución, el directorio en el que nos encontramos y el directorio HOME del usuario que lanza los comandos.
A partir de aquí se abre un mundo de posibilidades y comandos y scripts a lanzar, pero como decíamos antes siempre con cautela y conocimiento de lo que estamos ejecutando.
Podemos ver en la transacción SM21 un log de las ejecuciones:
Transacción SM69
En la transacción SM69 podremos ejecutar y definir diferentes comandos lógicos en SAP que lancen su propio comando de Sistema Operativo. Al entrar en la transacción podemos ver que de forma estándar existen unos cuantos comandos definidos:
Es posible ejecutar un comando marcándolo de entre todos en la lista, y pulsando el botón de Ejecutar (tecla F8), copiarlo, renombrarlo, transportarlo a otros entornos, pero la opción más interesante es poder crear nuestros propios comandos.
Pasemos a un ejemplo: vamos a definir el comando ZLISTALLFILES, que ejecutaremos en un S.O. Linux, y que ejecutará el script /home/usuario/scripts.sh. Podemos pasar además parámetros en la llamada y activar el trace en la ejecución del comando. La definición del comando tendría este aspecto:
Una de las características más importantes de los comandos definidos en la TX SM69 es que podemos planificar su ejecución mediante un job, desencadenar su llamada mediante un evento, lanzarlo desde un programa ABAP, etc.
Esperamos que esta información te haya servido de ayuda.
Puedes dejarnos tus comentarios aquí.