ctx.resource
Instance FlowResource dalam konteks saat ini, untuk mengakses dan mengoperasikan data. Pada sebagian besar block (form, table, detail, dll.) dan skenario popup, runtime environment akan pre-bind ctx.resource; pada skenario seperti JSBlock yang secara default tidak memiliki resource, perlu memanggil ctx.initResource() terlebih dahulu untuk inisialisasi, kemudian menggunakan melalui ctx.resource.
Skenario Penggunaan
Semua skenario di RunJS yang perlu mengakses data terstruktur (list, single, custom API, SQL) dapat digunakan. Form, table, block detail dan popup biasanya sudah pre-bind; pada JSBlock, JSField, JSItem, JSColumn, dll. jika perlu memuat data, dapat ctx.initResource(type) terlebih dahulu kemudian mengakses ctx.resource.
Definisi Tipe
- Pada konteks dengan pre-bind,
ctx.resourceadalah instance resource yang sesuai; - JSBlock, dll. secara default tidak memiliki resource, adalah
undefined, perluctx.initResource(type)terlebih dahulu baru memiliki nilai.
Method Umum
Method yang diekspos oleh tipe resource yang berbeda (MultiRecordResource, SingleRecordResource, APIResource, SQLResource) sedikit berbeda, berikut adalah method umum atau yang sering digunakan:
Khusus MultiRecordResource: getSelectedRows(), destroySelectedRows(), setPage(), next(), previous(), dll.
Contoh
Data List (Perlu initResource Terlebih Dahulu)
Skenario Tabel (Sudah Pre-Bind)
Single Record
Memanggil Action Kustom
Hubungan dengan ctx.initResource / ctx.makeResource
- ctx.initResource(type): jika
ctx.resourcetidak ada akan membuat dan mengikat; jika sudah ada langsung mengembalikan. Memastikanctx.resourcetersedia. - ctx.makeResource(type): membuat instance resource baru dan mengembalikan, tidak menulis ke
ctx.resource. Cocok untuk skenario yang memerlukan beberapa resource independen atau penggunaan sementara. - ctx.resource: mengakses resource yang sudah terikat dalam konteks saat ini. Sebagian besar block/popup sudah pre-bind; saat tidak ada binding adalah
undefined, perluctx.initResourceterlebih dahulu.
Hal yang Perlu Diperhatikan
- Sebelum digunakan disarankan melakukan pengecekan null:
ctx.resource?.refresh(), terutama pada skenario seperti JSBlock yang mungkin tidak pre-bind. - Setelah inisialisasi perlu memanggil
setResourceName(name)untuk menentukan data table, kemudian memuat data melaluirefresh(). - API lengkap setiap tipe Resource lihat link di bawah.
Terkait
- ctx.initResource() - Inisialisasi dan mengikat resource ke konteks saat ini
- ctx.makeResource() - Membuat instance resource baru, tidak mengikat ke
ctx.resource - MultiRecordResource - Multiple record/list
- SingleRecordResource - Single record
- APIResource - API resource umum
- SQLResource - Resource query SQL

