本文介绍了金蝶云星空系统中成本模块存在的问题,如月末在制结存数据依赖产品盘点录入但常因忘记更新导致数据缺失,以及存货关账后重复获取数据的繁琐操作。针对这些问题,提出了通过新增成本工作台及二开插件实现自动在产盘点和获取月末在制的解决方案。该方案旨在提高成本会计的工作效率,减少操作错误,并具备可推广价值,可帮助新会计理解成本流程,同时为开发人员提供自定义操作流程的示例。
一、业务背景
(一)业务背景
1、在金蝶云星空系统中,成本模块的菜单,在产品盘点录入和月末在制存在关联关系,月末在制结存依赖在产品盘点录入的数据来生成月末在制结存数据,但是经常会有客户忘记在生成月末在制时,先去更新下在产品盘点录入,导致会存在数据缺失的情况。
2、存货关账后,任然需要再次获取一遍,存在重复操作的情况,每次获取操作步骤也繁琐。
(二)业务痛点
1、成本会计需要打开多个页面来操作。
2、对接触成本时间不长的会计,可能会没有按步骤来准备成本计算的数据。
二、解决方案
(一)关键步骤
1 发布菜单:工作台设置
打开BOSIDE,先新增子功能:成本工作台,再新增:工作台设置、工作台方案
2 业务对象功能授权
管理员登录,对“成本会计”角色授权
3 新增工作台方案
4 发布菜单:成本工作台
打开BOSIDE,新增
参数名:SCHEMENUMBER
5 新增工作台
6 如果手工操作,则打开使用
7 如果自动进行在产盘点和获取月末在制,则二开插件,并新增到工作台。
7.1 在工作台设置->校验条件配置 列配置二开的插件
7.2 在产品盘点自动获取接口示例
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Kingdee.K3.FIN.App.Core; using Kingdee.K3.FIN.App.Core.Workbench; using Kingdee.K3.FIN.Core; using Kingdee.K3.FIN.CB.ServiceHelper; using Kingdee.K3.FIN.CB.Common.BusinessEntity.FilterCondition; using Kingdee.BOS.JSON; using Kingdee.K3.FIN.CB.Business.PlugIn; using Kingdee.BOS; namespace AutoGetWipDataAndWipBom { public class AutoGetWipData : HSVerifyItem { /// <summary> /// 执行检查是否通过 /// </summary> /// <param name="ctx"></param> /// <param name="option"></param> /// <returns></returns> public override bool Execute(Context ctx, Kingdee.BOS.Orm.OperateOption option) { base.Execute(ctx, option); //默认完成 this.CompStatus = WorkbenchStatus.Completed; this.CheckResult = Kingdee.BOS.Resource.ResManager.LoadKDString("已完成", "0032996000023274", Kingdee.BOS.Resource.SubSystemType.FIN); this.PassDate = AppServiceContext.GetSysDate(ctx); return true; } /// <summary> /// 自动获取在产品盘点 /// </summary> /// <param name="ctx"></param> /// <param name="option"></param> /// <returns></returns> public override bool AutomateExecute(Kingdee.BOS.Context ctx, Kingdee.BOS.Orm.OperateOption option) { CommonBillRptCondition fileCondition = new CommonBillRptCondition(); //核算组织 fileCondition.AcntOrgId = base.OutStockAcctgParameters.AcctgOrg.Id; //会计政策 fileCondition.AcntPolicyId = base.OutStockAcctgParameters.AcctPolicy.Id; //核算体系 fileCondition.AcntSystemId = base.OutStockAcctgParameters.AcctgSys.Id; int year = 0; int period = 0; //获取当前年期 CBCommonFunction.GetSystemCurYearPeriod(ctx, base.OutStockAcctgParameters.AcctgSys.Id, base.OutStockAcctgParameters.AcctgOrg.Id, base.OutStockAcctgParameters.AcctPolicy.Id, out year,out period); fileCondition.SelectYear = year; fileCondition.SelectPeriod = period; //获取在产品盘点 ProductingCountServiceHelper.ProductCounting(ctx, fileCondition); return true; } } }
三、方案的可推广价值
1、成本会计可以更快捷的完成成本计算前的数据准备。
2、对接触成本时间不长的会计,可以更加直观的理解成本流程,减少操作步骤上的错误。
3、开发人员也可以通过该例子来自定义设置其他的操作流程。
作者:罗涛、武湘江、钱奇
推荐阅读