1
我正在使用.net开发Epicor上的自定义功能。我试图更新表,但是,我不知道为什么它不起作用。关闭应用程序后,这些字段保持相同的值。有什么我失踪?提前致谢!更新不会更改表格中的字段值
Dim adapterLaborDtlSearch As LaborDtlSearchAdapter = New LaborDtlSearchAdapter(HHWorkQueueForm)
adapterLaborDtlSearch.BOConnect()
LaborDtlDV = CType(oTrans.EpiDataViews("LaborDtl"), EpiDataView)
Dim laborHedSeq As Integer = LaborDtlDV.dataView(LaborDtlDV.Row)("laborHedSeq")
Dim laborDtlSeq As Integer = LaborDtlDV.dataView(LaborDtlDV.Row)("laborDtlSeq")
Dim laborDtlSchDataSet As Data.DataSet = adapterLaborDtlSearch.GetData(laborHedSeq, laborDtlSeq)
laborDtlSchDataSet.Tables("LaborDtl").Rows(0).BeginEdit
laborDtlSchDataSet.Tables("LaborDtl").Rows(0).Item("LaborQty") = nedShiftQty.value
laborDtlSchDataSet.Tables("LaborDtl").Rows(0).EndEdit
laborDtlSchDataSet.Tables("LaborDtl").AcceptChanges
adapterLaborDtlSearch.Update()
这是更新方法的堆栈跟踪。
Exception caught in: Epicor.Mfg.BO.LaborDtlSearch
Error Detail
============
Message: This function is not allowed.
Type: Error
Program: bo/LaborDtlSearch/LaborDtlSearch.p
Method: laborDtlBeforeUpdate
Table: laborDtl
Row:
Field:
Stack Trace
===========
at Epicor.Mfg.Proxy.LaborDtlSearchImpl.Update(LaborDtlSearchDataSet ds)
at Epicor.Mfg.UI.Adapters.LaborDtlSearchAdapter.Update()
at Script.updateTablesData()
Inner Exception
===============
ERROR condition: The Server application has returned an error. (7243) (7211)
Inner Stack Trace
=================
at Progress.Open4GL.DynamicAPI.Session.runProcedure(String requestID, String procedureName, ParameterSet parms, Boolean persistent, Boolean internal_Renamed, Int64 procId, MetaSchema localSchema, Int32 stateModel)
at Progress.Open4GL.DynamicAPI.Session.runStatelessProcedure(String requestID, String fullProcedureName, ParameterSet inparams, Object procId, MetaSchema localSchema, Int32 stateModel)
at Progress.Open4GL.DynamicAPI.PersistentProc.runTheProcedure(String requestID, String procedureName, ParameterSet parms, MetaSchema schema)
at Progress.Open4GL.DynamicAPI.PersistentProc.runProcedure(String procedureName, ParameterSet parms, MetaSchema schema)
at Epicor.Mfg.Core.CallContext.CallContextPersistentProc.runProcedure(String procedureName, ParameterSet parameters, MetaSchema metaSchema)
at Epicor.Mfg.Core.CallContext.ProxyHelper.CallMethod(String methodName, ParameterSet parameters, MetaSchema metaSchema, BLConnectionPool connPool, Session connection, PersistentProc persistProc, CallContextDataSet callContextDataSet)
at Epicor.Mfg.Proxy.LaborDtlSearchImpl.Update(LaborDtlSearchDataSet ds)
如果我提出的AcceptChanges的adapterLaborDtlSearch.Update后()在执行时调用它抛出一个错误“此功能是不允许的” 我已经编辑与抛出的堆栈跟踪的问题。 这可能与不允许更新的数据库有关吗?任何丢失的配置.. – Marcos
@Marcos:我不熟悉Epicor,但它看起来像你有更新表之前执行的方法,并且该方法导致错误。 –