DEP创建的单据如何写入上机日志
需求场景:
dep创建的单据,在前台删除单据后,由于上机日志没有记录,不清楚是谁做了删除操作,需要写入上机日志中
实现原理:
查看上机日志的实现原理文档如附件所示可知,核心原理是在执行对应业务操作时先开启上机日志,调用
com.kingdee.eas.base.log.LogUtil的
public static IObjectPK beginLog(Context ctx, String methodName, BOSObjectType bizObjType, IObjectPK instancePK, String instanceDeatil, String logItemName) 方法先写入一条失败记录,操作完对应业务后调用
com.kingdee.eas.base.log.LogUtil的public static void afterLog(Context ctx, IObjectPK logPK) 方法更新状态
实现方式:
实体-扩展定义
找到对应方法编写脚本
参考脚本
前置脚本:
//开启上机日志
var ctx = pluginCtx.getContext();
//获取当前登录用户
var userName = com.kingdee.eas.util.app.ContextUtil.getCurrentUserInfo(ctx).toString();
//获取上下文
var appLog = com.kingdee.eas.base.log.AppLogFactory.getLocalInstance(ctx);
//定义参数
var methodName = "delete";
var bizObjType = com.kingdee.bos.util.BOSObjectType.create("0E1C26E5"); //instancePK 可以为空
var instancePK = null; var instanceDetail = userName +"再删除单据";
//调用日志
var logpk = appLog.writeLog(methodName, bizObjType, instancePK, instanceDetail);
//存入上下文
pluginCtx.getContext().put("logpk",logpk);
后置脚本
//获取key
var ctx = pluginCtx.getContext();
var logpk = pluginCtx.getContext().get("logpk");
//获取上下文
var appLog = com.kingdee.eas.base.log.AppLogFactory.getLocalInstance(ctx);
if(logpk != null){
appLog.upateLogStatus(logpk);
}
实现效果
DEP创建的单据如何写入上机日志
本文2024-09-16 21:58:59发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-45179.html