Panduan Regex untuk Menangkap Keterangan Gagal

Bagi yang sudah menjalankan Panduan Menambah Keterangan Gagal namun keterangan gagal nya belum muncul atau tidak tertangkap, hal tersebut disebabkan regex gagal yang kurang tepat. Sebetulnya regex gagal mirip cara kerjanya seperti regex SN. Jika sudah memahami Panduan Menangkap SN Transaksi dengan Baik, akan lebih mudah untuk memahami regex gagal ini. Berikut panduannya:

Gambaran Umum Memahami Regex Gagal

1. Siapkan contoh reply transaksi gagal dari serpul / suplier untuk bahan tes regex.

2. Login ke panel web kamu (cPanel / Direct Admin / Webuzo / Cyber Panel / dll yang kamu gunakan).

3. Cari menu File Manager, kemudian pada file manager buka public_html > application > models > cari file dengan nama Mtrx.php kemudian edit file tersebut.

4. Cari script berikut:
(GAGAL)(\. )(?P<gg>(.*?))(Sal\.|Sal |Sal:|Sal=|Saldo|Trx|Hrg|Refund)
Script ini merupakan regex gagal default, untuk bisa menangkap keterangan gagal dengan baik perlu untuk edit-edit script regex ini.

5. Buka regex101.com kemudian masukkan regex gagal ke kolom REGULAR EXPRESSION dan masukkan reply transaksi gagal dari serpul / suplier pada kolom TEST STRING. Contoh reply transaksi gagal yang saya gunakan adalah:
STB2100.0812******** GAGAL. Nomor tujuan diluar zona. Saldo 11.204.606 @11:52
Contoh penggunaan regex101
6. Jika pada halaman regex101 di sebelah kanan pada kolom MATCH INFORMATION terdapat baris Group 'gg', maka artinya regex sudah bisa menangkap keterangan gagal. Perhatikan keterangan yang ada pada baris Group 'gg' merupakan keterangan gagal yang ditangkap, jika tidak ada keanehan atau keterangan yang ditangkap sudah sesuai keinginan, maka regex sudah sempurna. Coba juga dengan reply dari produk lain atau dari serpul dan suplier lain agar regex gagal bisa sempurna menangkap keterangan gagal untuk semua produk dan serpul / suplier.

Memahami Cara Kerja Regex Gagal

Untuk mempermudah regex gagal saya bagi kedalam tiga bagian, ada bagian berwarna biru, ada bagian berwarna hijau, dan ada bagian berwarna merah. Kegunaan tiga bagian ini adalah sebagai batas yang mengapit keterangan gagal, sama seperti regex SN. Contoh regex gagal default:
(GAGAL)(\. )(?P<gg>(.*?))(Sal\.|Sal |Sal:|Sal=|Saldo|Trx|Hrg|Refund)

Bagian biru:
Merupakan karakter berupa sebuah kata yang berada di depan keterangan gagal. Secara umum kata yang ada pada reply transaksi gagal adalah kata GAGAL. Namun, jika ada reply dengan kata selain GAGAL misalkan Failed dan Batal maka perlu dituliskan semua kata - kata tersebut dengan dipisahkan tanda baca | contohnya jadi seperti ini:
(GAGAL|Failed|Batal)

Bagian hijau:
Merupakan karakter berupa tanda baca yang berada diantara bagian biru dan keterangan gagal yang mau ditangkap. Pada regex gagal default, pada bagian hijau tertulis (\. ) yang artinya terdapat tanda . (titik) dan spasi diantara bagian biru dengan keterangan gagal yang mau ditangkap. Singkatnya setelah kata GAGAL ada tanda titik dan spasi (misal: GAGAL. Saldo). Jika ditulisnya (\.) artinya tanda titik saja antara bagian biru dengan keterangan gagal yang mau ditangkap (misal: GAGAL.Saldo), penulisannya sangat sensitif jangan sampai salah ya! Jika ada karakter lain misal tanda , (koma) atau hanya ada spasi saja tanpa tanda baca apapun, atau ada reply yang ada titik dengan spasi dan aja juga titik tanpa spasi bisa ditulis seperti ini:
(\. |\.|\,| )

