viernes, 7 de noviembre de 2014

Abap in Eclipse (AiE) : Nuevas funcionalidades I

Eclipse incluye una serie de nuevas herramientas para facilitarnos la creación de código ABAP.

Auto-completar palabras claves

Nos permite escribir mas rápido el código, sugiriendo palabras clave según escribimos el código.
Es suficiente con escribir la primeras letras para que eclipse nos sugiera la palabra clave:
  • Con la tecla TAB aceptamos la palabra que nos sugiere y esta se completa automáticamente
  • Ctrl + Barra Espaciadora  nos mostrara todas las sugerencia disponible.
Por ejemplo:

Auto-completar palabra clave

Pero si antes, mientras nos sugiere start-of-editing  le doy a Ctrl+barra espaciadora,  aparecerán todas las palabras claves posibles que coinciden con lo que llevo escrito hasta el momento y podre seleccionar una para auto-completar la palabra clave.

Lista completa de palabras clave coincidentes

Auto-completar código

la combinación Ctrl + Barra espaciadora no solo sirve para mostrar todas las palabras claves posibles, también se puede utilizar para auto-completar código como llamadas a métodos de clases, atributos, eventos, bapis o clases.

Por ejemplo, podemos ver los atributos de nuestras variables internas

No se vosotros, pero cuando me tocaba codificar una llamada a una bapi, tenia que abrir una nueva ventana con la transacción SE37 para ver el nombre y tipo de los parámetros de una bapi. En eclipse con la combinación Ctrl + Barra espaciadora  podemos ver la información de la bapi  sin necesidad   de abrir una nueva ventana con el código de la bapi.



Simplemente Ctrl + Barra espaciadora, selecciono la bapi Mayusculas + Intro.
La firma de la bapi se completa automáticamente en mi código.



Lo mismo si estamos escribiendo el nombre de una clase o sus métodos. mientras escribimos el nombre de la clase, podemos usar la combinación Ctrl + Barra espaciadora para ver todas las clases y sus métodos coincidentes.


Si ya tenemos la clase, podemos usar la combinación Ctrl + Barra espaciadora para ver  sus métodos y atributos. Seleccionar el método o atributo que queremos auto-completar y lo ejecutamos con la combinación Mayus + Intro.





La ayuda y documentación en linea

Como todo entrono de programación, tenemos disponible en cualquier momento la documentación para ayudarnos en la implementación del código ABAP que desarrollemos. Al igual que en la SE38 bastara con situar el cursor sobre la palabra clave  y pulsar F1 para que aparezca la ayuda de SAP. Esta ayuda funciona exactamente igual que la ayuda que utilizamos cuando trabajamos desde la transacción SE38.

Ayuda de SAP

Nota: Esta ayuda no esta en Eclipse, es un servicio web que consumimos del sistema SAP al que estamos conectados, si no os funciona, revisar que estén activo  los servicios  web HTTP correspondientes para poder acceder a la ayuda.

Error al acceder a la ayuda de SAP


Además, la ayuda incluye ejemplos ejecutables.
Por ejemplo en la ayuda busqueda de ADBC, Query:


Ejemplos ejecutables en la ayuda


Entradas anteriores:
Abap in Eclipse (AiE)
Abap in Eclipse (AiE): Instalación
Abap in Eclipse (AiE) : El entorno de trabajo de Eclipse

Entradas siguientes:
Abap in Eclipse (Aie) : Nuevas funcionalidades II  ( en proceso )

jueves, 6 de noviembre de 2014

Filtrar los datos para las ayudas busquedas

Una ayuda búsqueda para un campo de una dynpro, no tiene porque mostrar toda la información al usuario. Podemos filtrar la información que aparece en un ayuda búsqueda basándonos en los datos introducidos por el usuario en otros campos de la dynpro.

Por ejemplo, imaginemos dos campos SOCIEDAD y CLIENTE.

Si el usuario rellena primero el campo SOCIEDAD y después activa la ayuda búsqueda del campo PROVEEDOR, queda mucho mejor que aparezcan solamente los clientes de la sociedad que ha indicado que todos los clientes de todas las sociedades del sistema.

Ayuda búsqueda filtrada

