Query Generator merupakan salah satu fitur pada SAP Business One yang digunakan untuk membuat query secara langsung terhadap database sistem. Fitur ini memungkinkan pengguna mengambil, memfilter, serta mengolah data dari berbagai tabel yang terdapat di dalam database SAP B1.
Untuk mengakses Query Generator, pengguna dapat mengikuti langkah berikut:
- Buka aplikasi SAP Business One.
- Pada menu utama, pilih Tools.
- Pilih Queries.
- Kemudian klik Query Generator.
2. Struktur Tampilan Query Generator
Pada jendela Query Generator terdapat beberapa bagian utama yang memiliki fungsi berbeda dalam proses pembuatan query.
a. Panel Kiri (Table Selection)
Pada bagian kiri terdapat kolom untuk memasukkan kode tabel yang tersedia di dalam database SAP Business One.
Pengguna dapat mengetikkan nama atau kode tabel untuk menampilkan daftar tabel yang sesuai dengan input tersebut. Setelah tabel dipilih, sistem akan menampilkan seluruh field yang dimiliki oleh tabel tersebut.
Contoh:
- Untuk data A/R Invoice, pengguna dapat memasukkan kode tabel yang berkaitan dengan dokumen tersebut.

b. Panel Tengah (Field List)
Bagian tengah menampilkan daftar field atau kolom yang dimiliki oleh tabel yang telah dipilih pada panel kiri.
Field-field ini merupakan atribut data yang dapat digunakan dalam query, seperti:
- Nomor dokumen
- Tanggal dokumen
- Nama pelanggan
- Nilai transaksi
- dan lain sebagainya.
Pengguna dapat memilih field yang ingin digunakan dalam query dengan cara double click pada field tersebut.

C. Panel Kanan (Query Statement)
Bagian kanan menampilkan struktur dasar query SQL yang akan dibangun secara otomatis oleh sistem. Struktur query yang biasanya digunakan antara lain:
1.SELECT
digunakan untuk menentukan field atau kolom data yang akan ditampilkan pada hasil query.
Fungsi utama dari SELECT adalah:
- Menentukan data apa saja yang ingin ditampilkan.
- Mengambil kolom tertentu dari sebuah tabel dalam database.
2. FROM
FROM digunakan untuk menentukan tabel sumber data yang akan digunakan dalam query.
Fungsi utama dari FROM adalah:
- Menentukan tabel yang menjadi sumber data.
- Menjadi referensi lokasi data yang akan diambil.
3. WHERE
WHERE digunakan untuk memberikan kondisi atau filter terhadap data yang akan ditampilkan.
Fungsi utama WHERE adalah:
- Memfilter data.
- Membatasi hasil query berdasarkan kondisi tertentu.
4. SORT BY
SORT BY digunakan untuk mengurutkan hasil data query berdasarkan field tertentu.
Pengurutan data dapat dilakukan dengan dua cara:
- Ascending (ASC) → urutan dari kecil ke besar atau A sampai Z
- Descending (DESC) → urutan dari besar ke kecil atau Z sampai A
Fungsi utama dari SORT BY adalah:
- Mengatur urutan tampilan data.
- Mempermudah pengguna dalam membaca dan menganalisis data.
5. GROUP BY
GROUP BY digunakan untuk mengelompokkan data berdasarkan field tertentu.
Biasanya GROUP BY digunakan bersama dengan fungsi agregasi seperti:
- SUM → Menjumlahkan data
- COUNT → Menghitung jumlah data
- AVG → Menghitung rata-rata
- MAX → Menampilkan nilai terbesar
- MIN → Menampilkan nilai terkecil
Fungsi utama dari GROUP BY adalah:
- Mengelompokkan data yang memiliki nilai yang sama.
- Membuat rekapitulasi atau analisis data.
Setiap field yang dipilih dari panel tengah akan otomatis ditambahkan ke dalam bagian SELECT, sedangkan tabel yang dipilih akan dimasukkan ke dalam bagian FROM.
3. Cara Memulai Pembuatan Query
Untuk membuat query menggunakan Query Generator, langkah-langkah yang dapat dilakukan adalah sebagai berikut:
- Masukkan kode pada panel kiri.

- Sistem akan menampilkan daftar field yang tersedia dari tabel tersebut.

- Pilih field yang ingin ditampilkan dengan cara double click.

- Sistem akan otomatis menambahkan field tersebut ke dalam bagian SELECT pada query.

- Tambahkan kondisi tambahan jika diperlukan pada bagian WHERE untuk memfilter data.

- Jalankan query dengan klik execute untuk menampilkan hasil data yang diambil dari database.

Menambahkan Kolom Table lain
Anda bisa menambahkan Kolom Table lain dengan menambahkan lagi di bagian panel kiri dengan syarat harus berada di dalam satu modul yang sama dan query generator akan otomatis melakukan INNER JOIN terhadap dua table tersebut sehingga bisa di tampilkan.

Penggunaan Kondisi pada Query Generator

