Saltar al contenido

Cree una aplicación avanzada de Cloud Foundry o XS que explore SAP HANA

En tutoriales anteriores, las aplicaciones consultadas por SAP HANA se ejecutaron en una máquina local. En este tutorial, se ejecutará una aplicación simple dentro de SAP Cloud Platform que usa Foundry Cloud o dentro de SAP HANA, una edición explícita que usa XS avanzado (y también se basa en Foundry Cloud).

Para más detalles, consulte Modelo XS de programación avanzada. Para obtener un ejemplo más completo, consulte los temas de Node.js en la semana 3 de Desarrollo de software en SAP HANA.


Paso 1: comience con la interfaz de línea de comandos (CLI)

La CLI lleva el nombre de SAP Cloud Platform cf y la CLI para SAP HANA, una edición rápida se llama xs.

  1. Compruebe si tiene la CLI instalada y verifique la versión.

    cf -v
    

    Para obtener más detalles, consulte Instale la CLI y Instalación de cf CLI.

    xs -v
    

    versión xs cli

    El instalador para xs se puede descargar desde Descargas de software de SAP sobre PLATAFORMA DE INFORMACIÓN SAP HANA PLATAFORMA DE INFORMACIÓN SAP HANA 2.0 | XS DURACIÓN 1.

  2. Obtenga ayuda ejecutando lo siguiente:

    cf help
    cf help login
    
    xs help
    xs help login
    
  3. Inicie sesión en Foundry Cloud o XS avanzado.

    cf login
    

    cf iniciar sesión

    Si es un empleado de SAP, es posible que deba ingresar su contraseña más un código de autenticación de dos factores.

    La URL de la API, si se solicita, se puede encontrar en el SAP Cloud Platform Lump.

    API de URL

    .

    xs login
    

    log xs

    La URL de la API, si se solicita, se puede verificar en la aplicación XSA.

    xsa corriendo

  4. A continuación, se muestran ejemplos adicionales para ver la información de destino, ejecutar servicios e implementar aplicaciones.

    cf target
    cf services
    cf apps
    cf buildpacks
    
    xs target
    xs services
    xs apps
    xs buildpacks
    

    servicios

    Se pueden encontrar más detalles en Comenzando con cf CLI y Comience con XS CLI Client.

Hecho

Inicie sesión para responder la pregunta

Paso 2: Cree una aplicación Node.js que haga preguntas sobre SAP HANA

  1. Crea una carpeta llamada nodeCF e ingrese al directorio recién creado.

    mkdir %HOMEPATH%HANAClientsTutorialnodeCFnodeQueryCF
    cd %HOMEPATH%HANAClientsTutorialnodeCFnodeQueryCF
    
    mkdir $HOME/HANAClientsTutorial/nodeCF/nodeQueryCF
    cd $HOME/HANAClientsTutorial/nodeCF/nodeQueryCF
    
  2. Inicie el proyecto, instale Rápido, y @sap/hana-client de NPM.

    npm init -y
    npm install express
    npm install @sap/hana-client
    
  3. Abra un archivo llamado server.js en editor.

    notepad server.js
    

    Sustituir pico a continuación para ver su editor de texto favorito.

    pico server.js
    
  4. Agregue el siguiente código a server.js. Actualice los valores del host y el puerto, el nombre de usuario y la contraseña.

    var express = require('express');
    var hana = require('@sap/hana-client');
    var app = express();
    
    app.get('/', function (req, res) {
       res.send('Hello World');
    })
    
    app.get('/Customers', function (req, res) {
      var connOptions = {
          serverNode: 'XXXXXX.hana.trial-XXXXX.hanacloud.ondemand.com:443',
          //serverNode: 'linux-bj72:39015',
          UID: 'USER1',
          PWD: 'Password1'
          //traceFile: 'stdout',
          //traceOptions: 'sql=warning'
      };
    
      var connection = hana.createConnection();
      connection.connect(connOptions, function(err) {
          if (err) {
              return console.error(err);
          }
          var sql = 'select * from HOTEL.CUSTOMER;';
          var rows = connection.exec(sql, function(err, rows) {
              if (err) {
                  return console.error(err);
              }
              console.log(rows);
              res.send(rows);
              connection.disconnect(function(err) {
                  if (err) {
                      return console.error(err);
                  }   
              });
          });
      });
    })
    
    const port = process.env.PORT || 3000;
    var server = app.listen(port, function () {
       var host = server.address().address
       var port = server.address().port
       console.log("Example app listening at http://%s:%s", host, port)
    })
    
  5. Ejecute y pruebe la aplicación localmente.

    node server.js
    

    corriendo localmente

Hecho

Inicie sesión para responder la pregunta

Paso 3: Implementar y probar una aplicación en SAP Cloud Platform o XS Advanced

Paso 4: pedidos adicionales

  1. La aplicación se puede detener e iniciar con los siguientes comandos:

    cf stop nodeQueryCF
    cf start nodeQueryCF
    
  2. Los eventos del ciclo de vida de las aplicaciones se pueden ver con el siguiente comando:

    cf events nodeQueryCF
    

    actas

  3. Los registros de la aplicación se pueden ver con el siguiente comando:

    cf logs --recent nodeQueryCF
    

    El siguiente comando mostrará la cola del registro.

    cf logs nodeQueryCF
    
  4. A partir de la versión 2.7, las interfaces de cliente de SAP HANA pueden generar información de seguimiento a stdout o stderr.

    cf set-env nodeQueryCF HDB_SQLDBC_TRACEFILE stdout
    cf set-env nodeQueryCF HDB_SQLDBC_TRACEOPTS SQL=WARN
    cf restage nodeQueryCF
    cf env nodeQueryCF
    cf logs nodeQueryCF
    

    Alternativamente, la configuración de seguimiento se puede especificar en el código de la aplicación.

    Actualice el navegador y tenga en cuenta que ahora se puede ver la información de la pista.

    rian

  5. La aplicación de implementación también se puede administrar en la cabina asociada.

    Cabina de plataforma SAP Cloud

    SAP Cloud Platform Lump

    Cabina Casta SAP HANA XS

    Cabina XS avanzada

    Tenga en cuenta que el número de casos actuales puede escalar si necesario.

Felicitaciones, ha creado, implementado y ejecutado una aplicación que promueve las consultas de SAP HANA en Cloud Foundry y XS, así como la familiarización con la interfaz de línea de comandos.