Ruby y SAP




                Alvaro Tejada Galindo
   Consultor ABAP Senior / Mentor SAP
                            BizPartner
¿Qué es Ruby?
       • Lenguaje de programación
       creado por Yukihiro “Matz”
       Matsumoto.
       • Existe desde hace más de 10
       años.
       • Utiliza lo mejor de Python y
       Perl.
       • Es 100% Orientado a Objetos.
       • Es totalmente gratuito.
       • Fácil de aprender y bastante
       veloz en tiempo de ejecución.
Rostros importantes
          • Yukihiro Matsumoto (Creador
          de Ruby).

          • David Heinmeier Hansson
          (Creador de Rails).

          • Why the lucky stiff (Creador
          de Camping, Shoes, Hpricot,
          Markaby, Try Ruby y más).
IDEs para Ruby
       • FreeRIDE (Gratuito, viene
       incluido con Ruby).

       • Ruby on Steel (Versión
       gratuita y de pago, con muchas
       funcionalidades).

       • NetBeans (Gratuito, utiliza
       JRuby     que      es    una
       implementación de Ruby hecha
       en Java).
Ejemplo de un programa en Ruby
                                    • Definimos un método llamado
def suma(a, b)
 $suma = a + b                      Suma       que    recibe   dos
 return $suma                       parámetros, los suma y retorna
end
                                    el resultado.
print "Ingrese un numero: "
$numero_1 = gets.to_i
print "Ingrese un numero: "         • Ingresamos los números, los
$numero_2 = gets.to_i               leemos, los convertimos a
$suma = suma($numero_1,$numero_2)   enteros y llamamos al método.
puts "La suma es #{$suma}"
                                    • Imprimimos el resultado de la
                                    operación.
Ejemplo de un programa en Ruby




Ruby nos presenta el resultado en un pantalla de DOS. Al
ser un lenguaje script, no tiene interfase gráfica.
SAP::Rfc
    • Librería creada por Piers
    Harding.

    • Se efectúa una conexión RFC
    entre Ruby y SAP.

    • Se instala como un GEM.
Emulando la SE16




Podemos visualizar el contenido de cualquier tabla.
wxRuby
   • Librería que nos permite crear
   interfaces de usuarios en
   múltiples plataformas.

   • Basado en wxWidgets para C+
   +.

   • Actualmente en la versión 2.0
Emulando la SE16




Podemos utilizar una interfaz gráfica bastante completa.
Camping
    •      Microframework     para
    programas       páginas   web
    utilizando el modelo MVC.

    • Se trabaja todo en solo
    archivo.

    • El código      fuente   pesa
    solamente 4Kb.
Emulando la SE16




Camping maneja su propio HTML, no es muy flexible.
Sinatra
    • Framework para hacer páginas
    web de manera elegante.

    • En un DSL (Domain Specific
    Language).

    • Es el framework más sencillo.
Emulando la SE16




Sinatra interactúa con HTML por lo cual es más flexible.
Shoes
   • Toolkit para crear aplicaciones
   gráficas en Ruby.

   • Utiliza su propia instancia de
   Ruby.

   • Multiplataforma.
Emulando la SE16




Shoes se ejecuta en su propio entorno.
Blue Ruby
     • Implementación de Ruby que
     funciona en el stack de ABAP
     del NetWeaver.
     • Se puede acceder mediante
     WebGUI, Blue Ruby IDE o
     cualquier IDE utilizando el
     conector Blue Ruby.
     • En fase de desarrollo y Beta
     Testing.
     •     89%       del     lenguaje
     implementado.
     • No soporta el uso de GEMS.
Blue Ruby




Blue Ruby convierte el código Ruby a código ABAP.
Emulando la SE16




Blue Ruby solo tiene salida de output por el momento.
Conclusiones
      • Podemos emular cualquier
      transacción utilizando Ruby,
      SAP::Rfc y algún framework
      disponible.

      • Todo en Ruby es gratuito.

      • Simplemente debemos utilizar
      módulos de funciones con RFC,
      o crear versiones Z de módulos
      existentes.