Vamos con el  programa de ejemplo, seria sencillo, un modulpool con una dynpro y dos campos.



El proceso, cuando el usuario active la ayuda búsqueda del campo Proveedores, sera :
  1. Leer los campos que necesitamos para filtrar la ayuda búsqueda
  2. Crear y lanzar la ayuda búsqueda
  3. Completar los campos con los datos seleccionados de la ayuda búsqueda por el usuario.
PROCESS ON VALUE-REQUEST  es el proceso de la dynpro que se lanza cuando el usuario activa la ayuda búsqueda de un campo.  Si el campo , tiene asociado en esta sección un modulo, este sera lanzado cuando el usuario active la ayuda búsqueda del campo. No viene por defecto en la pestaña log. de proceso cuando creamos la dynpro, tenemos que añadirlo nosotros.


PROCCES ON VALUE-REQUEST


Y dentro del modulo, llamamos a nuestra subrutina.

Modulo y subrutina para la ayuda búsqueda
La subrutina, esta completa al final de la entrada.

Y aquí tenéis el resultado, dos capturas de la misma ayuda búsqueda, pero en una hemos rellenado el campo SOCIEDAD y la ayuda búsqueda queda filtrada por ese campo.


Ayuda búsqueda sin filtrar , el campo SOCIEDAD esta vació

Ayuda búsqueda filtrada por el contenido del campo SOCIEDAD
Hay que tener en cuenta que si el usuario , introduce la sociedad, no pulsa intro o provoca otro evento e inmediatamente activa la ayuda búsqueda, el campo SOCIEDAD nos llegara vació a a la ayuda búsqueda.

Para evitarlo, utilizaremos la bapi  DYNP_VALUES_READ para leer el contenido ACTUAL de los campos de la dynpro.


Y esta sera la subrutina encargada de filtrar y generar la ayuda búsqueda:

*&---------------------------------------------------------------------*
*&      Form  F4_LIFNR_HELP_F01
*&---------------------------------------------------------------------*
FORM f4_lifnr_help_f01 .

  TYPES: BEGIN OF type_f4_help_lifnr,
           bukrs TYPE lfb1-bukrs,
           butxt TYPE t001-butxt,
           lifnr TYPE lfa1-lifnr,
           name1 TYPE lfa1-name1,
         END OF type_f4_help_lifnr.

  DATA: tl_map        TYPE TABLE OF dselc.
  DATA: tl_help_lifnr TYPE TABLE OF type_f4_help_lifnr.
  DATA: tl_ddshretval TYPE TABLE OF ddshretval.
  DATA: tl_dynpread   TYPE TABLE OF dynpread.
  RANGES: r_bukrs FOR   lfb1-bukrs.

  FIELD-SYMBOLS: <fs_ddshretval> TYPE ddshretval,
                 <fs_dynpread>   TYPE dynpread,
                 <fs_dselc>      TYPE dselc.

  APPEND INITIAL LINE TO tl_dynpread ASSIGNING <fs_dynpread>.
  <fs_dynpread>-fieldname = 'WL_BUKRS'.  "Campo de la dynpro

  CALL FUNCTION 'DYNP_VALUES_READ'
    EXPORTING
      dyname               = sy-repid
      dynumb               = sy-dynnr
    TABLES
      dynpfields           = tl_dynpread
    EXCEPTIONS
      invalid_abapworkarea = 1
      invalid_dynprofield  = 2
      invalid_dynproname   = 3
      invalid_dynpronummer = 4
      invalid_request      = 5
      no_fielddescription  = 6
      invalid_parameter    = 7
      undefind_error       = 8
      double_conversion    = 9
      stepl_not_found      = 10
      OTHERS               = 11.

  CHECK sy-subrc EQ 0.

