2022年提单复盘
# 提单分析
共计563个
第52周(12.19-12.25) 1
第51周(12.12-12.18) 3
R20221209-2337,R20221205-2977
1、xxxxxxxx:计划订单批量维护报错
原因:计划订单元数据中表头某字段外观节点丢失
2、R20221209-2337:客户在生产入库单列表添加了一个预留的操作,调用的是预留或者预留修改的操作名称,现在点击预留就报错。
原因:入库单不能作为供应单据做预留,根据入库单的formid作为条件查预留的需求和供应信息得到一个空对象,所以报错。
3、R20221205-2977:客户这个测试环境里,怎么做低位码计算,T_PLN_LOWESTBOMCODE里一直都是空的,MRP计算会报低位码为空。
原因:因为客户bom层级太多,导致低位码运算超出上限50。低位码运算存储过程中while条件终止,没有往表里插入数据。
第50周(12.05-12.11) 4
R20221201-1922,R20221207-1301,R20221209-0728
1、R20221205-0222:销售订单手工创建预留时,希望计划状态的计划订单可以作为供给,这个能否二开?能二开的话,帮给个二开思路
解决方案:新建一个类继承PLDataPolicy,重写PlanConfirmFilterString属性,判断当前运行状态为预计量运行this.MrpGlobalDataContext.RunMode== Enu_ModelRunMode.KdRunDSData,则将此字符串置空字符串,其他均使用父项的值,复制名称为“MRP_DP_PL_S”的MRP数据模型,修改策略实现类为自己二开的类,复制“MRP_LU_GSD” MRP逻辑模型,替换原本名称为“MRP_LU_GSD” MRP”的数据策略为二开的策略,修改名称为“STD_DS_ALG”的MRP算法模型,替换原本供给数据获取逻辑单元为新复制的MRP逻辑模型。
第49周(11.29-12.04) 3
R20221129-0308,R20221128-3274,R20221202-0446
第48周(11.21-11.28) 2
1、R20221120-0379:户升级到9月补丁,升级报错,需要看下这个报错的原有、有什么影响?End DbScript [PT-146852_K3CloudV7.0_MFG.sql(MFG_DataModel_V8_Patch)] in 1027(HV:0,CHECK:0,RESULT:False,RUN:20.3076831,ERROR) SQL ErrorP_AlterColumn 'T_PLN_RESERVELINKENTRY', 'FID', 'INT', 'NOT NULL', '0011', '0' 统计信息'_dta_stat_1774889640_3_2' 依赖于 列'FID'。 统计信息'_dta_stat_1774889640_2_4' 依赖于 列'FID'。 统计信息'_dta_stat_1774889640_4_3_2' 依赖于 列'FID'。 由于一个或多个对象访问此列,ALTER TABLE ALTER COLUMN FID 失败。
原因:数据库中存在统计信息与更新表结构冲突,需要删除改字段上统计信息
DROP STATISTICS table.statistics_name | view.statistics_name [ ,...n ] --参数 --table | view --其删除统计信息的目标表或索引视图的名称。 表和视图的名称必须符合数据库标识符规则。 可以选择是否指定表或视图所有者名称。 --statistics_name --要删除的统计信息组的名称。 统计信息名称必须符合有关标识符的规则。 来源:https://learn.microsoft.com/zh-cn/sql/t-sql/statements/drop-statistics-transact-sql?source=recommendations&view=sql-server-ver16
1
2
3
4
5
6
72、R20221121-2541:计划订单上计划bom单据体上需求日期随表头"确认修改/采购日期"修改联动逻辑
逻辑:第一次保存后确认修改/采购日期,由于旧的确认修改/采购日期与当前日期相同,第一行物料的偏置期为1,大于当前日期与旧确认修改/采购日期的差值,认为这张单超期了,(超期了或者旧的确认修改/采购日期小于当前日期或者旧完工日期与旧确认修改/采购日期差值小于偏置期)会重新进行BOM展开,第二行物料不在bom展开路径上,所以不会修改需求日期;当修改旧的确认修改/采购日期与当前日期差值大于等于偏置期的时候,就不会进行bom展开,只是对当前计划bom上的分录按照差值来重算需求日期。
第47周(11.14-11.20) 11
R20221110-2466,R20221109-2084,R20221111-1186,R20221111-0209,R20221110-1336,R20221115-3629
1、R20221110-1464:入库材料领用控制,客户希望部分组织不要在生产入库单保存的时候校验,在生产入库单审核的时候才校验。
解决方案:按条件移除保存和提交上的改校验,在审核上添加校验
#保存插件 clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') from Kingdee.BOS import * from Kingdee.BOS.Core import * def OnAddValidators(e): if(len(filter(lambda x:x["StockOrgId_Id"]==100440 or x["StockOrgId_Id"]==100441,e.DataEntities))<=0): vdts = e.Validators; vdt = list(filter(lambda x: x.__class__.__name__ == 'InStockTimeValidator',vdts)); if (len(vdt) > 0): for item in vdt: e.Validators.Remove(item) # 提交插件 clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') from Kingdee.BOS import * from Kingdee.BOS.Core import * def OnPreparePropertys(e): e.FieldKeys.Add("FStockOrgId") def OnAddValidators(e): if(len(filter(lambda x:x["StockOrgId_Id"]==100440 or x["StockOrgId_Id"]==100441,e.DataEntities))<=0): vdts = e.Validators; vdt = list(filter(lambda x: x.__class__.__name__ == 'InStockTimeValidator',vdts)); if (len(vdt) > 0): for item in vdt: e.Validators.Remove(item) #审核插件 import clr clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') clr.AddReference('Kingdee.K3.MFG.PRD.App.ServicePlugIn') from System import DateTime from Kingdee.BOS.Core import * from Kingdee.BOS.Core.Validation import * from Kingdee.K3.MFG.PRD.App.ServicePlugIn import * from Kingdee.K3.MFG.PRD.App.ServicePlugIn.InStock import * from Kingdee.K3.MFG.PRD.App.ServicePlugIn.InStock.Validator import * def OnPreparePropertys(e): e.FieldKeys.Add("FStockOrgId") def OnAddValidators(e): if(len(filter(lambda x:x["StockOrgId_Id"]==100440 or x["StockOrgId_Id"]==100441,e.DataEntities))<=0): inStockTimeValidator=InStockTimeValidator() inStockTimeValidator.EntityKey="FBillHead" inStockTimeValidator.TimingPointString=",Audit" inStockTimeValidator.Option=this.Option e.Validators.Add(inStockTimeValidator)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
532、R20221110-3362:客户希望实现需求生产入库单,配置校验,表体仓库等于报废仓的时候(表体存在多行明细行的情况下),表头字段钉钉单号必录。
解决方案:保存操作上配置"单据合法性校验",表达式如下
#F_SMNF_Text 钉钉单号 len( FEntity )>0 AND len(filter(lambda x:(x.FStockId.FNumber == '400600' OR x.FStockId.FNumber == '000602' OR x.FStockId.FNumber == '000601' OR x.FStockId.FNumber == '000603' OR x.FStockId.FNumber == '000604' OR x.FStockId.FNumber == '100600' OR x.FStockId.FNumber == '200600' OR x. FStockId.FNumber == '300600'), FEntity ))>0 AND (F_SMNF_Text == null OR F_SMNF_Text =='' OR F_SMNF_Text ==' ')
1
2
3
4
5
6
7
8
93、R20221110-0505:委外和生产共用bom,目前希望实现委外用料清单是直接倒冲领料方式的情况下,用料清单上的发料仓库为固定的一个仓库。已告知客户逻辑,领料方式直接倒冲的情况下默认是取bom上的仓库,客户表示领料方式不能改,改了之后会出现领料有异常的情况;bom上的仓库不能改,改完生产用料清单上的仓库也有问题。
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 BeginOperationTransaction(e): target=List[DynamicObject]() for item in e.DataEntitys: ppbomEntryData=item["PPBomEntry"] isAdd=False if(ppbomEntryData is not None and len(ppbomEntryData)>0): for entrydata in ppbomEntryData: issueType=str(entrydata["IssueType"]) if(issueType=='2'): entrydata["StockId_Id"]=147519 isAdd=True if(isAdd): 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
304、R20221117-2928:控制当检验结果是不合格时,缺陷记录那边必须要维护缺陷类型和缺陷原因
解决方案:保存时添加"单据合法性校验",表达式如下
len(filter(lambda x: x. FInspectResult =='2' and (x.FDefectDetail==None or len(x.FDefectDetail)<=0 or len(filter(lambda y: y.FDefectQty ==0 OR y. FDefectTypeId ==None OR y. FDefectResultId ==None,x.FDefectDetail))>0), FEntity) )>0
1
2第46周(11.7-11.13) 12
R20221107-1583,R20221104-3897,R20221104-0333,R20221104-2553,R20221101-4633,R20221109-1978,R20221111-0034,R20221109-2723,R20221110-0391
1、R20221025-1760:部分用料清单上的仓库是物料上自带的仓库,不是车间关联的WIP仓库;主要是用料清单上就错了,错的物料是手工新增的行。
解决方案:对于用料清单保存操作增加校验
import clr clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') from System import DateTime from Kingdee.BOS.Core import * from Kingdee.BOS.Core.Metadata import * from Kingdee.BOS.Core.Metadata.EntityElement import * from Kingdee.BOS.Core.Validation import * from Kingdee.BOS.Log import Logger def OnAddValidators(e): validatePPBomStock=ValidatePPBomStock() validatePPBomStock.EntityKey="FBillHead" validatePPBomStock.AlwaysValidate=True e.Validators.Add(validatePPBomStock) class ValidatePPBomStock(AbstractValidator): def Validate(self,dataEntities,validateContext,ctx): for bill in dataEntities: workShopId=bill.DataEntity["WorkShopId_Id"] if(workShopId != 0): wipStockId=bill.DataEntity["WorkShopId"]["WIPStockId_Id"] entityDatas=bill.DataEntity['PPBomEntry'] for item in entityDatas: issueType=item['IssueType'] if(issueType == '3' or issueType=='4'): stockid=item['StockId_Id'] if(stockid != wipStockId): billId=str(bill["Id"]) seq=item['Seq'] errorInfo=ValidationErrorInfo(" ",billId,bill.DataEntityIndex,bill.RowIndex,billId,"第{0}行分类发料方式为调拨,仓位不等于生产车间线边仓".format(str(seq)),"",ErrorLevel.Error) validateContext.AddError(None,errorInfo)
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
322、R20221103-2227:客户物料清单保存操作上增加了二开插件,导致同步更新失败,去掉就正常了
解决方案:修改客户插件注册方式,同步可以成功了,由于同步操作上包着一个大的事务,在同步的保存插件AfterExecuteOperationTransaction事件中由于大事务没有提交,客户对接第三方系统新开的数据库会话查询出的结果还是修改前的,需要修改二开插件在保存时向中间表中生成数据,第三方系统主动去消费中间表数据来同步第三方系统数据
第45周(10.31-11.6) 16
R20221027-0047,R20221028-3657,R20221029-0222,R20221028-2246,R20221026-4178,R20221031-0420,R20221101-0586,R20221028-3653,R20221031-2117,R20221101-0144,R20221029-0509,R20221101-2201,R20221102-0503,R20221102-4533,R20221103-3128,R20221103-2964
1、R20221102-0503:有部分历史物料,物料名称在列表和单据界面分成了2行显示,复制到excel中也是2行,有什么办法能变成1行吗?在系统中复制该物料,复制后的物料名称只显示1行。
char(9) 水平制表符 char(10)换行键 char(13)回车键 ----备份历史数据 SELECT * INTO T_BD_MATERIAL_LBACK FROM T_BD_MATERIAL_L WHERE CHARINDEX(CHAR(13),FNAME)>0 OR CHARINDEX(CHAR(10),FNAME)>0 ---修复数据 MERGE INTO T_BD_MATERIAL_L T1 USING (SELECT FPKID,FMATERIALID,FNAME FROM T_BD_MATERIAL_L WHERE CHARINDEX(CHAR(13),FNAME)>0 OR CHARINDEX(CHAR(10),FNAME)>0) T2 ON (T2.FPKID=T1.FPKID) WHEN MATCHED THEN UPDATE SET T1.FNAME=REPLACE(T2.FNAME, CHAR(13)+CHAR(10), ' ');
1
2
3
4
5
6
7
8
9
10
11第44周(10.24-10.30) 15
R20221021-1785,R20221019-2424,R20221020-2737,R20221020-2450,R20221022-0739,R20221025-0366,R20221022-0009,R20221022-0788,R20221019-3500,R20221024-1261,R20221024-4166,R20221025-2989
1、R20221020-0720:在BOS中将生产订单的BOM版本的功能特性勾选了允许批量填充,但是在生产订单中相同的物料,在BOM版本上点击批量填充没有成功。
原因:代码里有控制,bom版本和单位不可以批量填充。
2、R20221018-4294:部分BOM进行物料清单正查时,若勾选【是否显示替代料】,则刷新不出数据,不勾选【是否显示替代料】的话则可以刷新出数据。怀疑部分替代料数据异常导致过滤不出。
原因: bom部分分录中基本单位为空,导致展开时中断了。
3、R20221027-2030:生产日排产,选择两个产品,或者两个工单进行排产,系统会卡死。
原因:客户工作日历只设置到了2022/11/1,排产超出工作日历,导致这里死循环了。
第43周(10.17-10.23) 15
R20221014-1658,R20221012-3795,R20221013-2088,R20221013-3439,R20221007-0374,R20221014-1741,R20221017-1794,R20221014-0862,R20221012-1908,R20221019-1784,R20221018-1182,R20221018-4311
1、R20221013-0236:生产日排产以后,临时改了日产量,又不想去修改产线日产量;生产日排产的时候,不按产线日产量上的来,要临时按另外一个产量来排
解决方案:放开日产量的锁定性,并添加日产量计算基本单位日产量的值更新事件,排产可按修改后的基本单位日产量来排产。
2、R20221018-2432:委外用料清单下推生成领料单时报错,提示:扫描记录提交失败,错误信息:生成ERP直接领料单失败。数据库中已存在名为#TM_MFG_FID的对象。
解决方案:参数设置,业务流程中取消勾选"单据转化部分携带失败时返回提示信息"
3、 R20221020-3249:销售订单新增数量字段【已排产数量】,希望生产订单审核时将生产订单的【数量】字段反写销售订单的【已排产数量】,实际上想在销售订单上体现已审核的生产订单的数量。与排产无关。销售订单有关联采购/生产数量,这个数量也是保存时反写的,不能满足客户的需求。客户通过反写规则设置,只能保存时反写该字段,审核时无法反写,要怎么配置才可以审核时反写。
解决方案:由于生产订单审核操作取消了平台事务,反写时机为审核的反写不了,审核操作还会调用生产订单报错,所以配置反写时机为保存条件单据状态为已审核,就可以在审核上反写了,缺陷是反审核无法清空之前反写,只能在单据删除的时候清除。
第42周(10.10-10.16) 8
R20221003-0034,R20221011-0073,R20221011-0698,R20221011-2128,R20221009-3507,R20221010-2632,R20221013-0423,R20221008-2446
1、R20221011-2128:客户要想在生产领料单上实现修改辅单位重算实发
2、R20221011-0698:工程数据模块工程变更单性能问题;客户一次性变更多个BOM,同时勾选了禁用旧版升级新版本,生效时较慢且会存在部分新版本BOM生成了但是审核中。
解决方案:生效超时,导致新版bom做了保存提交操作,但是后面审核,修改ecn变更状态等过程未执行,数据库索引碎片化严重,数据库重建索引即可
第40周(9.26-9.30) 21
R20220923-0601,R20220921-3477,R20220922-3510,R20220922-2535,R20220916-3568,R20220923-1390,R20220924-0248,R20220926-0979,R20220926-3225,R20220927-4824,R20220927-1027,R20220922-4115,R20220926-0570,R20220928-3361,R20220926-0834,R20220919-0514,R20220927-0574,R20220929-0299, R20220929-1875,R20220930-1814,R20220930-1767
- R20220923-1390:生产用料清单变更列表点进去直接报错:关键字"AS"附近存在语法错误
原因分析:生产订单行镜像扩展了未入库数量字段,该字段在变更单中显示,由于变更单中生产订单行镜像字段是虚字段,所以报错了,取消未入库数量在列表上显示即可。
- R20220924-0248:账套由标准版升级到企业版之后,单据类型生产订单的(组织委托交工-直接入库)参数设置,组织间受托加工无法勾选,是灰色的。新增的单据类型可以勾选。
解决方案:通过如下脚本将该字段解锁,修改勾选后移除脚本
def AfterBindData(e): this.View.StyleManager.SetEnabled("FIsEntrust", "locked", True)
1
2- R20220926-3225:8.0.20220811,102组织生产入库领料查询,引出报错:已添加了具有相同键的项,101组织引出正常。
原因分析:客户生产订单主产品组别有重复的
- R20220926-0570:生产订单下推生产领料单,想实现,货主类型=供应商时,下推的领料单能够自动勾上VMI业务的标识。
def AfterConvert(e): entryData=e.Result.FindByEntityKey('FEntity') if(entryData is not None and len(entryData)>0): for item in entryData: if(item['OwnerTypeId']=='BD_Supplier'): item['EntryVmiBusiness']=True
1
2
3
4
5
6第39周(9.19-9.25) 16
R20220916-3623,R20220916-0467,R20220919-0780,R20220915-0744,R20220919-0107,R20220919-1045,R20220919-3733,R20220920-1207,R20220920-1216,R20220920-3060,R20220921-2201,R20220920-3119,R20220919-4252,R20220923-0570
- R20220919-0780:简单生产领料单保存提示超出最小发料批量。二开流程生产订单——简单生产入库——简单生产领料,入库数量231,领料的材料31行最多只能领232,目前想领237,提示超过最小发料批量,修改了物料、物料清单和生产用料清单里该子项的超发控制为允许超额,都没有效果。
原因:简单生产领料单对应校验器有问题,目前是将bom展开结果表中的分录id与简单生产入库单分录内码进行关联找对应bom分录上的超发控制方式,这里关联错了导致到找的bom分录中超发控制方式不对。
2。 R20220922-3468:生产订单汇报数量200个,合格数量200个,下推入库单客户反馈自动带出来的数量是32个,后面客户又补做了168数量的入库单,与客户解释正常生产汇报第一次下推生产入库数量带的就是生产汇报的合格数量,这个可能是客户手工修改了实收数量,客户说没有改过,建议给客户做保存校验,当实收数量不等于应收数量的时候,生产入库单不能保存,后续确实可以重现问题再分析,客户又不同意做,要找这个入库单为什么入库数量是32个,麻烦老师帮忙看下是否可以通过后台数据看出这个单据是否手工修改过实收数量?
解决方案:目前没有记录单据刚下推下来的数据,通过如下脚本添加记录,方便后续判断是否人为修改
import clr from Kingdee.BOS.Log import * def AfterConvert(e): entityDatas = e.Result.FindByEntityKey("FEntity") if(entityDatas is not None and len(entityDatas)>0): strRealQty='' for item in entityDatas: currRealQty=item['RealQty'] strRealQty=str(currRealQty)+"||" Logger.Error("InstockRealQtyLog",strRealQty,None)
1
2
3
4
5
6
7
8
9
10第38周(9.12-9.18) 10
R20220908-4153,R20220906-2427,R20220910-0153,R20220913-2732,R20220914-2031,R20220914-0008,R20220907-4085,R20220916-2075
- R20220912-0191:将批号必填在保存操作的校验去掉,移到审核操作,于是做了已下步骤(生产入库单为例):1、保存操作注册python插件,移除批号和辅助属性必录校验2、保存操作的服务端服务“保存并更新批号主档”勾去掉3、审核操作添加校验规则,物料启用批号,则批号必填4、审核操作服务端服务添加“保存并更新批号主档”,保持与保存操作的服务配置一样实现的效果,保存控制已经去掉,审核可以控制必录,但是审核后没有生成批号主档。问:是何缘由导致没有生成批号主档?
原因:保存更新批号主档在审核操作上不会执行,将这个服务还是配到保存上面,因为在录入批号之后怎么都要执行保存一下才能审核,只是将批号的必录移到审核上就可以了。
- R20220914-2573:选择工程变更单 ECN2209160003 点模拟生效,提示:没有数据需要保存。点生效是可以正常执行的。
原因:是使用单据编号来获取待保存的模拟物料清单,之前一次改动将同时勾选版本升级和更新用料清单的话会把源bom版本清空,导致获取不到需要保存的模拟物料清单了。
第37周(9.05-9.11) 19
R20220902-1484,R20220831-3885,R20220903-0795,R20220901-4143,R20220831-1012,R20220905-0203,R20220905-1161,R20220905-0456,R20220901-4475,R20220823-1178,R20220906-2421,R20220903-1158,R20220907-0771,R20220907-1969,R20220907-4705,R20220907-3969, R20220907-4017
- R20220901-3511:生产汇报单下推生产入库单,想要进行无限次超收。
解决方案:设置生产汇报单->生产入库单 ,生产订单->生产入库单相关反写数量字段的反写规则允许超额,生产汇报单到生产入库单单据转化选单条件策略中移除对数据做差运算的条件,继承原本单据转化插件(Report2InstockItemConvert),空实现重写OnGetSourceData()事件,不调用基类方法,然后移除原本单据转化插件。
- R20220903-0455:客户工程变更单ECN2207130001进行旧料清理刷新不出来数据,远程查看物料启用了ECN,物料清单的生效日期是在旧料清理的日期范围是,全选了库存状态,依旧刷不出数据?
原因:对应的工程变更单生成的替代料在8.18 10:01使用旧料清理删除了,在8.18 10:18使用plm同步bom又给加了一遍这个替代料,此替代料分录与工程变更单无关了,所以旧料清理筛选不出来数据。
第36周(8.29-9.04) 16
R20220825-1545,R20220825-3466,R20220827-0014,R20220825-3359,R20220829-1315,R20220827-0961,R20220829-4287,R20220825-2893,R20220830-1115,R20220901-2161,R20220826-1110,R20220830-3736,R20220901-0701
- R20220827-0762:生产订单保存调用aip接口, 如果联副产品没有勾选倒冲领料会报错,异常信息.未将对象引用设置到对象的实例。
解决方案:需要调整json格式,在联副产品未勾选倒冲领料的情况下,联副产品分录FParentRowId需要移到FIsBackFlush前面,不然分录行还没映射FParentRowId的值。
- R20220830-0495:委外订单下推了采购订单,后续对委外用料清单反审核修改,子项物料资料上设置了默认的发料方式是调拨倒冲,但是输入物料编码后,没有自动带出供应商仓库。
原因:代码中填写的供应商仓库的值被这个实体服务规则给覆盖了,物料上库存和生产页签仓库都是空,所以委外用料清单中也是空。
第35周(8.22-8.28) 12
R20220819-1494,R20220819-0208,R20220810-2500,R20220819-2993,R20220822-2414, R20220819-2858,R20220823-1855,R20220825-1291,R20220825-2714
- R20220822-2119:客户自定义二开了生产用料清单---生产订单的单据转换,在生产订单表单插件、列表插件挂了一些自定义的插件,目前一系列二开动作完成之后,发现生产订单生成下级生产订单这个功能可以正常使用,但是生成的下级生产订单,通过原生产订单下查时查不到了,下级上查是可以查到的。
原因:二开用料清单到生产订单单据转化,我们生产订单下查下推会获取原单是生产用料清单的单据转化加进来,将用料清单及其下游单据ID信息维护成第三方选单,下推的源目标单路径,这个数据包中出现用料清单到生产订单的单据路径,导致下推出错,通过以下python插件移除二开单据产生的影响。
import clr import sys import System clr.AddReference('System') clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') clr.AddReference("mscorlib") from System import * from System.Collections import * from System.Collections.Generic import * from Kingdee.BOS import * from Kingdee.BOS.Core.DynamicForm import * from Kingdee.BOS.Core.Metadata.ConvertElement import ConvertBillElement def OnShowConvertOpForm(e): if (e.ConvertOperation == FormOperationEnum.Push or e.ConvertOperation == FormOperationEnum.TrackDown): lstConvertBills = e.Bills if(lstConvertBills is not None): newConvertBills = List[ConvertBillElement]() for item in lstConvertBills: formId=item.FormID.upper() if(formId=="PRD_MO"): formIdCount=len(filter(lambda x:x.FormID.upper()==formId,newConvertBills)) if(formIdCount!=0): continue newConvertBills.Add(item) e.Bills=newConvertBills if(e.ReplaceRelations is not None): removeItems=filter(lambda x:x.SourceFormId.upper()=='PRD_PPBOM' and x.TargetFormId.upper()=='PRD_MO',e.ReplaceRelations) if(removeItems is not None): removeItem=removeItems[0] e.ReplaceRelations.Remove(removeItem)
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
32
33- R20220815-0876:生产用料清单,车间是车间五,但是下游做过三个变更单,其中两个是正常的,但是有一个新增类型的生产用料清单变更单上面的明细生产车间字段跟用料清单上面的生产车间字段不一致,是车间二。
解决方案:在变更单保存上添加如下校验。
import clr clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') clr.AddReference('Kingdee.BOS.App') clr.AddReference('Kingdee.BOS.DataEntity') from System import DateTime from Kingdee.BOS.Core import * from Kingdee.BOS.Core.Metadata import * from Kingdee.BOS.Core.Metadata.EntityElement import * from Kingdee.BOS.Core.Validation import * from Kingdee.BOS.Util import * from Kingdee.BOS.App.Data import * from System.Collections import * from System.Collections.Generic import * from Kingdee.BOS.Orm.DataEntity import * def OnAddValidators(e): validateWorkShop=ValidateWorkShop() validateWorkShop.EntityKey="FBillHead" validateWorkShop.AlwaysValidate=True e.Validators.Add(validateWorkShop) class ValidateWorkShop(AbstractValidator): def Validate(self,dataEntities,validateContext,ctx): for bill in dataEntities: billNo=bill.BillNo entityData=bill.DataEntity["PPBomEntry"] if(entityData is not None): for item in entityData: ppbomId=item['PPBOMId'] workShopId=item['WorkshopID_Id'] seq=item['Seq'] executeSql=""" SELECT T1.FWORKSHOPID FROM T_PRD_PPBOM T1 WHERE T1.FID = {0}""".format(ppbomId) queryInfo=DBUtils.ExecuteDynamicObject(this.Context,executeSql) if(queryInfo is not None and len(queryInfo)>0): ppbomWorkShopId=queryInfo[0]['FWORKSHOPID'] if(ppbomWorkShopId != workShopId): billId=str(bill["Id"]) msg='单据编号为{0}的用料清单变更单第{1}行生产车间与用料清单上生产车间不一致!'.format(billNo,str(seq)) errorInfo=ValidationErrorInfo(" ",billId,bill.DataEntityIndex,bill.RowIndex,billId,msg,"",ErrorLevel.Error) validateContext.AddError(None,errorInfo)
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
32
33
34
35
36
37
38
39
40
41
42- R20220824-0585:生产订单套打添加二维码,显示产品的详细信息。
解决方案:套打模板上添加一个条形码,设置编码为Qrcode,绑定一个字段值。在生产订单保存时将需要把绑定到二维码的值赋值。
# coding = utf-8 def BeginOperationTransaction(e): if(e.DataEntitys is not None): for item in e.DataEntitys: treeEntity=item['TreeEntity'] if(treeEntity is not None ): for row in treeEntity: remarks=row['F_ora_Remarks'] if(remarks is not None and len(remarks)>0): continue materialName=row['MaterialId']['Name'][2052] createDate=str(item['Date'])[0:11] comName='******责任公司' lotText=row['Lot_Text'] WarrantyUnit=row['MaterialId']['MaterialStock'][0]['ExpUnit'] if(WarrantyUnit=='D'): WarrantyUnit='天' elif(WarrantyUnit=='M'): WarrantyUnit='个月' elif(WarrantyUnit=='Y'): WarrantyUnit='年' WarrantyNum=row['MaterialId']['MaterialStock'][0]['ExpPeriod'] weight=str(row['F_ora_Decimal'])+'KG' Warranty=str(WarrantyNum)+WarrantyUnit value=r"""公司名称: {0} 物料名称: {1} 批次号: {2} 生产日期: {3} 保质期: {4} 净含量: {5}""".format(comName,materialName,lotText,createDate,Warranty,weight) row['F_ora_Remarks']=value
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第34周(8.15-8.21) 14
R20220815-0012,R20220809-0474,R20220812-2817,R20220810-4514,R20220811-2243,R20220705-3121,R20220811-1959,R20220817-1546,R20220815-0045,R20220809-3702,R20220811-3914,R20220816-1987,R20220818-4039
- R20220811-0566:生产订单保存报错数量字段值超出范围
原因分析:客户做生成下级订单操作,二开了bom展开到生成订单的单据转化规则,对物料相同的分录进行了合并,导致生成的生成订单分录部分会出现一行分录对应多条link记录的问题,订单保存的时候会对多行link分录的数据按照子项明细中的数量从上到下重新分配计算数量,导致link表中的数据会越来越大,超出数据库定义的类型范围23,10。
第33周(8.08-8.14) 13
R20220803-1247,R20220729-3395,R20220802-3175,R20220801-2788,R20220803-2103,R20220804-3491,R20220808-2667,R20220808-1549,R20220805-2282,R20220810-1317,R20220810-3424,R20220812-2610,R20220805-3108
- R20220810-1317:生产订单自动结案后退库没有将业务状态转换,导致7月入库单无法进行成本计算成本为0。
原因分析:在保存生产退库单时已经关账,导致结案状态反执行至开工失败。
第32周(8.01-8.07) 12
R20220729-4470,R20220728-0685,R20220729-3316,R20220731-0131,R20220728-2607,R20220728-1997,R20220730-0881,R20220802-3036
- R20220801-1680:7.3版本生产订单和委外订单点击下查报错"已添加相同的键的项"
解决方案:在7.5有修复这里,生产订单下查我们会往_bills中添加生产用料清单和生产入库单对应的单据转化规则,他们中会出现与生产订单目标单一致的单据转化,_bills中会存在重复的目标单单据转化规则。
# 使用下面python对e.Bills去重 import clr import sys import System clr.AddReference('System') clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') clr.AddReference("mscorlib") from System import * from System.Collections import * from System.Collections.Generic import * from Kingdee.BOS import * from Kingdee.BOS.Core.DynamicForm import * from Kingdee.BOS.Core.Metadata.ConvertElement import ConvertBillElement def OnShowConvertOpForm(e): if (e.ConvertOperation == FormOperationEnum.Push or e.ConvertOperation == FormOperationEnum.TrackDown): lstConvertBills = e.Bills if(lstConvertBills is not None): newConvertBills = List[ConvertBillElement]() for item in lstConvertBills: formId=item.FormID.upper() formIdCount=len(filter(lambda x:x.FormID.upper()==formId,newConvertBills)) if(formIdCount!=0): continue newConvertBills.Add(item) e.Bills=newConvertBills
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- R20220729-0637:BOM版本51560023_V1.0子项物料11230226的生效日期为2021.10.29日,在物料清单反查需求日期为2022.7.29查询数据为空,修改需求日期为2022.6.10日查询可以显示数据。BOM版本里的其他子项物料,根据需求日期2022.7.29进行查询也显示为空。
原因:存在分母为0的暂存bom,导致反查中断了。
- R20220730-1098:工程变更单需要设置实体服务规则,当符合某些条件的时候,将发料方式修改为“调拨倒冲”,但是不生效。客户目前在物料清单配置同样的实体服务规则是可以生效的。
原因:工程变更单修改/失效/删除子项选回来分录时只能触发类型为初始化的实体服务规则,值更新的实体服务规则无法触发
第31周(7.25-7.31) 14
R20220723-0703,R20220719-2891,R20220719-1896,R20220725-3610,R20220722-2424,R20220722-1821,R20220726-0578,R20220722-1306,R20220715-1663,R20220718-1805,R20220727-2649,R20220727-1424,R20220727-2768
- R20220722-3615:半成品BOM 反审核时,希望能够把用到了这个BOM的父项BOM提示出来。
解决方案:物料清单反审核添加操作插件,增加校验器在校验器中根据当前bom反查获取反查结果,获取反查结果中所有的bom版本,如果不为空则进行交互式提示。交互式提示示例 (opens new window)
第30周(7.18-7.24) 19
R20220706-1809,R20220711-1752,R20220714-3527,R20220715-0770,R20220716-0783,R20220718-2044,R20220713-1367,R20220717-0203,R20220715-2037,R20220720-0597,R20220720-0479,R20220720-1653
- R20220711-3473:二开单据转化下推的生产补料单,未录入生产订单编号时表头生产组织需要可修改。
原因及解决方案:标准产品在表单插件BeforeBindData事件中判断明细中物料不为空就锁定生产组织和发料组织,但是实体服务规则配的的生产订单分录内码不为0才锁定,这里两个地方判断有点出入,通过添加python脚本来在打开单据中根据分录中是否存在生产订单分录内码重置生产组织的锁定性。
def BeforeBindData(e): entityData=this.View.Model.DataObject['Entity'] if(entityData is not None): result=True for item in entityData: moentryId=int(item['MoentryId']) if(moentryId!=0): result=False break this.View.GetFieldEditor('FStockOrgId',-1).Enabled=result this.View.GetFieldEditor('FPrdOrgId',-1).Enabled=result
1
2
3
4
5
6
7
8
9
10
11- R20220719-0301:想要实现针对这个父项维护了物料清单之后,版本是1.0,如果启用了工程变更,那么就只能通过工程变更来升级bom版本,不能在手工去新增这个父项物料的其他bom版本,也不能通过引入功能引入这个产品编码的其他BOM版本,是否可以二开实现,BOM保存能控制,但是不影响ECN的变更生效。
解决方案:二开物料清单保存插件,增加校验器校验当前Option中是否存在标识为"IsECNCall"为true的参数,如果存在表示工程变更单保存物料清单,如果不存在则其他方式保存,判断当前保存数据父项物料是否启用ECN,如果启用,判断数据库中是否已存在除此bom以外的父项物料为当前物料的bom,不存在正常保存,存在抛出提示信息“此父项物料已存在其他版本物料清单”。
- R20220719-1586:客户想要实现:生产订单下推了生产领料单,领料单未审核,就需要直接做生产退料单且不报错,现在测试是会报错的,"关联的领料单未审核" 。
解决方案:可以通过python脚本注册到生产退料单保存操作上移除对生产领料单状态检查的校验;但是领料单未审核的话没有写用料清单上已领数量,生产退料单反写用料清单中退料选单数量会因为超额校验而保存失败。
clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') from Kingdee.BOS import * from Kingdee.BOS.Core import * def OnAddValidators(e): vdts = e.Validators; vdt = list(filter(lambda x: x.__class__.__name__ == 'PickValidator',vdts)); if (len(vdt) > 0): for item in vdt: e.Validators.Remove(item)
1
2
3
4
5
6
7
8
9
10
11- R20220712-1748:客户问题:A 物料库存情况 30pcs(a仓) 60pcs(b仓),做超耗单A 50pcs 一行,此时点击库存查询,选中 a,b仓返回数据,此时单子会变成两行 1行: 消耗数量:50 基本单位数量:30 主库存基本50 仓库:a仓 2行:消耗数量:50 基本单位数量:20 主库存基本50 仓库:b仓 导致委外超耗单数量与物料收发明细表不一致。
解决方案:库存查询选择多行回来会通过复制行来新增分录,复制消耗数量的时候触发实体服务规则算出主库存基本单位数量,基本单位数量从即时库存带回来,此处通过基本单位数量添加值更新事件重算一下消耗数量和主库存数量、主库存基本数量等字段的值。
- R20220718-1398:工程变更单选择按指定日期变更,修改物料数量后,物料在BOM中新增了变更行,原行设置了失效,但再次变更时,前面变更物料行却还可以选到,这样容易错误的再选择已失效行,再次变更,能不能设置已失效的,全部显示红色。
# 添加列表插件根据失效日期与当前日期比较设置颜色 import clr clr.AddReference('System') clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') clr.AddReference('System.Drawing') clr.AddReference('System.Collections') from System import * from System.Collections import * from System.Collections.Generic import * from Kingdee.BOS import * from Kingdee.BOS.Core import * from Kingdee.BOS.Core.Metadata import FormatCondition from System.Drawing import * def OnFormatRowConditions(args): if(args.DataRow.ColumnContains('FEXPIREDATE')): if(args.DataRow['FEXPIREDATE']<DateTime.Now): fc = FormatCondition() fc.BackColor = ColorTranslator.ToHtml(Color.Purple) args.FormatConditions.Add(fc) # 增加表单插件设置单据体中失效日期大于当天的添加背景颜色 import clr import sys import System clr.AddReference('System') clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') clr.AddReference('Kingdee.BOS.Web') clr.AddReference("mscorlib") from System import * from System.Collections import * from System.Collections.Generic import * from Kingdee.BOS import * from Kingdee.BOS.Util import * from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import EntryGrid def AfterBindData(e): SetColor() def AfterDoOperation(e): operationKey=e.Operation.Operation.upper() if(operationKey=='SAVE' or operationKey=='SUBMIT' or operationKey=='AUDIT'): SetColor() def SetColor(): entityCollection = this.View.Model.DataObject['TreeEntity'] if(entityCollection is not None): colors = List[KeyValuePair[int,String]]() nowTime = DateTime.Now for item in entityCollection: expireDate = item['EXPIREDATE'] if (expireDate < nowTime): rowIndex = entityCollection.IndexOf(item) keyvalues=KeyValuePair[int,String](rowIndex,'#FFFFFF00') colors.Add(keyvalues) if(ListUtils.IsEmpty(colors)!=True): grid = this.View.GetControl[EntryGrid]('FTreeEntity') grid.SetRowBackcolor(colors)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63- R20220719-3003:物料清单附件列表中的附件,可以在使用此物料清单的生产用料清单的附件列表中查看。
解决方案:在用料清单保存的时候异步去根据用料清单上的bom信息先查询对应的附件ID信息,然后调用平台附件明细的保存接口新增一份文件已存在于文件服务器中的用料清单附件记录(文件信息都不变,只是修改一下附件明细表中的FBILLTYPE,FINTERID,FBILLNO与用料清单相关的信息),将bom上的附件保存到使用此bom的用料清单中。
- R20220720-2820:客户是环境是WIN7,使用星空时,当生产订单缩小时,会卡死无法操作,销售订单缩小就可以正常操作。
解决方案:将单据头Tab页签和页签控件中Tab页签上的横向/纵向滚动条设置为禁用
第29周(7.11-7.17) 11
R20220706-0363,R20220708-3004,R20220706-3159,R20220711-0495,R20220708-3589,R20220705-3481,R20220712-2862
- R20220708-1736:能否实现当物料属性为自制时,则联动默认勾上启用BOM版本与影响出库成本?
解决方案:需要二开插件再初始化的时候代码写实体服务规则,注册二开实体服务规则需要在标准插件实体服务规则(通过物料属性变化修改库存属性BOM版本)之后来实现。
增加一个字段,物料属性变化修改增加字段的值,通过增加字段触发实体服务规则去更新库存维度实现不了,物料属性发生变化更新自定义字段的触发时机在我们标准产品代码实现的实体服务规则之前,依然会被标准产品代码逻辑覆盖。- R20220708-0265:已开工的生产订单,不能修改附件,如何设置可以修改已开工的生产订单的附件。
解决方案:附件明细中如果是修改状态不允许编辑文件,与生产订单行状态无关,这是平台附件明细插件中写死的,可以删除重新上传,生产订单审核后无法新增附件,在bos中修改附件菜单控制,已审核状态下不勾选新增即可在生产订单已审核状态添加附件。
- R20220708-1800:客户进行生产订单下推补料的时候,点击库存查询返回批号和仓库后,生产订单编号不会自动携带只有第一行有,查看库存查询按钮上没有做别的操作,单据二开麻烦老师帮忙看下。
解决方案:客户修改了生产订单编号的输入顺序在物料编码前面,导致实体服务规则给物料清单赋值的时候将生产订单编号清空了。
- R20220711-1218:调用BOM清单正查的API中,需求时间查询与物料清单的有效清单条件不符合,出现错误的结果。通过加大失效日期,可以查出对应的数据。
List<DynamicObject> results = BomQueryServiceHelper.GetBomQueryForwardResult(ctx, dynamicObjectList, memBomExpandOption);
1解决方案:客户bom展开源数据包中需求日期字段值不正确,bom展开源数据包中的需求日期需要与memBomExpandOption中需求日期保持一致。
第28周(7.4-7.10) 13
R20220702-1095,R20220628-4250,R20220702-0247,R20220630-4472,R20220704-0919,R20220630-3763,R20220705-0426,R20220705-3266,R20220706-0927,R20220704-3978,R20220705-3338,R20220706-3425,R20220706-0183
- R20220705-0426:想要一个表有关简单生产入库跟简单生产退库的,把他俩合在一块,数量就是入库为正数,退库为负数。
解决方案:二开直接sql账表,通过如下sql取数
select t1.FBILLNO as JDSCRKDNO,T2.FMATERIALID,T5.FNUMBER,T2.FBaseRealQty AS JCDWSHSL,t4.FBILLNO,(t3.FBaseOutQty * -1) as JBDWSTSL from T_SP_INSTOCK t1 inner join T_SP_INSTOCKENTRY t2 on t1.FID=t2.FID INNER JOIN T_BD_MATERIAL T5 ON T5.FMATERIALID=T2.FMATERIALID left join T_SP_OUTSTOCKENTRY t3 on t3.FMATERIALID=t2.FMATERIALID inner join T_SP_OUTSTOCK t4 on t3.FID=t4.FID where t2.FMATERIALID = #FMATERIALID# ---关键字段,在过滤界面可按此字段进行过滤
1
2
3
4
5
6
7- R20220706-0927:自定义单据输入物料编码和包材bom后,包材页签会带出子项物料的信息,但是保存后,带出信息和包材bom中的不对,查数据库单据头fid与单据体fid对不上。
原因:客户在对应表FID上添加了标识种子和标识增量,导致生成的值和系统种子表中获取的FID不一致,分录数据上FID为种子表中申请的值,主表中FID在插入时在数据库层面因为标识种子重新生成了值。
- R20220706-3425:6月份补丁,生产订单领料明细表二开添加用料清单表头或表体字段。
解决方案:在bos中修改对应报表的SQL脚本,目前临时表中已存在用料清单分录ID,通过用料清单分录ID关联分录表。
第27周(6.27-7.3) 7
R20220623-3051,R20220621-2418,R20220622-2113,R20220628-2562,R20220625-0718,R20220627-1037,R20220630-0926
第26周(6.20-6.26) 12
R20220615-3076,R20220617-3438,R20220613-3267,R20220620-0570,R20220617-4248,R20220610-2042,R20220617-2258,R20220616-3924,R20220617-0249,R20220621-3175
- R20220616-3020:根据工序计划生成领料单以后,如果领料单里有两个仓库,点击分仓领料他可以生产两张生产领料单。如果领料单里有两个以上的仓库,点击分仓领料就没有反应,生不成对应的单据。
原因:拆分的领料单保存时被预计可发量校验给拦住了,这里那个交互式提示抛不出来,将领料单生预计可发量的校验改到了提交上面。
- R20220619-0203:生产订单自动下推生产入库单,二开插件:调用单据转换规则 达到自动下推功能,写了审核后操作插件出现问题:指定了上游单据的单据体行,没达到效果,目的是指定行下推,实际成了整单下推。
原因:ListSelectedRow中row.EntryEntityKey没有赋值,按分录下推需要对改属性赋值为上游单据单据体标识。
第25周(6.13-6.19) 15
R20220609-1032,R20220609-1817,R20220609-1223,R20220607-0006,R20220324-3136,R20220609-4100,R20220613-2819,R20220615-3612,R20220613-2310,R20220611-1131,R20220615-1473
- R20220611-0710:委外用料清单 若是直接增加委外订单下达后 修改日期 有时间,若是通过计划订单投放委外订单 委外用料清单的修改日期是空的,请问如何配置下有日期?客户想投放后可以自动更新用料清单的修改时间
原因:计划订单投放通过单据转化生成下游单据,返回数据包不包含修改人修改时间的值,保存不调用平台统一单据保存操作,保存操作内部自动为这两个字段赋值的逻辑也用不到,通过二开单据转化,为这两个字段赋值。
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 Kingdee.BOS.Log import Logger from Kingdee.BOS.ServiceHelper import * from Kingdee.BOS.DataEntity import * from Kingdee.BOS.Orm.DataEntity import * def OnAfterConvertBusinessService(e): entityDatas=e.TargetExtendedDataEntities.FindByEntityKey('FBillHead') if(entityDatas is not None): for item in entityDatas: item['ModifierId_Id']=item['CreatorId_Id'] item['ModifierId']=item['CreatorId'] item['ModifyDate']=item['CreateDate']
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21R20220606-4370:生产用料清单的辅助属性字段设置固定列维度时,新增物料辅助属性不可录入,但是保存退出后重新打开又可以录入了。
R20220608-4252:客户在物料分组字段做关于存货类别的值更新事件,点击过滤选择无问题,复制单据报错执行值更新失败。
解决方案:单据复制操作不触发实体服务规则,在AfterDoOperation()事件中复制操作,主动触发对应的字段的值更新事件。this.View.InvokeFieldUpdateService("FMaterialGroup", 0);
第24周(6.06-6.12) 9
R20220606-0293,R20220528-0271,R20220607-2258,R20220607-2217,R20220530-0412,R20220608-3228,R20220608-0875
- R20220607-1219:在物料列表引出不修改数据,重新覆盖引入后报错。未将对象引用至实例。
解决方案:勾上了物料分类的允许引入引出,这个维度字段不支持引入并且已经弃用,模板中有这个字段引入的时候导致报错了。
- R20220605-0720:在仓库字段做了一个值更新事件,辅助属性=一个值,在其他入库单上设置能够成功,但在生产入库单上设置提示报错。
解决方案:报错是因为辅助属性数据包为null,.ActiveObject报错,在触发这个事件之前配置实体服务规则,设置弹性域的缺省值。
第23周(5.30-6.05) 9
R20220528-0508,R20220528-0005,R20220527-3584,R20220527-3967,R20220530-3610,R20220530-3720,R20220531-0369
- R20220525-3643:创建组织使用 批量上传物料图片功能后 直接提交审核物料,由于没有做保存操作无法触发字段值同步分配更新到下级组织,客户需实现提交时触发基础资料同步更新下级组织数据。
解决方案:物料图片导入直接update物料图片字段的值,不调用标准保存接口,不会触发基础资料同步,但是会根据基础资料控制策略中图片(文件服务器)字段的控制方式,如果是携带的话会将对应组织的图片字段更新与导入图片一致, 这个只支持标准产品字段 FImageFileServer,客户二开的图片文件服务字段不支持。
- R20220526-1444:希望实现将物料清单的单据头的文本字段映射到用料清单的单据头中,并可以在用料清单中修改该字段
解决方案:通过插件在首次保存时赋值
import clr clr.AddReference('Kingdee.BOS.App') from Kingdee.BOS.App.Data import * from Kingdee.BOS.Log import Logger def BeforeDoSaveExecute(e): if(e.DataEntities!=None): for dataEntity in e.DataEntities: Id=int(dataEntity["Id"]) if(Id==0): bomInfo=dataEntity['FBOMID'] if(bomInfo!=None): largetext=bomInfo['F_ora_LargeText'] if(largetext != None): dataEntity['F_ora_LargeText']=largetext
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17第22周(5.23-5.29) 14
R20220520-2790,R20220518-0375,R20220519-1411,R20220519-1820,R20220520-3433,R20220520-2757,R20220518-2415,R20220519-3295,R20220519-2778,R20220521-0260,R20220524-3774,R20220517-2505,R20220527-1078,R20220525-2665
第21周(5.16-5.22) 16
R20220513-3014,R20220513-3060,R20220513-0712,R20220512-3719,R20220513-0349,R20220512-2251,R20220513-2831,R20220518-1084,R20220519-4130,R20220517-1980,R20220519-0460
- R20220514-0134:个别销售订单下推生产订单时报错:输入字符串的格式不正确。
原因:销售订单中某反写规则中字段不是数字导致。
- R20220516-1047:想在生产订单执行明细表增加【库存单位数量】字段
- R20220513-0712:生产用料清单批次字段想要设置按F8弹出的数据能够直接过滤掉没有即时库存的批号
- R20220512-2863:做了《简单生产领料单》下推《生产订单》的单据转换关系,目前他下推的生产订单,没有带出最新BOM版本(BOM里有联副产品),或者 领料单中的BOM版本映射到生产订单中,也没有自动带出BOM的联副产品。
原因:根据物料带出bom和联副产品是在生产订单的表单插件中实现的,单据转化中需要这样的功能需要二开单据转化插件
- R20220512-3461:在生产用料清单里通过API插入 某个物料的替代料,修改“”“使用比例” 主料和替代料各自百分之五十,但是保存的时候说不满足百分百条件。点用料清单上的 “替代设置” 按钮 也能呈现带出插入的替代关系。 如果点 “替代设置”后返回,即使不做其他操作,再保存是不会提示报错,感觉好像要激活一次一样。
原因:需要修改被替代料的替代策略等字段
{ "IsDeleteEntry": "false", "Model": { "FID": "132798", "FEntity": [ { "FEntryID": "11573832", "FIsKeyItem": "1", "FUSERATE": 50, "FREPLACEPOLICY": "1", "FREPLACETYPE": "1", "FREPLACEPRIORITY": 0 }, { "FReplaceGroup": 5, "FParentRowId": "bba765f2-8b6d-b3bc-11ec-c6bf1c7558c7", "FREPLACEPOLICY": "1", "FREPLACETYPE": "1", "FREPLACEPRIORITY": 1, "FMaterialID2": { "FNumber": "215-53200-00" }, "FDosageType": "2", "FMaterialType": "3", "FISMINISSUEQTY": false, "FIsKeyItem": "1", "FOperID": "10", "FUSERATE": 50 } ] } }
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
32- R20220518-4057:通过工作流设置生产汇报单审核后自动生成生产入库单,在跑单的时候出现了这个报错,单据自动生成失败,所生成的源单与目标单据不一致
原因:工作流中配置自动下推需要单据转化规则中分组策略是一对一的
第20周(5.9-5.15) 9
R20220507-0005,R20220505-0306,R20220506-2189,R20220429-2242,R20220509-1713,R20220510-3164,R20220513-1132
1.R20220505-2533:生产用料清单的库存状态想要实现按仓库进行携带
解决方案:二开在用料清单首次保存的时候将库存状态设置为仓库上的库存状态
import clr clr.AddReference('System') clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') clr.AddReference('Kingdee.BOS.DataEntity') clr.AddReference('Kingdee.BOS.App') from System import * from System.Collections import * from System.Collections.Generic import * from Kingdee.BOS.Core.DynamicForm.PlugIn import * from Kingdee.BOS.Core.DynamicForm.PlugIn.Args import * from Kingdee.BOS.Orm.DataEntity import * from Kingdee.BOS.App.Data import * from Kingdee.BOS.Log import Logger def BeforeDoSaveExecute(e): if(e.DataEntities!=None): for dataEntity in e.DataEntities: Id=int(dataEntity["Id"]) if(Id==0): prdOrgId=int(dataEntity["PrdOrgId_Id"]) if(prdOrgId==1): ppbomEntry=dataEntity["PPBomEntry"] for entry in ppbomEntry: stockInfo=entry["StockID"] if stockInfo != None: stockStatus=stockInfo["DefStockStatusId_Id"] entry["StockStatusId_Id"]=stockStatus
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- R20220510-0386:生产发料生成领料单报错索引超出界
原因:下推生成的领料单为空,暂存空的数组时取0项中数据类型报错。
第19周(5.2-5.8) 7
R20220429-1241,R20220429-1241,R20220428-3849,R20220429-3614,R20220507-0799
- R20220427-4495:生产订单下推我生产入库单自动,倒冲原材料时,想定义原材料 的批号。二开怎么实现。
解决方案:入库单倒冲按照入库单上原材料批号字段倒冲领料二开不了,可以在入库单提交的时候去修改用料清单上的批号为入库单上原材料批号,这样审核的时候倒冲就可以按照入库单上维护的批号字段到冲了
- R20220428-3307:生产订单有两种单据类型(普通生产和返工生产),生产领料单有两种单据类型(普通领料和返工领料),根据生产订单(普通生产)下推领料单时,自动带出单据类型为普通领料,根据生产订单(返工生产)下推领料单时,自动带出单据类型为返工领料尝试方案:在生产用料清单-生产领料单的单据转换,设置下推启动条件,当生产用料清单的生产订单类型=普通生产时,启动普通领料类型生产领料单,当生产用料清单的生产订单类型=返工生产时,启动返工领料类型生产领料单,但是报错
解决方案:前提条件中的字段在用料清单上,生产订单上没有导致报错了,可以二开实现在下推的时候根据生产订单单据类型指定对应的单据转化规则,如下: 二开生产订单表单插件,定义string类型全局变量用来记录目标单变化时选中的目标单标识,在OnTargetBillChanged()事件中获取目标单单据标识,在OnChangeConvertRuleEnumList()事件中判断目标单是生产领料单,获取当前生产订单单据类型,根据单据类型指定使用哪个单据转化规则,e.ConvertRuleEnumList集合中移除其他不需要的规则
第18周(4.25-5.1) 14
R20220412-4224,R20220421-4405,R20220425-0896,R20220422-1510,R20220421-3997,R20220422-2122,R20220424-2633,R20220421-3042,R20220426-2663,R20220425-4727,R20220425-2745,R20220427-3409,R20220425-3778,R20220428-1292
- R20220425-0896:通过webapi保存接口修改生产领料的领料人,放入的是员工任岗信息表的FSTAFFID,报错为“无法转化为数据字典类型”
- R20220425-3778:覆盖引入时匹配字段里没有物料的“辅助属性”字段,其他字段都有,不知道为什么没有辅助属性字段
原因:平台统一处理的,下拉列表加载单据头字段,并且维度关联字段,多选基础资料,多选辅助资料,批号,基础资料文本字段,多选下拉列表,复选框都不会加进去
第17周(4.18-4.24) 12
R20220415-1556,R20220415-1113,R20220412-0436,R20220418-0568,R20220418-1557,R20220417-0363,R20220419-0047,R20220421-3231,R20220419-1225,R20220415-2409
- R20220415-1185:物料清单复制不了。父项物料也为空。但是手工录入是可以正常录入。
原因:客户修改了父项物料编码的输入顺序为0,在BeforeSetItemValueByNumber()事件中对父项物料赋值有根据bom分类进行过滤,bom分类为空导致在复制父项物料编码的时候添加添加物料属性为9,过滤不出来父项物料,也就没有了子项物料,修改父项物料的输入顺序在bom分类之后即可。
- R20220413-4676:生产领料单目前审核和反审核都无法更新库存。做了一张领料单,实际物料已经不存在库存了,仓库不允许负库存,但是仍然可以审核单据,审核后查看即时库存仍然是0,领料单明细中的“更新库存标志”永远是0。
原因:客户修改了生产用料清单到生产领料单单据转化规则表单服务策略中根据物料数量计算目标单位数量,导致没有库存但是实发数量还是有值,主库存单位数量为0,辅库存单位数量也为0,就不会进行批号拣货了。
第16周(4.11-4.17) 16
R20220408-3276,R20220408-1091,R20220406-1520,R20220407-3420,R20220407-4755,R20220409-0081,R20220407-1515,R20220409-1716,R20220408-3715,R20220409-2006,R20220411-2539,R20220408-0649,R20220412-4614,R20220415-1053,R20220412-0334
- R20220411-2224:修改操作执行超时时间限制
第15周(4.4-4.10) 9
R20220402-2462,R20220401-2646,R20220401-0149,R20220401-3134,R20220330-4478,R20220407-0748,R20220407-3060,R20220408-2637
- R20220402-2801:物料清单中更新没有任何报错, 但是物料清单批量维护更新的时候, 就处在保存物料清单完成界面,结果界面无任何信息,实际更新不成功
原因:物料清单批量维护不显示bom保存失败的信息,实际更新不成功为bom修改后保存失败。
第14周(3.28-4.3) 19
R20220324-1558,R20220326-1477,R20220327-0194,R20220328-0046,R20220323-0038,R20220325-1341,R20220326-1596,R20220325-2265,R20220329-0812,R20220326-0973,R20220331-1104,R20220331-0993,R20220331-4051,R20220331-2587,R20220325-0518,R20220329-4540
- R20220328-2782:生产订单是根据计划订单投放的,计划完工日期已经在计划订单维护好了 但是在生产订单上修改生产车间 计划完工日期会重新计算;客户不需要重算
解决方案:在AfterBindData中在规则容器中移除实体服务规则,不会更新实体服务规则管理器中的对应实体服务规则,所以还是会执行;无法单独针对是否计划订单投放的生产订单移除对生产车间值更新触发计算日期的实体服务规则,移除的话手工新增的生产订单修改生产车间也会无法计算计划完工日期。可以接受生产订单新增的修改车间不计算计划完工日期,可二开添加如下代码:
- R20220329-4446:生产订单的单据类型为组织委托加工-汇报入库,对应的生产用料清单,新增行选择物料时会自动带出供料组织和供应方式,现在客户需要不要带出这两个字段值出来,默认为空,排查了BOS设计器的物料编码的值更新事件和子项明细的实体服务规则都没有找到相关设置。能不能二开生产用料清单手工新增行供应组织和供应方式不携带。
解决方案:原本赋值在DataChange事件中填写,因为实体服务规则在DataChange事件之后,固配置实体服务规则清空对应的值
- R20220329-4287:物料列表,使用检查按钮,是检查物料是否被业务单据使用,客户希望能有一个明细的界定,是哪些业务单据。后续可能有些业务单据是不需要参与校验的,想要了解插件的处理逻辑以便后续可以修改
系统单据和基础资料:select * from T_META_OBJECTTYPE WHERE FMODELTYPEID IN (400,100) AND FDEVTYPE IN (0,1) FMODELTYPEID :400-基础资料 100-单据 FDEVTYPE:非0,1为扩展的元数据
第13周(3.21-3.27) 11
R20220317-0024,20220318-0745,R20220317-1299,R20220319-0668,R20220322-1137,R20220322-2129,R20220323-2709,R20220323-3228,R20220324-3136
- R20220318-3392:生产订单新增单据类型为研发订单,生产领料单新增单据类型为研发领料,现在制定研发生产单据类型下推指定生产领料单类型
- R20220323-2582:启用了辅助属性的物料就要控制生产订单的辅助属性必录,物料只有一个辅助属性的好控制,如果有多个辅助属性的,不好校验多个辅助属性都要录入,bos配置的保存校验不会生效,需要二开
第12周(3.14-3.20) 16
R20220309-0788,R20220308-1793,R20220310-1489,R20220314-0067,R20220309-1491,R20220310-0598,R20220315-0491,R20220311-2131,R20220312-1539,R20220314-2220,R20220315-3676,R20220317-0962,R20220309-1964,R20220317-1847,R20220301-1966,R20220315-0943
- R20220314-0067:工序汇报下推生产入库单,需要设置【仓位】的固定值,不取物料里维护的仓位。
解决方案:在单据转化插件中根据条件维护仓位的值
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 OnAfterConvertBusinessService(e): entityDatas=e.TargetExtendedDataEntities.FindByEntityKey('FEntity') if(entityDatas is not None): for item in entityDatas: stockId=long(item.DataEntity['StockId_Id']) jhlb=str(item.DataEntity['F_PJWR_Assistant']) Logger.Error("StockId_Id",str(stockId),None) if(stockId==3144460): if(jhlb!='5b07d8414de36f'): item.DataEntity['StockLocId_Id']=100011 else: item.DataEntity['StockLocId_Id']=100008 target=List[DynamicObject]() target.Add(item.DataEntity) DBServiceHelper.LoadReferenceObject(this.Context,target.ToArray() , item.DataEntity.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- R20220310-0598: 生产用料清单变更单部分子项物料的BOM版本无法修改。
原因:生产用料清单中有实体服务规则控制,存在下游单据则不允许变更子项bom版本等部分字段
- R20220311-2131:物料启用批号管理, 计划订单投放生产订单,在单据增加批号规则应用的表单服务策略,现投放的生产订单上可以显示批号,且设置单据类型参数生产订单自动审核、下达、开工,现下推的生产汇报单上无法带出生产订单上的批号。经检查是数据库批号的内码为空,如果生产订单手工保存一次,再下推生产汇报单是可以带出批号。
原因:批号拣货服务是在保存时触发,计划订单投放不会触发此服务,在审核时重新调用生产订单保存即可。
import clr clr.AddReference('System') clr.AddReference('System.Data') clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') clr.AddReference('Kingdee.BOS.App') clr.AddReference('Kingdee.BOS.DataEntity') clr.AddReference('Kingdee.BOS.Contracts') clr.AddReference('Kingdee.BOS.ServiceHelper') from Kingdee.BOS import * from Kingdee.BOS.Core import * from Kingdee.BOS.Contracts import * from Kingdee.BOS.Orm.DataEntity import * from Kingdee.BOS.DataEntity import * from Kingdee.BOS.Core.Bill import * from Kingdee.BOS.Core.DynamicForm.PlugIn import * from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import * from System import * from System.Data import * from Kingdee.BOS.App.Data import * from System.Collections.Generic import List from Kingdee.BOS.ServiceHelper import * from Kingdee.BOS.Log import * def BeforeExecuteOperationTransaction(e): idList=List[object](); for billObj in e.SelectedRows: BillId=billObj.DataEntity["Id"]; idList.Add(BillId) if(idList.Count <= 0): return; meta=MetaDataServiceHelper.Load(this.Context,"PRD_MO"); billDatas=BusinessDataServiceHelper.Load(this.Context,idList.ToArray(),meta.BusinessInfo.GetDynamicObjectType()); saveRslt=BusinessDataServiceHelper.Save(this.Context,meta.BusinessInfo,billDatas,None,"Save");
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
32
33
34
35
36- R20220312-1539:生产订单下两行产品,反写规则设置为允许超额一次,第一行物料下推生产入库时超订单入库,可以正常保存审核,第二行入库时增加联产品,入库单保存时提示第一行物料超出数量限制。
原因:生产入库单增加联副产品,保存时会给对应的生产订单增加联副产品,重新调用生产订单保存,保存时有校验"入库上限须大于等于合格品入库选单数量+不合格品入库选单数量..."
第11周(3.7-3.13) 13
R20220303-0721,R20220305-0190,R20220302-2115,R20220301-2611,R20220303-0309,R20220305-0771,R20220308-1204,R20220309-3385,R20220309-2264
- R20220302-1981:生产用料清单变更单,保存报错: 关联的用料清单已打开,需先关闭用料清单
原因:这个提示为标准产品的校验器,如果用料清单中包含替代件,则可触发此校验
- R20220306-0510:客户实际问题是领料时发现有个别物料在用料清单上是没有的,现在是直接webapi在领料单上增加一行,这样是只关联了工单,没有关联用料清单的,咨询怎么可以同时对用料清单进行一个反写新增一行数据。
解决方案:采用生产补料单的方式来做,会在用料清单中新增补料单对应的分录
- R20220308-0390:批改生产订单表头【单据日期】的效果,是否可以控制【计划】状态下的生产订单,不能通过批改的方式修改表头【日期】
解决方案:配置python保存校验器来处理
import clr clr.AddReference('System') clr.AddReference('Kingdee.BOS') clr.AddReference('Kingdee.BOS.Core') from System import * from System.Collections import * from System.Collections.Generic import * from Kingdee.BOS.Core import * from Kingdee.BOS.Core.Metadata import * from Kingdee.BOS.Core.Metadata.EntityElement import * from Kingdee.BOS.Core.DynamicForm.PlugIn import * from Kingdee.BOS.Core.Validation import * from Kingdee.BOS.Log import Logger def OnPreparePropertys(e): e.FieldKeys.Add('FStatus') def OnAddValidators(e): batchEditFields=this.Option.GetVariableValue[Dictionary[str, object]]("BatchEditFields",None) if(this.Option.GetVariableValue("IsBatchEdit",False) and batchEditFields is not None and "FDate" in batchEditFields): validateBillDate=ValidateBillDate() validateBillDate.EntityKey="FBillHead" validateBillDate.AlwaysValidate=True e.Validators.Add(validateBillDate) class ValidateBillDate(AbstractValidator): def Validate(self,dataEntities,validateContext,ctx): for bill in dataEntities: treeEntity=bill.DataEntity['TreeEntity'] for item in treeEntity: status=str(item['Status']) if(status != '1'): billId=str(bill['Id']) currentSeq=str(item['seq']) msg='子项明细第'+currentSeq+'行业务状态不为计划,不可批改单据日期' errorInfo=ValidationErrorInfo(" ",billId,bill.DataEntityIndex,bill.RowIndex,billId,msg,"",ErrorLevel.FatalError) validateContext.AddError(None,errorInfo) break
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
32
33
34
35
36
37
38
39- R20220308-3890:生产订单提交的时候报错,“Microsoft.Scripting.Interpreter.InterpretedFrameInfo”不是“System.String”类型,不能在此泛型集合中使用。参数名: key
原因:在提交中配置了python插件执行存储过程插入数据,在执行存储过程中报错
第10周(2.28-3.6) 10
R20220222-3725,R20220228-1557,R20220224-2899,R20220225-1845,R20220301-0373,R20220225-0201,R20220228-4867,R20220228-1608,R20220303-1444
- R20220301-4148:生产汇报单 的单据日期显示长日期
第9周(2.21-2.27) 8
R20220217-0,R20220219-0762,R20220218-2621,R20220217-0144,R20220218-3786,R20220218-3423,R20220221-0581
- R20220222-0957:生产用料清单重新审核状态,作业字段变成不可修改,bos中未见相关控制可以取消该字段锁定,取消表单插件也无效。
原因:用料清单上有个实体服务规则,如果领料选单数量大于0则在重新审核状态下作业,工序作业都是锁定不可编辑的。
第8周(2.14-2.20) 10
R20220211-0899,R20220211-3649,R20220210-4194,R20220211-0804,R20220212-1150 ,R20220211-3249,R20220215-3013,R20220215-1707,R20220214-3518
- R20220211-3710:客户调用的是 生产领料保存的API。 生产领料单的日期设置为长日期,没有操作 生产订单,现在的情况是 领料单保存后 生产订单状态会自动变成 开工,开工日期也是自动有了,但是没有 时分秒。 如果不通过api 手工下推生产领料单的生产订单自动开工,是会有日期和时分秒的。
原因:WebAPI支持长日期类型,客户将日期类型的字段显示为"YY/MM/dd HH:mm:ss"格式,WebAPI传入时json内没有传入FDate的值,固其值按缺省值公式取了当前的日期,时间为00:00:00,在json中传入对应的格式的日期值可按传入的值显示
第5周(1.24-1.29) 12
R20220124-3239,R20220114-0472,R20220125-0809,R20220122-1174,R20220122-1326,R20220126-2593,R20220126-2751,R20220126-1866,R20220128-1411
- R20220120-0826:客户是多组织模式,物料创建的时候,想实现A组织创建物料发料方式默认用调拨倒冲,B组织创建物料默认用直接倒冲,如何设置。
- R20220122-1104:客户反馈由于物料过多需要设置物料名称+规格型号拼接的形式在物料列表中进行模糊查询,例如物料名称ABC,规格型号123,客户想直接输入AB12然后查询出名称包含AB,规格型号包含12的物料,
# 新增一个物料按名称+规格型号拼接,保存后刷新此字段,列表按照新增的字段查询 def BeginOperationTransaction(e): materialDatas=e.DataEntitys for item in materialDatas: name=item['Name'] currentName=name[this.Context.UserLocale.LCID] specification=item['Specification'] currentSpecification=specification[this.Context.UserLocale.LCID] item['Texts']=currentName+'_'+currentSpecification # 更新历史数据 update a set a.FTEXT=b.fname+'_'+b.FSPECIFICATION from t_bd_material a inner join t_bd_material_l b on a.fmaterialid=b.fmaterialid where b.flocaleid=2052
1
2
3
4
5
6
7
8
9
10
11
12
13
14- R20220124-0770:生产用料清单下推生产领料单后,在库存查询-选择多个批号的库存进行返回数据后,申请数量也会一起返回。客户想要实现类似销售出库单的返回数据,应发数量不会重复。
原因:库存查询供应链那边代码里使用了行复制,想要不复制申请数量,在bos中把申请数量功能控制中允许复制去掉勾选即可
第4周(1.17-1.23) 15
R20220114-1724,R20220114-4230,R20220114-0588,R20220117-347,R20220118-3926,R20220117-0736,R20220118-0999, R20220117-4226,R20220121-0886,R20220120-1032,R20220110-2248
- R20211223-2674:物料清单批量维护,变更子项,模拟列表显示正常,最后一步处理结果提示成功,进度走到100%,更是没有但没有具体明细且检查BOM并没有修改成功。
原因:实际物料清单保存失败,未显示保存错误信息,导致进度条到100%,但未有具体执行执行明细
- R20220117-3732:通过配置的方式获取即时库存
R20220113-2175:生产订单下推工序汇报单,生产入库单反写生产订单数量出错(下推工序汇报后的反写是北研那边处理的,生产入库单和生产订单之间的单据关联关系已断掉)
R20220120-3365:审批流中配置上查操作
第3周(1.10-1.16) 11
R20220106-5216,R20220104-3676,R20220108-0529,R20220111-0847,R20220107-4109,R20220106-4336,R20220110-4653,R20220108-0736
- R20220105-3134:物料清单分配提升成功,但是子项没分配过去
原因:树形维护业务操作中的分配,只是单个物料清单的分配,不是整个BOM树的分配,如果想整个BOM树的分配,需要用批量分配
解决方案:在bom树形维护使用批量分配,即可把子项物料对应的bom进行分配
- R20220110-1140:WebApi接口,可以允许传入忽略交互的参数标志,具体参数 InterationFlags:交互标志集合,字符串类型,分号分隔,格式"flag1;flag2;..."(非必录)
解决方案:"IgnoreInterationFlag"这个属性传个true交互式相当于默认就点了是
- R20220110-3335:webapi方式新增物料传入图片
第2周(1.04-1.09) 9
R20220102-0193,R20211230-0079,R20211230-3201,R20211229-4568 ,R20211230-0453,R20220103-1020,R20220106-4627,R20220107-0252
- R20220103-0030:想要实现有报表可以按照bom多级展开查看物料的可用量,即即时库存-预计出+预计入的数量,调用预计可发量接口
解决方案:新建类继承TreeBomQueryForward,重写RefreshEntityView()方法,在此方法中遍历物料清单正查结果数据包bomQueryChildItems,根据此数据包中物料的信息调用获取预计可发量接口得到可用量信息填充至物料清单正查数据包对应属性,刷新界面;在物料清单正查上取消原本插件,注册上二开插件即可。
获取预计可发量接口参考帖子 (opens new window) 物料清单正查二开参考帖子 (opens new window)