KIS旗舰版V5.0“中间层处理发生意外错误”问题解决方案原创
金蝶云社区-Joshua_Jiang
Joshua_Jiang
8人赞赏了该文章 184次浏览 未经作者许可,禁止转载编辑于2023年07月14日 20:33:15

前两天一个KIS旗舰版V5.0客户忽然甩了张图过来,让我协助处理一下。

5a0c8cb1096e212909c79411dbb3e2a.png

【问题描述】:

客户在进行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


赞 8