*  Si todo ha ido bien, ya podemos crear el rango para el filtro
  READ TABLE tl_dynpread  INDEX 1 ASSIGNING <fs_dynpread>.
  IF <fs_dynpread>-fieldvalue IS NOT INITIAL.
    r_bukrs-sign   = 'I'.
    r_bukrs-option = 'EQ'.
    r_bukrs-low    = <fs_dynpread>-fieldvalue.
    APPEND r_bukrs.
  ENDIF.

  SELECT  b~bukrs t~butxt a~lifnr a~name1
   INTO CORRESPONDING FIELDS OF TABLE tl_help_lifnr
   FROM lfa1 AS a
   INNER JOIN lfb1 AS b
           ON a~lifnr EQ b~lifnr
   INNER JOIN t001 AS t
           ON b~bukrs EQ t~bukrs
   WHERE b~bukrs IN r_bukrs.

   CHECK ( sy-subrc EQ 0 ).

   SORT tl_help_lifnr ASCENDING BY BUKRS lifnr.

*  Mapeamos los campos de la ayuda busqueda con los de la dynpro
   APPEND INITIAL LINE TO tl_map ASSIGNING <fs_dselc>.
   <fs_dselc>-fldname   = 'F0001'.    "1º columna de la tabla interna tl_help_lifnr
   <fs_dselc>-dyfldname = 'WL_BUKRS'. "Campo de la dynpro correspondiente

   APPEND INITIAL LINE TO tl_map ASSIGNING <fs_dselc>.
   <fs_dselc>-fldname   = 'F0003'.    "3º columna de la tabla interna tl_help_lifnr
   <fs_dselc>-dyfldname = 'WL_LIFNR'. "Campo de la dynpro correspondiente

*  Lanzamosla ayuda busqueda
   CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield         = 'LIFNR'
      dynprofield      = 'WL_LIFNR'
      value_org        = 'S'
      dynpprog         = sy-repid
      dynpnr           = sy-dynnr
      callback_program = sy-repid
    TABLES
      value_tab        = tl_help_lifnr
      return_tab       = tl_ddshretval
      dynpfld_mapping  = tl_map.

ENDFORM.                    " F4_LIFNR_HELP_F01


Entradas relacionadas:
Recuperar varios campos con una ayuda busqueda

miércoles, 5 de noviembre de 2014

Abap in Eclipse (AiE) : Hello World

Llego el momento de escribir nuestro primer programa en Abap con Eclipse: "Hello World".

Antes de empezar, recordar que es necesario que tengamos acceso a un sistema SAP.

Si estáis utilizando un SAP NetWeaver AS ABAP 7.03 SP04 64-bit Trial o superior, aseguraros de que el servicio esta activo en windows, en INICIO accedemos a EJECUTAR y tecleamos "services.msc".

Buscamos el servicio SAPXXX_00 ( donde XXXX es el ID sel sistema ) con el botón derecho del ratón, nos sale el menú para activar el servicio.


Ejecutamos el Sap Management Console para arrancar el sistema SAP.


Arrancamos Eclipse y activamos la perspectiva ABAP.

Desde el menú superior File -> New ->Abap Project
También  desde el explorador de proyectos -> Menu contextual ( click botón derecho ) -> New ->Proyect
Crear nuevo proyecto en Eclipse

Abrimos la carpeta Abap -> Abap proyect -> Next



Introducir los datos de conexión al sistema SAP,
Es posible importar los datos de  conexión si tenemos instalado el  cliente de SAP SapGUI.

Importar la conexión del SapGUI

Crear conexión a SAP manualmente



El siguiente paso, es autentificarse en el sistema con nuestro usuario/contraseña. Si no hay ningún error de compatibilidad ( recordar que necesitamos que le sistema Sap tenga SAP Kernerl 7.20 y el SAP BASIS 7.31 con el nivel de parche 4 ) nos conectaremos al sistema desde Eclipse y podremos empezar a trabajar.

usuario / contraseña para acceder al sistema SAP

Empezemos a crear nuestro programa "Hello World":

  1. Seleccionar el  proyecto ( systema SAP ).
  2. Botón derecho del ratón para desplegar el menu contextual
  3. New -> Others... -> Abap Repository Object,
  4. Seleccionar Source Library -> Abap Program




Se puede  crear cualquier objeto del repositorio de SAP desde tablas, funciones, enhancements, BSP, paquetes, etc...
Introducimos los datos del programa como el  nombre (que empieze por Z o Y ), descripción y paquete para transporte.
Como yo  no voy a transportar el programa a otro sistema lo he incluido en el paquete local $TMP.

