前两天一个KIS旗舰版V5.0客户忽然甩了张图过来,让我协助处理一下。
【问题描述】:
客户在进行MRP运算当进行到“保存运算结果”这一个步骤时就跳出来这个提示,点“确定”以后就退出了。
【问题分析】:
乍一看这个提示是相关单据有字段超出限定长度了,但是远程过去检查对应的销售订单时却发现并没有字段超长。经与客户确认,当销售订单数量只有几千时并没有这个提示,只要销售订单数量为10000时进行MRP运算就出来这个提示。
【解决方法】:
将客户账套备份恢复到自己的虚拟机环境中进行数据跟踪,发现有下面一段语句:
set nocount on
Insert into ErrorsB38C0B88FC314E938905E47D821DB37A ( Ftype,FErrText)
Select 2,( t1.FNumber + '[' + t1.FName +'/'+ isnull(t1.FModel,'') +']' + '在 ' + convert(varchar(14),FNeedDate,111) + ' 的净需求超过物料的最大订货量。') FErrTxt
From (select FItemID,FNeedDate,sum(FPlanOrderQty) as FNeedQty From TempICMrpRunDataB38C0B88FC314E938905E47D821DB37A
where FPlanOrderInterID > 0 and FPlanOrderQty > 0 and FSourceType<>4 group by FItemID,FNeedDate
) v1, t_ICItem t1
Where v1.FItemID = t1.FItemID and v1.FNeedQty > t1.FQtyMax and t1.FQtyMax > 0
Insert into ErrorsB38C0B88FC314E938905E47D821DB37A (Ftype,FErrText)
Select 1,( t1.FNumber + '[' + t1.FName +'/'+ isnull(t1.FModel,'') +']' + ' BOM结构不完整。请检查。') FErrTxt
From (select distinct u2.FItemID From TempICMRPItemB38C0B88FC314E938905E47D821DB37A u2
where u2.FItemType in ('ZZ','WWJG','TZL','PZL','GHL') and u2.FPlanTrategy <> 'None' ) v1, t_ICItem t1
Where v1.FItemID = t1.FItemID AND ISNULL(t1.FCharSourceItemID,0)<=0
and not EXISTS (select top 1 FInterID From ICBOM u1 Where u1.FItemID = v1.FItemID and u1.FUseStatus = 1072 )
Insert into ErrorsB38C0B88FC314E938905E47D821DB37A ( Ftype,FErrText)
Select 3,( t1.FNumber + '[' + t1.FName +'/'+ isnull(t1.FModel,'') +']' + ' 的物料使用状态为' + t5.FName + '。') FErrTxt
From (select distinct FItemID From TempICMRPItemB38C0B88FC314E938905E47D821DB37A
) v1, t_ICItem t1 ,t_submessage t5
Where v1.FItemID = t1.FItemID and t1.FUseState=t5.FInterID and t5.FTypeID=170 and t5.FID<>'USE'
Insert into ErrorsB38C0B88FC314E938905E47D821DB37A ( Ftype,FErrText)
Select 4,( t1.FNumber + '[' + t1.FName +'/'+ isnull(t1.FModel,'') +']' + ' 在 ' + convert(varchar(14),FNeedDate,111) + ' 的数量为 ' + ltrim(str(v1.FPlanOrderQty)) + ' 的需求日期小于当前日期。') FErrTxt
From TempICMrpRunDataB38C0B88FC314E938905E47D821DB37A
v1, t_ICItem t1
Where v1.FItemID = t1.FItemID and v1.FPlanOrderInterID > 0 and v1.FPlanOrderQty > 0 and v1.FSourceType<>4 and v1.FNeedDate < convert(datetime,convert(varchar(14),getdate(),111))
检查了一下物料的“最大订货量”字段,客户的物料这个字段都设置的10000,抱着试一试的态度把这个字段更新成1000000,然后再进行MRP运算,再没有那个错误提示出现。
附上语句:
update t_icitem set FQtyMax='100000.0000000000'
客户环境为:旗舰版V5.0+PT114027+PT116112
推荐阅读