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});
    }
)

results matching ""

    No results matching ""