Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
...
Code Block |
---|
import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.joget.apps.app.model.AppDefinition; import org.joget.apps.app.service.AppPluginUtil; import org.joget.apps.app.service.AppUtil; import org.joget.plugin.base.ApplicationPlugin; import org.joget.plugin.base.Plugin; import org.joget.plugin.base.PluginManager; import org.joget.plugin.property.model.PropertyEditable; public Object execute(AppDefinition appDef, HttpServletRequest request) { String[] emails = new String[]{"test1@joget.org", "test2@joget.org"}; //Reuse Email Tool to send separated email to a list of users; Plugin plugin = pluginManager.getPlugin("org.joget.apps.app.lib.EmailTool"); //Get default properties (SMTP setting) for email tool Map propertiesMap = AppPluginUtil.getDefaultProperties(plugin, null, appDef, null); propertiesMap.put("pluginManager", pluginManager); propertiesMap.put("appDef", appDef); propertiesMap.put("request", request); ApplicationPlugin emailTool = (ApplicationPlugin) plugin; //send email for (String email : emails) { propertiesMap.put("toSpecific", email); propertiesMap.put("subject", "This is a test email for " + email); propertiesMap.put("message", "Email content for " + email); //set properties and execute the tool ((PropertyEditable) emailTool).setProperties(propertiesMap); emailTool.execute(propertiesMap); } return null; } //call execute method with injected variable return execute(appDef, request); |
Code Block | ||
---|---|---|
| ||
for (String key : rowKeys) {
System.out.println("Record key is " + key);
} |
Randomly assign an user in a department to a workflow activity.
...
Anchor | ||||
---|---|---|---|---|
|
...
Code Block | ||
---|---|---|
| ||
import org.joget.apps.form.model.FormRow; import org.joget.apps.form.model.FormRowSet; import org.joget.apps.app.service.AppUtil; import org.joget.plugin.base.PluginManager; import org.joget.apps.form.model.FormLoadBinder; import org.joget.workflow.model.service.WorkflowManager; String formDefId = "ExpensesClaimEntry"; //change this to the form id used to load grid data String foreignKey = "claim"; //change this to the foreign key field id // Reuse Multi Row Binder to load data PluginManager pluginManager = (PluginManager) AppUtil.getApplicationContext().getBean("pluginManager"); WorkflowManager workflowManager = (WorkflowManager) AppUtil.getApplicationContext().getBean("workflowManager"); FormLoadBinder binder = (FormLoadBinder) pluginManager.getPlugin("org.joget.plugin.enterprise.MultirowFormBinder"); //Load from the grid table binder.setProperty("formDefId", formDefId); binder.setProperty("foreignKey", foreignKey); FormRowSet rows; rows = binder.load(null, "#assignment.processId#", null); //loop through records returned for (FormRow row : rows) { try { Map variableMap = new HashMap(); variableMap.put("status", row.getProperty("purpose")); //start a new process instance with data from each row //processStart(String processDefId, String processId, Map<String, String> variables, String startProcUsername, String parentProcessId, boolean startManually) workflowManager.processStart("expenseclaim:latest:process1", null, variableMap, null, row.getProperty("id"), false); } catch (Exception e) {} } |
...
Check the user is in a group and is an admin user.
...
...