metasfresh / metasfresh-webui-api-legacy

metasfresh webui API server
GNU General Public License v3.0
30 stars 32 forks source link

Shipment disposition does not update when you complete the order #860

Open metas-lc opened 6 years ago

metas-lc commented 6 years ago

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

teosarca commented 6 years ago

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

metas-ts commented 6 years ago

@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-lc commented 6 years ago

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

metas-ts commented 6 years ago

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

metas-rc commented 6 years ago

Results of IT

Tested on webui / swing

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