2023年提单复盘
# 提单分析
共计95个
第15周 (4.10-4.16) 10
R20230406-3439,R20230404-0836,R20230407-4199,R20230411-1800,R20230407-2096,R20230406-4262,R20230411-5065,R20230411-3045,R20230412-0221,R20230413-****
1、R20230411-3045:计划订单投放成生产订单,会自动把BOM子项物料的一个自定义字段携带到生产用料清单子项明细的一个自定义字段,只需要带标准件,替代件的不携带
原因分析:替代件是通过复制主物料数据修改得来的,固主物料有值的自定义字段替代料也会有,通过python插件在用料清单保存时去掉替代料的二开字段值
def BeginOperationTransaction(e): for item in e.DataEntitys: ppbomEntryData=item["PPBomEntry"] if(ppbomEntryData is not None and len(ppbomEntryData)>0): for entrydata in ppbomEntryData: issueType=str(entrydata["MaterialType"]) if(issueType=='3'): entrydata["F_VGHD_Text3"]=''
1
2
3
4
5
6
7
82、R20230412-0221:销售订单自定义字段没有携带到采购类计划订单,但是携带到了生产类计划订单,按照帖子 (opens new window)这里加了自定义字段后,运算后带的不是销售订单的自定义字段,需要远程检查客户测试环境账套销售订单,创建净需求,计划订单需求模型都配置了,但是带出的项目编码与物料供需明细里面项目编码不是对应的
解决方案:被需求传递数据模型里面的映射给覆盖了,拿掉这里的字段映射就可以了
第14周 (4.03-4.09) 3
R20230330-0207,R20230402-0106,R20230331-0877
第13周 (3.27-4.02) 9
R20230324-0754,R20230323-1341,R20230323-2588,R20230324-2300,R20230327-1327,R20230325-0018,R20230328-2603,R20230328-3306,R20221122-0933
第12周 (3.20-3.26) 13
R20230316-0363,R20230316-2614,R20230315-0508,R20230310-869,R20230316-2605,R20230321-2640,R20230317-2373,R20230321-2149,R20230320-2139,R20230321-1110,R20230322-0473,R20230324-1069,R20230323-2112
第11周 (3.13-3.19) 9
R20230310-2410,R20230311-0969,R20230311-0077,R20230313-3523,R20230314-0026,R20230314-3682,********
1、R20230314-0026:预测单自定义字段批号,mrp运算带到计划订单,都配置好了,不生效。
原因分析:2022-04以前历史版本,各单据上批号字段属性设置为Lot才可以携带。
2、R20230320-2139:组织间需求单批量维护界面如何使值更新事件生效,或者我的确认订单量等于我另一个自定义字段值也可以。
解决方案:批量维护界面字段是动态加载来的,无法配置实体服务规则,通过注册表单插件处理
def DataChanged(e): if(e.Field.Key.upper()=="FFIRMQTY"): this.View.Model.SetValue("F_nsb_FBSDCSL",e.NewValue,e.Row)
1
2
3
4第10周 (3.06-3.12) 8
R20230227-2017,R20230301-3911,R20230301-2274,R20230306-1339,R20230307-0399,R20230302-0435,R20230307-4930,R20230307-1606
1、R20230307-4931:生产用料清单下推直接调拨单有勾选预留关系转移, 直接调拨单审核后预留关系释放(内部测试预留正常)
原因分析:客户库存更新时机为保存时更新库存,预留转移服务不支持保存更新库存转移直接调拨单的预留
第9周 (2.27-3.05) 9
R20230223-0205,R20230223-1969,R20230227-2714,R20230227-4544,R20230227-2766,R20230228-4297,R20230227-4207,R20230228-0789,R20230301-2514
第8周 (2.20-2.26) 10
R20230219-0164,R20230216-0032,R20230220-4009,R20230221-4074,R20230222-0090,R20230221-3466
1、R20230217-0933:松冈科技(浙江)有限公司 计划订单上设置了单据类型,但是投放到生产订单,他按照计划订单列表的选项里默认单据类型来。远程查看客户计划订单到生产订单的投放类型是一对一投放,计划订单上维护的单据类型是[研发试制订单]但是投放到生产订单,单据类型变成了成品订单
原因分析:客户计划订单上单据编号字段长度为200,生产订单上源单编号长度为160,导致生产订单上源单编号与计划订单编号不一致时,找不到计划订单上维护的单据类型,就会是选项参数里的默认类型。
2、20230220-3961: "客户要实现:如果预测单下推的销售订单, 销售订单的单据日期小于预测开始日期时,预测单不允许下推
解决方案:二开思路如下:销售订单选单,二开表单插件在按钮点击事件中,判断按钮标识为选单,则在this.Option中传入销售订单的单据日期,二开预测单到销售订单单据转换插件,如果是选单操作,在OnInSelected事件中拼接过滤条件预测单分录的预测开始日期大于销售订单的单据日期;如果是下推操作,在OnInSelected事件中通过e.SelectedRows中的分录id(按分录下推),单据id(整单下推),获取预测单上的预测开始日期,如果有一行分录小于当前日期,则将e.SelectedRows置为空或直接抛出异常让下推终止。
3、R20230222-1318: 运算毛需求,需要分两个计划方案运算,一个是运算采购件,一个是运算生产件,选单的时候不知道销售订单用哪个计划方案跑过,所以希望运算后把计划方案名称反写到销售订单上,第二次运算就覆盖上次的计划方案名称。
解决方案:二开一个MRP逻辑模型,继承AbstractMrpLogicUnit类,重写OnExecuteLogicUnit方法,在此方法类判断当前运行模式为直接运算模式this.MrpGlobalDataContext.RunMode= Enu_ModelRunMode.KdRunMrp,根据this.MrpGlobalDataContext.ComputeId查询this.MrpGlobalDataContext.T_MRP_COMPUTEDATA表中此次运算的销售订单信息,this.MrpGlobalDataContext.SchemaData(计划方案数据),更新计划方案名称到对应的销售订单。
4、R20230222-3792、根据不同的需求单据来源,投放成不同类型的生产订单;如:销售订单产生的计划订单投放的生产订单类型为“普通生产”,预测单产生的计划订单投放的生产订单类型为“研发生产”。
解决方案:二开提交上操作插件,按照源单类型和投放类型来更新投放单据类型的值。
import clr clr.AddReference('System') clr.AddReference('Kingdee.BOS') clr.AddReference('System.Data') clr.AddReference('Kingdee.BOS.Core') clr.AddReference('Kingdee.BOS.ServiceHelper') clr.AddReference('Kingdee.BOS.DataEntity') from System import * from System.Collections import * from System.Collections.Generic import List from Kingdee.BOS.Log import Logger from Kingdee.BOS.ServiceHelper import * from Kingdee.BOS.DataEntity import * from Kingdee.BOS.Orm.DataEntity import * def OnPreparePropertys(e): e.FieldKeys.Add("FDemandType"); e.FieldKeys.Add("FReleaseBillType"); def BeginOperationTransaction(e): target=List[DynamicObject]() if(e.DataEntitys is not None): for item in e.DataEntitys: srcBillType=str(item["DemandType"]) releaseType=str(item["ReleaseType"]) if(srcBillType=="2" and releaseType=="1"): plsubHead=item["PLSubHead"][0] plsubHead["ReleaseBillType_Id"]="281783bb73244d178d41ce550d877af0" target.Add(item) if(len(target)>0): DBServiceHelper.LoadReferenceObject(this.Context,target.ToArray() , e.DataEntitys[0].DynamicObjectType, True)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31第7周 (2.13-2.19) 8
R20230210-1507,R20230209-0671,R20230210-1453,R20230215-2068,R20230214-3796,R20230211-0911,R20230214-4445
1、R20230214-4446:组织间需求单的冲减记录错乱。组织间需求单138500关联的冲减记录是分步式调入单2211,组织间需求单138885没有冲减记录,但分步式调入单2211关联查询的组织间需求单却是138885。
原因分析:组织间需求单冲减服务的匹配逻辑是:优先匹配预留关系中与该物料存在预留关系的组织间需求单,若预留关系找不到再去找其上游原单。
第6周 (2.6-2.12) 3
R20230208-1335,R20230210-0640,R20230210-xxxx
第5周 (1.30-2.5) 7
R20230116-2353,R20230203-0370,***********
1、R20230202-0403:计划订单需要触发相关字段的值更新,但列表菜单里的提交按钮好像点击事件里没办法触发值更新,单据里的是可以的
解决方案:列表没法触发值更新,客户值更新的目的是计算另一个数量字段的值,可二开提交操作插件,在插件里实现值更新的逻辑,这样表单列表均可触发
2、R20230201-1440:物料供需汇总表,bos中放出选项中冻结列,但设置后H5有作用,客户端不行
原因分析:多表头的冻结列仅在H5端生效,如需客户端和Silverlight端使用,可以“启用单表头模式”参数。由于物料供需汇总表的选项参数不是继承的“账表用户参数模板”,所以也没有"启用单表头模式"这个参数,可以自行在参数界面中增加此参数来启用
3、R20230130-0209:预测单没有参与运算是因为自定义了单据转换,从销售订单下推预测单,预测单的物料的使用组织不是预测组织,在销售订单表头增加了预测组织字段,预测单的预测组织携带销售订单的预测组织,下推下来的物料的使用组织正确了,但是在下推的界面出现了目标组织字段,客户不希望出现这个目标组织字段,麻烦研发老师帮忙看下要怎么处理?
解决方案:客户销售订单上拖的映射下游单据主业务组织字段的是基础资料字段,需要换成组织字段,且上游该字段有值,下推界面就不会显示目标组织
第2周 (1.9-1.15) 2
R20230106-4817,************
第1周 (1.3-1.8) 4
R20230101-0533,R20221226-2034,R20230103-1154,R20230103-2162