Skip to content

Inform Cell about number of Activities targeting it #840

@1nf0rmagician

Description

@1nf0rmagician

Is your feature request related to a problem? Please describe.
The following requirements are related to this issue and could be solved by adding this feature

  • Showing the user the work backlog on manual cells (e.g. 49 Assembling Activities for Product X are still pending)
  • Manual de-/activating resources based on backlogs (e.g. asking additional operators to man a dormant manual cell to work in parallel
  • Prompting Instructions to raise a Setup-RTW when no pending Production Activities are present, but Setup Activities are waiting (i.e. Allow to manual start Setups while processes of a different job are still present)
  • (Warn about required measures to keep up production, e.g. refilling material)
    This one could also be taken care of in a properly fletched out Material Management module

Describe the solution you'd like
I would like to either include a method in ICell or add an additional interface respected by the process engine with a method to be called with a form of TargetingContext. Following is a first draft of my proposal

public interface ITargetedCell 
{
    void TargetingChanged(TargetingContext context);
}

public class TargetingContext 
{
    public TargetingEvent Change { get; internal set; }

    public Activity Changed { get; internal set; }

    public IEnumerable<Activity> PendingActivities { get; private set; } = []
}

If implemented by the Cell base class, it could provide additional features like

  • storing the pending activities in a protected getter only property
  • resetting this field on ControllSystemDetached
  • provide a getter only property to simplify assessment whether the cell is targeted at all atm

Of course the method call should be decoupled on the process engine, i.e. ignore/log exceptions from the cell implementation and execute the method on a separate thread.

Describe alternatives you've considered
Not really an alternative considered, but it would eliminate one need for accessing the process engine facade (which provides this information) within a resource.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions