lunes, 14 de julio de 2014

Abap in eclipse (AiE) - Instalación

Introducción
Esta entrada tiene como objetivo explicar la instalación del plugin ABAP IN ECLIPSE para.
  • Eclipse Indigo  3.7.2
  • Eclipse Juno     4.2  
  • Eclipse Kepler  4.3  
  • Eclipse Luna     4.4  
La versión de Eclipse recomendada actualmente por SAP es Eclipse Luna 4.4

Prerequisitos

Lo primero, aseguraros de tener instalado el SapGUI 7.20 con el nivel de parches 9, o un SapGUI superior, necesitáis tener como mínimo esta versión porque incluye el componente Microsoft Runtime DLLs VS201 necesario para que se comuniquen SAP y Eclipse.
Recordemos, que estamos trabajando en una arquitectura cliente/servidor. En un lado tenemos el cliente o front-end, Eclipse con Abap Development Tools(ADT) que solicitara servicios tales como actualizar código, compilar, revisar versiones a un servidor Sap, nuestro servidor o sistema back-end. Todo esto se realiza a través de conexiones basadas en el protocolo RFC/REST


Este tipo de arquitectura solo esta disponible en un sistema Sap con SAP_KERNEL 7.20 y con el componente SAP_BASIS 7.31 o superior. Si no tenemos acceso a un sistema Sap con estas características, podemos instalarnos una versión trial de sap.
Es una versión trial del minisap con el modulo SAP BASIS 7.31 nivel de parcheado 4.

INSTALACIÓN

La instalación es muy parecida en cualquier versión del ide de Eclipse.
Solo difieren en la actualización de componentes y el repositorio desde el que descargaremos el plugin.
Una vez descargado, descomprimir en c:\eclipse, y ejecutar el archivo eclipse.exe.



0. SOLO PARA ECLIPSE INDIGO 3.7.2:

Si vamos a utilizar Eclipse Indigo, lo primero sera asegurarnos que todos los componentes del IDE están actualizados.
Arrancamos Eclipse y ejecutamos  Help -> Check for update .
Es obligatorio  tener varios componentes instalados en eclipse indigo 3.7.2 para utilizar AiE :
  • EMF - Eclipse Modeling Framework Core Runtine
  • EMF Edit Data Binding
  • EMF Model Transaction Workbench Integration
  • EMF Validation Framework
  • Mylyn Commons
  • Mylyn Task-Focused Interface
Gracias a Gregor Wolf en SCN, tenemos un archivo P2F que instalara y actualiza todos estos componentes para Eclipse Indigo 3.7.2
Arrancar el Eclipse -> File -> Import.. -> Install -> Install Software Item from file

Seleccionamos el archivo P2F. Con este fichero instalaremos de golpe y automáticamente todos los plugins para Eclipse necesarios para el correcto funcionamiento de AiE.


 


Reiniciamos Eclipse, Help -> Check for update .


1. DESCARGAR E INSTALAR ABAP IN ECLIPSE:


1.1 ECLIPSE INDIGO 3.7.2 :

Descargar el plugin ABAP IN ECLIPSE 2.0  desde el centro de descargar de SAP.
Requiere un usuario autorizado para su descargar.
  • SAP Software Download Center ->  Search for Installations and Upgrades -> 
    •  Search Area -> all software download
    •  Search Term -> ABAP ECLIPSE 2.0



Instalamos el plugin en Eclipse. Help -> Install new Software -> Add.

Damos un nombre al repositorio y seleccionamos el archivo .zip del plugin descargado.



Marcamos todos los componentes, botón NEXT, revisamos componentes y aceptamos las licencias de uso.
Si todo va bien, empezara el proceso de instalación
Cuando termine, aparecerá la ventana de bienvenida del plugin.



1.2 ECLIPSE JUNO 4.2 / KEPLER 4.3 / LUNA 4.4.1 :

Con estas versiones, la instalación del plugin es muy sencilla.

Desde Eclipse -> Help -> Install new Software