Bagian merah:
Merupakan karakter berupa sebuah kata yang berada di bagian belakang keterangan gagal yang mau ditangkap, bisa dibilang batas belakang keterangan gagal yang mau ditangkap itu sampai mana. Ada contoh reply seperti ini:
STB2100.0812******** GAGAL. Nomor tujuan diluar zona. Saldo 11.204.606 @11:52
Artiya keterangan gagal yang akan diambil batasnya adalah kata Saldo dan keterangan yang diambil adalah kata-kata yang ada sebelum kata Saldo tersebut. Bagaimana jika bukan kata Saldo yang ada di reply tetapi misalkan Sisa Saldo atau Total Saldo? Karena kita ingin membuat sebuah batas belakang, tambahkan saja kata Sisa dan Total kedalam regex gagal pada bagian merah seperti ini:
(Sisa|Total|Sal\.|Sal |Sal:|Sal=|Saldo|Trx|Hrg|Refund)

Studi Kasus Keterangan Gagal Tidak Tertangkap

Bagaimana cara mengetahui bahwa regex gagal yang digunakan belum tepat? Mudahnya yaitu jika regex gagal dan reply transaksi gagal dimasukkan ke regex101 akan muncul tulisan seperti ini pada kolom MATCH INFORMATION: Your regular expression does not match the subject string.

Contoh Kasus 1 - Tidak ada tanda baca setelah kata GAGAL

Contoh replynya kita ambil yang ini:
Voc TRI LARIS "TRVLTE66"#R# TDA0.08529999900000 GAGAL karena timeout. Saldo 540.395 @10.47#VADM2 AXIS MINI BARU
Regex gagal kita pakai yang default:
(GAGAL)(\. )(?P<gg>(.*?))(Sal\.|Sal |Sal:|Sal=|Saldo|Trx|Hrg|Refund)
Kemudian masukkan contoh reply dan regex gagal tersebut ke regex101, hasilnya seperti gambar berikut:

Bisa dilihat muncul pesan "Your regular expression does not match the subject string." artinya regex belum sesuai. Coba diperhatikan kembali contoh reply gagal diatas, sebetulnya bukan tidak ada tanda baca sama sekali, tetapi terdapat tanda spasi antara kata GAGAL dengan kata karena timeout. Karena masalah ada di bagian hijau (tanda baca yang ada diantara bagian biru dengan keterangan gagal) maka kita masukkan spasi kedalam bagian hijau, bagian hijau akan menjadi seperti ini:
(\. | )
Dan regex gagal akan menjadi seperti ini:
(GAGAL)(\. | )(?P<gg>(.*?))(Sal\.|Sal |Sal:|Sal=|Saldo|Trx|Hrg|Refund)
Masukkan kembali regex yang sudah diperbarui ke regex101 dan hasilnya jadi seperti gambar berikut:
Keterangan gagal sudah sempurna ditangkap. Hasil keterangan yang ditangkap bisa dilihat pada kolom MATCH INFORMATION kemudian scroll cari baris Group 'gg'.

Studi Kasus 2 -  Tidak kata-kata  lain setelah keterangan gagal

Contoh replynya kita ambil yang ini:
INQ511.111114566674 GAGAL [5014]IDPEL YANG ANDA MASUKKAN SALAH, MOHON TELITI KEMBALI.
Regex gagal kita pakai yang dari studi kasus 1:
(GAGAL)(\. | )(?P<gg>(.*?))(Sal\.|Sal |Sal:|Sal=|Saldo|Trx|Hrg|Refund)
Kemudian masukkan contoh reply dan regex gagal tersebut ke regex101, hasilnya "Your regular expression does not match the subject string.". Hal ini disebabkan tidak ada kata apapun pada batas belakang keterangan gagal. Solusinya bsia tambahkan tanda $ pada bagian merah regex gagal. Arti tanda tersebut adalah ujung kalimat, hasilnya regex gagal jadi seperti ini:
(GAGAL)(\. | )(?P<gg>(.*?))(Sal\.|Sal |Sal:|Sal=|Saldo|Trx|Hrg|Refund|$)
Kemudian coba masukkan kembali regex yang sudah diperbaiki ke regex101 dan hasilnya jadi seperti gambar berikut:
Keterangan gagal sudah ditangap sempurna. Masukkan kembali regex yang sudah diperbaiki ke file Mtrx.php dan pengaturan regex gagal pun sudah selesai, selamat mencoba.

Untuk kembali ke halaman tutorial script pulsa klik disini.

Comments

Popular posts from this blog

Spark Sebagai Alternatif Pengganti Jabber API

Cron Job untuk Menstabilkan Transaksi

Panduan Menangkap SN Transaksi dengan Baik

Membuat Menu Teks Berjalan di Aplikasi Android V2

Modul HT - Notifikasi WA Edisi Terbatas