| English |
|---|
By using Bean Shell Form Binder, we are able to load and update our Environment Variable values by using a form. Let's create a form with each Text Field to represent a Environment Variable in our app and set all the field id to the ID of the Environment Variable. |
| Thai |
|---|
โดยใช้ Bean Binder แบบฟอร์มเราสามารถโหลดและปรับปรุงค่า Environment Variable ของเราโดยใช้แบบฟอร์ม มาสร้างแบบฟอร์มพร้อมฟิลด์ข้อความแต่ละฟิลด์เพื่อเป็นตัวแทนของตัวแปรสภาพแวดล้อมในแอพของเราและตั้งค่า ID ฟิลด์ทั้งหมดเป็น ID ของตัวแปรสภาพแวดล้อม |
Then, click on "Properties" tab then set the "Load Binder" and "Store Binder" in "Advanced" page to "Bean Shell Form Binder".
| Thai |
|---|
จากนั้นคลิกที่แท็บ "Properties" จากนั้นตั้งค่า "Load Binder" และ "Store Binder" ในหน้า "Advanced" เป็น "Bean Shell Form Binder" |
| Warning |
|---|
Be advised the following BeanShell codes are not compatible in Joget Cloud multi-tenant environment. |
Using the following script for "Load Binder".
| Thai |
|---|
การใช้สคริปต์ต่อไปนี้สำหรับ "Load Binder" |
| Code Block | ||
|---|---|---|
| ||
import java.util.Collection;
import org.joget.apps.app.dao.EnvironmentVariableDao;
import org.joget.apps.app.model.AppDefinition;
import org.joget.apps.app.model.EnvironmentVariable;
import org.joget.apps.app.service.AppUtil;
import org.joget.apps.form.model.Element;
import org.joget.apps.form.model.FormData;
import org.joget.apps.form.model.FormRow;
import org.joget.apps.form.model.FormRowSet;
import org.joget.commons.util.LogUtil;
public FormRowSet load(Element element, String primaryKey, FormData formData) {
FormRowSet rows = new FormRowSet();
AppDefinition appDef = AppUtil.getCurrentAppDefinition();
if (appDef != null) {
EnvironmentVariableDao environmentVariableDao = (EnvironmentVariableDao) AppUtil.getApplicationContext().getBean("environmentVariableDao");
Collection environmentVariableList = environmentVariableDao.getEnvironmentVariableList(null, appDef, null, null, null, null);
//loop the result and add to FormRow
if (environmentVariableList != null && environmentVariableList.size() > 0) {
FormRow r = new FormRow();
for (EnvironmentVariable e : environmentVariableList) {
if (e.getValue() != null) {
r.setProperty(e.getId(), e.getValue());
}
}
rows.add(r);
}
}
return rows;
}
//call load method with injected variable
return load(element, primaryKey, formData); |
Using the following script for "Store Binder".
| Thai |
|---|
การใช้สคริปต์ต่อไปนี้สำหรับ "Store Binder" |
| Code Block | ||
|---|---|---|
| ||
import org.joget.apps.app.dao.EnvironmentVariableDao;
import org.joget.apps.app.model.AppDefinition;
import org.joget.apps.app.model.EnvironmentVariable;
import org.joget.apps.app.service.AppUtil;
import org.joget.apps.form.model.Element;
import org.joget.apps.form.model.FormData;
import org.joget.apps.form.model.FormRow;
import org.joget.apps.form.model.FormRowSet;
import org.joget.apps.form.model.FormStoreBinder;
import org.joget.plugin.base.PluginManager;
public FormRowSet store(Element element, FormRowSet rows, FormData formData) {
//check the rows is not empty before store it
if (rows != null && !rows.isEmpty()) {
AppDefinition appDef = AppUtil.getCurrentAppDefinition();
EnvironmentVariableDao environmentVariableDao = (EnvironmentVariableDao) AppUtil.getApplicationContext().getBean("environmentVariableDao");
//Get the submitted data
FormRow row = rows.get(0);
//Add / Update each Environment Variable
for (Object key : row.keySet()) {
String envId = (String) key;
String value = row.getProperty(envId);
if (!envId.isEmpty()){
EnvironmentVariable e = environmentVariableDao.loadById(envId, appDef);
if (e != null) {
e.setValue(value);
environmentVariableDao.update(e);
} else {
EnvironmentVariable e = new EnvironmentVariable();
e.setAppDefinition(appDef);
e.setId(envId);
e.setValue(value);
environmentVariableDao.add(e);
}
}
}
}
return rows;
}
//call store method with injected variable
return store(element, rows, formData); |
The resulted form as following.
| Thai |
|---|
แบบฟอร์มผลลัพธ์ดังต่อไปนี้ |
Sample app for this article can download from APP_update_env-1-20151027104612.jwa.
| Thai |
|---|
แอปตัวอย่างสำหรับบทความนี้สามารถดาวน์โหลดได้จาก APP_update_env-1-20151027104612.jwa. |


