BOS运行时-执行计划-上下文对象原创
75人赞赏了该文章
381次浏览
编辑于2023年11月20日 18:12:15
执行计划自动调度时,使用的是administrator用户,没有组织信息(-1),有些场景下,我们需要根据用户组织和用户权限获取数据或者进行一些业务操作,这种情况下,不适合使用administrator用户进行。
建议使用以下代码克隆上下文对象Context,指定组织信息和用户id
注意,禁止直接修改上下文对应Context,因为这是一个全局变量
参考代码如下:
public void Run(Context ctx, Kingdee.BOS.Core.Schedule schedule) { var cloneContext = ctx.Clone() as Context; if(cloneContext == null ) { Logger.Info("custError", "Clone context error"); return; } cloneContext.CurrentOrganizationInfo = new OrganizationInfo() { //通过查询T_ORG_ORGANIZATIONS表可以得到对应的id ID = 100001 }; //通过查询 T_SEC_USER 可以得到对应的id cloneContext.UserId = 100007; //调用接口传递上下文的地方传入cloneContext BusinessDataServiceHelper.Save(cloneContext, dataObject); }
赞 75
75人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读
您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!
请选择打赏金币数 *
10金币20金币30金币40金币50金币60金币
可用金币: 0