En el campo Work with  introducir la siguiente dirección y una descripción (Ej: Abap in eclipse ):
  • https://tools.hana.ondemand.com/juno    para Eclipse Juno    4.2
  • https://tools.hana.ondemand.com/kepler para Eclipse Kepler 4.3
  • https://tools.hana.ondemand.com/luna    para Eclipse Luna    4.4.1
Seleccionar solo los componentes ABAP_DEVELOPMENT TOOLS FOR ABAP NetWeaver.



Botón NEXT, revisamos componentes y aceptamos las licencias de uso.
Si todo va bien, empezara el proceso de instalación.
Cuando termine, aparecerá la ventana de bienvenida del plugin.



1.3 AJUSTES EN LAS PREFERENCIAS DE ECLIPSE

Por ultimo, SAP recomienda configurar las opciones de runtime de Eclipse para asegurar que hay memoria suficiente y evitar  errores out.of.memory.

En la carpeta Eclipse, editamos el archivo eclipse.ini

Después de la linea donde esta el comando -vmargs añadimos:

 -XX:PermSize=32m 
 -XX:MaxPermSize=256m

Y añadimos las siguientes opciones para la Java VM

 -Dfile.encoding=UTF-8
 -XX:+HeapDumpONOutOfMemoryError
 -Dosgi.requiredJavaVersion=1.6

2. Configuración de la conexión y del Sistema SAP

Es necesario establecer Secure Network Communication por seguridad, dado que nos vamos a conectar a un sistema SAP y nos autentificaremos con  Usuario/Contraseña para obtener pleno acceso al repositorio de objetos del sistema.

Si no se activa esta opción, los datos de usuario/contraseña se enviaran sin cifrar y toda la comunicación podrá ser visible por terceros. 

Hay que asegurarse que el Secure Network Communication (SNC) esta activado.
  1. En el SapGUI seleccionamos la conexión y le damos a modificar -> Pestaña RED.
  2. Activar Secure Network Communication -> Sin Single Sign-On
Asignar los siguientes roles y autorizaciones al usuario que vamos a utilizar ( transacción SU01 )
  • SAP_BC_DWB_ABAPDEVELOPER
  • SAP_BC_DWB_WBDISPLAY
 
Activar los servicio web HTTP para acceder a la ayuda Abap. Los servicios web HTTP son formas programáticas para el envío y recepción de datos desde servidores remotos utilizando el protocolo HTTP. Nos va ha permitir acceder a la ayuda de Abap desde Eclipse. Los servicies web HTTP están predefinidos en sistemas 7.31 o superiores pero no viene activados por defecto.

    1. Accedemos a la transacción SICF en el sistema SAP.
    2. Como filtro, seleccionamos DEFAULT_HOST.


    3. Expandimos el nodo default_host -> sap -> bc -> abap.    
    4. Seleccionamos docu y botón derecho del ratón en el menú seleccionamos Activate Service.
    5. Repetimos para ToolsDocu.


    6. Desde la raíz, expandimos el nodo  default_host -> sap -> public -> bc - abap.
    7. Seleccionamos docu y botón derecho del ratón en el menú seleccionamos Activate Service.
    8. Repetimos para ToolsDocu.



    9.Testear que el servicio funciona, botón derecho -> Test Link



Si falla el Test Link, que a mi me paso después de una instalación limpia del SAP NetWeaver AS ABAP 7.03 SP04 64-bit Trial, revisar los puertos del ICM en la transacción SMICM , icono Services o Shift + F1.

 

Comprobar que tenéis estos puertos si estáis usando SAP NetWeaver AS ABAP 7.03 SP04 64-bit Trial.A mi me cambio os puertos a 0 y no me funcionaba nada.

Por ultimo , cambiamos 2 parámetros de perfil en el sistema, así cada vez que activemos o realicemos una acción que requiera otra vez la contraseña para acceder al servicio.

En la transacción RZ11 cambiamos el valor de estos dos parámetros:
  • login/create_sso2_ticket, le damos valor 3.
  • login/accept_sso2_ticket, le damos valor 1.
Felicidades, ya tenemos todo listo, vamos a crear nuestro primer programa en Abap desde Eclipse. Pero eso en la siguiente entrega: "Abap in Eclipse: Hola Mundo"

Referencias:

