【库存管理】库存关账校验插件说明原创
金蝶云社区-陈元喜
陈元喜
7人赞赏了该文章 2,835次浏览 未经作者许可,禁止转载编辑于2021年09月01日 09:39:26
summary-icon摘要由AI智能服务提供

本文介绍了如何开发一个库存管理系统的关账校验插件,涉及Kingdee.K3.Core组件的引用、AbstractInvAccountValidatorPlugIn类的继承、InvAccountOffValidatorErrInfo方法的实现等步骤。要求实现中返回校验的异常信息集合,并定义了多个关键属性及返回信息的具体结构(包括OperateSuccess、StockOrgID、ErrInfo或IgnoErrInfo)。还提到了库存管理参数的插件注册,关账校验抽象类的属性和方法说明,包括关账日期、组织ID、临时表等。同时提供了可忽略和不可忽略校验的参考案例,以及反编译查看实现逻辑的建议。

实现步骤

  1. 引用Kingdee.K3.Core组件。

  2. 继承AbstractInvAccountValidatorPlugIn类。

  3. 实现InvAccountOffValidatorErrInfo方法,返回校验的异常信息集合。

        InvAccountValidatorResult返回信息中需要:

        a.OperateSuccess;

        b.StockOrgID;

        c.ErrInfo(不可忽略错误信息)或 IgnoErrInfo (可忽略错误信息);

        d.ErrInfo或IgnoErrInfo只需要返回ErrMsg 即可;

    4. 库存管理参数-关账参数注册此插件(标准产品增加插件通过预插数据注册)。


【关账校验抽象类说明】

  1. 属性:CloseDate,AccountOrgIds为关账界面对于勾选的组织以及选择的关账日期;

  2. 属性:TmpTableName,TmpDataCount为关账组织构建的临时表以及临时表对于的行数。

  3. 属性:AccountValidFailOrgIds 为关账逻辑校验1、2步中以及校验失败的组织。

  4. InvAccountOffValidatorErrInfo方法参数:isCallByOwner 是否为存货关账调用。

  5. InvAccountOffValidatorErrInfo方法参数:isCheckIgnoErrInfo 是否忽略IgnoErrInfo型校验。


参考案例

  1. 可忽略校验:校验未审核的盘点作业单。可反编译Kingdee.K3.SCM.App.Core   查看InvAccountStkCountBillValidator实现逻辑。

  2. 不可忽略校验:检查未日结的零售单。可反编译Kingdee.K3.SCM.App.Core  查看InvAccountRetailBillValidator实现逻辑。


【其他】

  1. 【库存管理】库存关账校验参数说明

  2. 关账校验服务抽象类:

    /// <summary>
    /// 关账校验服务抽象类
    /// </summary>
    [Description("关账校验服务抽象类")]
    public abstract class AbstractInvAccountValidatorPlugIn
    {
        #region 属性 
        public Context Context { get; set; } 

        /// <summary>
        /// 关账界面:关账日期
        /// </summary>
        public DateTime CloseDate { get; set; }

        /// <summary>
        /// 关账界面:关账组织
        /// </summary>
        public List<long> AccountOrgIds { get; set; }

        /// <summary>
        /// 关账Session临时表
        /// </summary>
        public String TmpTableName { get; set; }

        /// <summary>
        /// TmpTableName临时表数据行数
        /// </summary>
        public int TmpDataCount { get; set; }

        /// <summary>
        /// 标准校验已经失败的关账组织列表
        /// </summary>
        public List<long> AccountValidFailOrgIds { get; set; }

        #endregion

        #region 抽象实现类   

        /// <summary>
        /// 库存关账校验:返回值:不可忽略校验 处理ErrInfo错误信息集合;可忽略校验 处理IgnoErrInfo错误信息集合;
        /// </summary>
        /// <param name="isCallByOwner">是否存货核算货主关账调用(为true时,表示是存货关账校验操作,否则为库存关账校验操作)</param>
        /// <param name="isCheckIgnoErrInfo">是否校验:可忽略错误信息 (为false时,无需进行可忽略校验信息,不会提示IgnoErrInfo信息)</param> 
        /// <returns></returns>
        public virtual List<InvAccountValidatorResult> InvAccountOffValidatorErrInfo(bool isCallByOwner, bool isCheckIgnoErrInfo)
        {
            return null;
        }


        /// <summary>
        /// 库存关账校验:修改校验提示信息
        /// </summary>
        /// <param name="isCallByOwner">是否存货核算货主关账调用(为true时,表示是存货关账校验操作,否则为库存关账校验操作)</param>
        /// <param name="errInfo">当前关账下异常信息集合,可根据此异常结构,修改其提示信息</param> 
        /// <returns>True时,则显示errInfo异常信息。</returns>
        public virtual bool InvAccountOffModifyErrInfo(bool isCallByOwner, List<StockOrgOperateResult> errInfo)
        {
            return false;
        }  

        #endregion 
    }


图标赞 7
7人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!