以前给客户开发过一个功能,其中涉及到通过代码保存采购申请单,本来一切运行没问题,项目也通过了客户的验收,但是上个礼拜他们更新了补丁到6.1.121.9,然后就报错了, 应该是后续增加了一些验证逻辑不够严谨,我这边已经排除了一些错误,但是下面的错误信息实在没法判断是什么情况,这个问题能帮忙看下吗?
{"BillNumber":"-1","BillId":-1,"Message":"保存过程中出现异常,具体信息如下:
Kingdee.BOS.KDException: 表达式计算出错: FMaterialId!=null and FBOMNoId == null and len(filter(lambda x:x.IsEnable==true and x.InvPtyId_Id==10003 and x.IsAffectPlan==true , FMaterialId.MaterialInvPty))>0 ( Int64 is not iterable ) ---> IronPython.Runtime.Exceptions.TypeErrorException: Int64 is not iterable\r\n 在 IronPython.Runtime.Operations.PythonOps.GetEnumerator(CodeContext context, Object o)\r\n 在 IronPython.Modules.Builtin.filter(CodeContext context, Object function, Object list)\r\n 在 Microsoft.Scripting.Interpreter.FuncCallInstruction`4.Run(InterpretedFrame frame)\r\n 在 Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)\r\n 在 Microsoft.Scripting.Interpreter.LightLambda.Run5[T0,T1,T2,T3,T4,TRet](T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4)\r\n 在 System.Dynamic.UpdateDelegates.UpdateAndExecute4[T0,T1,T2,T3,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3)\r\n 在 Microsoft.Scripting.Interpreter.DynamicInstruction`5.Run(InterpretedFrame frame)\r\n 在 Microsoft.Scripting.Interpreter.Interpreter.Run(InterpretedFrame frame)\r\n 在 Microsoft.Scripting.Interpreter.LightLambda.Run2[T0,T1,TRet](T0 arg0, T1 arg1)\r\n 在 IronPython.Compiler.PythonScriptCode.RunWorker(CodeContext ctx)\r\n 在 IronPython.Compiler.PythonScriptCode.EvalWrapper(CodeContext ctx)\r\n 在 IronPython.Compiler.RuntimeScriptCode.InvokeTarget(Scope scope)\r\n 在 Kingdee.BOS.Scripting.PyExpressionEvaluator.Run(Expression expression, ExpressionContext context)\r\n --- 内部异常堆栈跟踪的结尾 ---\r\n\r\nServer stack trace: \r\n 在 Kingdee.BOS.Scripting.PyExpressionEvaluator.Run(Expression expression, ExpressionContext context)\r\n 在 Kingdee.BOS.Core.Metadata.Util.ConditionParser.VerifyExpression(VerifyExpressionParameter parameter)\r\n 在 Kingdee.BOS.App.Core.Validation.ConditionValidator.Verify(VerifyExpressionParameter verifyParam)\r\n 在 Kingdee.BOS.App.Core.Validation.ConditionValidator.Validate(ExtendedDataEntity[] dataEntities, ValidateContext validateContext, Context ctx)\r\n 在 Kingdee.BOS.App.Core.Validation.ValidationService.Validate(IEnumerable`1 dataEntities, ValidateContext validateContext, AbstractValidator[] validators)\r\n 在 Kingdee.BOS.App.Core.Validation.ValidationService.TryValidate(IEnumerable`1 dataEntities, ValidateContext validateContext, List`1& errorInfo)\r\n 在 Kingdee.BOS.App.Core.AbstractOprerationService.TryValidate()\r\n 在 Kingdee.BOS.App.Core.AbstractOprerationService.Validate()\r\n 在 Kingdee.BOS.App.Core.AbstractSave.Validate()\r\n 在 Kingdee.BOS.App.Core.AbstractOprerationService.DoExcete()\r\n 在 Kingdee.BOS.App.Core.AbstractOprerationService.Excute(DynamicObject[] dataEntities)\r\n 在 Kingdee.BOS.App.Core.SaveService.Save(Context ctx, BusinessInfo info, DynamicObject[] dataEntities, OperateOption option, String operationNumber)\r\n\r\nException rethrown at [0]: \r\n 在 Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.Save(Context ctx, BusinessInfo businessInfo, DynamicObject[] dataObject, OperateOption option, String operationNumber)\r\n 在 K.XW.XWBusinessService.CreatePurchaseRequisition(String parameter) 位置 c:\\Users\\Administrator\\Desktop\\Projects\\K.XW\\K.XW\\XWBusinessService.cs:行号 49","IsSuccess":false}
推荐阅读