Showing posts with label MeteorJS. Show all posts
Showing posts with label MeteorJS. Show all posts

Friday, January 10, 2014

MeteorJS y SAP HANA

Si pensaban que iba a aprender MeteorJS y no tratar de enlazarlo con SAP HANA...entonces estaban completamente equivocados-;)

Por supuesto...estoy lejos de ser un buen desarrollador en Meteor...así que por favor tenganme paciencia -:( Tampoco soy muy bueno en NodeJs...así que...ya saben...solo soy yo jugando un poco -:)

Así que...comencemos...hay muchas maneras en las cuales podemos conectar Meteor y SAP HANA...pero...que pasaría si de alguna manera pudieramos hacer la conexión de una manera nativa?

Si no han visitado aún SAP Developers on GitHub...les recomiendo que lo hagan...tenemos algunos cuantos excelentes proyectos Open Source...

En fín...allí van encontrar una gema perdida llamada simplemente node-hdb el cual es por supuesto...un conector nativo de NodeJS para SAP HANA...impresionante, no?

Ahora...se preguntarán...que tiene que ver NodeJS con Meteor? Fácil...Meteor utiliza NodeJs en el fondo...

Revisando la web...encontré este impresionante Hack de Meteor llamado Complete NPM integration for Meteor el cual es simplemente asombroso...basicamente...nos permite incluir paquetes NodeJS en el servicio interno de NodeJS en nuestra instalación de Meteor...

Simplemente debemos hacer esto...

Instalando node-hdb en Meteor
npm install -g meteor-npm
cd "nuestro_proyecto"
meteor-npm

Esto creará una carpeta llamada "npm" dentro del proyecto...ahora...simplemente crea una archivo llamado packages.json en la raiz de tu carpeta...

Packages.json
{
 "hdb": "0.2.0"
}

Con esto...estamos listos para divertirnos con Meteor -;)

Primero...hagamos la parte del HTML...

HANA_Test.html
<head>
  <title>SAP HANA and MeteorJS</title>
</head>

<body>
  {{> CallHANA}}
</body>

<template name="CallHANA">
<DIV ID'block' ALIGN='CENTER'>
<H1>Calling SAP HANA from MeteorJS</H2>
 <TABLE BORDER='1'>
 <TR><TH>Carrier</TH><TH>Connection</TH>
     <TH>Country From</TH><TH>City From</TH>
     <TH>Airport From</TH><TH>Country To</TH>
     <TH>City To</TH><TH>Airport To</TH>
     <TH>Distance</TH></TR>
 {{#each Spfli}} 
  <TR>
   <TD>{{CARRID}}</TD><TD>{{CONNID}}</TD>
   <TD>{{COUNTRYFR}}</TD><TD>{{CITYFROM}}</TD>
   <TD>{{AIRPFROM}}</TD><TD>{{COUNTRYTO}}</TD>
   <TD>{{CITYTO}}</TD><TD>{{AIRPTO}}</TD>
   <TD>{{DISTANCE}}</TD>
  </TR>
 {{/each}}
 </TABLE>
</DIV> 
</template>

Luego...creamos dos carpetas...una llamada "server" y la otra llamada "client"...

Dentro de la carpeta "server" creamos un archivo llamado "HANA_TestServer.js"

HANA_TestServer.js
var myjson = [];

Meteor.methods({
    'CallHANA': function CallHANA() {
  hdb    = Meteor.require('hdb');
    client = hdb.createClient({
    host     : 'hanasvr-XX.sapdevcenter.com',
    port     : 30015,
    user     : 'SYSTEM',
    password : 'XXXXXX'
  });

  client.connect(function (err) {
     if (err) {
       return console.error('Connect error', err);
     } 
      client.exec('select top 10 * from SFLIGHT.SPFLI', function (err, rows) {
       client.end();
       if (err) {
          return console.error('Execute error:', err);
       }
        var count = Object.keys(rows).length
        for(var i=0;i<count;i++){
         myjson.push(rows[i]); 
        } 
      });
  });
  return myjson;
 }  
  });

Dentro de la carpeta "client" creamos un archivo llamado ""HANAClient.js"...

HANAClient.js
 Meteor.startup(function () {
    Meteor.call("CallHANA", function (error, result) {
             Session.set("myjson", result);
            });
    });

    Template.CallHANA.Spfli = function () {
     row = Session.get("myjson");
     return row;
    };

Cuando hemos terminado...simplemente llamamos a nuestra aplicación Meteor y luego de refrescar la página...debo trabajar en la parte de reactividad -:( Estoy seguro de que con un simple botón que llame a la función sería suficiente...pero estoy cansado y soy flojo...El resultado del query será mostrado-;)


No se ve exactamente impresionante...pero para ser el primer paso...pienso que es más que suficiente -;)

Saludos,

Blag.
Developer Empowerment and Culture.

Tuesday, December 31, 2013

Getting Started with Meteor.js JavaScript Framework - Review del libro

Desde que compré este libro, tuve mucho interés en leerlo...basicamente porque con tantos Frameworks de JavaScript...estaba un poco escéptico...pero...Meteor me tomó totalmente por sorpresa...este es mi review...



Dos cosas me vienen a la cabeza cuando pienso en este libro...ambos Meteor.js y el libro...son totalmente alucinantes! Por qué? Simplemente porque el libro está muy bien explicado...es divertido...sí...es divertido...y viene con una aplicación completa para construir...les mostraré las imagenes más adelante...

Si eres un usuario de Windows como yo...sigue este enlace Meteor on Windows. De otro modo...simplemente utiliza el enlace normal...

Este libro no es realmente muy largo...puesto que solo tiene 131 páginas...pero cubre todo lo que necesitas saber para salir y construir tus primeras aplicaciones...en serio...luego de leer este libro solo quieres construir cosas...y yo tan tengo algunas cuantas en la mente -;)

El libro de introduce a los siguientes temas...
  • Templates
  • Data, Meteor Style
  • Security and Accounts
  • Packaging and Deploying
Así que...about que me gusta acerca de Meteor...es que viene incluido con Minimongo...una versión minimizada de la base de datos en base a documentos MongoDB...la cual es por supuesto más que suficientes para aplicaciones simples...

Ahora...estoy seguro que no me creen...todavía piensan que Meteor es solamente otro Framework de JavaScript...bueno...dejenmé que les diga...se ha convertido de hecho...en mi Framework de JavaScript favorito...perdón AngularJS....


Esta es la aplicación que construyes con el libro...una simple aplicación de "Préstamos"...para que puedas mantener un registro de tus cosas...



No están impresionados todavía? Bueno...Meteor viene con un paquete de Login UI...



Para que no tengas que preocuparte por esos detalles internos...solo crea tu usuario...y diviertete -:)

El único problema que veo ahora con Meteor...es que no hay suficientes libros...pero con suerte eso va a cambiar mientras el framework se hace más popular y más usado -;)

Y por supuesto...yo compraría este libro ahora mismo si fuera ustedes...

Saludos,

Blag.
Developer Empowerment and Culture.