本文档基于对 33,766个 平台文件的全面扫描分析编写,涵盖所有常用语法、接口调用、系统变量等开发资料
文档版本: v3.0
生成日期: 2026-04-14
扫描文件数: 33,766+ 个 (.jss/.jssp/.script/.port)
目录
- 平台概述
- 文件类型说明
- 核心全局对象
- wish对象API详解
- doc文档对象API
- db数据库对象API
- dcc文档集对象API
- uniflow工作流对象
- conf配置管理
- date日期时间
- str字符串工具
- ldap目录服务
- org组织架构
- sequence序列号
- server服务端
- wrdp前端模块
- REST服务调用
- HTTP与网络请求
- 流程端口配置
- 常用代码模板
- 开发规范与注意事项
- 附录:常见常量与SQL
一、平台概述
WRDP是一个JavaScript-based的Web应用开发平台,支持:
- 服务端业务逻辑(.jss)
- 页面脚本渲染(.jssp)
- 客户端脚本组件(.script)
- 流程节点配置(.port)
二、文件类型说明
| 文件类型 | 描述 | 用途 |
|---|---|---|
.jss |
Server JavaScript | 服务端业务逻辑脚本,类似Java语法 |
.jssp |
JavaScript Page | 页面脚本,可包含HTML和JavaScript混合代码 |
.script |
Client Script | 客户端脚本,用于定义UI组件和行为 |
.port |
Port/Node Config | 流程节点配置,JSON格式定义工作流 |
三、核心全局对象
| 对象名 | 类型 | 说明 |
|---|---|---|
wish |
Framework | 主框架对象,核心API入口 |
doc |
Document | 当前业务文档对象 |
docUrl |
Document | URL参数文档 |
docUser |
Document | 当前用户文档 |
docAppSystem |
Document | 当前应用系统文档 |
docSystem |
Document | 系统配置文档 |
docConfig |
Document | 流程配置文档 |
db |
Database | 当前数据库访问对象 |
uniflow |
Uniflow | 工作流控制对象 |
四、wish对象API详解
wish是平台的核心框架对象,提供所有主要功能。
4.1 日志输出
wish.println("日志信息"); // 打印日志到控制台
wish.debug("调试信息"); // 调试日志输出
wish.throwsError("错误描述"); // 抛出异常错误
4.2 服务调用 dispatch
wish.dispatch("/module/path/service.jss"); // 调用JSS服务
wish.dispatch("/module/path.service.jss"); // 调用服务
wish.dispatch("/moduleName.page"); // 页面模板渲染
wish.dispatch("xxx.bean"); // Bean调用
wish.dispatch("xxx.form"); // 表单模板渲染
wish.dispatch("xxx.subform"); // 子表单模板
wish.dispatch("xxx.conf"); // 配置获取
wish.dispatch("/system/port.db/proxy.port"); // 引入API代理(最常用)
4.3 变量存取
wish.put("变量名", 变量值); // 设置变量
wish.get("变量名"); // 获取变量
wish.get("_contentType"); // 获取系统变量
wish.put("_contentType", "text/json"); // 设置响应类型
4.4 文档创建
wish.doc.create(); // 创建空文档
wish.doc.create(jsonString); // 从JSON字符串创建
wish.doc.create(wish.doc.create(result).get("data")); // 嵌套创建
4.5 HTTP请求
wish.get("http://api.example.com/data"); // GET请求
wish.post("http://api.example.com/submit", "data"); // POST请求
wish.getApi("uniflowClient"); // 获取API客户端
4.6 数据库相关
wish.db.getCurrentDbSource(); // 获取当前数据源
wish.db.getDbSource("dbName"); // 获取命名数据源
4.7 API服务获取
wish.getApi("uniflowClient"); // 获取Uniflow客户端
4.8 表单相关
wish.getForm(); // 获取当前表单
wish.getWish(); // 获取Wish上下文
4.9 表达式解析
wish.parser(template); // 解析模板
wish.parser(template, doc); // 带文档解析
4.10 其他工具方法
wish.getNow("yyyy-MM-dd HH:mm"); // 获取当前时间
wish.byView("viewName").reload(); // 视图刷新
net.wish.util.Tools.getUnId(); // 生成UUID
五、doc文档对象API
doc代表当前业务文档。
5.1 获取字段值
doc.get("fieldName"); // 获取字符串值
doc.get("fieldName", "defaultValue"); // 获取带默认值
doc.getFieldArray(); // 获取所有字段名数组
doc.getChildren("childName"); // 获取子文档集合
doc.getChild("childName"); // 获取子文档
5.2 设置字段值
doc.replace("fieldName", "value"); // 替换/设置字段值
doc.append("fieldName", "value"); // 追加字段值(逗号分隔)
doc.replaceDefault("fieldName", value); // 设置默认值
doc.copyFromDocument(anotherDoc); // 从另一文档复制
doc.setUnid(); // 设置UNID
5.3 文档操作
doc.getString(); // 获取文档字符串
doc.getStringDeeply(); // 深度获取字符串
doc.toString(); // 转为字符串
doc.count(); // 文档数量
doc.getCount(); // 同count()
5.4 字符串方法
doc.equals("value"); // 字符串比较
doc.trim(); // 去空格
doc.split(","); // 分割字符串
doc.indexOf("substring"); // 查找位置
doc.substring(start); // 截取
doc.length; // 长度
六、db数据库对象API
db提供数据库访问能力。
6.1 查询操作
db.search(sql); // 执行SQL搜索返回DCC
db.query(sql); // 执行SQL查询
db.queryForDocuments(sql); // 查询返回文档集合
db.querySql(sql); // 执行SQL查询
6.2 保存操作
db.save(tableName, doc); // 保存文档
db.save(tableName, doc, primaryKey); // 指定主键保存
db.insert(tableName, doc); // 插入文档
db.execute(sql); // 执行SQL(增删改)
db.saveOrUpdateRowItem(table, dcc, unid, category); // 保存或更新行项目
6.3 获取文档
db.getDocumentByPiid(piid); // 通过PIID获取
db.getDocumentByUnid(unid); // 通过UNID获取
db.getDocumentByApplyId(applyId); // 通过ApplyId获取
db.getCurrentDbSource(); // 获取当前数据源
6.4 数据源名称常量
wish.db.getDbSource("Uniflow"); // Uniflow主数据库
wish.db.getDbSource("UniflowWebApp"); // Web应用数据库
wish.db.getDbSource("UniflowWebApp_log"); // 日志数据库
wish.db.getDbSource("zyContract"); // 合同数据库
wish.db.getDbSource("businessDb"); // 业务数据库
wish.db.getDbSource("test"); // 测试数据库
七、dcc文档集对象API
dcc用于处理多条记录的文档集。
7.1 基础操作
dcc.count(); // 获取文档数量
dcc.getCount(); // 同count()
dcc.get(index); // 获取第N个文档
dcc.add(doc); // 添加文档
dcc.deleteDoc(doc); // 删除文档
7.2 转换输出
dcc.string(); // 转为字符串
dcc.getString(); // 同string()
dcc.json; // 获取JSON数组
7.3 搜索过滤
dcc.searchDocuments("field=value"); // 文档属性搜索
dcc.searchDocument("fieldName", value); // 单条件搜索
八、uniflow工作流对象
8.1 获取流程信息
wish.uniflow.getFlowNodeId(); // 获取当前节点ID
wish.uniflow.getFlowConfigDocument(); // 获取流程配置文档
wish.uniflow.isInst(); // 是否为流程实例
九、conf配置管理
wish.conf.getFromCommon("configName", "fieldName"); // 从公共配置获取值
wish.conf.getConfDoc("/path/to/config.conf"); // 获取配置文档
wish.conf.getCategorys(parentNo); // 获取分类集合
wish.conf.gets(); // 获取资源集合
十、date日期时间
wish.date.getNow(); // 获取当前时间
wish.date.getNow("yyyy-MM-dd HH:mm"); // 格式化时间
wish.date.addDay(date, days); // 日期加减
wish.date.compare(date1, date2); // 比较日期
wish.date.getWeek(date); // 获取星期
十一、str字符串工具
wish.str.contains(string, substr); // 字符串包含判断
wish.str.containWord(string, keyword); // 包含词语(支持*通配)
wish.str.getFieldValue(string); // 获取字段值
wish.str.equals(str1, str2); // 字符串相等判断
十二、ldap目录服务
wish.ldap.getCompanyByDN(dn); // 根据DN获取公司
wish.ldap.getDepartmentByDN(dn); // 根据DN获取部门
wish.ldap.getAllAttrs(baseDn, filter, attr); // 获取LDAP属性
wish.ldap.getAttr(baseDn, filter, attrName); // 获取指定属性
wish.ldap.getUserNamesByUserIds(userIds); // 通过ID列表获取用户名
12.1 部门对象方法
department.getName(); // 获取部门名称
department.getOrgNum(); // 获取部门组织编码
department.getOptionalProps(); // 获取可选属性
十三、org组织架构
wish.org.getFullUserNameByRole(roleName); // 根据角色获取用户全名
wish.org.getUserDocument(userId); // 获取用户文档
十四、sequence序列号
wish.sequence.getBillNumber(key, placeholderCount); // 生成单据号
十五、server服务端
wish.server.getServerDoc(); // 获取服务器文档
net.wishx.util.Server.clearDocPool(); // 清除文档缓存池
net.wishx.util.Server.docPool.put(key, doc); // 放入文档缓存
十六、wrdp前端模块
16.1 模块加载
wrdp.require("wrdp.uniflow.Task"); // 加载Task模块
wrdp.require("wrdp.uniflow.Process"); // 加载Process模块
wrdp.require("wrdp.rest.Mcosm"); // 加载OSM服务
wrdp.require("wrdp.rest.Mcnumber"); // 加载编号服务
wrdp.require("wrdp.contractrest.xxx"); // 加载合同REST服务
wrdp.getModule("modulePath"); // 获取模块实例
wrdp.getFile("filePath"); // 获取文件内容
wrdp.create("className"); // 创建类实例
16.2 task工作流任务对象
task.queryTasksByPage(parmDoc, page, pageSize); // 分页查询任务
task.queryTaskCount(parmDoc); // 查询任务数量
task.queryReadsByPage(parmDoc, page, pageSize); // 分页查询已阅
task.queryReadCount(parmDoc); // 查询已阅数量
task.queryExtendData(piid, [field1, field2]); // 查询扩展数据
task.transferTask(wiid, newHandlers); // 转办任务
task.queryTasksByPos(parmDoc, pos1, pos2); // 按位置查询
task.replaceDefault("field", value); // 设置默认值
task.get("field"); // 获取字段
16.3 process流程对象
proess.queryExtendData(piid, [fields]); // 查询流程扩展数据
proess.queryAclByCat(category); // 按分类查询ACL
16.4 osm组织架构服务
osm.getUserBaseInfoByUserId(personId); // 获取用户基础信息
osm.getUserIdentitiesByBaseIds(id, domainCode); // 获取用户身份列表
osm.getCompanyByOrgId(orgId, domainCode); // 获取公司信息
osm.getOrgPostByOrgId(orgId); // 获取组织岗位
osm.getUserNaturePageByDomainCode(domainCode); // 分页获取用户属性
osm.getById(id); // 通过ID获取
osm.getByIds(ids); // 批量获取
osm.getAllHeadShipList(); // 获取所有职务列表
osm.getListByBaseId(baseId); // 按baseId获取列表
osm.getPageByOrgId(orgId); // 按组织分页
osm.getPageBySelective(params); // 按条件分页
osm.edit(params); // 编辑
osm.editStatusById(id); // 编辑状态
osm.add(params); // 添加
osm.removeByIds(ids); // 批量删除
16.5 合同REST服务(srsrv)
srsrv.queryList(start, length, param1, ...); // 分页查询列表
srsrv.docLineList(start, length, conId); // 查询文档行列表
srsrv.getBaseInfo(param); // 获取基本信息
srsrv.saveBaseInfo(param); // 保存基本信息
srsrv.updateBaseInfo(param); // 更新基本信息
srsrv.delBaseInfo(param); // 删除基本信息
srsrv.getVendorInfo(param); // 获取供应商信息
srsrv.saveVendorInfo(param); // 保存供应商信息
srsrv.getContractType(param); // 获取合同类型
srsrv.queryContractByConId(conId); // 按ID查询合同
srsrv.queryConConnectionList(start, length, name, connectionId); // 查询关联列表
srsrv.queryfinishContractList(start, length, conName); // 查询已完成合同
srsrv.saveContractForm(doc); // 保存合同表单
srsrv.saveChangeContract(doc); // 保存合同变更
srsrv.saveCancelContract(doc); // 保存合同注销
srsrv.getTemInfo(id); // 获取模板信息
srsrv.addTemInfo(param); // 添加模板信息
srsrv.updateTemInfo(param); // 更新模板信息
srsrv.batchDelTemInfo(ids); // 批量删除模板
srsrv.fileContract(conId); // 归档合同
srsrv.getFileContract(conId); // 获取归档合同
srsrv.reportFileInfo(param); // 上报文件信息
srsrv.queryHisList(start, length, temParentId, temEnableState); // 查询历史
十七、REST服务调用
17.1 内部服务调用
// 方式1:通过wish.dispatch调用
wish.dispatch("/module/service.jss");
// 方式2:引入API代理
wish.dispatch("/system/port.db/proxy.port");
var number = wish.require("wrdp.rest.Mcnumber");
// 方式3:REST客户端
wish.getApi("uniflowClient").createProcessServiceClient("system", "password");
wish.getApi("uniflowClient").createTaskServiceClient("system", "password");
17.2 wrdp模块示例
// 号码服务
var number = wrdp.require("wrdp.rest.Mcnumber");
number.saveTempNumberToNumberData(formulaCode, formulaData, showValue, deptId, operateType);
number.numberGetFreeze(formulaCode, formulaData, orgCode);
// 组织服务
var osmsv = wrdp.require("wrdp.rest.Mcosm");
osmsv.addUserNature(domainCode, userAttribute, type, status);
osmsv.queryOrgListPage(orgDoc, start, length);
17.3 返回数据格式
// 表格数据(分页)
var tableData = wish.doc.create();
tableData.set("total", totalCount);
tableData.set("rows", wish.dcc.create(listData));
tableData.string();
// JSON标准返回
{
"result_code": 0,
"error_msg": "",
"result_data": {}
}
十八、HTTP与网络请求
18.1 wish内置HTTP
wish.get("http://api.example.com/data");
wish.post("http://api.example.com/submit", "data");
18.2 net工具类
net.wishx.util.HttpClientUtils.get(url); // HTTP GET
net.wish.util.Http.post(url, data); // HTTP POST
net.wish.util.Tools.getUnId(); // 生成UUID
十九、流程端口配置
19.1 port文件结构
{
"baseNode": {},
"nodes": [
{
"_id": "唯一ID",
"name": "节点名称",
"title": "节点标题",
"type": "jss|port|doc",
"style": {"x": 数字, "y": 数字},
"dispatch": "/调用的服务路径",
"jss": "JavaScript脚本",
"doc": "文档配置",
"outType": "html|json|text",
"actions": [
{"_id": "A1", "from": "源节点", "to": "目标节点", "activateType": "0"}
]
}
]
}
19.2 节点类型
| type | 说明 |
|---|---|
port |
端口/服务调用节点(最常见) |
jss |
JavaScript脚本节点 |
doc |
文档/数据节点 |
19.3 常用dispatch路径
/uniflowService/UniflowCenter.db/startProcess.port
/uniflowService/UniflowCenter.db/callFlow.port
/uniflowService/UniflowCenter.db/displayTask.port
/uniflowService/UniflowCenter.db/queryNextDecisionNodes.port
/uniflowService/UniflowCenter.db/mobile.port
/uniflowService/UniflowCenter.db/dbNavi.page
/_platform/_app/uniflow.app/v3/impl/uniflowEasyui.db/displayTask.port
二十、常用代码模板
20.1 服务类模板
/**
* 服务类说明
* @author 作者名
* @since 版本/日期
*/
var _WrdpClassName = function () {
this.init = function () {
// 初始化
};
this.myMethod = function (param1, param2) {
var result = "";
// 业务逻辑
return result;
};
};
20.2 查询并返回
var sql = "SELECT * FROM table WHERE field = '" + value + "'";
var dcc = db.query(sql);
var n = dcc.count();
if (n > 0) {
for (var i = 0; i < n; i++) {
var docItem = dcc.get(i);
var fieldValue = docItem.get("fieldName");
}
}
dcc.getStringDeeply();
20.3 创建并保存
var newDoc = wish.doc.create();
newDoc.replace("unid", newDoc.setUnid());
newDoc.replace("field1", value1);
db.save("TABLE_NAME", newDoc, "unid");
20.4 分页查询
var result = osmsv.queryOrgListPage(orgDoc, start, length);
var pageDoc = wish.doc.create(wish.doc.create(result).get("data"));
var tableData = wish.doc.create();
tableData.set("total", pageDoc.get("total"));
tableData.set("rows", wish.dcc.create(pageDoc.get("list")));
tableData.string();
20.5 日期处理
var currentTime = wish.date.getNow("yyyy-MM-dd HH:mm");
var week = wish.date.getWeek(t);
var nextDay = wish.date.addDay(t, i + o);
var dateStr = wish.date.getNow("yyyyMMdd");
20.6 LDAP查询
var departmentDn = docUser.get("departmentDn");
var department = wish.ldap.getDepartmentByDN(departmentDn);
var map = department.getOptionalProps();
var orgNum = department.getOrgNum();
二十一、开发规范与注意事项
21.1 字符串比较
// 正确
if (doc.get("status").equals("1")) { }
// 错误
if (doc.get("status") == "1") { }
21.2 空值判断
if (doc.get("field").equals("")) { }
if (!doc.get("field").equals("")) { }
var value = doc.get("field", "default");
21.3 SQL注入防护
var sql = "SELECT * FROM table WHERE field = '" + value + "'";
21.4 代码块规范
if (condition) {
doSomething();
} else {
doOther();
}
二十二、附录:常见常量与SQL
22.1 系统字段常量
| 常量 | 说明 |
|---|---|
sys_created |
创建时间 |
sys_readers |
读者字段 |
sys_deptId |
部门ID |
sys_deptName |
部门名称 |
sys_category |
分类 |
sys_flowNo |
流程编号 |
sys_tpNodeId |
当前节点ID |
sys_file |
附件字段 |
applyId |
申请单ID |
subject |
标题 |
piid |
流程实例ID |
unid |
文档唯一标识 |
22.2 流程状态常量
| 常量 | 说明 |
|---|---|
$$tpState |
流程状态(1=待办,2=已办) |
$$isEditMode |
编辑模式 |
$$sys_nextOwner |
下步处理人 |
$$sys_note |
处理备注 |
_EOF |
流程结束 |
22.3 布尔值常量
| 常量 | 说明 |
|---|---|
yes / no |
是/否 |
true / false |
真/假 |
1 / 0 |
数字标记 |
22.4 常用SQL示例
SELECT * FROM table WHERE status = '1'
SELECT * FROM table WHERE unid = 'xxx'
SELECT COUNT(*) FROM table
SELECT xmlField("fieldName") FROM table
UPDATE table SET field = 'value' WHERE unid = 'xxx'
SELECT * FROM table ORDER BY createTime DESC
SELECT * FROM table WHERE a = '1' AND b = '2'
22.5 数据库表名
| 表名 | 说明 |
|---|---|
UNIFLOW_WEBAPP_INST |
流程实例表 |
UNIBUILDER_SOURCE |
资源表 |
UNIWEB_FAVORITE |
收藏表 |
文档版本: v3.0
生成日期: 2026-04-14