为了优化客户体验,越来越多耗时较长的功能放到了后台事务中,使用后台任务的方式执行,避免用户操作卡在前台。
但是很多任务在设计之初没考虑到一些日志信息记录,导致后期去排查问题比较困难。
例如:出库核算
在核算时我们会选择很多条件信息,例如过滤范围,计价方法等,但是在后台事务中只能看到组织信息,无法得知当时计算的是哪种计价方法,有没有过滤物料等信息。(85版本有补丁添加了计价法)
那怎么去获取这些信息呢。
我们知道,后台事务是有个数据表记录的,其中fparameters字段,会记录参数对象,参数中会记录一些核算时的参数信息,但是这个字段是blob类型,怎么把他取出来展示呢。
熟悉EAS的同学都知道查询分析器中是可以执行Rihno脚本的,这里介绍一种方法正是使用脚本的方式将数据查询出来。脚本如下:
var sql = new java.lang.StringBuffer();
sql.append("SELECT * FROM T_JOB_INST where fjobinstid = '0b4f0eb9-40f8-43aa-b00a-21721a0bd6bfBGJOBINS'");//任务的ID
var rs = com.kingdee.eas.util.app.DbUtil.executeQuery(ctx, sql.toString());
rs.next();
var param = rs.getObject("fparameters");
var baIn = new java.io.ByteArrayInputStream(param.getBytes(1, param.length()));
var objIn = new java.io.ObjectInputStream(baIn);
var params = objIn.readObject();
params.getBizParam();
将任务id替换成自己的,在查询分析器中点击执行服务端脚本。执行结果如下:
这里就可以将之前核算的时候一些参数查询出来了。
ACCOUNT_TYPE就是核算的计价方法,对应如下:
3:加权平均法 6:移动加权平均法 1:实时移动加权平均法 2:标准成本法 4:先进先出法 5:个别计价法
其他几个字段
WAREHOUSEID 选择的仓库id
STORAGEORGUNITID 选择的库存组织id
MATERIAL_FROM 物料从
MATERIAL_TO 物料至。
当然除了出库核算,其他的在系统平台_性能管理_调度平台_事务定义 功能中定义的后台事务也可以使用此脚本查出历史任务中传递的参数。