天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 974|回复: 2

[已解决] 流程通过代码回退

[复制链接]
微信用籣y82ir 发表于 2024-3-26 10:14:24 | 显示全部楼层 |阅读模式
【myApps/OBPM版本号】:v5.1
【浏览器类型】:Chrome/其他
【联系方式-QQ】:452828118
【联系电话】:    请留下您的联系电话,以便技术同事更好解决您的问题
【问题描述】:
在表单中增加一个算定义按钮,实现的需求是让用户根据业务需要回退"XX制单"节点,以下是回退功能的代码:

(function (){
  var doc = getCurrentDocument();
  var orderId = doc.getItemValueAsString("采购订单编号");
  if (isNotNull(orderId)){
    var tableName = "tlk_gy_cg_01_order_main";
                    var indexField = "ITEM_编号";
    var orderDoc = LoadByIndexFieldValue(tableName, indexField, orderId, true);
    var curDoc = findDocument(orderDoc.getId());
    //采购订单流程回退
    RollBackFlow(curDoc);
  } else {
     println("没有采购订单编号,不充许回退!");
  }
})()

function RollBackFlow(orderDoc){
  var user = getWebUser();
  var curDoc = orderDoc;
  var docProcess = getDocumentProcess();
  var flowID = getFlowID(curDoc); //获取流程编号
  var params = createParamsTable();
  params.setParameter("_flowid", flowID);
  var nextNodeIds = new Array();
  var curNodeId = "1701413641577";  //结束(付款申请)
  nextNodeIds[0] = "1701409945100"; //XX制单
  var flowOption = "86";   //干预强退
  var comment = "退回到采购组采购";
  println("docProcess=" + docProcess); //通过后台打印结果,值不为空
  println("params=" + params);//通过后台打印结果,值不为空
  println("curDoc=" + curDoc);//通过后台打印结果,值不为空
  println("curNodeId=" +curNodeId );//通过后台打印结果,值不为空
  println("nextNodeIds=" + nextNodeIds);
  println("flowOption=" + flowOption);
  println("comment=" + comment);
  println("user=" +user );
  //docProcess.doFlow(curDoc,params,curNodeId,nextNodeIds,flowOption,comment,user);
                  FLOW.backFlow(flowID, curNodeId, nextNodeIds, comment, user, curDoc);
}

问题:执行FLOW.backFlow(flowID, curNodeId, nextNodeIds, comment, user, curDoc);时报空指针错误,我打印方法中的各个参数均有数值不为空;更换docProcess.doFlow(curDoc,params,curNodeId,nextNodeIds,flowOption,comment,user); 方法进行回退同样是报空指针错误,请问我需要怎么排查异常?
  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
yaya 发表于 2024-3-28 10:51:46 | 显示全部楼层
结束了用不了回退脚本,用doFlow流程干预脚本,然后加个启动流程试下。
 楼主| 微信用籣y82ir 发表于 2024-3-28 15:12:05 | 显示全部楼层
用doFlow还是报空指针异常
直接使用
docProcess.doStartFlowOrUpdate(curDoc, params, user); //启动流程
达到预期目标!成功转回到流程起点!
问题解决,可以结贴!

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 13:26

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表