创建JAVA类实例函数¶
方法清单¶
| 函数名 | 参数 | 说明 |
|---|---|---|
| createProcess(pathText) | pathText:类的名字空间,如"cn.MyApps®.core.department.ejb.DepartmentProcess" | 生成系统类对象 |
| createObject(pathText) | pathText:类的名字空间,如"cn.MyApps®.util.DateUtil" | 生成系统类对象 |
| getDocProcess(applicationid) | Applicationid:项目id号 | 获取软件Id号对应数据文档操作类对象 |
| getUploadProcess(applicationid) | Applicationid:软件id号 | 根据软件id号获取对应的文件上传对象 |
| createOptions() | 无 | 生成选项对象 |
| getUserProcess() | 无 | 创建用户操作对象 |
| getDepartmentProcess() | 无 | 创建部门操作对象 |
| getRoleProcess() | 无 | 创建角色操作对象 |
| getFormProcess() | 无 | 创建表单业务对象 |
| getDocumentProcess() | 无 | 创建文档业务对象 |
| getDataSourceProcess() | 无 | 创建数据源操作对象。注:数据源操作对象应用需要,软件->高级工具->数据源的支持。首先需要开发者在软件的数据源模块创建数据源。 |
| getDomainProcess() | 无 | 创建企业域业务对象 |
| getViewProcess() | 无 | 创建视图业务对象 |
| getLastRelationHis(docid, flowid) | docid:文档IDflowid:流程ID | 根据文档ID与流程ID获取文档最后审批记录对象 |
| doUpdateDocumentWithoutVersions(doc) | Doc:文档对象 | 更新文档但不更新版本号 |
| createParamsTable() | 无 | 生成参数对象 |
方法示例¶
1.createProcess(pathText)
作用:实现createProcess(pathText)函数的应用,创建系统操作类对象(写在下拉框选项脚本中)
脚本示例:
// 表单A字段选项脚本:加载当前企业域下的所有部门作为下拉选项
(() => {
const opts = $TOOLS.createOptions();
try {
const DEPT_PROCESS_CLASS = "cn.myapps.core.department.ejb.DepartmentProcess";
const domainId = getDomainid(); // 获取当前企业域ID
if (!domainId || domainId.trim().length === 0) {
println("部门查询失败:未获取到有效企业域ID!");
return opts;
}
const deptProcess = createProcess(DEPT_PROCESS_CLASS);
const depts = deptProcess?.queryByDomain(domainId) || [];
if (depts && depts.iterator) {
const iterator = depts.iterator();
while (iterator.hasNext()) {
const dept = iterator.next();
if (dept && dept.getName && dept.getName().trim()) {
const deptName = dept.getName().trim();
opts.add(deptName, deptName); // 选项值=选项显示文本
}
}
}
println(`当前域(${domainId})下加载的部门数量:${opts.size() || 0}`);
} catch (e) {
println(`加载部门选项异常:${e.message || e}`);
}
return opts;
})();
2.createObject(pathText)
作用:实现createObject(pathText)函数的应用,创建指定类对象(写在下拉框选项脚本中)
脚本示例:
// 表单字段选项脚本:创建包含A/B/C固定选项的下拉选项对象
(() => {
let options = null;
try {
const OPTIONS_CLASS = "cn.myapps.runtime.dynaform.form.ejb.Options";
const FIXED_OPTIONS = [
{ value: "A", label: "A" },
{ value: "B", label: "B" },
{ value: "C", label: "C" }
];
options = createObject(OPTIONS_CLASS);
FIXED_OPTIONS.forEach((item) => {
if (item.value && item.label) {
options.add(item.value, item.label);
}
});
println(`创建的固定选项数量:${options.size() || 0}`);
} catch (e) {
println(`创建固定选项异常:${e.message || e}`);
options = createObject("cn.myapps.runtime.dynaform.form.ejb.Options");
}
return options;
})();
3.getDocProcess(applicationid)
作用:实现getDocProcess(applicationid)函数的应用,创建文档操作类对象
脚本示例:
// 动作执行后脚本:更新勾选记录的「state」字段值为1(仅非1状态时更新)
(() => {
try {
const selectParams = getParameter("_selects") || "";
const docIds = splitString(selectParams, ";") || [];
const validDocIds = docIds.filter(id => id && id.trim().length > 0);
if (validDocIds.length === 0) {
createAlert("未勾选任何记录,无需更新!");
return;
}
const app = getApplication();
if (!app) {
createAlert("获取应用上下文失败,无法执行更新!");
return;
}
const docProcess = getDocProcess(app);
validDocIds.forEach((docId) => {
try {
const doc = docProcess.doView(docId.trim());
if (!doc) {
println(`记录ID[${docId}]:未查询到对应文档,跳过更新`);
return;
}
const stateItem = doc.findItem("state");
if (!stateItem) {
println(`记录ID[${docId}]:未找到state字段,跳过更新`);
return;
}
const currentState = stateItem.getValue() || "";
if (currentState === "1") {
createAlert(`记录ID[${docId}]:该记录已经是公开状态`);
} else {
stateItem.setValue("1");
docProcess.doUpdate(doc);
println(`记录ID[${docId}]:state字段已更新为1(公开状态)`);
}
} catch (singleErr) {
println(`记录ID[${docId}]更新失败:${singleErr.message || singleErr}`);
createAlert(`记录ID[${docId}]更新失败,请检查!`);
}
});
createAlert(`已处理${validDocIds.length}条勾选记录,完成状态更新!`);
} catch (globalErr) {
println(`批量更新记录异常(全局):${globalErr.message || globalErr}`);
createAlert("批量更新记录失败,请联系管理员!");
}
})();
4.getUploadProcess(applicationid)
作用:实现getUploadProcess(applicationid)函数的应用,创建文件上传对象
脚本示例:
// 脚本功能:通过文件上传流程类,根据指定列名和列值查询文件上传对象(UploadVO)
//使用文件上传对象根据列名和列值获取文件对象
(() => {
const process = getUploadProcess(getApplication());
let UploadVO = process.findByColumnName1("path", "/uploads/item/Testing25.xls");
// println(UploadVO + "======UploadVO======");
return UploadVO;
})()
5.createOptions()
作用:实现createOptions()函数的应用,创建指定类对象(写在下拉框选项脚本中)
脚本示例:
//给表单有选项脚本的控件创建选项 (选项脚本)
(() => {
let opts = $TOOLS.createOptions(); //创建指定类对象
opts.add("A", "A");
opts.add("B", "B");
opts.add("C", "C");
return opts;
})()
6.getUserProcess()
作用:实现getUserProcess()函数的应用,创建指定类对象
脚本示例:
//根据用户账号获取用户对象
(() => {
const process = getUserProcess(); //创建指定类对象
const userAccount = getWebUser().getLoginno();
let user = process.getUserByLoginno(userAccount, getDomainid());
println(user);
return user;
})()
7.getDepartmentProcess()
作用:实现getDepartmentProcess()函数的应用,创建指定类对象(写在下拉框选项脚本中)
脚本示例:
//表单中某控件选项为当前企业域下的部门
(() => {
let opts = createOptions();
opts.add("", "");
const process = getDepartmentProcess();
let depts = process.queryByDomain(getDomainid());
for (let it = depts.iterator(); depts != null && it.hasNext();) {
const dept = it.next();
opts.add(dept.getName(), dept.getId());
}
return opts;
})()
8.getRoleProcess()
作用:实现getRoleProcess()函数的应用,创建指定类对象
脚本示例:
//表单中某控件选项为当前软件下的角色
(() => {
let opts = createOptions();
opts.add("", "");
const process = getRoleProcess();//创建指定类对象
let roles = process.getRolesByApplication(getApplication());//根据applicationid取得角色
for (let it = roles.iterator(); roles != null && it.hasNext();) {
const role = it.next();
opts.add(role.getName(), role.getId());
}
return opts;
})()
9.getFormProcess()
作用:实现getFormProcess()函数的应用,创建指定类对象
脚本示例:
(() => {
const formService = getFormProcess();
const form = formService.doViewByFormName("创建表单业务对象", getApplication()); //根据表单名取得这个表单bean
println(form);
return form;
})()
10.getDocumentProcess()
作用:实现getDocumentProcess()函数的应用,创建指定类对象
脚本示例:
//在保存的动作执行脚本中,实现更新或新建记录
(() => {
const guest = getItemValueAsString("YAOPBM");
const tool = getItemValueAsString("YAOPNAME");
const tool3 = getItemValueAsString("YAOPGG");
const tool4 = getItemValueAsInt("SHULIANG");
const process = getDocumentProcess();
const formService = getFormProcess();
const subform = formService.doView("11e0-d373-74e37b9e-8555-b3287b9d9b7d");
const doc = process.doNew(subform, getWebUser(), createParamsTable());
const sql = "select * from tlk_kucunxx where YAOPNAME='" + tool + "'";
const datas = queryBySQL(sql);
const value;
if (datas.size() > 0) {
for (const iter = datas.iterator(); iter.hasNext();) {
const data = iter.next();
value = data.getItemValueAsInt("KUCUNSHULIANG");
}
tool4 += value;
data.findItem("KUCUNSHULIANG").setValue(tool4);
data.doUpdate(doc);
} else {
doc.addIntItem("KUCUNSHULIANG", tool4);
doc.addStringItem("YAOPBIANMA", guest);
doc.addStringItem("YAOPNAME", tool);
doc.addStringItem("KUCUNGUIGE", tool3);
process.doCreate(doc);
}
})()
11.getDataSourceProcess()
作用:实现getDataSourceProcess()函数的应用,创建指定类对象
脚本示例:
//通过数据源操作对象获取系统库下面的当前软件下面的角色
(function () {
const opts = createOptions();
opts.add("", "");
try {
const process = getDataSourceProcess(); //创建指定类对象
const appid = getApplication();
const sql = "select * from t_role where applicationid='" + appid + "'";
const datas = process.queryDataSourceSQL("kd", sql, appid);
if (datas != null) {
for (let iterator = datas.iterator(); iterator.hasNext();) {
const map1 = iterator.next();//取值
const name = map1.get("name");
const value = map1.get("id");
opts.add(name, value);
}
}
} catch (e) { }
return opts;
})()
12.getDomainProcess()
作用:实现getDomainProcess()函数的应用,创建指定类对象
脚本示例:
//通过创建企业域业务对象,然后根据名称获取企业域对象
(() => {
const process = getDomainProcess(); //创建指定类对象
const domainName = "testdemo";
const domain = process.getDomainByName(domainName);
println(domain);
return domain;
})()
13.getViewProcess()
作用:实现getViewProcess()函数的应用,创建视图业务对象
脚本示例:
//通过创建视图业务对象,然后根据名称获取视图对象
(() => {
const process = getViewProcess(); //视图业务对象
const applicationId = getApplication();
const view = process.getViewByName("表单控件测试单行文本框", applicationId);
println(view);
return view;
})()
14.getLastRelationHis(docid, flowid)
作用:实现getLastRelationHis(docid,flowid)函数的应用,根据文档ID与流程ID获取文档最后审批记录对象
脚本示例:
(() => {
const doc = getCurrentDocument();
const docid = doc.getId();
const flowid = doc.getFlowid();
const process = "";
if (flowid != null && flowid.trim().length > 0) {
process = FLOW.getLastRelationHis(docid, flowid);
}
return process;
})()
15.doUpdateDocumentWithoutVersions(doc)
作用:实现doUpdateDocumentWithouVersions(doc)函数的应用,更新文档但不更新版本号
脚本示例:
16.createParamsTable()
作用:实现createParamsTable()函数的应用,创建指定类对象
脚本示例:
场景:表单A、B,B表单某字段值为A表单某字段值,可以把A表单字段值放到参数表中,然后B表单字段从参数表单获取