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

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

[其他] 流程提交时报错 系统错误,执行宏语言失败

[复制链接]
沈阳铁路局 发表于 2014-3-19 16:50:06 | 显示全部楼层 |阅读模式
SP6,流程路径中写有代码。
使用有一段时间了,才出现的报错。以前正常。
punk 发表于 2014-3-19 17:32:12 | 显示全部楼层
您好,请把代码和错误信息贴出来,方便分析。谢谢~
 楼主| 沈阳铁路局 发表于 2014-3-19 19:03:42 | 显示全部楼层
var  bma=getItemValueAsString("编码");
var  dj=getItemValueAsDate("日期");
var  je=getItemValueAsDouble("支出金额");
var nd=format(dj,"yyyy-MM");
var fl=getItemValueAsString("bxfl");
var ba1=getItemValueAsDouble("支出金额");
var process = getDocumentProcess();     
var formProcess = getFormProcess();
var subform = formProcess.doView("11e3-5dbb-6cfe014c-9b80-1981822572f7");//表单ID值。可以通过数据库客户端查看那张表的formid字段值就可以。
var doc = process.doNew(subform,getWebUser(),createParamsTable());

var sql="select * from  hsgl.tlk_期初有权录入 where to_char(item_年度,'yyyy-mm') ='"+nd+"' and item_编码 ='"+bma+"' and STATELABEL ='完成审核'";

println(sql);
var datas = queryBySQL(sql);
println("datas======"+datas);
var value=0;
if (fl=="报销直列"){
var value=0;
if(datas.size()>0){
        for (var iter = datas.iterator(); iter.hasNext();) {      
                var data1 = iter.next();            
value = data1.getItemValueAsDouble("bxzlzc");
        }
        value=value+je;

println("value======"+value);
var num1 =data1.getItemValueAsDouble("bxzljh");
var num2=data1.getItemValueAsDouble("直列预增");
var num=num1+num2;
num=num-value;
if (num<0) {
        msg="不允许透支,请检查支出额度和预算指标!";
}else
{
var ljzc=data1.getItemValueAsDouble("累计支出");
var hjyq=data1.getItemValueAsDouble("合计有权");
ljzc=ljzc+ba1;
var jcje=hjyq-ljzc;
data1.findItem("累计支出").setValue(ljzc);
data1.findItem("节超金额").setValue(jcje);
data1.findItem("bxzlzc").setValue(value);
        process.doUpdate(data1);
}
}else
{
msg ="本月无此部门科目预算或本月预算尚未通过财务预算审核,不能支出!";
}}
else
{
var value1=0;
if(datas.size()>0){
        for (var iter = datas.iterator(); iter.hasNext();) {      
                var data = iter.next();            
value1 = data.getItemValueAsDouble("clzc");
        }
        value1=value1+je;

println("value======"+value1);
var num1 =data.getItemValueAsDouble("zc");
var num2=data.getItemValueAsDouble("材料支出预增");
var num=num1+num2;
num=num-value1;
if (num<0) {
        msg="不允许透支,请检查支出额度和预算指标!";
}else
{
var ljzc1=data.getItemValueAsDouble("累计支出");
var hjyq1=data.getItemValueAsDouble("合计有权");
ljzc1=ljzc1+ba1;
var jcje1=hjyq1-ljzc1;
data.findItem("累计支出").setValue(ljzc1);
data.findItem("节超金额").setValue(jcje1);       

data.findItem("clzc").setValue(value1);
        process.doUpdate(data);
}
}else
{
msg ="本月无此部门科目预算或本月预算尚未通过财务预算审核,不能支出!";
}
}
punk 发表于 2014-3-20 09:53:23 | 显示全部楼层
错误信息是什么呢?截图或者贴上来,我看你的脚本也加了println输出,能定位到执行到那,哪个位置错了嘛。
 楼主| 沈阳铁路局 发表于 2014-3-20 10:03:17 | 显示全部楼层
错误信息 就是   系统错误,执行宏语言失败