12 comentarios:

  1. MUY BUENO TU BLOG!

    MUCHAS GRACIAS,

    CARLOS

    ResponderEliminar
  2. Carlos de verdad estas claro!!!! con esto bacano ese apunte para integrar el eclipce

    ResponderEliminar
  3. Buenos días David.

    Después de instalar todos los plugins, cerré e inicie el eclipse, inicia completamente, pero después de unos segundos me arroja el siguiente error.

    Native library sapjco3 is too old. Found library C:\Users\routarie.Chrystal\Downloads\sap\eclipse\sapjco3-NTAMD64-3.0.11\sapjco3.dll has version "720.612", but required is at least version "721.215".

    Ya me descargue del Marketplace la ultima version del SAP JAVA CONECTOR, pero el error continua.

    Tendra que ver que tengo windows 8.?

    Saludos.
    Aaron

    ResponderEliminar
    Respuestas
    1. Hola Aaron.
      Prueba a copiar los archivos sapjco3.dll y sapjco3.jar al directorio <donde tengas instalado JDK>/jre/lib/ext.
      Después modifica el archivo config.ini del eclipse en <donde tengas el Eclipse>/configuration
      Añade esta linea al final: osgi.parentClassloader=ext
      Suerte.

      Eliminar
    2. Gracias por tu pronta respuesta David.

      Quite del path la ruta donde tenia los archivos SAPJCO.

      Ahora me esta solicitando esa ruta en path:

      Error getting the version of the native layer: java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path

      No lo esta buscando el la EXT del lib.

      Gracias.

      Eliminar
    3. Nada, te ayudare en lo que pueda. No se que puede estar provocandolo, pero dado que dices que esats con windows 8...yo me aseguraría primero que no estas mezclando la versión de 64bit con la de 32bit. Yo tengo la version del JCO3 de 32 bit con una JVM de 32 bit.

      Añades como jar externo el archivo sapjco3.jar a tu proyecto en Eclipse, no?

      Eliminar
  4. Voy a asegurarme de lo que me dices,
    Tengo una ensalada entre las versiones del jre y el sapjco tengo de 64 como de 32bits.
    Reviso y me aseguro de estar trabajando sobre una misma versión.

    En internet encontre:
    ---------------------------------------------
    1. Microsoft VC runtime is missing: as per information on tools.hana.ondemand.com/#abap you have to download and install it from: x86 or x64

    2. Not proper JAVA is installed: JAVA JRE 1.6 or higher is needed, download it from http://java.com/en/download/manual.jsp. I choose to install JAVA Platform SE 7 U67 version 7.0.670.1.

    3. As per Note “2041195 - Eclipse does not identify operating system correctly” I set settings in Eclipse’s eclipse.ini file. Add following line:
    -Dorg.osgi.framework.os.name=win32
    Into -vmargs section of file.
    ---------------------------------------------

    Voy a revisar lo que me dices y te respondo a la brevedad.
    Muchas gracias.

    ResponderEliminar
  5. Hola!.
    Como solucionaste el problema del puerto http para modificarlo de de 0 a 1080??
    Un saludo y gracias.

    ResponderEliminar
    Respuestas
    1. SMICM , icono Services o Shift + F1 y marca el servicio que quieres modificar, despues dale en el menú superior Servicios->Modificar.

      Eliminar
    2. De acuerdo! muchas gracias; por otro lado, que lineas tendría que agregar y en que fichero de perfiles, para que el servicio http y el puerto se queden fijos??, me esta pasando que cada vez que "levanto" AS de SAP, tengo que volver a configurar el puerto en la tx=>SMICM.
      Un saludo

      Eliminar
  6. De acuerdo! muchas gracias; por otro lado, que lineas tendría que agregar y en que fichero de perfiles, para que el servicio http y el puerto se queden fijos??, me esta pasando que cada vez que "levanto" AS de SAP, tengo que volver a configurar el puerto en la tx=>SMICM.
    Un saludo.

    ResponderEliminar
    Respuestas
    1. Uff lo siento, eso es ya tema de administración de sistemas SAP, puedes intentar buscar en los foros de SAP
      Aqui hablan del tema -> http://scn.sap.com/thread/3609090

      Eliminar