|
|
|
# Tipe Tipe Rule
|
|
|
|
1. [Match](#NULL-Value): Rule yang membandingkan isi field suatu record terhadap keadaan/konsisi tertentu, jika field lolos kondisi tersebut maka akan meng-output-kan nilai valid sesuai parameter rule (biasanya parameter pertama). Karena outputnya sesuai dengan parameter, maka field `Output` dari rule tipe ini harus berbeda dengan field `Input` untuk menghindari kehilangan data.
|
|
|
|
2. Transform: Rule yang mengubah/mentransformasi nilai suatu field pada row. Field `Output` dari rule tipe ini boleh sama ataupun berbeda dengan field `Input` karena seharusnya rule ini digunakan untuk menambah/memperbaiki nilai yang sudah ada.
|
|
|
|
3. Schema: Rule yang mengubah/mentransformasi schema/struktur data, biasanya berupa DDL.
|
|
|
|
|
|
|
|
# System Rule
|
|
|
|
Rule-rule dasar yang merupakan dasar dari implementasi Rule Standar (Go Function Based).
|
|
|
|
1. **SystemRuleNullValue (Tansform)**
|
|
|
|
- Parameter:
|
|
|
|
- 1: tipe data field
|
|
|
|
2. **SystemRuleReplaceCharacter**
|
|
|
|
- Parameter:
|
|
|
|
- 1: karakter yang akan di ganti (CSV RFC 4180)
|
|
|
|
- 2: karakter yang akan menggantikan (CSV RFC 4180)
|
|
|
|
3. **SystemRuleChangeCase**
|
|
|
|
- Parameter:
|
|
|
|
- 1: tipe case (UpperCase, LowerCase, ProperCase, SentenceCase, ToggleCase)
|
|
|
|
4. **SystemRuleTimeFormat**
|
|
|
|
- Parameter:
|
|
|
|
- 1: format layout ([format penulisan SQL server](https://learn.microsoft.com/en-us/sql/t-sql/functions/date-and-time-data-types-and-functions-transact-sql?view=sql-server-ver16#DateandTimeDataTypes))
|
|
|
|
5. SystemRuleStandardEmail
|
|
|
|
- Parameter:
|
|
|
|
- 1: return value untuk email invalid
|
|
|
|
6. **SystemRuleStandardPhone**
|
|
|
|
- Parameter:
|
|
|
|
- 1: return value untuk phone valid
|
|
|
|
7. **SystemRuleDuplicateCheck**
|
|
|
|
- Parameter:
|
|
|
|
- 1: nama tabel
|
|
|
|
- 2: nama field primary key
|
|
|
|
- 3: nama field yang akan dicek
|
|
|
|
- 4: nama field yang akan untuk menyimpan hasil
|
|
|
|
- 5: record id saat ini
|
|
|
|
- 6: daftar prioritas pengecekan(opsional)
|
|
|
|
8. **SystemRuleValidateNIK**
|
|
|
|
- Parameter:
|
|
|
|
- 1: return value untuk NIK valid
|
|
|
|
- 2: return value untuk NIK invalid
|
|
|
|
9. **SystemRuleValidateCountry**
|
|
|
|
- Parameter:
|
|
|
|
- 1: return value untuk country valid
|
|
|
|
- 2: return value untuk country invalid
|
|
|
|
10. **SystemRuleStandardizeKabKota**
|
|
|
|
- Parameter:
|
|
|
|
- 1: return value untuk country valid
|
|
|
|
- 2: return value untuk country invalid
|
|
|
|
11. **SystemRuleStandardizeProvince**
|
|
|
|
- Parameter:
|
|
|
|
- 1: return value untuk country valid
|
|
|
|
- 2: return value untuk country invalid
|
|
|
|
12. **SystemRuleCombineFields**
|
|
|
|
- Parameter:
|
|
|
|
- 1: nama field untuk menyimpan hasil combine
|
|
|
|
|
|
|
|
|
|
|
|
# Rule Standar
|
|
|
|
1. **NULL Value (Tansform)**
|
|
|
|
- Deskripsi: Mengubah nilai NULL menjadi default value-nya supaya tidak menghambat proses komparasi.
|
|
|
|
- Tiket: #48, #69
|
|
|
|
- Implementasi:
|
|
|
|
- Go func, rule name: Null Value (Go Function Based)
|
|
|
|
- SQL func, rule name: Null Value (SQL Based)
|
|
|
|
- SystemRule: SystemRuleNullValue
|
|
|
|
2. **Remove Punctuations (Tansform)**
|
|
|
|
- Deskripsi: Menghapus tanda baca dari nilai supaya tidak menghambat proses komparasi.
|
|
|
|
- Tiket: #7, #71
|
|
|
|
- Implementasi:
|
|
|
|
- Go func, rule name: Remove Punctuations (Go Function Based)
|
|
|
|
- SQL func, rule name: Remove Punctuations (SQL Based)
|
|
|
|
- SystemRule: SystemRuleReplaceCharacter
|
|
|
|
3. **Change Case (Tansform)**
|
|
|
|
- Deskripsi: Mengubah kalimat dalam field ke aturan case tertentu.
|
|
|
|
- Tiket: #8, #92
|
|
|
|
- Implementasi:
|
|
|
|
- Go func, rule name:
|
|
|
|
- Change Case: UPPER CASE (Go Function Based)
|
|
|
|
- Change Case: lower case (Go Function Based)
|
|
|
|
- Change Case: Proper Case (Go Function Based)
|
|
|
|
- Change Case: tOGGLE cASE (Go Function Based)
|
|
|
|
- Change Case: Sentence case (Go Function Based)
|
|
|
|
- SQL func, rule name:
|
|
|
|
- Change Case: UPPER CASE (SQL Based)
|
|
|
|
- Change Case: lower case (SQL Based)
|
|
|
|
- Change Case: Proper Case (SQL Based)
|
|
|
|
- Change Case: tOGGLE cASE (SQL Based)
|
|
|
|
- Change Case: Sentence case (SQL Based)
|
|
|
|
- SystemRule: SystemRuleChangeCase
|
|
|
|
4. **Format Date (Tansform)**
|
|
|
|
- Deskripsi: Mengubah field tanggal ke format yang sesuai dan UTC (GMT+0).
|
|
|
|
- Tiket: #10, #93
|
|
|
|
- Implementasi:
|
|
|
|
- Go func, rule name:
|
|
|
|
- Format Date: yyyy-MM-dd (Go Function Based)
|
|
|
|
- Format Date: dd-MMM-yyyy (Go Function Based)
|
|
|
|
- Format Date: dd MMMM yyyy (Go Function Based)
|
|
|
|
- Format Date: MMMM dd, yyyy (Go Function Based)
|
|
|
|
- Format Time: HH:mm:ss (Go Function Based)
|
|
|
|
- Format Time: hh:mm:ss tt (Go Function Based)
|
|
|
|
- Format Date Time: dd MMM yyyy HH:mm:ss (Go Function Based)
|
|
|
|
- SQL func, rule name:
|
|
|
|
- Format Date: yyyy-MM-dd (SQL Based)
|
|
|
|
- Format Date: dd-MMM-yyyy (SQL Based)
|
|
|
|
- Format Date: dd MMMM yyyy (SQL Based)
|
|
|
|
- Format Date: MMMM dd, yyyy (SQL Based)
|
|
|
|
- Format Time: HH:mm:ss (SQL Based)
|
|
|
|
- Format Time: hh:mm:ss tt (SQL Based)
|
|
|
|
- Format Date Time: dd MMM yyyy HH:mm:ss (SQL Based)
|
|
|
|
- SystemRule: SystemRuleTimeFormat
|
|
|
|
5. **Standard Email (Tansform)**
|
|
|
|
- Deskripsi: menghapus spasi pada email kemudian memvalidasinya, Jika validasi gagal maka akan dikembalikan nilai yang disiapkan untuk emailnya jika bermasalah (default: empty string).
|
|
|
|
- Tiket: #98, #102
|
|
|
|
- Implementasi:
|
|
|
|
- Go func, rule name: Standard Email (Go Function Based)
|
|
|
|
- SQL func, rule name: Standard Email (SQL Function Based)
|
|
|
|
- SystemRule: SystemRuleStandardEmail
|
|
|
|
- **Catatan**: ini perlu diubah menjadi tipe Match
|
|
|
|
6. **Standard Phone (Tansform)**
|
|
|
|
- Deskripsi: menghapus karakter spesial pada no telp ("+", " ", "-", "(", ")") kemudian memvalidasinya, Jika validasi gagal maka akan dikembalikan nilai yang disiapkan untuk no telp jika bermasalah (default: empty string).
|
|
|
|
- Tiket: #11, #103
|
|
|
|
- Implementasi:
|
|
|
|
- Go func, rule name: Standard Phone (Go Function Based)
|
|
|
|
- SQL func, rule name: Standard Phone (SQL Function Based)
|
|
|
|
- SystemRule: SystemRuleStandardPhone
|
|
|
|
- **Catatan**: ini perlu diubah menjadi tipe Match
|
|
|
|
7. **Duplicate Check (Match)**
|
|
|
|
- Deskripsi: melakukan pengecekan apakah suatu field merupakan data duplikat dengan field lainnya, mengutamakan data pertama yang ditemukan yang dianggap sebagai data original. Pada `Data Person Duplicate Check` Data dengan `DATATYPE=GOLDEN` yang diutamakan.
|
|
|
|
- Tiket: #97
|
|
|
|
- Implementasi:
|
|
|
|
- Go func, rule name:
|
|
|
|
- Duplicate Check (Go Function Based)
|
|
|
|
- Data Person Duplicate Check (Go Function Based)
|
|
|
|
- SystemRule: SystemRuleDuplicateCheck
|
|
|
|
8. **Validate NIK (Match)**
|
|
|
|
- Deskripsi: melakukan pengecekan apakah suatu field merupakan NIK yang valid dengan melakukan pengecekan format penulisan NIK dan melakukan pengecekan apakah `Kode Wilayah` pada NIK terdaftar pada data referensi. Jika validasi gagal maka akan dikembalikan nilai yang disiapkan untuk kode wilayah jika bermasalah (default: empty string).
|
|
|
|
- Tiket: #31, #104
|
|
|
|
- Implementasi:
|
|
|
|
- Go func, rule name:
|
|
|
|
- Validate Country (Go Function Based)
|
|
|
|
- SystemRule: SystemRuleValidateNIK
|
|
|
|
9. **Validate Country (Match)**
|
|
|
|
- Deskripsi: melakukan pengecekan apakah suatu field merupakan kode country yang valid dengan melakukan validasi apakah nilai pada field tersebut terdaftar dalam `ISO-3166` baik `alpha2` ataupun `alpha3`. Jika validasi gagal maka akan dikembalikan nilai yang disiapkan untuk country jika bermasalah (default: empty string).
|
|
|
|
- Tiket: #12, #106
|
|
|
|
- Implementasi:
|
|
|
|
- Go func, rule name: Validate Country (Go Function Based)
|
|
|
|
- SystemRule: SystemRuleValidateCountry
|
|
|
|
10. **Standarize Kab/Kota (Match)**
|
|
|
|
- Deskripsi: Melakukan standarisasi untuk penulisan Kab/Kota agar data pada field tersebut menjadi seragam dan juga melakukan pengecekan apakah data pada field tersebut merupakan Kab/kota yang valid dan terdaftar pada data referensi. Jika validasi gagal maka akan dikembalikan nilai yang disiapkan untuk kab/kota jika bermasalah (default: empty string).
|
|
|
|
- Tiket: #110, #114
|
|
|
|
- Implementasi:
|
|
|
|
- Go func, rule name: Standardize Kab/Kota (Go Function Based)
|
|
|
|
- SystemRule: StandardizeKabKota
|
|
|
|
11. **Standarize Province (Match)**
|
|
|
|
- Deskripsi: Melakukan standarisasi untuk penulisan Provinsi agar data pada field tersebut menjadi seragam dan juga melakukan pengecekan apakah data pada field tersebut merupakan provinsi yang valid dan terdaftar pada data referensi. Jika validasi gagal maka akan dikembalikan nilai yang disiapkan untuk provinsi jika bermasalah (default: empty string).
|
|
|
|
- Tiket: #111, #115
|
|
|
|
- Implementasi:
|
|
|
|
- Go func, rule name: Standardize Province (Go Function Based)
|
|
|
|
- SystemRule: StandardizeProvince
|
|
|
|
12. **Combine Fields (Schema)**
|
|
|
|
- Deskripsi: Menggabungkan dua atau lebih field kedalam sebuah field baru.
|
|
|
|
- Tiket: #124
|
|
|
|
- Implementasi:
|
|
|
|
- Go func, rule name: Combine Fields (Go Function Based)
|
|
|
|
- SystemRule: SystemRuleCombineFields
|
|
|
|
|
|
|
|
# Contoh Penggunaan dan Output
|
|
|
|
|
|
|
|
## NULL Value
|
|
|
|
## Remove Punctuations
|
|
|
|
## Change Case
|
|
|
|
## Format Date
|
|
|
|
## Standard Email
|
|
|
|
## Standard Phone
|
|
|
|
## Duplicate Check
|
|
|
|
## Validate NIK
|
|
|
|
## Validate Country
|
|
|
|
## Standarize Kab/Kota
|
|
|
|
## Standarize Province
|
|
|
|
## Combine Fields |
|
|
|
\ No newline at end of file |