Asset Work Network — network map

Generated by python -m codegen.cli network-docs asset_work from networks/asset_work/system.manifest.yaml and the members' integration contracts — do not edit by hand; regenerate after changing either.

Members

Member Port Role Owns
orchestrator_aw 5125 orchestrator — routes and delivers every message —
work_management 5087 domain work work.work_order, work.material_requirement, work.removed_component, work.installed_component, work.maintenance_template
mwem 5082 domain work work.work_order, work.material_requirement, work.fixed_asset
haul_road 5124 domain work work.work_order, work.material_requirement, work.road_segment, work.road_closure, work.road_defect
scrm 5085 domain campaign campaign.campaign, campaign.scope_item, campaign.scope_change, campaign.readiness_snapshot, campaign.milestone
msam 5083 domain materials inventory.reservation, inventory.goods_receipt
psam 5084 domain purchasing purchasing.purchase_requirement, purchasing.purchase_order, purchasing.delivery_commitment
fins 5081 domain finance finance.accounting_document, finance.posting_message

Who sends what to whom

Solid arrows are events (publisher → subscriber). Dotted arrows are commands an application is allowed to send (listed in the receiving app accepted_from) — not necessarily traffic today; commands the orchestrator issues are listed in the catalogue only. Every message travels through the orchestrator, which is left out of the map to keep it readable.

flowchart LR
  work_management["work_management"]
  mwem["mwem"]
  haul_road["haul_road"]
  scrm["scrm"]
  msam["msam"]
  psam["psam"]
  fins["fins"]
  ext_asset["asset (not in the network yet)"]:::ext
  ext_catalogue["catalogue (not in the network yet)"]:::ext
  ext_classification["classification (not in the network yet)"]:::ext
  ext_governance["governance (not in the network yet)"]:::ext
  ext_lifecycle["lifecycle (not in the network yet)"]:::ext
  ext_purchasing["purchasing (not in the network yet)"]:::ext
  ext_warranty["warranty (not in the network yet)"]:::ext
  ext_workforce["workforce (not in the network yet)"]:::ext
  ext_asset -- "asset_group_reference_changed<br/>asset_reference_changed<br/>component_reference_changed" --> work_management
  ext_catalogue -- "item_reference_changed" --> work_management
  ext_classification -- "modifier_reference_changed<br/>smcs_reference_changed" --> work_management
  ext_governance -- "obligation_assigned" --> work_management
  ext_lifecycle -- "usage_metric_type_reference_changed" --> work_management
  ext_purchasing -. "record_job_cost" .-> work_management
  ext_warranty -- "candidate_detected" --> work_management
  ext_workforce -- "employee_changed<br/>employee_left<br/>employee_registered<br/>trade_reference_changed" --> work_management
  haul_road -. "post_journal" .-> fins
  haul_road -. "change_reservation<br/>issue_to_work<br/>release_reservation<br/>return_from_work" .-> msam
  haul_road -- "material_requirement_changed<br/>material_requirement_created" --> msam
  haul_road -. "create_requirement" .-> psam
  haul_road -- "material_requirement_changed<br/>material_requirement_created<br/>readiness_changed<br/>work_closed<br/>work_completed<br/>work_started<br/>work_suspended<br/>work_verified" --> scrm
  msam -. "post_journal" .-> fins
  msam -- "item_issued" --> fins
  msam -- "item_issued<br/>item_reserved<br/>item_returned<br/>item_unavailable" --> haul_road
  msam -- "item_issued<br/>item_reserved<br/>item_returned<br/>item_unavailable" --> mwem
  msam -. "create_requirement" .-> psam
  msam -- "item_unavailable<br/>receipt_accepted<br/>receipt_quarantined<br/>receipt_rejected" --> psam
  msam -- "item_issued<br/>item_reserved<br/>item_unavailable" --> work_management
  mwem -. "post_journal" .-> fins
  mwem -. "change_reservation<br/>issue_to_work<br/>release_reservation<br/>return_from_work" .-> msam
  mwem -. "create_requirement" .-> psam
  psam -. "post_journal" .-> fins
  psam -- "delivery_commitment_changed<br/>delivery_delayed<br/>requirement_created" --> haul_road
  psam -- "delivery_commitment_changed<br/>delivery_delayed<br/>requirement_created" --> mwem
  psam -- "delivery_commitment_changed<br/>delivery_delayed<br/>requirement_created" --> work_management
  scrm -. "assign_campaign" .-> mwem
  work_management -. "post_journal" .-> fins
  work_management -. "change_reservation<br/>issue_to_work<br/>release_reservation<br/>return_from_work" .-> msam
  work_management -. "create_requirement" .-> psam
  classDef ext stroke-dasharray: 4 4,color:#888