atributos del nuevo rapport ABAP

Siguiente .-> Finalizar y se abre el editor ABAP ( transacción SE38 en el sistema Sap ).

Escribimos la siguiente linea:

write "Hello World, programado en Eclipse".



En la barra superior, tenemos los botones básicos, como verificación de sintaxis, activar , el "where used list...", etc...  todos los botones del editor Abap están en Eclipse. 


Revisamos la sintaxis y activamos el programa:


Os va a dar un error de verificación de sintaxis, la cadenas de texto van con comillas simples no dobles, fijaos en la ventana inferior con la pestaña Problems:
















Cambiamos las comillas dobles por comillas dobles, verificar y activar si no hay más errores.
Para ejecutarlo:

Como veis, la integración de Eclipse - Abap - Sistema SAp es total, es un gran avance con respecto al editor actual de Abap. Otro ejemplo, vamos a buscar desde Eclipse todas las tablas donde se este usando el elemento de datos KUNNR ( nº de cliente ) en el sistema Sap. 





En las siguientes entradas seguiremos probando más sobre Abap in Eclipse.

Entradas siguientes:

martes, 4 de noviembre de 2014

Abap in Eclipse (AiE) : El entorno de trabajo de Eclipse

En la anterior entrada explicamos como instalar Eclipse +  ADT. 


En esta entrada vamos a hacer un breve recorrido por el entorno de trabajo de Eclipse.
En la siguiente imagen, como podéis apreciar,  Eclipse no se parece en nada a la transacción SE38.


"Toto, creo que ya no estamos en Kansas"

En Eclipse existen 3 elementos principales:

    • Vistas
    • Editores
    • Perspectivas

Vistas: Muestran, de forma gráfica, información que esta relacionada con un área en concreto. La informacion que muestran no es modificable directamente. No podemos modificar o introducir datos en una vista directamente. En algunas vistas es posible, pero siempre a través de algún menú contextual.

Por ejemplo, son vistas: 
    • El Explorador de Proyectos muestra informacion de los proyectos existentes.
    • La vista Outline muestra información sobre los métodos y atributos de un objeto.
    • El log de errores es otra vista,  etc... 
Para acceder a las vistas disponibles  -> Windows -> Show view -> Other 
Si no conocéis el nombre completo de la vista, podéis utilizar el filtro de la ventana para encontrarlo.

Vistas en Eclipse

Filtro para buscar vistas
Debido al gran número de vistas que podemos utilizar en el entorno de trabajo, las vistas tiene la característica de que pueden apilarse. Normalmente, suelen apilarse y ubicarse en los bordes izquierdo, derecho e inferior del entorno de trabajo. 

Para apilar una vista , simplemente arrastrarla hasta uno de estos bordes.



Editores: Son similares a una vista, comparten con ellas la capacidad de ser apilados pero, al contrario de las vistas, permite modificar su contenido directamente. Por ejemplo cuando escribimos código Abap/Java/C++/Phyton...  estamos trabajando sobre un editor. 

Generalmente todos los editores se sitúan en la parte central del entorno de trabajo de Eclipse.

Eclipse, automáticamente seleccionara el editor adecuado para el archivo que intentemos abrir. El contenido del archivo aparecerá  en el editor correspondiente porque Eclipse selecciona el editor adecuado en base a la extensión del archivo a abrir. Para archivos java (.java) el editor asignado es JDT, Para XML seleccionar el editor correspondiente, y así sucesivamente.

Mas adelante explicare como configurar el editor, la sintaxis resaltada, etc...


Editor de código


Perspectivas:  Es un conjunto bien definido de vistas y editores o si lo preferís, una perspectiva es un contenedor de vistas y editores con un objetivo comun definido.

