Skip to main content

SAP ABAP - POST Data From SAP to Firebase Using Node js



ABAP Program

REPORT ZSAPTOFIREBASE.

DATA IT_DATA TYPE TABLE OF SFLIGHT.
DATA :
  LO_HTTP_CLIENT 
TYPE REF TO IF_HTTP_CLIENT,
  JSON_DATA      
TYPE STRING,
  JSON_POST      
TYPE XSTRING.


START-OF-SELECTION.
  
PERFORM F_POST_DATA.

FORM F_POST_DATA.
  
DATA LV_STATUS TYPE CHAR50.
  
REFRESH IT_DATA.

  
SELECT FROM SFLIGHT INTO TABLE IT_DATA UP TO ROWS.

  JSON_DATA 
/UI2/CL_JSON=>SERIALIZEDATA IT_DATA COMPRESS ABAP_TRUE PRETTY_NAME /UI2/CL_JSON=>PRETTY_MODE-CAMEL_CASE ).

  
CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URL(
    
EXPORTING
      URL                
'http://10.100.101.28:4000/sap'   "API - URL
    
IMPORTING
      
CLIENT             LO_HTTP_CLIENT
    
EXCEPTIONS
      ARGUMENT_NOT_FOUND 
1
      PLUGIN_NOT_ACTIVE  
2
      INTERNAL_ERROR     
3
      
OTHERS             ).

"  User Authentication.
  
CALL METHOD LO_HTTP_CLIENT->AUTHENTICATE(
    
EXPORTING
      
CLIENT   '400'
      USERNAME 
'USER01'
      PASSWORD 
'123456'
      
LANGUAGE ''
  
).

  
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
    
EXPORTING
      
TEXT   JSON_DATA
    
IMPORTING
      
BUFFER JSON_POST.

  LO_HTTP_CLIENT
->REQUEST->SET_METHOD'POST' ).
  LO_HTTP_CLIENT
->REQUEST->SET_CONTENT_TYPE'application/json' ).
  LO_HTTP_CLIENT
->REQUEST->SET_DATAJSON_POST ).

" Mengirim Request ke API
  LO_HTTP_CLIENT
->SEND(
      
EXCEPTIONS
        HTTP_COMMUNICATION_FAILURE 
1
        HTTP_INVALID_STATE        
).

" Menerima Response dari request
  LO_HTTP_CLIENT
->RECEIVE(
    
EXCEPTIONS
      HTTP_COMMUNICATION_FAILURE 
1
      HTTP_INVALID_STATE        
2
      HTTP_PROCESSING_FAILED    
).

" Cek Response dari request.
  
DATA LV_RESPONSE TYPE STRING.
  LV_RESPONSE 
LO_HTTP_CLIENT->RESPONSE->GET_CDATA( ).

ENDFORM.


__________________________________________________________________________________________ 


Node JS

const express    = require('express');
const bodyParser = require('body-parser');
var firebase     = require("firebase");
const app        = express();

const config = {
    apiKey: "AIzaSyA71hPWUdEqgymNFTHg462yFJ_bWDAkHcA",
    authDomain: "exam-aff8f.firebaseapp.com",
    databaseURL: "https://exam-aff8f.firebaseio.com",
    projectId: "exam-aff8f",
    storageBucket: "",
    messagingSenderId: "133123398372"
  };
firebase.initializeApp(config);

var fdatabase = firebase.database();
var ref = fdatabase.ref("/sap");

app.use(bodyParser.json());
app.listen(4000, () => console.log('Server berjalan di port 4000'));

//Route untuk menangkap data dari SAP
app.post('/sap', (request, response) => {
    let sapdata = request.body;

    ref.set({
        sapdata
    })
    console.log(sapdata);
    response.json('Success');
})


Demo result :


Full source code ABAP & Node JS
 

Comments

Popular posts from this blog

PHP MySql CRUD Dengan Konsep MVC

Pada postingan kali ini saya akan sharing cara membuat CRUD dengan php menggunakan konsep MVC, ok langsung saja buka code editor (saya menggunakan sublime text) dan buat folder baru dengan nama phpmvc didalam folder htdocs kalian dan tambah folder seperti berikut :  Setelah itu kita siapkan database di mysql, buat database dengan nama phpmvc dan tablenya seperti gambar berikut : tambahkan file config.php didalam folder app/config : <?php define('BASEURL', 'http://localhost:8181/phpmvc/public'); define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PASS', ''); define('DB_NAME', 'phpmvc'); kemudian tambahkan 3 file controller didalam folder app/controllers, yaitu Home, About, dan Mahasiswa : Home.php <?php class Home extends Controller { public function index() { $data['nama'] = $this->model('User_model')->getUser()...

Cara Sederhana Multi Insert Data Dengan PHP - MySQL

Pada postingan kali ini saya akan share cara melakukan insert lebih dari satu data dengan menggunaka PHP- Jquery dan MySQL. Pertama buat database di MySQL dan table, disini saya membuat database dengan nama db_latihan dan table dengan nama t_barang dengan struktur table seperti berikut : Setelah membuat database dan table selanjutnya membuat project PHP, project PHP nya saya buat dengan nama multi-insert, lalu didalam folder ini saya membuat dua file yaitu index.php dan insert.php . Source code index.php seperti berikut : <! doctype   html > < html   lang = "en" >    < head >      <!-- Required meta tags -->      < meta   charset = "utf-8" >      < meta   name = "viewport"   content = "width=device-width, initial-scale=1" >      <!-- Bootstrap CSS -->      < link ...

IT Asset Management Dengan PHP MySQL

Pada postingan kali saya akan share sebuah aplikasi IT Asset management yang fungsinya untuk memonitoring semua Asset khusus IT, contohnya : Laptop/komputer , Printer, Router, Hardisk, dll. Dalam aplkasi ini kita bisa mengetahui Asset IT posisinya dimana dan digunakan oleh siapa. untuk data-data yang dibutuhkan antara lain : 1. data kategori asset dalam menu ini kita bisa meng-input jenis2 kategory asset : tambah kategori asset : 2. data department 3. data karyawan 4. data department per karyawan 5. data asset location  6. data satuan asset dan untuk transaksi yang ada dalam aplikasi ini adalah,  1. create asset, pada menu create asset ini kita akan mengalokasikan sebuah asset ke karyawan/personnel tampilannya seperti berikut: setelah klik tombol save akan muncul seperti dibawah : untuk melihat detail asset yang sudah dibuat tadi, kita bisa pilih...