These are formats and examples when getting and inserting business data in a [Script Task].
BPMN Icon: [Script Task]
Script Format
Data retrieving
const value = engine.findDataByVarName("Field Name"); const value = engine.findDataByName("Data Item Name"); const value = engine.findDataByNumber("Data Definition ID"); const value = engine.findDataByNumber(Data Definition ID);
const value = engine.findData(ProcessDataDefinitionView Object);
(Obsolete) const value = data.get("Data Definition ID");
Data updating
engine.setDataByVarName("Field Name", value in format according to data type); engine.setDataByName("Data Item Name", value in format according to data type); engine.setDataByNumber("Data Definition ID, value in format according to data type); engine.setDataByNumber(Data Definition ID, value in format according to data type);
engine.setData(ProcessDataDefinitionView Object, value in format according to data type);
(Obsolete) retVal.put("Data Definition ID, value in format according to data type);
Script Example
Title
Data retrieving
processInstance.getProcessInstanceTitle();
Data updating
processInstance.setProcessInstanceTitle("title");
Process Sequence Number
Data retrieving
processInstance.getProcessInstanceSequenceNumber();
Data updating
(Not applicable)
Process ID
Data retrieving
processInstance.getProcessInstanceId();
Data updating
(Not applicable)
- Please refer to [R2300: Java Classes available in Script Task] for "Process Start User Name" and others etc.
String-type
Object type of data retrieving / assignment
- Retrieving:
- java.lang.String
- Updating:
- java.lang.String
Data retrieving
let text = ""; const string = engine.findDataByNumber("0"); // single line
text += string; text += '\n'; engine.setDataByNumber("19", text); //overwriting String-type multiple-lines
Data updating
engine.setDataByNumber("0", "Hello"); //single line engine.setDataByNumber("1", "Good bye\nSee you"); //multipe lines
Numeric-type
Object type of data retrieving / updating
- Retrieving:
- java.math.BigDecimal
- Assignment:
- java.math.BigDecimal
Data retrieving
let text = ""; const decimal = engine.findDataByNumber("2"); // Numeric-type text += new java.text.DecimalFormat('#,###.0').format(decimal); text += '\n'; engine.setDataByNumber("19", text); /overwriting String-type multiple-lines
Data updating
engine.setDataByNumber("2", new java.math.BigDecimal(123)); //number engine.setDataByNumber("2", new java.math.BigDecimal(Math.random()));//number
engine.setDataByNumber("2", BigDecimal.valueOf(9.87)); //decimal
engine.setDataByNumber("2", new java.math.BigDecimal("9.87")); //decimal
Select-type
Object type of data retrieving / updating
- Retrieving:
- java.util.List of com.questetra.bpms.core.event.scripttask.ItemView
- Assignment:
- String (values of Choices)
- java.util.List of String (values of Choices)
-
com.questetra.bpms.core.event.scripttask.ItemView
- Sees Choice values only
- java.util.List of com.questetra.bpms.core.event.scripttask.ItemView
Data retrieving
let text = ""; let selects = engine.findDataByNumber("5"); // Check Box for (let i=0; i < selects.size(); i++){ const select = selects.get(i); text += select.getValue() + ":" + select.getDisplay(); text += '\n'; } selects = engine.findDataByNumber("6"); // Search Select const select = selects.get(0); text += select.getValue() + ":" + select.getDisplay(); text += '\n'; engine.setDataByNumber("19", text); //overwriting String-type multiple-lines
Data updating
let selects = new java.util.ArrayList(); selects.add("JP"); selects.add("US"); engine.setDataByNumber("5", selects); //Check Box selects = new java.util.ArrayList(); selects.add("GB"); engine.setDataByNumber("6", selects); //Search Select
Date-type
Object type of data retrieving / updating
- Retrieving:
- Assignment:
- java.sql.Date
*AddableDate is a sub-class of java.sql.Date
Data retrieving
let text = ""; const date = engine.findDataByNumber("7"); // Date-type const formatter = new java.text.SimpleDateFormat("GGGGyyyy-MM-dd", new java.util.Locale("ja", "JP", "JP")); text += formatter.format(date); text += '\n'; engine.setDataByNumber("19", text); //overwriting String-type multiple-lines
Data updating
engine.setDataByNumber("7", java.sql.Date.valueOf("2011-02-02"));//Date-type engine.setDataByNumber("8", new java.sql.Date(millisec) ); //Date-type
Datetime-type
Object type of data retrieving / updating
- Retrieving:
- Assignment:
- java.sql.Timestamp
*AddableTimestamp is a sub-class of java.sql.Timestamp
Data retrieving
let text = ""; const datetime = engine.findDataByNumber("11"); // Datetime-type const formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm"); text += formatter.format(datetime.addMonths(2)); text += '\n'; engine.setDataByNumber("19", text); //overwriting String-type multiple-lines
Data updating
engine.setDataByNumber("11", java.sql.Timestamp.valueOf("2013-07-16 12:34:56")); //Datetime-type
const myDate = engine.findDataByNumber( "7" ); // Date-type, 2019-01-01
engine.setDataByNumber( "12", new java.sql.Timestamp(myDate.getTime() + 1000 * 60 * 60 * 8.75)); // 2019-01-01 08:45
//or
//engine.setDataByNumber( "12", myDate.getFirstTimeInDate().addHours(8).addMinutes(45)); // 2019-01-01 08:45
File-type
Object type of data retrieving / updating
- Retrieving:
- java.util.List of com.questetra.bpms.core.event.scripttask.QfileView
- Assignment:
- com.questetra.bpms.core.event.scripttask.QfileView
- java.util.List of com.questetra.bpms.core.event.scripttask.QfileView
- com.questetra.bpms.core.event.scripttask.NewQfile
- java.util.List of com.questetra.bpms.core.event.scripttask.NewQfile
Data retrieving
let text = ""; const files = engine.findDataByNumber("16"); // File-type for (let i=0; i < files.size(); i++){ const file = files.get(i); text += file.getName() + " (" + file.getLength() + " / " + file.getContentType()+ ")"; text += '\n'; } engine.setDataByNumber("19", text); // overwriting String-type multiple-lines
Data updating
let files = engine.findDataByNumber("16"); //File-type // handling when there is no file if (files == null) { files = new java.util.ArrayList(); } files.add(new com.questetra.bpms.core.event.scripttask.NewQfile("test.csv","text/csv", "1,2,3")); engine.setDataByNumber("1", files); //overwriting File-type
User-type
Object type of data retrieving / updating
- Retrieving:
- Assignment:
Data retrieving
let text = ''; const quser = engine.findDataByNumber("13"); // User-type text += quser.getName() + '<' + quser.getEmail() + '>\n'; engine.setDataByNumber("2", text); // overwriting String-type multiple-lines
Data updating
const quser = quserDao.findByEmail("Galapagos@questetra.com"); // Searching for User by email address engine.setDataByNumber("13", quser); // overwriting User-type
Organization-type
Object type of data retrieving / updating
- Retrieving:
- Assignment:
Data retrieving
let text = ''; const qgroup = engine.findDataByNumber("15"); // Organization-type text += qgroup.getName() + '<' + qgroup.getEmail() + '>'; engine.setDataByNumber("19", text); // overwriting String-type multiple-lines
Data updating
const qgroup = qgroupDao.findByName("00 Company"); // retrieving Organization engine.setDataByNumber("15", qgroup); // overwriting Organization-type
Discussion-type
Object type of data retrieving / updating
(Not applicable)
Table-type
Object type of data retrieving / updating
- Retrieving:
- Assignment:
Data retrieving
const mytable = engine.findDataByNumber("17"); // Tabler-type let i=0; const n = mytable.size(); let csvStr = ""; for (i=0; i < n; i++){ csvStr += mytable.get(i, 0) + ","; //Column number csvStr += mytable.get(i, "name") + ","; // Field Name csvStr += mytable.get(i, "unit_price") + ","; csvStr += mytable.get(i, 3) + ","; csvStr += mytable.get(i, 4) + "\n"; } engine.setDataByNumber("19", csvStr); // overwriting String-type multiple-lines
Data updating
const def = engine.findDataDefinitionByNumber("17");
let table = engine.findData(def);
// handling when there is no row if (table == null) { table = def.createListArray(); } if (table.size() >= 2) { table.getRow(1).setCol(0, "Good bye"); //modifying the second row table.removeRow(0); // deleting the first row } const row = table.addRow(); row.put ("greeting", "Hello"); row.put ("name", "Japan Railway"); row.put ("unit_price", "220"); row.setCol(3, "5"); // row.setCol(4, ""); Not necessary, because the initial values of each column in the added row are empty engine.setData(def, table);
Guide Panel-type
Object type of data retrieving / updating
(Not applicable)
Comments
0 comments
Article is closed for comments.