二开案例.执行计划.上下文设置组织
【问题描述】
执行计划接口提供的上下文,默认是无组织信息的,如果直接用此上下文去做业务处理,容易产生异常和脏数据。
例如:
构建BillView保存数据出现空引用异常。
写入了上机操作日志,但在前台的上机操作日志列表查询不到数据。
【解决办法】
在Run方法中提前设置组织信息。
除非是纯粹的数据库增删改查操作,否则都建议在执行计划一开始就设置一个默认的组织。
【案例演示】
using Kingdee.BOS;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.Log;
using System.Collections.Generic;
namespace Jac.XkDemo.BOS.App.PlugIn
{
/// <summary>
/// 【执行计划】上下文设置组织
/// </summary>
public class SetOrgScheduleService : IScheduleService
{
/// <summary>
/// 执行计划入口函数
/// </summary>
/// <param name="ctx"></param>
/// <param name="schedule"></param>
public void Run(Context ctx, Schedule schedule)
{
// 执行计划上下文默认无组织,需要提前指定组织,否则可能会影响后续的业务操作
// SELECT b.FNAME,a.*
// FROM T_ORG_ORGANIZATIONS a
// LEFT JOIN T_ORG_ORGANIZATIONS_L b ON a.FORGID = b.FORGID AND b.FLOCALEID = 2052
ctx.CurrentOrganizationInfo = new OrganizationInfo();
ctx.CurrentOrganizationInfo.ID = 1;// 必填
ctx.CurrentOrganizationInfo.Name = "蓝海机械总公司";// 非必填
// TODO
}
}
}
---------------------------------------------------------------------------------------------------------
【查询组织机构】
SELECT b.FNAME,a.*
FROM T_ORG_ORGANIZATIONS a
LEFT JOIN T_ORG_ORGANIZATIONS_L b ON a.FORGID=b.FORGID AND b.FLOCALEID=2052
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】
https://vip.kingdee.com/article/94751030918525696
二开案例.执行计划.上下文设置组织
本文2024-09-23 04:18:17发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164449.html