Message catalogue

Events

Event Publisher Subscribers Payload
asset.asset_group_reference_changed (not in the network yet) work_management ⏳ —
asset.asset_reference_changed (not in the network yet) work_management ⏳ —
asset.component_reference_changed (not in the network yet) work_management ⏳ —
campaign.milestone_reached scrm 🔁 — cid, campaign_cid, campaign_ref, milestone_type, planned_at, actual_at
campaign.readiness_changed scrm 🔁 — cid, campaign_cid, campaign_ref, captured_at, total_packages, ready_packages, blocked_packages, open_materials, open_procurement, open_contractors, overall_state, explanation
campaign.scope_change_decided scrm 🔁 — cid, campaign_cid, campaign_ref, scope_item_cid, decision, decided_at, decided_by
campaign.scope_change_requested scrm 🔁 — cid, campaign_cid, campaign_ref, scope_item_cid, reason, decision, requested_at
campaign.scope_frozen scrm 🔁 — cid, campaign_ref, title, planned_start, planned_finish, scope_freeze_at
catalogue.item_reference_changed (not in the network yet) work_management ⏳ —
classification.modifier_reference_changed (not in the network yet) work_management ⏳ —
classification.smcs_reference_changed (not in the network yet) work_management ⏳ —
finance.document_posted fins 🔁 — cid, accounting_document_number, fiscal_year, company_code, document_type, source_system, source_record_type, source_record_cid, source_record_ref, work_order_cid, work_order_ref, work_system, total_amount, currency_code
finance.posting_rejected fins 🔁 — cid, message_sid, status, source_system, source_record_type, source_record_cid, source_record_ref, work_order_cid, work_order_ref, work_system, error_code, error_message, retryable
governance.obligation_assigned (not in the network yet) work_management ✅ —
inventory.item_issued msam 🔁 fins ✅, haul_road ✅, mwem ✅, work_management ✅ cid, reservation_number, material_requirement_cid, material_requirement_ref, work_order_cid, work_order_ref, work_system, catalogue_item_cid, catalogue_item_ref, quantity_issued, unit_cost, issued_value, issued_at
inventory.item_reserved msam 🔁 haul_road ✅, mwem ✅, work_management ✅ cid, reservation_number, material_requirement_cid, material_requirement_ref, work_order_cid, work_order_ref, work_system, catalogue_item_cid, catalogue_item_ref, quantity_reserved, required_by
inventory.item_returned msam 🔁 haul_road ✅, mwem ✅ cid, reservation_number, material_requirement_cid, material_requirement_ref, work_order_cid, work_order_ref, work_system, catalogue_item_cid, catalogue_item_ref, quantity_returned, returned_value
inventory.item_unavailable msam 🔁 haul_road ✅, mwem ✅, psam ✅, work_management ✅ cid, reservation_number, material_requirement_cid, material_requirement_ref, work_order_cid, work_order_ref, work_system, catalogue_item_cid, catalogue_item_ref, quantity_required, quantity_reserved, required_by
inventory.receipt_accepted msam 🔁 psam ✅ cid, receipt_number, purchase_order_cid, purchase_order_ref, quantity_accepted, received_at
inventory.receipt_quarantined msam 🔁 psam ✅ cid, receipt_number, purchase_order_cid, purchase_order_ref, quantity_held, received_at
inventory.receipt_rejected msam 🔁 psam ✅ cid, receipt_number, purchase_order_cid, purchase_order_ref, quantity_rejected, received_at
lifecycle.usage_metric_type_reference_changed (not in the network yet) work_management ⏳ —
purchasing.delivery_commitment_changed psam 🔁 haul_road ✅, mwem ✅, work_management ✅ cid, revision_no, material_requirement_cid, material_requirement_ref, work_system, catalogue_item_cid, catalogue_item_ref, purchase_order_cid, purchase_order_ref, committed_quantity, committed_delivery_at, commitment_status, reason_code
purchasing.delivery_delayed psam 🔁 haul_road ✅, mwem ✅, work_management ✅ cid, revision_no, material_requirement_cid, material_requirement_ref, work_system, purchase_order_cid, purchase_order_ref, supplier_cid, supplier_ref, committed_delivery_at, commitment_status, reason_code, reason
purchasing.order_cancelled psam 🔁 — cid, purchase_order_number, supplier_cid, material_requirement_cid, work_system
purchasing.order_placed psam 🔁 — cid, purchase_order_number, supplier_cid, supplier_ref, material_requirement_cid, material_requirement_ref, work_order_cid, work_order_ref, work_system, currency, committed_total
purchasing.requirement_created psam 🔁 haul_road ✅, mwem ✅, work_management ✅ cid, requirement_number, material_requirement_cid, material_requirement_ref, work_order_cid, work_order_ref, work_system, catalogue_item_cid, catalogue_item_ref, quantity_required, required_by, requirement_status
warranty.candidate_detected (not in the network yet) work_management ✅ —
work.component_installed work_management 🔁 — cid, work_order_cid, work_order_ref, parent_asset_cid, parent_asset_ref, component_cid, component_ref, catalogue_item_cid, catalogue_item_ref, smcs_cid, smcs_ref, modifier_cid, modifier_ref, position_code, installed_at, main_smu_value, main_smu_unit, main_smu_metric_cid, main_smu_metric_ref, installed_by_name
work.component_removed work_management 🔁 — cid, work_order_cid, work_order_ref, parent_asset_cid, parent_asset_ref, component_asset_cid, component_asset_ref, catalogue_item_cid, catalogue_item_ref, serial_number_snapshot, removed_at, main_smu_value, main_smu_unit, main_smu_metric_cid, main_smu_metric_ref, removed_by_name, removal_usage_value, removal_usage_unit, removal_reason_code, failure_mode_code, disposition, warranty_review_required
work.defect_recorded haul_road 🔁 — cid, subject_cid, subject_ref, defect_type, severity, estimated_quantity, quantity_unit, status
work.late_cost_recorded work_management 🔁 — work_order_cid, work_order_ref, asset_cid, asset_ref, cost_type, source_type, source_ref, description, amount, currency, incurred_at
work.maintenance_template_reference_changed work_management 🔁 · materiality — cid, reference, previous_reference
work.material_requirement_changed haul_road 🔁 msam ✅, scrm ✅ cid, requirement_number, work_order_cid, work_order_ref, requirement_status, inventory_reservation_cid, inventory_reservation_ref, purchase_requirement_cid, purchase_requirement_ref, expected_available_at, work_system
work.material_requirement_created haul_road 🔁 msam ✅, scrm ✅ cid, requirement_number, work_order_cid, work_order_ref, catalogue_item_cid, catalogue_item_ref, quantity_required, unit_snapshot, required_by, critical_to_start, work_system
work.readiness_changed haul_road 🔁 scrm ✅ work_order_cid, work_order_number, readiness_state, readiness_reason, work_system
work.returned_to_service work_management 🔁 — work_order_cid, work_order_number, asset_cid, asset_ref, operating_state, limitations, monitoring_until
work.subject_closed haul_road 🔁 — cid, subject_type, subject_cid, subject_ref, reason, closure_type, started_at, notes
work.subject_reopened haul_road 🔁 — cid, subject_type, subject_cid, subject_ref, reason, started_at, ended_at
work.work_closed haul_road 🔁 scrm ✅ cid, work_order_number, actual_cost, quantity_done, quantity_unit, work_system
work.work_completed haul_road 🔁 scrm ✅ cid, work_order_number, subject_cid, subject_ref, quantity_done, quantity_unit, work_system
work.work_order_created haul_road 🔁 — cid, work_order_number, work_status, work_type, subject_type, subject_system, subject_cid, subject_ref, work_system
work.work_started haul_road 🔁 scrm ✅ cid, work_order_number, subject_cid, subject_ref, work_system
work.work_suspended haul_road 🔁 scrm ✅ cid, work_order_number, subject_cid, subject_ref, work_system
work.work_verified haul_road 🔁 scrm ✅ work_order_cid, work_order_number, subject_cid, subject_ref, work_system
workforce.employee_changed (not in the network yet) work_management ✅ —
workforce.employee_left (not in the network yet) work_management ✅ —
workforce.employee_registered (not in the network yet) work_management ✅ —
workforce.trade_reference_changed (not in the network yet) work_management ⏳ —

