RulesEngine icon indicating copy to clipboard operation
RulesEngine copied to clipboard

AGV code should be recorded in station attributes, not task extension properties

Open grefus opened this issue 1 month ago • 0 comments

Background: Current business logic records agvCode in the task's extension attributes. Correct logic is to record agvCode as a property of the station itself.

Problem Details:

  1. agvCode is currently set in subTask.OperationArgs, but should be recorded as an attribute of the target StationEntity (via StationProperties or ExtendProperties).
  2. This leads to misleading AGV binding behavior, especially when handling holding points for non-released AGVs.
  3. The system fails to properly reference agvCode in subsequent append sub-task/continue workflows.

Expected Change:

  • Refactor business logic to ensure agvCode is tracked per station, not per sub-task/task extension.
  • Update relevant methods to read and write agvCode from StationEntity attributes.
  • Ensure AGV release logic validates with station attributes and not task properties.

Impacts:

  • Will affect task status transitions, sub-task append logic, and AGV release/hold workflows.

Reference: Please see existing TaskService implementation (see methods: ReceiveTaskStatus, AppendSubTask, ClearAgvBinding, CheckAndHandleHoldingPoint).


Action Items:

  • Refactor code to bind agvCode to station attributes
  • Update logic in ReceiveTaskStatus, AppendSubTask for proper AGV hold/release flows
  • Test across scenarios involving holding points, multiple sub-tasks, and multi-AGV
  • Document changes and migration steps for affected deployments

grefus avatar Nov 13 '25 03:11 grefus