SAP Inside Track Lima 09 - Ruby y SAP

  • 1.
    Ruby y SAP Alvaro Tejada Galindo Consultor ABAP Senior / Mentor SAP BizPartner
  • 2.
    ¿Qué es Ruby? • Lenguaje de programación creado por Yukihiro “Matz” Matsumoto. • Existe desde hace más de 10 años. • Utiliza lo mejor de Python y Perl. • Es 100% Orientado a Objetos. • Es totalmente gratuito. • Fácil de aprender y bastante veloz en tiempo de ejecución.
  • 3.
    Rostros importantes • Yukihiro Matsumoto (Creador de Ruby). • David Heinmeier Hansson (Creador de Rails). • Why the lucky stiff (Creador de Camping, Shoes, Hpricot, Markaby, Try Ruby y más).
  • 4.
    IDEs para Ruby • FreeRIDE (Gratuito, viene incluido con Ruby). • Ruby on Steel (Versión gratuita y de pago, con muchas funcionalidades). • NetBeans (Gratuito, utiliza JRuby que es una implementación de Ruby hecha en Java).
  • 5.
    Ejemplo de unprograma en Ruby • Definimos un método llamado def suma(a, b) $suma = a + b Suma que recibe dos return $suma parámetros, los suma y retorna end el resultado. print "Ingrese un numero: " $numero_1 = gets.to_i print "Ingrese un numero: " • Ingresamos los números, los $numero_2 = gets.to_i leemos, los convertimos a $suma = suma($numero_1,$numero_2) enteros y llamamos al método. puts "La suma es #{$suma}" • Imprimimos el resultado de la operación.
  • 6.
    Ejemplo de unprograma en Ruby Ruby nos presenta el resultado en un pantalla de DOS. Al ser un lenguaje script, no tiene interfase gráfica.
  • 7.
    SAP::Rfc • Librería creada por Piers Harding. • Se efectúa una conexión RFC entre Ruby y SAP. • Se instala como un GEM.
  • 8.
    Emulando la SE16 Podemosvisualizar el contenido de cualquier tabla.
  • 9.
    wxRuby • Librería que nos permite crear interfaces de usuarios en múltiples plataformas. • Basado en wxWidgets para C+ +. • Actualmente en la versión 2.0
  • 10.
    Emulando la SE16 Podemosutilizar una interfaz gráfica bastante completa.
  • 11.
    Camping • Microframework para programas páginas web utilizando el modelo MVC. • Se trabaja todo en solo archivo. • El código fuente pesa solamente 4Kb.
  • 12.
    Emulando la SE16 Campingmaneja su propio HTML, no es muy flexible.
  • 13.
    Sinatra • Framework para hacer páginas web de manera elegante. • En un DSL (Domain Specific Language). • Es el framework más sencillo.
  • 14.
    Emulando la SE16 Sinatrainteractúa con HTML por lo cual es más flexible.
  • 15.
    Shoes • Toolkit para crear aplicaciones gráficas en Ruby. • Utiliza su propia instancia de Ruby. • Multiplataforma.
  • 16.
    Emulando la SE16 Shoesse ejecuta en su propio entorno.
  • 17.
    Blue Ruby • Implementación de Ruby que funciona en el stack de ABAP del NetWeaver. • Se puede acceder mediante WebGUI, Blue Ruby IDE o cualquier IDE utilizando el conector Blue Ruby. • En fase de desarrollo y Beta Testing. • 89% del lenguaje implementado. • No soporta el uso de GEMS.
  • 18.
    Blue Ruby Blue Rubyconvierte el código Ruby a código ABAP.
  • 19.
    Emulando la SE16 BlueRuby solo tiene salida de output por el momento.
  • 20.
    Conclusiones • Podemos emular cualquier transacción utilizando Ruby, SAP::Rfc y algún framework disponible. • Todo en Ruby es gratuito. • Simplemente debemos utilizar módulos de funciones con RFC, o crear versiones Z de módulos existentes.