Commands

Command Receiver Accepted from Request Response Rejects
campaign.add_scope_item scrm ✅ orchestrator work_order_cid, work_system, campaign_cid?, campaign_ref?, work_order_ref?, title?, scope_priority?, package_code?, reason?, assign_campaign? scope_item_cid, campaign_cid, package_code, scope_status, assignment_status, scope_change_cid unknown_campaign, campaign_closed, invalid_priority, in_another_campaign
campaign.decide_scope_change scrm ✅ orchestrator scope_change_cid, decision, decided_by? scope_change_cid, decision, scope_status, assignment_status unknown_scope_change, already_decided, invalid_decision
campaign.freeze_scope scrm ✅ orchestrator campaign_cid?, campaign_ref? campaign_cid, campaign_status, items_frozen unknown_campaign, campaign_closed
finance.post_journal fins ✅ orchestrator, work_management, mwem, haul_road, msam, psam source_record_type, source_record_cid, lines, source_system?, source_record_ref?, work_order_cid?, work_order_ref?, work_system?, document_date?, posting_date?, currency?, company_code?, reference?, header_text? message_sid, posting_status, accounting_document_number, fiscal_year, errors posting_rejected, posting_temporarily_failed, no_lines
inventory.change_reservation msam ✅ work_management, mwem, haul_road, orchestrator reservation_cid, quantity_required?, required_by? cid, reservation_number, reservation_status, quantity_required, quantity_reserved, required_by, reservations_filled not_found, already_issued, cancelled, invalid_quantity
inventory.inspect_receipt msam ✅ orchestrator goods_receipt_cid, quantity_accepted?, quantity_rejected?, notes? goods_receipt_cid, receipt_number, receipt_status, quantity_accepted, quantity_rejected, reservations_filled not_found, not_pending, quantity_mismatch
inventory.issue_to_work msam ✅ work_management, mwem, haul_road, orchestrator reservation_cid, issued_by? cid, reservation_number, reservation_status, quantity_issued, unit_cost, issued_value not_found, not_reserved, already_issued
inventory.record_goods_arrival msam ✅ orchestrator lines, purchase_order_cid?, purchase_order_ref?, stock_location_cid?, arrived_at? receipts, reservations_filled no_lines, unknown_item, invalid_quantity, unknown_location
inventory.release_reservation msam ✅ work_management, mwem, haul_road, orchestrator reservation_cid, reason cid, reservation_number, reservation_status not_found, already_issued
inventory.return_from_work msam ✅ work_management, mwem, haul_road, orchestrator reservation_cid, quantity_returned, reason? cid, reservation_number, quantity_returned, returned_value, quantity_issued_net, reservations_filled not_found, not_issued, invalid_quantity, exceeds_issued
inventory.reverse_receipt_acceptance msam ✅ orchestrator goods_receipt_cid, disposition, reason, reversed_at? goods_receipt_cid, receipt_number, receipt_status, quantity_reversed not_found, not_accepted, already_consumed, invalid_disposition
purchasing.cancel_purchase_order psam ✅ orchestrator purchase_order_cid, reason purchase_order_cid, order_status unknown_order, already_received, order_closed
purchasing.create_purchase_order psam ✅ orchestrator purchase_requirement_cid, supplier_cid?, supplier_ref?, quantity?, unit_price?, currency?, promised_delivery? cid, purchase_order_number, order_status, revision_no unknown_requirement, requirement_closed, unknown_supplier, supplier_not_approved, invalid_quantity
purchasing.create_requirement psam ✅ work_management, mwem, haul_road, msam, orchestrator catalogue_item_cid, catalogue_item_ref?, quantity_required, required_by, material_requirement_cid?, material_requirement_ref?, work_order_cid?, work_order_ref?, work_system?, description?, requirement_priority? cid, requirement_number, requirement_status invalid_quantity
purchasing.record_supplier_commitment psam ✅ orchestrator purchase_order_cid, committed_delivery_at, commitment_status, committed_quantity?, reason_code?, reason? cid, revision_no, commitment_status unknown_order, order_closed, invalid_status, invalid_date
work.assign_campaign mwem ✅ orchestrator, scrm work_order_cid, campaign_cid, campaign_ref? work_order_cid, campaign_cid, campaign_ref unknown_work_order, work_order_closed
work.close_subject haul_road ✅ orchestrator reason, subject_cid?, subject_ref?, closure_type?, notes? cid, subject_type, subject_ref, closure_type, status unknown_subject, invalid_reason
work.confirm_access mwem ✅ orchestrator work_order_cid, requirement_type?, external_ref?, confirmed_by? work_order_cid, confirmed, outstanding unknown_work_order, nothing_to_confirm
work.create_material_requirement haul_road ✅ orchestrator work_order_cid, catalogue_item_cid, catalogue_item_ref?, quantity_required, unit_snapshot?, required_by?, critical_to_start? cid, requirement_number, requirement_status work_order_not_found, work_order_closed, invalid_quantity
work.create_work_order haul_road ✅ orchestrator title, work_type, subject_cid?, subject_ref?, work_priority?, quantity?, unit?, required_by? cid, work_order_number, work_status, subject_type, subject_cid, subject_ref unknown_subject, work_type_invalid, invalid_quantity
work.record_component_failure work_management ✅ orchestrator work_order_cid, component_asset_cid, component_asset_ref?, failure_mode_code, symptom_code?, removal_reason_code?, usage_at_failure?, usage_unit?, main_smu_value?, main_smu_unit?, main_smu_metric_cid?, main_smu_metric_ref?, failed_at?, warranty_review_required? work_order_cid, warranty_review_required —
work.record_component_installation work_management ✅ orchestrator work_order_cid, component_cid, component_ref?, catalogue_item_cid?, catalogue_item_ref?, smcs_cid?, smcs_ref?, modifier_cid?, modifier_ref?, position_code?, installed_at?, main_smu_value?, main_smu_unit?, main_smu_metric_cid?, main_smu_metric_ref?, installed_by_person_cid?, notes? work_order_cid, installed_component_cid work_order_not_found, work_order_closed
work.record_defect haul_road ✅ orchestrator subject_ref, defect_type, severity, estimated_quantity?, unit?, description?, subject_cid? cid, status, work_order_cid, work_order_number unknown_subject, defect_type_invalid, severity_invalid, invalid_quantity
work.record_job_cost work_management ✅ purchasing, orchestrator work_order_cid, work_order_ref?, cost_type, source_type, source_cid, source_ref?, description?, quantity?, unit_cost?, amount, currency?, incurred_at? work_order_cid, cost_type, amount, existing unknown_work_order, unknown_cost_type
work.record_time work_management ✅ orchestrator work_order_cid, person_reference, hours, time_type?, trade_cid?, trade_ref?, trade_code?, started_at?, finished_at?, notes? work_order_cid, hours, time_type, trade_cid, trade_ref, work_status unknown_work_order, unknown_person, hours_required, order_cancelled, unknown_trade
work.reopen_subject haul_road ✅ orchestrator closure_cid?, subject_cid?, subject_ref? cid, subject_type, subject_ref, status unknown_subject, no_closure
work.reopen_work_order work_management ✅ orchestrator work_order_cid, reason work_order_cid, work_status unknown_work_order, not_closed
work.return_to_service work_management ⏳ orchestrator work_order_cid, asset_cid, asset_ref?, operating_state, limitations?, monitoring_until? work_order_cid, work_status prerequisites_not_met
work.review_material_delay work_management ⏳ orchestrator work_order_cid, material_requirement_cid, previous_expected_at?, current_expected_at?, reason? work_order_cid, readiness_status, decision_required —
work.start_work mwem ✅ orchestrator work_order_cid work_order_cid, work_status, actual_start_at unknown_work_order, access_not_confirmed, cannot_start
work.update_external_constraint work_management ⏳ orchestrator work_order_cid, external_entity_type, external_entity_cid, external_entity_ref?, dependency_type, status, required_by? work_order_cid, dependency_status —
work.verify_and_close haul_road ✅ orchestrator work_order_cid, verification_result, quantity_verified?, checked_by?, comments? work_order_cid, work_status, verification_result, verified, closed unknown_work_order, not_complete, invalid_result, order_cancelled

Queries

Query Answered by Request Response
campaign.readiness_status scrm ✅ campaign_cid?, campaign_ref? campaign_cid, campaign_ref, campaign_status, total_packages, ready_packages, blocked_packages, open_materials, open_procurement, open_contractors, overall_state, explanation, work_orders
finance.posting_status fins ✅ source_record_cid source_record_cid, posting_status, message_sid, accounting_document_number, fiscal_year, error_code, error_message, retryable
inventory.availability msam ✅ catalogue_item_cid?, catalogue_item_ref?, quantity_required? catalogue_item_cid, catalogue_item_ref, quantity_on_hand, quantity_reserved, quantity_available, candidate_locations, reservation_possible
inventory.purchase_order_receipts msam ✅ purchase_order_cid purchase_order_cid, receipts
inventory.receipt_status msam ✅ cid cid, receipt_number, purchase_order_cid, receipt_status, lines
inventory.reservation_status msam ✅ cid cid, reservation_number, material_requirement_cid, material_requirement_ref, reservation_status, quantity_required, quantity_reserved, required_by
purchasing.delivery_status psam ✅ purchase_order_cid purchase_order_cid, order_status, commitments, site_delivery, receipts
purchasing.purchase_order_status psam ✅ cid cid, purchase_order_number, supplier_cid, supplier_ref, order_status, current_delivery_commitment
purchasing.requirement_status psam ✅ cid cid, requirement_number, requirement_status, material_requirement_cid, required_by, purchase_orders
work.asset_work_history work_management ⏳ asset_cid, from_datetime?, to_datetime? work_orders, removed_components, closeout_codes
work.material_requirement_status haul_road ✅ cid cid, requirement_number, work_order_cid, work_order_ref, catalogue_item_cid, catalogue_item_ref, quantity_required, requirement_status, inventory_reservation_cid, inventory_reservation_ref, purchase_requirement_cid, purchase_requirement_ref, expected_available_at
work.open_work_orders work_management ✅ work_status?, limit? items
work.readiness_status work_management ⏳ cid work_status, blocking_dependencies, open_material_requirements, unavailable_tools, isolation_status, access_status
work.search_maintenance_templates work_management ✅ text, limit? items
work.work_order_status haul_road ✅ cid cid, work_order_number, work_status, work_type, subject_type, subject_cid, subject_ref, planned_quantity, quantity_done, quantity_unit, actual_cost

🔁 published automatically when the record changes · ✅ handler implemented · ⏳ declared, no handler yet (answers handler not found) · 🧪 stub (stands in for an app not built yet)

Entities: ownership and references

Entity type Owner Referenced by
asset.asset asset_register (not in the network yet) work_management: WorkOrder.asset_cid, IsolationReference.asset_cid, TestResult.asset_cid, ReturnToService.asset_cid
asset.asset_group asset_register (not in the network yet) work_management: MaintenanceTemplate.asset_group_cid
asset.component asset_register (not in the network yet) work_management: WorkOrder.component_cid, RemovedComponent.component_cid, InstalledComponent.component_cid
campaign.campaign scrm —
campaign.milestone scrm —
campaign.readiness_snapshot scrm —
campaign.scope_change scrm —
campaign.scope_item scrm —
catalogue.item catalogue (not in the network yet) work_management: WorkMaterialRequirement.catalogue_item_cid, RemovedComponent.catalogue_item_cid, InstalledComponent.catalogue_item_cid
classification.modifier classification (not in the network yet) work_management: InstalledComponent.modifier_cid
classification.smcs classification (not in the network yet) work_management: MaintenanceTemplate.smcs_cid, InstalledComponent.smcs_cid
finance.accounting_document fins —
finance.posting_message fins —
inventory.goods_receipt msam —
inventory.reservation msam work_management: WorkMaterialRequirement.inventory_reservation_cid
mwem: MaterialRequirement.inventory_reservation_cid
haul_road: HaulMaterialRequirement.inventory_reservation_cid
psam: PurchaseRequirement.inventory_reservation_cid
lifecycle.usage_metric_type asset_lifecycle (not in the network yet) work_management: RemovedComponent.main_smu_usage_metric_type_cid, InstalledComponent.main_smu_usage_metric_type_cid
purchasing.delivery_commitment psam —
purchasing.purchase_order psam —
purchasing.purchase_requirement psam work_management: WorkMaterialRequirement.purchase_requirement_cid
mwem: MaterialRequirement.purchase_requirement_cid
haul_road: HaulMaterialRequirement.purchase_requirement_cid
supplier.supplier supplier (not in the network yet) work_management: Organisation.supplier_cid
warranty.candidate warranty (not in the network yet) work_management: WorkOrder.warranty_candidate_cid
work.fixed_asset mwem —
work.installed_component work_management —
work.maintenance_template work_management —
work.material_requirement work_management, mwem, haul_road scrm: CampaignMaterial.material_requirement_cid
msam: MaterialDemand.material_requirement_cid
psam: PurchaseRequirement.material_requirement_cid, PurchaseOrder.material_requirement_cid, DeliveryCommitment.material_requirement_cid
work.removed_component work_management —
work.road_closure haul_road —
work.road_defect haul_road —
work.road_segment haul_road —
work.work_order work_management, mwem, haul_road scrm: CampaignWorkOrder.work_order_cid
msam: MaterialDemand.work_order_cid
psam: PurchaseRequirement.work_order_cid, PurchaseOrder.work_order_cid
fins: AccountingDocument.work_order_cid, InboundMessage.work_order_cid
workforce.trade workforce (not in the network yet) work_management: Person.trade_cid, WorkAssignment.trade_cid, WorkTimeEntry.trade_cid

