WorkflowManager 模块 API
目录
- WorkflowManager.createInstanceAndDoNext - 创建工作流实例并执行到下一步状态
- WorkflowManager.createInstance - 创建工作流实例
- WorkflowManager.updateInstanceToNextStatus - 更新工作流实例到下一个状态
- WorkflowManager.setInstanceStatus - 设置工作流实例状态
- WorkflowManager.setInstanceHandler - 设置工作流实例处理人
WorkflowManager.createInstanceAndDoNext - 创建工作流实例并执行到下一步状态
- @name {String}
必须
工作流名称。 - @title {String}
必须
实例标题。 - @action {String}
必须
由【开始】发起的动作名称。 - @params {Object}
必须
参数键值对,包含动作执行条件所需的@变量@及对应的值,比如:{'金额': @14-TOTAL@, '币种': '美元'}。若无需变量,传入 {} 占位。 - @callback {Function}
必须
回调函数- err {Error} 回调错误对象,若无错误则为空。
- result {Object} 正常返回的结果,结构如下:
{ instance_id: 123, // 实例 ID next_status_no: 12,// 状态编号 next_status_name: ' 待上级主管审批', // 状态名称 prev_status_no: 10, // 上一个状态变量 prev_status_name: '填写申请表', // 上一个状态名称 next_handler: { // 下一个处理人' id: 6357, name: '王四', title: '上级主管' }, is_next_status_end: false // 下一个状态是否是终态。 }
【例】
var WorkflowManager = require('@custom/workflow-manager');
var manager = new WorkflowManager(Enhancer); // 一定要传入全局对象 Enhancer。
manager.createInstanceAndDoNext(
'报销' // 工作流名称
, '张三报销费用100元'// 标题
, '提交' // 由【开始】发起的动作名称
, {'金额': @14-TOTAL@} // 相关参数,来自审批表单。
, function(err, result) {
if (err) {
return done(err);
}
// !!! 注意这里的 done 方法,来自本脚本所处的上下文环境,
// 此处代码示意调用结束,但可能不一定存在或合理。!!!
done(null, null, {
'10-INSTANCE_ID': result.instance_id, // 工作流实例 ID
'10-STATUS': result.next_status_no, // 当前所处状态
'10-HANDLER_ID': result.next_handler.id
});
});
WorkflowManager.createInstance - 创建工作流实例
- @name {String}
必须
工作流名称。 - @title {String}
必须
实例标题 - @params {Object}
必须
执行时传入的参数变量,是一个键值对形式比如 {'金额': 1008.88, '员工ID': 123}。若无需变量,传入 {} 占位。 - @callback {Function}
必须
回调函数- err {Error} 回调错误对象,若无错误则为空。
- result {Object} 正常返回的结果,结构如下:
{ instance_id: 123, // 实例 ID next_status_no: 12, // 状态编号 next_status_name: '填写申请表', prev_status_no: 12, // 先前的状态编号 prev_status_name: '填写申请表', is_next_status_end: false // 下一个状态是否是终态。 }
【例】
var WorkflowManager = require('@custom/workflow-manager');
var manager = new WorkflowManager(Enhancer); // 一定要传入全局对象 Enhancer。
manager.createInstance(
'报销' // 工作流名称
, '张三报销费用100元'// 标题
, {} // 附加参数,无内容保持占位。
, function(err, result) {
if (err) {
return done(err);
}
// !!!注意这里的 done 方法,来自本脚本所处的上下文环境,此处代码示意调用结束,但可能不一定存在或合理。
done(null, null, {
'10-INSTANCE_ID': result.instance_id, // 工作流实例 ID
'10-STATUS': result.next_status_no // 当前所处状态
});
});
WorkflowManager.updateInstanceToNextStatus - 更新工作流实例到下一个状态
- @instanceId {String} 工作流实例 ID。
- @action {String}
必须
当前操作动作名,应与流程图中的动作名一致。 - @params {Object}
必须
参数键值对,包含动作执行条件所需的@变量@及对应的值,比如:{'金额': @14-TOTAL@, '币种': '美元'}。若无需变量,传入 {} 占位。 - @approveContent {String}
必须
经办人附加的批示内容。 - @callback {Function}
必须
回调函数- err {Error} 回调错误对象,若无错误则为空。
- result {Object} 正常返回的结果,结构如下:
{ next_status_no: 12, next_status_name: ' 待上级主管审批', prev_status_no: 10, prev_status_name: '填写申请表', next_handler: { // 下一个处理人' id: 6357, name: '王四', title: '上级主管' }, is_next_status_end: false // 下一个状态是否是终态。 }
【例】
var WorkflowManager = require('@custom/workflow-manager');
var manager = new WorkflowManager(Enhancer); // 一定要传入全局对象 Enhancer。
manager.updateInstanceToNextStatus(
@9-ID@ // 当前工作流实例 ID
, '通过' // 当前操作动作,应与流程图中的动作名一致。
, {'金额': @11-TOTAL@} // 流程执行所需要的参数,内容应来自待审批的表单或其他相关内容。
, '同意' // 经办人附加的批示内容。
, function(err, result) { // 回调函数
if (err) {
return done(err);
}
// !!!注意这里的 done 方法,来自本脚本所处的上下文环境,此处代码示意调用结束,但可能不一定存在或合理。
done(null, null, {
'10-PREV_STATUS_NO': result.prev_status_no,
'10-STATUS_NO': result.next_status_no,
'10-HANDLER_ID': result.next_handler.id
})
}
);
WorkflowManager.deleteInstance - 删除工作流实例
- @instanceId {String} 工作流实例 ID。
- @callback {Function}
必须
回调函数- err {Error} 回调错误对象,若无错误则为空。
- result {Object} 正常返回的结果。
【例】
var WorkflowManager = require('@custom/workflow-manager');
var manager = new WorkflowManager(Enhancer); // 一定要传入全局对象 Enhancer。
manager.deleteInstance(123, function(err, result) {
if (err) {
return done(err);
}
console.log(result);
done(null, {success: true, result:result});
});
WorkflowManager.setInstanceStatus - 设置工作流实例状态
- @instance_id {String}
必须
工作流实例 ID - @status_no {String}
必须
状态编号。 - @approval_content {String}
必须
批复内容。 - @callback {Function}
必须
回调函数- err {Error} 回调错误对象,若无错误则为空。
- result {Object} 正常返回的结果,结构如下:
{ next_status_no: 12, next_status_name: ' 待上级主管审批', prev_status_no: 10, prev_status_name: '填写申请表', next_handler: { // 下一个处理人' id: 6357, name: '王四', title: '上级主管' }, is_next_status_end: false // 下一个状态是否是终态。 }
【例】
var WorkflowManager = require('@custom/workflow-manager');
var manager = new WorkflowManager(Enhancer); // 一定要传入全局对象 Enhancer。
manager.setInstanceStatus(
@9-ID@ // 当前工作流实例 ID
, '18' // 状态
, '填错了' // 批复内容
, function(err, result) {
if (err) {
return done(err);
}
done(null, {success: true, result: result});
}
)
WorkflowManager.setInstanceHandler - 设置实例当前处理人
- @instance_id {String} 工作流实例 ID。
- @handler_id {String} 处理人 ID。
- @handler_name {String} 处理人名称。
- @handler_title {String} 处理人职务。
- @callback {Function}
必须
回调函数- err {Error} 回调错误对象,若无错误则为空。
- result {Object} 正常返回的结果,结构如下:
{ next_status_no: 12, next_status_name: ' 待上级主管审批', prev_status_no: 10, prev_status_name: '填写申请表' }
【例】
var WorkflowManager = require('@custom/workflow-manager');
var manager = new WorkflowManager(Enhancer); // 一定要传入全局对象 Enhancer。
manager.setInstanceHandler(
@9-ID@ // 工作流实例 ID
, 1 // 处理人 ID
, '赵汉人' // 处理人姓名
, '总裁' // 处理人职称
, function(err, result) {
if (err) {
return done(err);
}
done(null, {success: true, result: result});
}
)