Contenido
Contenido
1. abapGit
AbapGit es utilizado por múltiples organizaciones, se define como un cliente git para ABAP desarrollado en ABAP. Requiere una versión de SAP BASIS 702 o superior para su uso.
Con abapGit podremos como desarrolladores, realizar cambios, importar y exportar de manera masiva, código entre sistemas ABAP.
2. Instalación
Existen dos versiones de abapGit:
- Versión “standalone”
Esta es para los usuarios, se ejecuta en la transacción “SE38” mediante un extenso programa.
- Versión “developers”
Esta versión es para los desarrolladores que contribuyen en la codificación abapGit. Se ejecuta con la transacción “ZABAPGIT”.
En este artículo instalaremos la versión de “standalone”. Lo primero que debemos realizar, para subir nuestros paquetes o proyectos realizados en ABAP a git, es realizar una conexión “trust” entre nuestro sistema SAP y el “GitHub”.
Para ello, ingresamos a la página oficial de GitHub dando clic aquí y nos loguemos con nuestro usuario.
Descargamos el certificado.
Elegimos la ruta en la que guardaremos el certificado en nuestro equipo.
Con esto finalizamos la exportación del certificado, el cual vamos a necesitar en la transacción “STRUST” dentro de SAP GUI.
Dentro de la transacción, seleccionamos la opción de “SSL client SSL Client (Anonymous)” y damos en la opción de editar.
Ahora, cargamos el certificado del GitHub que descargamos anteriormente, debemos indicar la ruta del archivo en donde lo hemos guardado.
En la vista de lista de certificados debemos observar algo similar a lo siguiente:
Para confirmar que la conexión funciona correctamente, usamos el programa ejecutable “ZABAPGIT_TEST_SSL”. En caso de que no exista el programa en el servidor, debemos crearlo y copiar y pegar el código fuente, adjunto en el link. Activamos y ejecutamos este programa.
Con esto, se realiza una comprobación entre la conexión SSL a GitHub. Ejecutamos.
Si la conexión es correcta, la ejecución debe arrojar una salida con mensajes de OK, sin errores.
Ahora, vamos a realizar la instalación del “abapGit”. Para ello, creamos un programa llamado “ZABAPGIT_STANDALONE”. Usamos el código fuente que aparece en el siguiente link. Guardamos e importamos dentro del programa ejecutable.
Guardamos, activamos y esperamos el proceso carga de todos los objetos. Creamos nuestro repositorio en GitHub, en el cual se guardarán los archivos de nuestro proyecto.
Con esto, ya tendremos nuestro repositorio en un fichero. Copiamos la URL del repositorio.
Volvemos a SAP GUI y ejecutamos el programa creado “ZABAPGIT_STANDALONE”.
El siguiente paso es importar el repositorio en nuestro abapGit, para ello, seleccionamos la opción de “New online”.
Rellenamos la información.
Ahora, nos aparece el contenido de nuestro paquete, el cual se subirá al repositorio. Seleccionamos la opción de “Stage”.
Para este caso, indicamos que queremos añadir todos los objetos con la opción de “add”.
Después de seleccionar la opción de “Commit selected”, en la siguiente pantalla llenamos la información y damos clic en “Commit”.
En el pop-up que aparece en pantalla, se piden las credenciales de GitHub. Usamos nuestro usuario de GitHub y el Token.
Para generar un Token de acceso personal, desde los “settings” de nuestro perfil en git, vamos a la opción de “Developer settings”.
Copiamos nuestro token de acceso personal.
Volvemos a SAP GUI, llenamos el usuario y pegamos el token que hemos generado.
En la siguiente pantalla, nos debe aparecer el mensaje de “Commit was succesful”.
Con esto ya hemos subido nuestro paquete de desarrollo a GitHub. Para comprobarlo, volvemos a nuestro repositorio git y actualizamos la página.
Podemos ver en la carpeta de “scr” todos los objetos ABAP y ficheros xml de configuración. De esta manera podemos respaldar todo nuestro código en el repositorio git.
Muy buen post!
Siempre he usado el abapgit en su funcionalidad de repositorio offline para migrar paquetes entre diferentes sistemas/ambientes.
Me surgen dos dudas:
1. Si quisiera sobreescribir objetos porque luego de iniciar la migración se realizaron ajustes en el sistema origen y quiero trasladar también estos ajustes al sistema destino utilizaría la opción pull o no es posible la sobreescritura de objetos?
2. Es posible migrar unicamente algunos objetos del paquete que he importado, como sería esto?
Hola Katherine,
Gracias por tu valoración.
1- Puedes usar “PULL” para realizar la sobreescritura de los objetos, pero si esta opción falla, puedes desinstalar los objetos y volverlos a compilar.
2- Sí es posible, aunque la recomendación es migrar todos los objetos e importarlos para evitar conflictos, porque no se trata de una orden de transporte que está versionada.
Un saludo.
Ahora, vamos a realizar la instalación del “abapGit”. Para ello, creamos un programa llamado “ZABAPGIT_STANDALONE”. Usamos el código fuente que aparece en el siguiente link. Guardamos e importamos dentro del programa ejecutable.
se callo el link : https://raw.githubusercontent.com/abapGit/build/main/zabapgit.abap
SIGUE VIGIENTE ESTE METODO O HAY Q DESCARTARLO?
Hola Celso,
Al parecer han modificado el link oficial en donde se tiene este código fuente, te lo dejo adjunto para que puedas descargarlo: https://raw.githubusercontent.com/abapGit/build/main/zabapgit_standalone.prog.abap
Aquí igualmente esta la demás documentación oficial que también al parecer, ha cambiado la dirección url: https://docs.abapgit.org/user-guide/getting-started/install.html#summary
Un saludo.
Hola, Se puede transportar la funcionalidad de Web Dynpro?
Algunos de los objetos sí, como la clase de asistencia. El componente Web Dynpro no estaba contemplado. Un saludo.