Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

  • Java syntax supported by the version of JDK used
  • Usage of the following libraries:
    • Libraries available in JDK
    • org.joget.workflow.model.*
    • org.joget.workflow.util.*
    • JavaBeans Activation Framework 1.1
    • Commons Email 1.1
    • JavaMail 1.4
    • MySQL JDBC Driver 3.1.14
    • Oracle JDBC Driver 10.2.0.2
    • Microsoft SQL Server JDBC Driver 1.0
  • Usage of Hash Variables

    Example

Set value to a workflow variable:

...

Code Block
import java.sql.*Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.sql.DataSource;

import org.joget.apps.app.service.AppUtil;

Connection con = null;
try {
    // retrieve connection from the default datasource
    DataSource ds = (DataSource)AppUtil.getApplicationContext().getBean("setupDataSource");
    con = ds.getConnection();

    // execute SQL query
    if(!con.isClosed()) {
        PreparedStatement stmt = con.createStatement(prepareStatement("UPDATE table1 SET column1='value1'"); 
        stmt.executeUpdate("UPDATE formdata_simpleflow set c_status='#assignment.activityId#' WHERE processId='#assignment.processId#'"); 
    }
} catch(Exception e) { 
    System.err.println("Exception: " + e.getMessage()); 
} finally {
    try { 
        if(con != null) {
            con.close(); 
        }
    } catch(SQLException e) {
    }
}

Participant Type Plugin

Anchor
Participant Type Plugin
Participant Type Plugin

A participant type plugin should return a collection of usernames. In the participant plugin, there are two context variables available for the script to use  :

...

Code Block
import java.util.ArrayList;

a = new ArrayList();

a.add("jack"); // one username

return a;

Get all users from the DirectoryManager and assigning them:

Code Block
import java.util.Collection;
import java.util.ArrayList;
import org.joget.apps.app.service.AppUtil;
import org.joget.directory.model.service.ExtDirectoryManager;
import org.joget.directory.model.User;
import org.springframework.context.ApplicationContext;

ApplicationContext ac = AppUtil.getApplicationContext();
ExtDirectoryManager directoryManager = (ExtDirectoryManager) ac.getBean("directoryManager");

Collection results = new ArrayList();

Collection userList = directoryManager.getUserList();

for (User u : userList) {
	results.add(u.getUsername());
}
return results;

Activity Tool Type Plugin

...

Code Block
import java.util.HashMap;
import java.util.Map;
import org.joget.apps.app.model.AppDefinition;
import org.joget.apps.app.service.AppService;
import org.joget.apps.app.service.AppUtil;
import org.joget.apps.form.model.FormRow;
import org.joget.apps.form.model.FormRowSet;
import org.joget.apps.form.service.FormUtil;
import org.joget.workflow.model.WorkflowAssignment;
import org.joget.workflow.util.WorkflowUtil;

//Constant variable
String formDefId = "approvalForm";

//Service bean
AppService appService = (AppService) pluginManagerAppUtil.getApplicationContext().getBean("appService");

//Get primary key
String id = appService.getOriginProcessId(workflowAssignment.getProcessId());

//Get existing data
FormRowSet rowSet = appService.loadFormData(appDef.getAppId(), appDef.getVersion().toString(), formDefId, id);
FormRow row = null;
if (rowSet == null || rowSet.isEmpty()) {
    rowSet = new FormRowSet();
    row = new FormRow();
    row.setId(id);
    rowSet.add(row);
} else {
    row = rowSet.get(0);
}

//Set values
row.setProperty("field1", "value 1");
row.setProperty("field2", "value 2");
row.setProperty("field3", "value 3");

//Save
appService.storeFormData(appDef.getAppId(), appDef.getVersion().toString(), formDefId, rowSet, id);

...