Skip to content

Instantly share code, notes, and snippets.

@yusren
Last active February 7, 2024 13:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yusren/31dc3d7417ae62c16cb8f53c5f760d52 to your computer and use it in GitHub Desktop.
Save yusren/31dc3d7417ae62c16cb8f53c5f760d52 to your computer and use it in GitHub Desktop.
SEJATI Manual

Sistem Eklektik JembAtan TImbang (SEJATI)

Aplikasi Staging Data Jembatan Timbang - DFARM

Author : Teddy Badio Baykard (teddy.baykard@ptpn4.co.id) & Afrizal Yusren (yusren@ptpn4.co.id)

Penjelasan

Layanan ini akan melakukan penarikan (pull) data dari seluruh PC mesin timbangan seluruh Unit Kebun/PKS Region 2, kemudian melakukan screening dan filtering. Dan pada akhirnya melakukan transfer data ke Database DFARM Holding. Menggunakan metode scheduler/penjadwalan cronjob milik OS Linux untuk melakukan pekerjaan penarikan data setiap 30 menit. Laporan sukses/gagal akan dikirim ke Telegram Channel.

Sebelum Pakai

  • Buatlah koneksi ke server DFARM dari database staging Anda dengan LinkedServer. Tujuannya agar server DFARM bisa langsung terhubung ke server staging. Masuklah ke DB staging Anda lalu buka console. Ketikkan perintah berikut
    EXEC master.dbo.sp_addlinkedserver   
    @server = N'xxx.xxx.xxx.xxx',   
    @srvproduct=N'SQL Server';  
    --xxx=ip server remote (yang ingin disambungkan)
    GO  
    --mengatur remote login linked server
    --EXEC sp_addlinkedsrvlogin 'NAMASERVER', 'false', 'LOCALACCOUNT', 'REMOTEACCOUNT', 'REMOTEPASSWORD';  
    EXEC sp_addlinkedsrvlogin 'xxx.xxx.xxx.xxx', 'false', 'sa', 'namauser', 'passworduser';  
    --xxx adalah IP remote server yang dibuat sebelumnya; namauser dan passworduser adalah untuk akun remote servernya; bukan staging server
    GO
  • Proses push ke DB DFARM dilakukan dari dalam server staging, bukan dengan membuka koneksi lagi dari service aplikasi. Karena itu wajib pasang Linked Server
  • Buatlah synonim ke tabel TrWB_OPRB_HD database DFARM yang telah dihubungkan dengan Server Staging
    USE namadbstaging;  
    GO  
    CREATE SYNONYM TrWB_OPRB_HD  
    --FOR namaLinkedServer.namaDatabase.dbo.namaTable;
    FOR xxx.xxx.xxx\MSSQLSERVER,1433.DFARM.dbo.TrWB_OPRB_HD;  
    GO  

Cara Pakai

  • Buka file .env lalu sesuaikan dengan parameter koneksi database Anda baik timbangan, staging dan DFARM

  • khusus timbangan, tidak disertakan IP pada parameter .env karena akan dihubungi secara dinamis berdasarkan master database

  • Buka database sejati_staging, tabel master_bridges. Pastikan IP mesin jembatan timbang telah sesuai

  • buatlah PATH untuk aplikasi ini. Buka file ~/.bashrc lalu tambahkan row

    export PATH=$PATH:/lokasi/tempat/aplikasi/staging
  • panggil aplikasi dengan perintah :
    staging auto -c /lokasi/tempat/file/config/.env -t today #untuk memproses data secara otomatis hari ini
    staging auto -c /lokasi/tempat/file/config/.env -t yesterday #untuk memproses data secara otomatis hari kemarin
    staging auto -c /lokasi/tempat/file/config/.env -t 2024-02-01 #untuk memproses data secara otomatis sesuai tanggal dimaksud

    staging pull -c /lokasi/tempat/file/config/.env -t today #hanya untuk menarik data timbangan hari ini
    staging pull -c /lokasi/tempat/file/config/.env -t yesterday #hanya untuk menarik data timbangan hari kemarin
    staging pull -c /lokasi/tempat/file/config/.env -t 2024-02-01 #hanya untuk menarik data timbangan sesuai tanggal dimaksud
    staging pull -c /lokasi/tempat/file/config/.env -t 2024-02-01 -i 10.20.10.10 #hanya untuk menarik data timbangan sesuai tanggal dan IP dimaksud
    
    staging push -c /lokasi/tempat/file/config/.env -t today #hanya untuk mengirim ke DFARM data data staging hari ini
    staging push -c /lokasi/tempat/file/config/.env -t yesterday #hanya untuk mengirim ke DFARM data staging hari kemarin
    staging push -c /lokasi/tempat/file/config/.env -t 2024-02-01 #hanya untuk mengirim ke DFARM data staging sesuai tanggal dimaksud

    staging delete -c /lokasi/tempat/file/config/.env -t today #hanya untuk menghapus data timbangan hari ini
    staging delete -c /lokasi/tempat/file/config/.env -t yesterday #hanya untuk menghapus data timbangan hari kemarin
    staging delete -c /lokasi/tempat/file/config/.env -t 2024-02-01 #hanya untuk menghapus data timbangan sesuai tanggal dimaksud
    staging delete -c /lokasi/tempat/file/config/.env -t 2024-02-01 -i 10.20.10.10 #hanya untuk menghapus data timbangan sesuai tanggal dan IP dimaksud
  • Periksa log secara berkala untuk memeriksa masalah dengan penarikan dan pengiriman data timbangan
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment