florian86
Goto Top

SAP Daten auf Webseite darstellen

Hallo Zusammen,

ich möchte SAP Daten auf einer Webseite darstellen. Dazu habe ich mir zu aller erst einen Webserver erstellt.

//Server.js
"use strict";  

const http = require("http");  
const path = require("path");  
const express = require("express");  

const clientDirectory = path.join(__dirname, "./");  
const app = express();

app.use('/',express.static(clientDirectory))  

//const server = http.createServer(app);

app.listen(8080, () =>{
  console.log('Server is listening on port 8080.')  
})

Danach habe ich mir eine sap.js erstellt und dort meinen Code zum Abfragen der Datenbank reingeschrieben.

//sap.js
"use strict";  

var hana = require('@sap/hana-client');  

var connOptions = {
  serverNode: "XXX",  
  encrypt: "true",  
  sslValidateCertificate: "false",  
  uid: "XXX",  
  pwd: "XXX",  
};

var dbConnection = hana.createConnection();

dbConnection.connect(connOptions, function (err) {
  if (err) throw err;
  dbConnection.exec(
    "select MAKTX from SAPABAP1.MAKT where  MATNR = 10036",  
    function (err, result) {
      if (err) throw err;
      
      console.log(result);
      
      dbConnection.disconnect();
              
    }
  );
});


nach Aufruf der sap.js in der Konsole bekomme ich auch mein Ergebnis.

Wie bekomme ich aber das Ergebnis jetzt auf meine HTML Seite. Wenn ich einen httprequest auf die sap.js mache bekomme ich ja nur den Text der sap.js
angezeigt.

//aufruf,js über httprequest
'use strict';  

function display(some){

    document.getElementById("txt").innerHTML = some;  

}

function getFile(mycallback){

        let http = new XMLHttpRequest();

        http.open('GET','sap.js');  
        http.onload = function(){
            if(http.status == 200){
                mycallback(this.response);
            }
            else {
                mycallback("Error" + http.status);          
            }        
        }
        http.send();
}

getFile(display);

Kann mir jemand weiterhelfen?

MfG

Florian86

Content-Key: 1241718688

Url: https://administrator.de/contentid/1241718688

Printed on: May 3, 2024 at 20:05 o'clock

Member: Bingo61
Bingo61 Sep 09, 2021 updated at 10:04:39 (UTC)
Goto Top
Bin zwar schon lange aus der SAP Programmierung weg,
aber habe so im Hinterkopf, das man dazu eine Netwaever version nutzt ? Sorry wenn ich da falsch liege face-smile
Member: Florian86
Florian86 Sep 09, 2021 at 10:36:38 (UTC)
Goto Top
Der Zugriff und so weiter passt ja alles. Ich bekomme in der Konsole ja auch mein Ergebnis aber leider weis ich jetzt nicht wie ich genau die Datei sap.js über meinen Node Webserver ansprechen soll damit ich das Ergebnis aus der sap.js auch für den Client zur Verfügung habe. Im Netz finde ich immer nur das man sich die Ergebnisse in der Konsole ausgibt. Aber soweit bin ich ja schon.

MfG

Florian
Member: michi1983
michi1983 Sep 09, 2021 at 21:04:59 (UTC)
Goto Top
Hallo,

interessant wäre wie der Inhalt von result aussieht. Zumindest sieht result auf den ersten Blick nach einem Array aus. Ist das Format JSON?

Ev hilft dir ja das hier als Anhaltspunkt:
https://www.geeksforgeeks.org/how-to-convert-json-data-to-a-html-table-u ...

Gruß
Member: Florian86
Solution Florian86 Sep 10, 2021 at 07:43:06 (UTC)
Goto Top
Hallo Danke für den Link. Ich habe es jetzt erstmal so gelöst das ich die Daten in eine JSON schreibe, worauf ich dann von Clientseite zugreife. Ich dachte aber vielleicht das die Werte direkt abgerufen werden könnten.

var dbConnection = hana.createConnection();

dbConnection.connect(connOptions, function (err) {
  if (err) throw err;
  dbConnection.exec(
    "select MAKTX from SAPABAP1.MAKT where  MATNR = 10067",  
    function (err, result) {
      if (err) throw err;
      
      let data = JSON.stringify(result, null, 2);
      
      fs.writeFile('./data.json',data,function(err, some) {  
        if(err) console.log('error', err);  
    
        return some;
    });
      

      dbConnection.disconnect();

Jetzt muss ich den Coder aber immer über die Console ausführen damit die JSON neu gefüllt wird.

Wie kann man von Clientseite ein Serverseitiges Script ausführen damit meine JSON mit aktuellen Daten gefüttert wird?

MfG

Florian86