metasfresh-webui-api-legacy icon indicating copy to clipboard operation
metasfresh-webui-api-legacy copied to clipboard

Shipment disposition does not update when you complete the order

Open metas-lc opened this issue 7 years ago • 5 comments

Is this a bug or feature request?

bug

What is the current behavior?

Shipment disposition does not update when you complete the order. So you cannot pick

Which are the steps to reproduce?

  1. create and complete a sales order

  2. look in reference documents, to go to picking terminal => you cannot see picking terminal because the shipment disposition didn't update image image

  3. go to swing and create/complete a new order => shipment schedule is updated (on another server my other shipment dispo was also updated, but i didn't have errors in workpackage)

image

found an error in async (only on w101). created task: https://github.com/metasfresh/metasfresh/issues/3520

org.adempiere.exceptions.AdempiereException: NullPointerException
Additional parameters:
 I_C_Queue_WorkPackage: X_C_Queue_WorkPackage[C_Queue_WorkPackage_ID=1184974, trxName=null]
 IQueueProcessor: ThreadPoolQueueProcessor{name=M_ShipmentSchedule_Update, executor=BlockingThreadPoolExecutor [getPoolSize()=1]}
 trxName: <<ThreadInherited>>
	at org.adempiere.exceptions.AdempiereException.wrapIfNeeded(AdempiereException.java:87)
	at de.metas.async.processor.impl.WorkpackageProcessorTask.invokeProcessorAndHandleException(WorkpackageProcessorTask.java:302)
	at de.metas.async.processor.impl.WorkpackageProcessorTask.processWorkpackage(WorkpackageProcessorTask.java:290)
	at de.metas.async.processor.impl.WorkpackageProcessorTask.access$000(WorkpackageProcessorTask.java:90)
	at de.metas.async.processor.impl.WorkpackageProcessorTask$1.run(WorkpackageProcessorTask.java:173)
	at org.adempiere.ad.trx.api.impl.TrxCallableWrappers$2.call(TrxCallableWrappers.java:103)
	at org.adempiere.ad.trx.api.impl.TrxCallableWrappers$2.call(TrxCallableWrappers.java:93)
	at org.adempiere.ad.trx.api.impl.AbstractTrxManager.call0(AbstractTrxManager.java:771)
	at org.adempiere.ad.trx.api.impl.AbstractTrxManager.call(AbstractTrxManager.java:683)
	at org.adempiere.ad.trx.api.impl.AbstractTrxManager.run(AbstractTrxManager.java:591)
	at de.metas.async.processor.impl.WorkpackageProcessorTask.run(WorkpackageProcessorTask.java:163)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at Thread.run(Thread.java:748)
Caused by: NullPointerException
	at de.metas.contracts.inoutcandidate.ShipmentScheduleSubscriptionReferenceProvider.provideFor(ShipmentScheduleSubscriptionReferenceProvider.java:56)
	at de.metas.inoutcandidate.spi.ShipmentScheduleReferencedLineFactory.createFor(ShipmentScheduleReferencedLineFactory.java:48)
	at de.metas.inoutcandidate.api.impl.ShipmentScheduleBL.updateWarehouseId(ShipmentScheduleBL.java:827)
	at de.metas.inoutcandidate.api.impl.ShipmentScheduleBL.updateSchedules(ShipmentScheduleBL.java:147)
	at de.metas.inoutcandidate.api.impl.ShipmentScheduleUpdater.updateShipmentSchedule(ShipmentScheduleUpdater.java:89)
	at de.metas.inoutcandidate.async.UpdateInvalidShipmentSchedulesWorkpackageProcessor.processWorkPackage(UpdateInvalidShipmentSchedulesWorkpackageProcessor.java:74)
	at de.metas.async.processor.impl.WorkpackageProcessorTask.invokeProcessorAndHandleException(WorkpackageProcessorTask.java:298)
	... 14 more
  

What is the expected or desired behavior?

no errors, qty to deliver shall update

metas-lc avatar Feb 19 '18 15:02 metas-lc

might be introduced by https://github.com/metasfresh/metasfresh/issues/3245

teosarca avatar Feb 19 '18 15:02 teosarca

@metas-lc i handeled the error (issue https://github.com/metasfresh/metasfresh/issues/3520) and cleaned up the respective schipment schedules on w101. this that cleanup in place, i can't reproduce the this issue's problem anymore, so i guess both a solved now.

metas-ts avatar Feb 19 '18 16:02 metas-ts

IT created and completed a sales order => shipment schedule was updated and i can go to picking OK

metas-lc avatar Feb 20 '18 11:02 metas-lc

hi @metas-lc, i pushed another fix. and tried with two sales ordcers on mf15cloudit..aparently the problem is solved now

metas-ts avatar Feb 21 '18 05:02 metas-ts

Results of IT

Tested on webui / swing

  • The problem persists, but the reason is different now:
org.adempiere.exceptions.DBForeignKeyConstraintException: Datensatz kann nicht gelöscht werden, weil er von anderen Datensätzen referenziert wird

org.postgresql.util.PSQLException: ERROR: update or delete on table "m_shipmentschedule" violates foreign key constraint "mshipmentschedule_mpickingcand" on table "m_picking_candidate"
  Detail: Key (m_shipmentschedule_id)=(1000013) is still referenced from table "m_picking_candidate".
    at org.adempiere.exceptions.DBException.wrapIfNeeded(DBException.java:72)
    at org.adempiere.exceptions.AdempiereException.wrapIfNeeded(AdempiereException.java:79)
    at org.adempiere.ad.trx.api.impl.AbstractTrxManager.call0(AbstractTrxManager.java:854)
    at org.adempiere.ad.trx.api.impl.AbstractTrxManager.call(AbstractTrxManager.java:683)
    at org.adempiere.ad.trx.api.impl.AbstractTrxManager.run(AbstractTrxManager.java:591)
    at de.metas.async.processor.impl.WorkpackageProcessorTask.run(WorkpackageProcessorTask.java:163)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at Thread.run(Thread.java:748)
Caused by: org.postgresql.util.PSQLException: ERROR: update or delete on table "m_shipmentschedule" violates foreign key constraint "mshipmentschedule_mpickingcand" on table "m_picking_candidate"
  Detail: Key (m_shipmentschedule_id)=(1000013) is still referenced from table "m_picking_candidate".
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2455)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2155)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:288)
    at org.postgresql.jdbc.PgConnection.executeTransactionCommand(PgConnection.java:776)
    at org.postgresql.jdbc.PgConnection.commit(PgConnection.java:797)
    at com.mchange.v2.c3p0.impl.NewProxyConnection.commit(NewProxyConnection.java:1007)
    at org.compiere.util.Trx.commitNative(Trx.java:334)
    at org.adempiere.ad.trx.api.impl.AbstractTrx.commit(AbstractTrx.java:257)
    at org.adempiere.ad.trx.api.impl.AbstractTrxManager.call0(AbstractTrxManager.java:781)
    ... 8 more

metas-rc avatar Mar 02 '18 15:03 metas-rc