Reference flows

A1 — A part is short for fixed plant work - purchasing orders it, it arrives, is reserved, issued and its cost posted

sequenceDiagram
  participant haul_road as haul_road
  participant O as Orchestrator
  participant scrm as scrm
  participant msam as msam
  participant work_management as work_management
  participant mwem as mwem
  participant psam as psam
  participant fins as fins
  haul_road->>O: work.material_requirement_created
  O->>scrm: deliver
  O->>msam: deliver
  msam->>O: inventory.item_unavailable
  O->>work_management: deliver
  O->>mwem: deliver
  O->>haul_road: deliver
  O->>psam: deliver
  psam->>O: purchasing.requirement_created
  O->>work_management: deliver
  O->>mwem: deliver
  O->>haul_road: deliver
  psam->>O: purchasing.order_placed
  psam->>O: purchasing.delivery_commitment_changed
  O->>work_management: deliver
  O->>mwem: deliver
  O->>haul_road: deliver
  msam->>O: inventory.receipt_accepted
  O->>psam: deliver
  msam->>O: inventory.item_reserved
  O->>work_management: deliver
  O->>mwem: deliver
  O->>haul_road: deliver
  msam->>O: inventory.item_issued
  O->>work_management: deliver
  O->>mwem: deliver
  O->>haul_road: deliver
  O->>fins: deliver
  fins->>O: finance.document_posted

A2 — Haul road material is in stock - reserved at once, issued and its cost posted, the work completed and closed

sequenceDiagram
  participant haul_road as haul_road
  participant O as Orchestrator
  participant scrm as scrm
  participant msam as msam
  participant work_management as work_management
  participant mwem as mwem
  participant fins as fins
  haul_road->>O: work.work_order_created
  haul_road->>O: work.material_requirement_created
  O->>scrm: deliver
  O->>msam: deliver
  msam->>O: inventory.item_reserved
  O->>work_management: deliver
  O->>mwem: deliver
  O->>haul_road: deliver
  msam->>O: inventory.item_issued
  O->>work_management: deliver
  O->>mwem: deliver
  O->>haul_road: deliver
  O->>fins: deliver
  fins->>O: finance.document_posted
  haul_road->>O: work.work_completed
  O->>scrm: deliver
  haul_road->>O: work.work_closed
  O->>scrm: deliver

A3 — A late delivery and then a cancelled order - the work application is told the new date, then that none is expected

sequenceDiagram
  participant msam as msam
  participant O as Orchestrator
  participant work_management as work_management
  participant mwem as mwem
  participant haul_road as haul_road
  participant psam as psam
  msam->>O: inventory.item_unavailable
  O->>work_management: deliver
  O->>mwem: deliver
  O->>haul_road: deliver
  O->>psam: deliver
  psam->>O: purchasing.requirement_created
  O->>work_management: deliver
  O->>mwem: deliver
  O->>haul_road: deliver
  psam->>O: purchasing.delivery_commitment_changed
  O->>work_management: deliver
  O->>mwem: deliver
  O->>haul_road: deliver
  psam->>O: purchasing.delivery_delayed
  O->>work_management: deliver
  O->>mwem: deliver
  O->>haul_road: deliver
  psam->>O: purchasing.order_cancelled
  psam->>O: purchasing.delivery_commitment_changed
  O->>work_management: deliver
  O->>mwem: deliver
  O->>haul_road: deliver

