Articles Comments

{ Berbagi, Menulis, Dan Mengajar } Ilmu… » 7. Operating System » GAMMU with SQL Trigger

GAMMU with SQL Trigger

Gammu merupakan enggine buat sms gateway yang populer, pa lagi sekarang sudah ada versi buat berbagai macem platform termasuk windus. Guugling aja gammu di inet boeat donglod. Hasilnya, bener-bener simple, ndak perlu ribet mikirin PDU nya, AT Command and lain-lain, sms masuk otomatis udah akan nongol di table inboxnya, sedangkan pas case kita nge bales sms, sms otomatis akan ada di table outbox. Ketika udah terkirim, data di table outbox akan otomatis dihapus and dipindah ke table sentitems.

Dengan asumsi koneksi udah berjalan (pake DKU5, blutoth or else), kita akan mencoba untuk membuat autoreplynya, cos fitur ini tidak disediakan secara otomatis oleh gammu dengan menggunakan fitur trigger pada mysql.

A trigger is a named database object that is associated with a table, and that activates when a particular event occurs for the table
MySQL Help

Oks dengan asumsi kita sudah mempunyai table-table bawaan gammu plus satu tabel lagi yang dijadiin object agen.
Tabel data_dokter(id_dokter,nama) values (’AK47′,’Rico Hantono’)
SMS Inbox sampe case : data id_dokter (misal : data AK47)

Here they are :
DELIMITER |
CREATE TRIGGER infodokter AFTER INSERT ON inbox
FOR EACH ROW BEGIN
insert into outbox(DestinationNumber,Coding,TextDecoded,CreatorID)
values(NEW.SenderNumber,'Default_No_Compression',(select nama from data_dokter
where id_dokter=SUBSTRING(NEW.TextDecoded,6)),'1');
END;
|
DELIMITER ;

Script diatas akan menbuat sebuah trigger dengan nama infodokter yang akan bekerja atau diproses pada even setelah data diinsert ke dalam tabel inbox. Setelah itu, untuk setiap data yang baru saja masuk dalam tabel inbox akan diberlakukan sql command

insert into outbox(DestinationNumber,Coding,TextDecoded,CreatorID)
values(NEW.SenderNumber,'Default_No_Compression',(select nama from data_dokter
where id_dokter=SUBSTRING(NEW.TextDecoded,6)),'1');
SQL command tersebut setelah proses akan ditranslate seperti ini :
insert into outbox(DestinationNumber,Coding,TextDecoded,CreatorID)
values ('0812334956','Default_No_Compression','Rico Hantono')

Satu hal dari pengalaman membuat autoreply dengan trigger MySQL, jika kita bekerja dengan reply yang simple gw rasa metode ni bisa dipake, namun kalo reply mengharuskan kita fetching dari beberapa tabel , hasil query yang bisa lebih dari satu dan?constrain yang rumit, sangat tidak dianjurkan sampeyan pake method ini. Pa lagi dengan kemampuan SQL yang pas-pas an kek gw :Pmendingan pake desktop application dengan dukungan ODBC. Kita bisa lebih mudah nge implementasiin query-query rumit dengan sedikit campur tangan algoritma kita sendiri :D .Selain itu, jika ada perubahan command sms ataupun perubahan format reply, kita akan lebih mudah memanagenya.

Versi desktopnya, menyusul yagh, lagi in progress. Next Month maybe ta post..

Filed under: 7. Operating System

Leave a Reply

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>