Skip to content

Demand Item Design

For MVP2, the relevant use cases are related to procurement and the full model is not needed:

In MVP2:

  • There is only one Supplier Station, representing the Procurement Workflows
  • There is no explicit Consumer Station, the system implicitly assumes that any cards not actively in the Procurement Workflows are in the “Consumer Station”
  • There are no multiple Loops, the only loop is also implicit and represents the flow of materials from Procurement to the implicit Consumer Station.
  • There are no Shipping constraints from Procurement to the shop, so there is no need for a Ship Port or Ship Items

PlantUML diagram

In this simplified model:

  • Demand Port is implicitly the Order Queue, not needed in the system as it is the only one existing in MVP2, so it can be implicitly assumed.
  • Demand Items are the entities that the Order Queue will show to the user, with Kanban Cards attached to them.

PlantUML diagram

  • OPEN: The Demand Item has been added to the Order Queue but has not yet been released for fulfillment.
  • RELEASED: The Demand Item has been released for fulfillment but not started (or confirmed) by the supplier.
  • IN_PROCESS: The Demand Item is being processed by the supplier.
  • COMPLETE: The Demand Item has been completed by the supplier.
  • demandQuantity: The quantity of the demand item.
  • actuals: The quantity of the demand item that has been fulfilled.
  • available: The quantity of the demand item that is available for assignment to Kanban Cards or other purposes.
  • Create: A new Demand Item is created with a given demandQuantity:

    • From a Kanban Card: Initial demandQuantity is the Kanban Card’s quantity. The Kanban Card is attached to the Demand Item.
    • From an Item: Initial demandQuantity is the Item’s orderQuantity of their preferred supply or the minimum quantity if no preferredSupply is defined.

    The initial value can be overriden by the user.

  • Add Demand: An additional quantity can be added to an existing Demand Item. This can be done from a Kanban Card (attaching the card as a side effect) or from an Item. The resulting demandQuantity is the sum of the previous value plus the quantity from the Kanban Card or Item with the same rules as Creation. The user can override the added quantity.

  • Edit Demand: The user can edit the demandQuantity of an existing Demand Item. If the edited quantity is below the sum of quantities of attached Kanban Cards, if any, the system should warn the user.

  • Remove Card: The user can remove an attached Kanban Card from a Demand Item. The user should be able to specify whether to subtract the card’s quantity from the Demand Item’s demandQuantity or not (always with a floor of 0).

  • Release: The user can release a Demand Item for fulfillment. At this point the Demand Item becomes read-only.

  • Partial Fulfill: The user indicates a quantity to be added to actuals. If the accumulated.

Interaction between Demand Item and Kanban Card

Section titled “Interaction between Demand Item and Kanban Card”

For the full Kanban Card state lifecycle, see Kanban Cards — Domain Model.

PlantUML diagram

When deliveries arrive incrementally, the Demand Item accumulates partial quantities before completing the Kanban Card.

PlantUML diagram