Table of Contents
Introduccion
El lenguaje ABAP fue utilizado originalmente por los desarrolladores para desarrollar la plataforma SAP R/3. También estaba destinado a ser utilizado por los clientes de SAP para mejorar las aplicaciones SAP: los clientes pueden desarrollar informes e interfaces personalizados con la programación ABAP. El lenguaje estaba orientado a clientes más técnicos con experiencia en programación. El punto es que, todos los programas ABAP residen dentro de la base de datos de SAP. No se almacenan en archivos externos separados. Por lo tanto, si deseas probar las herramientas sin tener acceso a un servidor ABAP, puede ejecutar el suyo propio utilizando la “SAP NetWeaver AS ABAP Developer Editon”. Puede descargar la versión de prueba de 7.52 SP04 de la SAP Store.
SAP NetWeaver AS ABAP Developer Edition link
En el siguiente paso veremos cómo podemos ejecutar nuestra propia instancia de SAP NetWeaver 7.52 ABAP dentro de un contenedor en un entorno de linux (ubuntu en mi caso) y con podman (Se puede remplazar podman por docker, tiene los mismo commandos). Esta ayuda está inspirada en los siguientes Dockerfiles. Mis agradecimientos a los autores de estas ayuda Git.
https://github.com/nzamani/sap-nw-abap-trial-docker
https://github.com/tobiashofmann/sap-nw-abap-docker
https://github.com/marcellourbani/abap_trial_docker
let’s get to work :)
Creacion de la imagen
Requisitos de hardware:
- hardware basado en procesador x86_64
- Al menos 4 GB de RAM y aproximadamente 8 GB de espacio de intercambio
- Aproximadamente 100 GB de espacio libre en disco para la instalación del servidor
- Aproximadamente 2 GB de espacio libre en disco para la instalación del cliente
1-Clonar el repositorio de Git
Cree una carpeta de su elección y clone en sur repositorio el git.
El repositorio va contener Dockerfile para instalar NW AS ABAP.
2-Descargue el instalador de SAP NetWeaver AS ABAP Developer Edition
Haga clic aquí link para descargar el archivo rar de SAP NetWeaver AS ABAP Developer Edition 7.52 SP04. Debemos descargar desde la parte 1 a la 11.
Después de descargar, descomprima el archivo Parte 1 usando 7-zip o similar en el directorio creado a tal effecto.
Importante: El dockerfile que utilisaremos copiara los archivos dentro del contenedor desde esta carpetas “sapdownloads” con la etapa “ COPY sapdownloads /tmp/sapdownloads/”. Por lo que si posee los archivos en otra carpeta, adapte con el camino donde descomprimio los rar.
3-Cree una imagen de Docker
Ejecutar en une terminal la opcion de build en el directorio donde se encuentra su archivo Dockerfile.
podman build -t nwabap: 7.52 .
4-Aumente el valor de vm.max_map_count
sudo sysctl -w vm.max_map_count=1000000
Porque motivo cambiar vm.max_map_count? Hay algunos parámetros de ajuste que son necessarios para trabajar con grandes bases de datos y este es un parámetro relacionado con el uso de memoria . Al aumentar el valor del parámetro vm.max_map_count del kernel, es posible manejar una base de datos con un tamaño de 16GB o más. Este parámetro limita el número de mapas de memoria.
La configuración se reflejará reiniciando el sistema o ejecutando el siguiente comando.
sudo sysctl -p
Y podemos visualizar el effecto con el commando.
sudo sysctl vm.max_map_count
5-Iniciar el contenedor Docker
Vamos a iniciar un contenedor a partir de la imagen creada anteriormente. Acerca de los puertos NW AS ABAP expone cuatro puertos.
podman run -p 8000:8000 -p 44300:44300 -p 3300:3300 -p 3200:3200 -h vhcalnplci --name nwabap752 -it nwabap:7.52 /bin/bash
Puerto | Uso |
---|---|
8000 | HTTP |
44300 | HTTPS |
3300 | ABAP en Eclipse |
3200 | GUI de SAP |
6-Instale NetWeaver AS ABAP
Inicie la instalación con los siguientes comandos. Primero activamos el demonio uuidd y luego ejecutamos el instalador en la carpeta de trabajo del contenedor.
/usr/sbin/uuidd
./install.sh
Se le preguntará si está de acuerdo con el acuerdo de licencia, ingrese “yes”.
Se le pedirá que establezca una contraseña en el camino, así que ingrese una contraseña de 8 dígitos o más. Sin embargo, dado que la contraseña que se utiliza realmente para iniciar sesión es Down1oad. Cuando se complete la instalación, se mostrará el siguiente mensaje de succesfull.
Activacion del Servidor
Inicie el servidor con el siguiente comando.
su npladm
startsap ALL
Si todo esta correcto aparecera el mensaje Instance on host vhcalnplci started.
A continuación, intente acceder a su sistema SAP utilizando la interfaz gráfica de usuario que se incluye en los archivos descargados de SAP rar.
Los pasos siguientes han sido copiados directamente del GitHub Repo de Nabi Zamani.
Acceso del SAPGUI]
Una vez completada la instalación, conéctase con su SAPGUI. El instalador de GUI se incluye en client/JavaGUI.
Post-instalacion
Es necessario realizar la actualización de la licencia:
1- Abra la GUI de SAP e inicie la sesión
- Usuario: SAP*
- Contraseña: Down1oad
- Cliente: 000
2- Abra la transacción SLICENSE
- Desde la pantalla copie el valor del campo Active Hardware Key
- Ir al sitio de Claves de Licencia SAP para versiones Preview, Evaluation y Developer en su navegador. link
- Seleccione NPL - SAP NetWeaver 7.x (Sybase ASE)
- Rellene los campos. Utilice la clave de hardware que ha copiado de SLICENSE
- Guarde el archivo descargado NPL.txt y vuelva a SLICENSE
- Elimine la licencia instalada de la tabla
- Pulse el botón Instalar debajo de la tabla
- Elija el archivo descargado NPL.txt
Perfecto - Mano a la obra. Ahora inicie la sesión con el usuario dev.
Ahora puede iniciar la sesión en el cliente 001 con cualquiera de los siguientes usuarios (todos comparten la misma contraseña Down1oad, normalmente se trabajaría con DEVELOPER):
- Usuario: DEVELOPER (usuario desarrollador)
- Usuario: BWDEVELOPER (Usuario Desarrollador)
- Usuario: DDIC (Usuario de diccionario de datos)
- Usuario: SAP* (Administrador SAP)
Detener y reiniciar el Servidor
Para deetener y reiniciar el servidor, manualmente debemos hacer.
stopsap ALL -> detiene el servidor
exit --npladm
exit -> Detener contenedor Docker
Reiniciar
docker container start nwabap752
/usr/sbin/uuidd
su npladm
startsap ALL
Shell para inicio / parada
#!/bin/bash
start_sap(){
#start container
sudo docker container start nwabap752
#start sap
sudo docker exec -it nwabap752 /usr/sbin/uuidd
sudo docker exec -it nwabap752 su - npladm -c "startsap ALL"
}
stop_sap(){
#stop sap
sudo docker exec -it nwabap752 su - npladm -c "stopsap ALL"
#stop container
sudo docker container stop nwabap752
}
Ahora para inciar y parar el Servidor podemos ejecutar.
start_sap
stop_sap
Thank you for the initial photo.
Photo by Fernando Hernandez on Unsplash