Por ejemplo, tenemos predefinidas las siguientes perspectivas:
  • Java: Se centra en la programación sobre Java, contiene vistas para visualizar paquetes, clases, métodos y atributos, ademas de editores para la programación en Java
  • Debug: Tareas de depuración. Las vistas y editores que contiene se centra en los procesos ejecutados, puntos de ruptura o break-points, variables, salida, etc
  • Resource: Esta perspectiva está estrechamente relacionada con el sistema de archivos puesto que representa la localización física de los recursos almacenados dentro de los proyectos
  • Plug-in development: La perspectiva de desarrollo de plug-in permite a los desarrolladores añadir nuevos módulos de Eclipse.
  • Install/Update: Permite gestión de la configuración. Muestra los componentes instalados así como sus versiones y conflictos.
  • Java Browsing: Esta perspectiva permite ojear rápidamente código, proyectos, paquetes y jerarquías.
Estas son unas pocas, para seleccionar perspectivas -> Windows -> Open Perspective -> Other...


Perspectivas en Eclipse

Si hemos instalado correctamente  ADT, aparecerán  perspectivas para ABAP:

Perspectivas para trabajar con ABAP

En la imagen anterior, esa barra de herramientas que aparece con algunas perspectivas, es la barra de acceso rápido a las perspectivas perspectivas que tenemos abiertas actualmente, cada vez que abráis una nueva perspectiva, se añadirá a la barra  y si la cerráis, desaparecerá de la barra.

A mi, personalmente me gusta colocarla a la izquierda del entorno de trabajo y que solo muestre el icono de la perspectiva. Para que muestre o no el texto:

  1. Situar el cursor sobre una perpectiva de la barra 
  2. desplegar el menú contextual con un clic del boton derecho del rato.
  3. Podéis cerrar la perspectiva o activar/desactivar las descripciones de las perspectivas.

Podéis desplazar la barra colocando el cursos sobre el comienzo de la barra, sabréis que lo estais haciendo bien porque el cursor cambiara a una cruz con flechas en las puntas, pulsar y mantener el botón izquierdo del ratón y mover la barra a la nueva posición.




Puedes añadir, mover, borrar vistas y editores en una perspectiva y así podre crear tus propias perspectivas personalizadas. Una vez que tengas a tu gusto las visas y editores, guarda los cambios en una nueva perspectiva, resetear una perspectiva estándar, cerrar... desde el menu Windows.


Menú Windows; opciones para perspectivas

  • Save Perspective As: Guarda una copia de perspectiva en uso con un nuevo nombre.
  • Reset Perspective:  Reinicia la perspectiva a sus valores por defecto.
  • Close Perspective: Cierra la perspectiva en uso.
  • Close All Perspectives: Cierras todas las perspectivas abiertas en Eclipse
  • Customize Perspective: Permite personalizar ciertos aspectos de una perspectiva, como el menu superior o los pulsadores para acceso rápido en la parte superior...

Customize Perspective


Eclipse en la lengua de Cervantes.

Eclipse, por si no os habíais dado cuenta, viene en ingles por defecto. 

Para cambiar de la lengua de Shakespeare a la legua de Cervantes o incluso al Catalan y Vasco, es necesario instalar los paquetes de Babel Language Packs:
  1. Abrir el instalador -> Help -> Instal new software
  2. Introducir la direccion del repositorio de Babel:
    •  Eclipse Kepler: http://download.eclipse.org/technology/babel/update-site/R0.12.0/kepler
    •  Eclipse Luna   : http://download.eclipse.org/technology/babel/update-site/R0.12.0/luna
  3. Seleccionar   el idioma, el % indica lo completa que es la traducción
  4. Instalar el paquete.

Eclipse Babel Project

Una vez instalado, para cambiar el idioma:
  1. Cerrar Eclipse.
  2. Buscar el archivo eclipse.ini en la carpeta donde has instalado eclipse. Editalo 
  3. Añade estas 2 lineas al principio del archivo eclipse.ini:



Los valores posibles de la opción NL deben seguir las convenciones de nomenclatura de configuración regional estándar de Java . 

Guarda los cambios y vuelve a arrancar Eclipse, si todo va bien, los textos aparecerán traducidos pero tener en cuenta que puede que algunos textos aun no estén traducidos a, fíjate bien en el indicado % cuando selecciones el paquete de un idioma para Eclipse.

Menús traducidos al Castellano

Bueno, esto seria lo básico para ir moviéndonos por nuestra nueva SE38 :)


Entradas anteriores:
Abap in ECLIPSE (AiE)
Abap in eclipse (AiE) - Instalación

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: