As allowed in the Costing Engine roadmap, I want to test multiple Costing Methods when used concurrently. When i test using Fitnesse for Average Invoice on a new product Apple, i have to deactivate the other Cost Methods. Or else i get this (failed to get cost details):
-----------> MTransaction.saveFinish: afterSave
java.lang.NullPointerException
at org.adempiere.engine.StandardCostingMethod.getNewCumulatedAmt(StandardCostingMethod.java:179)
at org.adempiere.engine.AbstractCostingMethod.createReversalCostDetail(AbstractCostingMethod.java:174)
at org.adempiere.engine.StandardCostingMethod.createCostDetail(StandardCostingMethod.java:85)
at org.adempiere.engine.StandardCostingMethod.process(StandardCostingMethod.java:149)
at org.adempiere.engine.CostEngine.createCostDetail(CostEngine.java:417)
at org.adempiere.engine.CostEngine.createCostDetail(CostEngine.java:297)
at org.adempiere.engine.CostEngine.createCostDetail(CostEngine.java:273)
at org.adempiere.engine.CostEngine.createCostDetail(CostEngine.java:262)
at org.compiere.model.MTransaction.afterSave(MTransaction.java:228)
at org.compiere.model.PO.saveFinish(PO.java:2190)
at org.compiere.model.PO.saveNew(PO.java:2751)
at org.compiere.model.PO.save(PO.java:2076)
at org.compiere.model.MInOut.completeIt(MInOut.java:1383)
at org.compiere.process.DocumentEngine.completeIt(DocumentEngine.java:475)
at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:292)
at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:256)
at org.compiere.model.MInOut.processIt(MInOut.java:1033)
at org.compiere.model.MInOut.reverseCorrectIt(MInOut.java:2042)
at org.compiere.process.DocumentEngine.reverseCorrectIt(DocumentEngine.java:559)
at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:338)
at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:256)
at org.compiere.model.MInOut.processIt(MInOut.java:1033)
-----------> MCostQueue.getQueueForAdjustment: Not found cost queue for MCost[AD_Client_ID=11,M_Product_ID=50028,M_CostElement_ID=100, CurrentCost=0, C.Amt=0,C.Qty=0]
-----------> MCostQueue.getQueueForAdjustment: Not found cost queue for MCost[AD_Client_ID=11,M_Product_ID=50028,M_CostElement_ID=100, CurrentCost=0, C.Amt=0,C.Qty=0]
-----------> FactLine.updateReverseLine: Not Found (try later) ,C_AcctSchema_ID=101, AD_Table_ID=319,Record_ID=1000136,Line_ID=1000136, Account_ID=587
-----------> MTransaction.saveFinish: afterSave
org.adempiere.exceptions.DBException: org.postgresql.util.PSQLException: ERROR: column c.costingmethod does not exist
at org.compiere.model.MCost.getCurrentCostLayers(MCost.java:184)
at org.compiere.model.MCost.getCurrentCostLayers(MCost.java:271)
at org.compiere.model.ProductCost.getProductCostsLayers(ProductCost.java:694)
at org.adempiere.engine.FifoLifoCostingMethod.calculate(FifoLifoCostingMethod.java:56)
at org.adempiere.engine.FifoLifoCostingMethod.getCalculatedCosts(FifoLifoCostingMethod.java:68)
at org.adempiere.engine.AbstractCostingMethod.createCostDetails(AbstractCostingMethod.java:80)
at org.adempiere.engine.FifoLifoCostingMethod.processCostDetail(FifoLifoCostingMethod.java:123)
at org.adempiere.engine.FifoLifoCostingMethod.process(FifoLifoCostingMethod.java:100)
at org.adempiere.engine.CostEngine.createCostDetail(CostEngine.java:417)
at org.adempiere.engine.CostEngine.createCostDetail(CostEngine.java:297)
at org.adempiere.engine.CostEngine.createCostDetail(CostEngine.java:273)
at org.adempiere.engine.CostEngine.createCostDetail(CostEngine.java:262)
at org.compiere.model.MTransaction.afterSave(MTransaction.java:228)
at org.compiere.model.PO.saveFinish(PO.java:2190)
at org.compiere.model.PO.saveNew(PO.java:2751)
at org.compiere.model.PO.save(PO.java:2076)
at org.compiere.model.MInOut.completeIt(MInOut.java:1341)
at org.compiere.process.DocumentEngine.completeIt(DocumentEngine.java:475)
at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:292)
at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:256)
at org.compiere.model.MInOut.processIt(MInOut.java:1033)
at org.compiere.model.MOrder.createShipment(MOrder.java:1884)
at org.compiere.model.MOrder.completeIt(MOrder.java:1772)
at org.compiere.process.DocumentEngine.completeIt(DocumentEngine.java:475)
at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:292)
at org.compiere.process.DocumentEngine.processIt(DocumentEngine.java:256)
at org.compiere.model.MOrder.processIt(MOrder.java:1096)
caused by: org.postgresql.util.PSQLException: ERROR: column c.costingmethod does not exist; State=42703; ErrorCode=0
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1548)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1316)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:351)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:255)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.compiere.db.StatementProxy.invoke(StatementProxy.java:100)
at $Proxy0.executeQuery(Unknown Source)
at org.compiere.model.MCost.getCurrentCostLayers(MCost.java:154)
at org.compiere.model.MCost.getCurrentCostLayers(MCost.java:271)
at org.compiere.model.ProductCost.getProductCostsLayers(ProductCost.java:694)
at org.adempiere.engine.FifoLifoCostingMethod.calculate(FifoLifoCostingMethod.java:56)
at org.adempiere.engine.FifoLifoCostingMethod.getCalculatedCosts(FifoLifoCostingMethod.java:68)
at org.adempiere.engine.AbstractCostingMethod.createCostDetails(AbstractCostingMethod.java:80)
at org.adempiere.engine.FifoLifoCostingMethod.processCostDetail(FifoLifoCostingMethod.java:123)
at org.adempiere.engine.FifoLifoCostingMethod.process(FifoLifoCostingMethod.java:100)
at org.adempiere.engine.CostEngine.createCostDetail(CostEngine.java:417)
If i use alone just FIFO, i get -----------> Doc_InOut.createFacts: Resubmit - No Costs for Apple
same as reported in http://sourceforge.net/tracker/?func=detail&aid=3185462&group_id=176962&atid=1349578