【常见问题】单据类型字段设置错误导致单据报错问题分析
【问题描述】
客户的二开单据保存的时候全部报错:
错误ID:B85A194F27AC884680F537BA0483F787
[{"operation":"k0fb5b160441e458ca657684d75a814ab.MBIClick.AAA_SAVE"}]
发生时间: 16:20:35
错误编号: BusinessServiceDoAction
错误信息: 要处理的实体AAA_T_ReturnApproval存在一个或多个定义错误,请检查异常对象的InnerExceptions属性获取所有错误的列表 在表AAA_T_ReturnApproval中发现重复的列名称FBILLTYPEID,索引位置:1,49
服务:[调用表单操作--保存]
===================================================
调用堆栈:
at Kingdee.BOS.Core.DynamicForm.FormBusinessServiceUtil.DoActionMethod(IFormBusinessSercice iBusiness, FormBusinessServiceArgs e)
at Kingdee.BOS.Core.DynamicForm.FormBusinessServiceUtil.DoAction(IDynamicFormView view, FormBusinessServiceArgs e)
at Kingdee.BOS.Core.DynamicForm.FormBusinessServiceUtil.InvokeService(IDynamicFormView view, Object source, FormBusinessService service, String activeEntity, DynamicObject activeRow, Int32 rowIndex)
at Kingdee.BOS.Core.DynamicForm.FormBusinessServiceUtil.InvokeServices(IDynamicFormView view, Object source, IEnumerable`1 services, Int32 actionType, String activeEntity, DynamicObject activeRow, Int32 rowIndex)
at Kingdee.BOS.Web.DynamicForm.BusinessServiceCaller.InvokeFormBusiness(IDynamicFormView view, Object source, List`1 formBusinessServices, Int32 actionType, String entityKey, Int32 row)
at Kingdee.BOS.Web.DynamicForm.DynamicWebFormView.BarItemClick(String parentKey, String barItemKey, BarDataManager bar, Int32 bartype)
at Kingdee.BOS.Web.DynamicForm.DynamicWebFormView.MainBarItemClick(String barItemKey)
at Kingdee.BOS.Web.DynamicForm.DynamicWebFormController.MainBarItemClick(String itemKey, JSONArray postDatas)
Server stack trace:
at Kingdee.BOS.Orm.Metadata.Database.DataEntityTypeMap.Build(IDataEntityType dt, DbMetadataDatabase& database)
at Kingdee.BOS.Orm.DataManager.DataManagerImplement.<>c__DisplayClass22.<set_DataEntityType>b__20(IDataEntityType key)
at Kingdee.BOS.Orm.DataManager.ObjectCache`2.<>c__DisplayClass1.<GetOrAdd>b__0(TKey k)
at System.Runtime.CompilerServices.ConditionalWeakTable`2.GetValue(TKey key, CreateValueCallback createValueCallback)
at Kingdee.BOS.Orm.DataManager.ObjectCache`2.GetOrAdd(TKey key, Func`2 valueFactory)
at Kingdee.BOS.Orm.DataManager.DataManagerImplement.set_DataEntityType(IDataEntityType value)
at Kingdee.BOS.Orm.DataManagerUtils.GetDataManager(IDataEntityType dt, IDbDriver driver, OperateOption option)
at Kingdee.BOS.App.Core.BusinessDataWriter.SaveBill(DynamicObject[] dataEntities, IOrmTransaction tran, OperateOption option)
at Kingdee.BOS.App.Core.Save.ExecuteOperatinTransaction(DynamicObject[] objs)
at Kingdee.BOS.App.Core.AbstractOprerationService.CallOperation(DynamicObject[]& objs)
at Kingdee.BOS.App.Core.AbstractOprerationService.CallOperatinTransaction(DynamicObject[] objs)
at Kingdee.BOS.App.Core.AbstractOprerationService.DoExcete()
at Kingdee.BOS.App.Core.AbstractOprerationService.Excute(DynamicObject[] dataEntities)
at Kingdee.BOS.App.Core.SaveService.Save(Context ctx, BusinessInfo info, DynamicObject[] dataEntities, OperateOption option, String operationNumber)
Exception rethrown at [0]:
at Kingdee.BOS.ServiceHelper.BusinessDataServiceHelper.Save(Context ctx, BusinessInfo businessInfo, DynamicObject dataObject, OperateOption option, String operationNumber)
at Kingdee.BOS.Model.Bill.BillModel.Save(OperateOption option)
at Kingdee.BOS.Business.Bill.Operation.Save.ExecuteBillOperation(OperateOption option)
at Kingdee.BOS.Core.DynamicForm.AbstractDynamicFormOperation.Operation(CallBackWfAfterOperation callbackwf, IOperationResult result)
at Kingdee.BOS.Core.DynamicForm.AbstractDynamicFormOperation.Execute(InvokeFormOperation4WfParam param, CallBackWfAfterOperation callbackwf)
at Kingdee.BOS.Core.DynamicForm.AbstractFormOperation.Execute()
at Kingdee.BOS.Web.DynamicForm.OperationCaller.InvokeFormOperation(String operationNumber)
at Kingdee.BOS.Web.DynamicForm.AbstractDynamicWebFormView.InvokeFormOperation(String operationNumber)
at Kingdee.BOS.Business.DynamicForm.BusinessService.ExcuteOperation.DoAction(FormBusinessServiceArgs e)
at Kingdee.BOS.Core.DynamicForm.FormBusinessServiceUtil.DoActionMethod(IFormBusinessSercice iBusiness, FormBusinessServiceArgs e)
【解决方案】
单据类型字段:主要是用在单据有继承的场景;父子单据公用主表,用改字段区分数据来源,字段值为单据唯一标识;
应该不能设置改字段为界面上面已经存在的字段;
一般情况下不需要设置此字段;
【常见问题】单据类型字段设置错误导致单据报错问题分析
本文2024-09-23 04:06:47发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-163208.html