二开案例.执行计划.上下文设置组织

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.执行计划.上下文设置组织

【问题描述】

执行计划接口提供的上下文,默认是无组织信息的,如果直接用此上下文去做业务处理,容易产生异常和脏数据。

例如:

构建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


二开案例.执行计划.上下文设置组织

【问题描述】执行计划接口提供的上下文,默认是无组织信息的,如果直接用此上下文去做业务处理,容易产生异常和脏数据。例如:构建BillView...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息