Pada kolom where kita bisa memanggil kondisi dari query dimana data query dapat di filter menggunakan kondisi tersebut anda bisa membuka conditions pada kolom bawah kanan dan terdapat beberapa kondisi pada kolom tersebut
Condition | Fungsi | Penjelasan | Contoh Penggunaan |
Equal | Menampilkan data dengan nilai yang sama persis | Digunakan ketika data harus cocok sepenuhnya dengan nilai yang ditentukan | CardCode = 'C0001' |
Greater than | Menampilkan data dengan nilai lebih besar | Digunakan untuk nilai di atas batas tertentu | DocTotal > 1000000 |
Smaller than | Menampilkan data dengan nilai lebih kecil | Digunakan untuk nilai di bawah batas tertentu | DocTotal < 1000000 |
Greater or equal | Menampilkan data lebih besar atau sama dengan | Termasuk nilai batas yang ditentukan | DocTotal >= 1000000 |
Smaller or equal | Menampilkan data lebih kecil atau sama dengan | Termasuk nilai batas yang ditentukan | DocTotal <= 1000000 |
Not equal | Menampilkan data yang tidak sama | Mengecualikan nilai tertentu | CardCode <> 'C0001' |
Contains | Menampilkan data yang mengandung kata tertentu | Digunakan untuk pencarian sebagian teks | CardName LIKE '%INDO%' |
Does not contain | Menampilkan data yang tidak mengandung kata tertentu | Mengecualikan teks tertentu | CardName NOT LIKE '%INDO%' |
Starts with | Menampilkan data yang diawali karakter tertentu | Pencarian teks berdasarkan awalan | CardName LIKE 'PT%' |
End with | Menampilkan data yang diakhiri karakter tertentu | Pencarian teks berdasarkan akhiran | CardName LIKE '%TBK' |
Is null | Menampilkan data yang tidak memiliki nilai | Digunakan untuk field kosong | U_Notes IS NULL |
Null | Mengacu pada nilai kosong dalam database | Digunakan dalam kondisi tertentu terkait nilai kosong | FieldName = NULL |
Or | Menggabungkan beberapa kondisi alternatif | Data ditampilkan jika salah satu kondisi terpenuhi | CardCode = 'C0001' OR CardCode = 'C0002' |
And | Menggabungkan beberapa kondisi wajib | Data ditampilkan jika semua kondisi terpenuhi | DocTotal > 1000000 AND DocDate >= '2024-01-01' |
Variabel [%0]
Variabel [%0] digunakan sebagai parameter input yang memungkinkan pengguna memasukkan nilai secara manual saat query dijalankan. Dengan menggunakan variabel ini, query menjadi dinamis karena nilai filter tidak ditentukan secara tetap di dalam query, melainkan diisi oleh pengguna pada saat eksekusi.
Fungsi utama penggunaan variabel [%0]:
- Memungkinkan pengguna menentukan nilai kondisi secara langsung saat menjalankan query
- Menghindari perubahan query setiap kali nilai filter berbeda
- Membuat query dapat digunakan berulang kali untuk berbagai kebutuhan
- Mendukung pembuatan laporan fleksibel berdasarkan input pengguna

Hasil jika menggunakan Variabel akan memunculkan kondisi dimana users bisa memilih seperti tanggal dan lain lain
Cara Save Query

Setelah query dijalankan dengan menekan tombol Execute, sistem akan menampilkan hasil pada bagian Display Query Results.
Hasil tersebut berupa:
- Data yang diambil dari database
- Kolom atau field yang dipilih pada query
- Informasi dari tabel yang digunakan dalam Query Generator
Tampilan ini berfungsi sebagai preview untuk memastikan bahwa query sudah sesuai dengan kebutuhan sebelum disimpan.
Jika hasil query sudah sesuai, pengguna dapat menyimpan query tersebut dengan cara:
- Klik tombol Save As yang berada di bagian kanan bawah jendela Query Generator.
- Sistem akan menampilkan jendela penyimpanan query.

Pada jendela Save As, pengguna harus menentukan Category tempat query akan disimpan.
Jika kategori yang diinginkan belum tersedia, pengguna dapat membuat kategori baru melalui tombol Manage Categories.

Pada bagian ini, sistem akan menampilkan field yang digunakan untuk pembuatan kategori baru pada SAP Business One.
- Masukkan nama kategori pada field yang tersedia sesuai dengan kebutuhan atau jenis laporan yang akan disimpan.
- Pastikan nama kategori jelas dan mudah dipahami agar memudahkan pengelompokan query di kemudian hari.
- Setelah nama kategori diisi dengan benar, tekan tombol Add untuk menambahkan kategori ke dalam sistem SAP Business One.
- Sistem akan menyimpan kategori tersebut dan menampilkannya pada daftar kategori yang tersedia.

Setelah kategori berhasil disimpan, pengguna dapat melanjutkan dengan menentukan hak akses terhadap kategori tersebut melalui fitur Assign Group.
· Pilih kategori yang telah dibuat, kemudian buka opsi Assign Group.
Tentukan grup pengguna yang diizinkan untuk melihat dan menggunakan query dalam kategori tersebut.
Fungsi Group pada Kategori Query
- Group digunakan untuk mengatur hak akses pengguna terhadap kategori dan query.
- Tidak semua pengguna dapat melihat atau menjalankan query jika tidak termasuk dalam grup yang ditentukan.
- Pembatasan ini bertujuan untuk menjaga keamanan dan kerahasiaan data sesuai peran pengguna.
- Jika query ingin dapat diakses oleh seluruh pengguna, pilih opsi Select All agar kategori dan query tersedia untuk semua grup.

Setelah kategori query tadi di save di bagian save query sebelumnya akan menampilkan query tersebut dan anda bisa memilih nya dan memasukkan nama query nya di atas sehingga query tersebut akan tersimpan di kategori tersebut