S1 — A shutdown follows its work - orders are put in scope and assigned, readiness and progress arrive, the campaign completes

sequenceDiagram
  participant scrm as scrm
  participant O as Orchestrator
  participant haul_road as haul_road
  scrm->>O: campaign.readiness_changed
  haul_road->>O: work.readiness_changed
  O->>scrm: deliver
  scrm->>O: campaign.scope_frozen
  haul_road->>O: work.work_started
  O->>scrm: deliver
  scrm->>O: campaign.milestone_reached
  haul_road->>O: work.work_completed
  O->>scrm: deliver
  haul_road->>O: work.work_closed
  O->>scrm: deliver

S2 — Scope added after the freeze is a change to be decided before the work order is assigned

sequenceDiagram
  participant scrm as scrm
  participant O as Orchestrator
  scrm->>O: campaign.scope_frozen
  scrm->>O: campaign.scope_change_requested
  scrm->>O: campaign.scope_change_decided

H1 — A serious defect is reported - a work order is made for it at once; the segment is closed for wet weather and reopened

sequenceDiagram
  participant haul_road as haul_road
  participant O as Orchestrator
  haul_road->>O: work.defect_recorded
  haul_road->>O: work.work_order_created
  haul_road->>O: work.subject_closed
  haul_road->>O: work.subject_reopened