if (num<0) {
        msg="不允许透支,请检查支出额度和预算指标!";
}else
{
var ljzc=data1.getItemValueAsDouble("累计支出");
var hjyq=data1.getItemValueAsDouble("合计有权");
ljzc=ljzc+ba1;
var jcje=hjyq-ljzc;
data1.findItem("累计支出").setValue(ljzc);
data1.findItem("节超金额").setValue(jcje);
data1.findItem("bxzlzc").setValue(value);
        process.doUpdate(data1);
}
}else

这段是不是逻辑上有问题
punk 发表于 2014-3-20 10:19:56 | 显示全部楼层
看截图: QQ截图20140320101721.jpg
 楼主| 沈阳铁路局 发表于 2014-3-21 11:07:05 | 显示全部楼层
var  bma=getItemValueAsString("编码");
var  dj=getItemValueAsDate("日期");
var  je=getItemValueAsDouble("支出金额");
var nd=format(dj,"yyyy-MM");
var fl=getItemValueAsString("bxfl");
var ba1=getItemValueAsDouble("支出金额");
var process = getDocumentProcess();     
var formProcess = getFormProcess();
var subform = formProcess.doView("11e3-5dbb-6cfe014c-9b80-1981822572f7");//表单ID值。可以通过数据库客户端查看那张表的formid字段值就可以。
var doc = process.doNew(subform,getWebUser(),createParamsTable());

var sql="select * from  hsgl.tlk_期初有权录入 where to_char(item_年度,'yyyy-mm') ='"+nd+"' and item_编码 ='"+bma+"' and STATELABEL ='完成审核'";

println(sql);
var datas = queryBySQL(sql);
println("datas======"+datas);
var value=0;
if (fl=="报销直列"){
var value=0;
if(datas.size()>0){
        for (var iter = datas.iterator(); iter.hasNext();) {      
                var data1 = iter.next();            
value = data1.getItemValueAsDouble("bxzlzc");
      
        value=value+je;

println("value======"+value);
var num1 =data1.getItemValueAsDouble("bxzljh");
var num2=data1.getItemValueAsDouble("直列预增");
var num=num1+num2;
num=num-value;
println(num1);
println(num2);
println(num);
if (num<0) {
        msg="不允许透支,请检查支出额度和预算指标!";        }
else
{
var ljzc=data1.getItemValueAsDouble("累计支出");
var hjyq=data1.getItemValueAsDouble("合计有权");
ljzc=ljzc+ba1;
var jcje=hjyq-ljzc;
data1.findItem("累计支出").setValue(ljzc);
data1.findItem("节超金额").setValue(jcje);
data1.findItem("bxzlzc").setValue(value);
        process.doUpdate(data1);
}}}
else
{
msg ="本月无此部门科目预算或本月预算尚未通过财务预算审核,不能支出!";
}}
else
{
var value1=0;
if(datas.size()>0){
        for (var iter = datas.iterator(); iter.hasNext();) {      
                var data = iter.next();            
value1 = data.getItemValueAsDouble("clzc");
        
        value1=value1+je;

println("value======"+value1);
var num1 =data.getItemValueAsDouble("zc");
var num2=data.getItemValueAsDouble("材料支出预增");
var num=num1+num2;
num=num-value1;
if (num<0) {
        msg="不允许透支,请检查支出额度和预算指标!";
}else
{
var ljzc1=data.getItemValueAsDouble("累计支出");
var hjyq1=data.getItemValueAsDouble("合计有权");
ljzc1=ljzc1+ba1;
var jcje1=hjyq1-ljzc1;
data.findItem("累计支出").setValue(ljzc1);
data.findItem("节超金额").setValue(jcje1);       

data.findItem("clzc").setValue(value1);
        process.doUpdate(data);
}
}}else
{
msg ="本月无此部门科目预算或本月预算尚未通过财务预算审核,不能支出!";
}
}
punk 发表于 2014-3-21 13:35:37 | 显示全部楼层
远程我看一下吧。qq 2023469350
david 发表于 2014-4-29 14:18:08 | 显示全部楼层
该贴据上次回复已经月余。没有收到楼主的联系,该贴暂移到”其他“,楼主看到该贴时如果还有问题请与我联系,联系我时记得提供帖子链接。

本版积分规则

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

GMT+8, 2026-8-13 15:22

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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