Remove report from operation interrupt behavior#777
Conversation
# Conflicts: # docs/migrations/v8_to_v10.md
401ee2b to
52d6c1f
Compare
|
@dacky179, @slimberg91 correct me if I'm wrong, but have the user/operator that interrupts an operation is still a feature that is in active use. So yeah we still need it. The idea was, however, to have a more granular config in future to define which operations require a user |
But only in combination with the report, correct? Since Interrupt will not raise a report anymore, the user is unused? |
|
Well, I am not exactly sure. In a coarse research I haven't found a reference where our HYDRA module generally reacts to interrupt requests from the OrderManagement. Scenarios where interrupt is blocked due to a missing user seems to be blocked because of a report instead. Interrupt without previously partial report is not a good idea in our HYDRA-context, but still can be blocked by subscription to the interrupt request event. @dacky179: Anything I missed here? So in short conclusion I would say @dbeuchler is right here. ✔️ And watch out: Partial reports should only be made while producing, not when being interrupted, but this is also restricted by our HYDRA modules, I guess. |
|
The interrupt during OperationState Running does not need a Report dialog. |
|
Thats the point where I would say it would be possible for us to add an interrupt restriction telling the user "you should perform a partial report before interrupting the operation". This would resolve the issue, but yes, then there is the possibility to interrupt without reporting the parts. I think a solution would be to make our restriction configurable as a warning or to block the interrupt. But this mustn't be a problem of the ordermanagement itself. And of course, the report button still exists, which is only an additional click event for the user. |
52d6c1f to
851a1b1
Compare
|
Thanks for all the infos. Summary
|
|
@1nf0rmagician help wanted for the ui-part here. Server and APIs are ready |
|
@dacky179 there are problems with our current handling of the hydra MES-System. Additionally there can be timing dependent behavior, because tasks that can stop us from interrupting or closing an order can be generated anytime. Currently there are three ways we can handle interrupting in the MES-System: Before the interrupt get's to the OrderManagementThis is what we do with reports currently and what we did in the old version of the Framework for instance. Handling the Interrupt/Report Requested events.There are a few problems here to. The event handling is synchronous. This means we have to block the thread while doing our long running communication with hydra. Additionally there can be other events and rules blocking the request, which means we would land in the same spot. An interrupted order in MES and a running operation in the OrderManagement. Handling the Interrupted eventThis is the case we really wanted to avoid. Having the interrupt succeed in the OrderManagement and that failing in our report to MES, because of some rule we did not replicate locally. I am honestly not really sure how to improve this. I guess my favorite way would be to split the Ordermanagement up. |
Due to a change in the tool the model names do not include the namespaces anymore and are centrally located under `/api/models/` instead of subfolders
|
As @andreniggemann already explained very well, I also believe that we cannot deliver a truly generic order-management solution and simply extend it with plugins or adapters. We have tried this approach for several years, and it has proven impossible to address every limitation or constraint imposed by the super-systems (in your case HYDRA). @dacky179 @slimberg91 @andreniggemann It may be time for you to implement a custom order-management solution that leverages general APIs but introduces tailored operations and state handling. This approach offers several advantages:
|
This reverts part of commit bea5e6a.
7b555be to
9b2bbfb
Compare
Background described in #736.
TODO:
Discussion
Closes #736