← All runs

BE99 DEV test sandbox · Live run · Thu, 29 Oct 2026, 12:51 pm AEST

Pronto 2.0 Test Results

Each check creates a real job in the Pronto test sandbox, runs it through the Obzervr integration the way a site would, and reads the result back from both systems.

Checks run
31
Working
17
Problems found
1
Needs a look
5
Not set up yet
8
Test jobs created
29

What this run tells us

17 of 31 checks passed. One check found a problem in the integration. 4 need a look from the team. 8 couldn't run because BE99 isn't fully set up yet. 1 hit a test or sandbox issue that isn't an integration fault.

  • 17 working
  • 1 problem found
  • 4 needs a look
  • 1 test or sandbox issue
  • 8 not set up yet

Every check, by area

Show

Jobs coming from Pronto into Obzervr

6 of 7 working
What we checkResultWhat happened
Labour requirements come across, including changes and deletionsLAB-01WorkingAll steps passed.Pronto jobs 026343, 026344, 026345, 026346
Show the 23 steps
  1. passed 01-login login · HTTP 200 · 1.0s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo-A insert-wo · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 02-insert-wo-B insert-wo · HTTP 200 · 0.7s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  4. passed 02-insert-wo-C insert-wo · HTTP 200 · 0.6s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  5. passed 02-insert-wo-D insert-wo · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  6. passed 03-mark-in-progress-A update-wo · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
  7. passed 03-mark-in-progress-B update-wo · HTTP 200 · 0.6s

    Checks

    • ✓ response.ok === true status=200
  8. passed 03-mark-in-progress-C update-wo · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
  9. passed 03-mark-in-progress-D update-wo · HTTP 200 · 0.6s

    Checks

    • ✓ response.ok === true status=200
  10. passed 04-trigger-prismatic trigger-prismatic · HTTP 200 · 0.9s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  11. passed 05-check-assignment-A check-assignment · HTTP 200 · 23.1s · 2 attempts

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="35571e09-0aaa-46ed-8d04-b4f2002881a9"
  12. passed 05-check-assignment-B check-assignment · HTTP 200 · 5.7s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="601696e0-4b7c-4e8a-9bb9-b4f200287dae"
  13. passed 05-check-assignment-C check-assignment · HTTP 200 · 5.8s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="a48405f8-734d-4e6d-93c0-b4f200287bde"
  14. passed 05-check-assignment-D check-assignment · HTTP 200 · 5.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="4a895539-0c38-41ca-b2c8-b4f2002879b8"
  15. passed 06-update-labour-A update-labour · HTTP 200 · 1.2s

    Checks

    • ✓ response.ok === true status=200
  16. passed 06-update-labour-B update-labour · HTTP 200 · 0.3s

    Checks

    • ✓ response.ok === true status=200
  17. passed 06-update-labour-C update-labour · HTTP 200 · 0.3s

    Checks

    • ✓ response.ok === true status=200
  18. passed 06-update-labour-D update-labour · HTTP 200 · 0.3s

    Checks

    • ✓ response.ok === true status=200
  19. passed 07-delete-labour-A delete-labour · HTTP 200 · 0.7s

    Checks

    • ✓ response.ok === true status=200
  20. passed 07-delete-labour-B delete-labour · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
  21. passed 07-delete-labour-C delete-labour · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
  22. passed 07-delete-labour-D delete-labour · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
  23. passed 08-trigger-resync trigger-prismatic · HTTP 200 · 1.0s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
A planned job raised in Pronto appears in Obzervr with all its detailsPWO-P2O-01WorkingAll steps passed.Pronto job 026358
Show the 7 steps
  1. passed 01-login login · HTTP 200 · 1.0s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo insert-wo · HTTP 200 · 0.6s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 03-add-history-note add-notes · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
  4. passed 04-add-safety-note add-notes · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
  5. passed 05-mark-in-progress update-wo · HTTP 200 · 0.6s

    Checks

    • ✓ response.ok === true status=200
  6. passed 06-trigger-prismatic trigger-prismatic · HTTP 200 · 1.5s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  7. passed 07-check-assignment-exists check-assignment · HTTP 200 · 5.9s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="844941f4-8232-4938-a5a5-b4f2002c8561"
Each work type (PM, breakdown, corrective and BE99's extra types) comes acrossPWO-P2O-02WorkingAll steps passed.Pronto jobs 026359, 026360, 026361, 026362, 026363
Show the 17 steps
  1. passed 01-login login · HTTP 200 · 1.0s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo-PM insert-wo · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 02-insert-wo-BD insert-wo · HTTP 200 · 1.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  4. passed 02-insert-wo-CM insert-wo · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  5. passed 03-mark-in-progress-PM update-wo · HTTP 200 · 21.0s · 2 attempts

    Checks

    • ✓ response.ok === true status=200
  6. passed 03-mark-in-progress-BD update-wo · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
  7. passed 03-mark-in-progress-CM update-wo · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
  8. passed x-insert-wo[IM] insert-wo · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  9. passed x-mark-in-progress[IM] update-wo · HTTP 200 · 0.9s

    Checks

    • ✓ response.ok === true status=200
  10. passed x-insert-wo[SD] insert-wo · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  11. passed x-mark-in-progress[SD] update-wo · HTTP 200 · 0.8s

    Checks

    • ✓ response.ok === true status=200
  12. passed 04-trigger-prismatic trigger-prismatic · HTTP 200 · 0.9s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  13. passed 05-check-assignment-PM check-assignment · HTTP 200 · 21.1s · 2 attempts

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="2466b096-907a-4e3a-96c8-b4f2002cb17d"
  14. passed 05-check-assignment-BD check-assignment · HTTP 200 · 5.8s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="35d02c48-836f-48c4-89b2-b4f2002cb09c"
  15. passed 05-check-assignment-CM check-assignment · HTTP 200 · 5.5s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="34050136-857f-4dcd-bbd5-b4f2002caf5f"
  16. passed x-check-assignment[IM] check-assignment · HTTP 200 · 5.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="605634ec-f1bc-4dcc-84d6-b4f2002caea3"
  17. passed x-check-assignment[SD] check-assignment · HTTP 200 · 5.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="93467b24-c55f-46b6-803c-b4f2002cad92"
Bulk status and date changes in Pronto update ObzervrPWO-P2O-03WorkingAll steps passed.Pronto jobs 026365, 026366, 026367
Show the 14 steps
  1. passed 01-login login · HTTP 200 · 1.1s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo-A insert-wo · HTTP 200 · 21.1s · 2 attempts

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 02-insert-wo-B insert-wo · HTTP 200 · 1.5s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  4. passed 02-insert-wo-C insert-wo · HTTP 200 · 20.7s · 2 attempts

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  5. passed 03-mark-in-progress-A update-wo · HTTP 200 · 1.5s

    Checks

    • ✓ response.ok === true status=200
  6. passed 03-mark-in-progress-B update-wo · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
  7. passed 03-mark-in-progress-C update-wo · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
  8. passed 04-trigger-prismatic trigger-prismatic · HTTP 200 · 1.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  9. passed 05-check-assignment-A check-assignment · HTTP 200 · 5.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="68c1cec3-0a69-45d2-a4e6-b4f2002d1a99"
  10. passed 05-check-assignment-B check-assignment · HTTP 200 · 5.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="fa8bf910-a446-4a52-adc9-b4f2002d1981"
  11. passed 05-check-assignment-C check-assignment · HTTP 200 · 5.3s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="3c7b270b-c217-4529-ae10-b4f2002d1897"
  12. passed 06-update-dates-A update-wo · HTTP 200 · 20.8s · 2 attempts

    Checks

    • ✓ response.ok === true status=200
  13. passed 07-trigger-prismatic-resync trigger-prismatic · HTTP 200 · 0.9s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  14. passed 08-recheck-assignment-A check-assignment · HTTP 200 · 15.3s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="68c1cec3-0a69-45d2-a4e6-b4f2002d1a99"
Plant items with several monitor points come acrossPWO-P2O-04WorkingAll steps passed.Pronto job 026368
Show the 5 steps
  1. passed 01-login login · HTTP 200 · 0.6s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo insert-wo · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 03-mark-in-progress update-wo · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
  4. passed 04-trigger-prismatic trigger-prismatic · HTTP 200 · 1.0s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  5. passed 05-check-assignment check-assignment · HTTP 200 · 5.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="46ea26bd-b500-401a-b9f2-b4f2002d58d4"
Pronto keeps a link back to the Obzervr jobPWO-P2O-07Needs a lookRequest worked, but a check didn’t match.Pronto job 026369
Show the 6 steps (stopped at 06-readback-link-written)
  1. passed 01-login login · HTTP 200 · 2.2s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/login

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <AuthInfo>
    <token>
    <redacted>
    </token>
    <AuthStatus>
    <Id>200</Id>
    <Description>LOGIN_OK</Description>
    </AuthStatus>
    </AuthInfo>

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo insert-wo · HTTP 200 · 0.6s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOMaintInsertWorkOrder

    <SCOMaintInsertWorkOrderRequest>
    <WorkOrders>
    <WorkOrder>
    <ActualStartDate>2026-10-29</ActualStartDate>
    <ActualStartTime>10:45:12</ActualStartTime>
    <Section>SERV</Section>
    <PlantItem>005-BK-002</PlantItem>
    <WorkType>PM</WorkType>
    <RespCode>FPL</RespCode>
    <Priority>3</Priority>
    <Reference>OC</Reference>
    <WorkDescription>[Internal Test 1793241909850] PWO-P2O-07 integration key (WO link to Obzervr) written and kept</WorkDescription>
    <PMTask>17</PMTask>
    <EstimatedStartDate>22-10-2026</EstimatedStartDate>
    <EstimatedStartTime>14.00</EstimatedStartTime>
    <EstimatedDuration>4</EstimatedDuration>
    <EstimatedDowntime>2</EstimatedDowntime>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintInsertWorkOrderRequest>

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOMaintInsertWorkOrderResponse xmlns="http://scopesystems.com.au/1.00">
    <APIResponseStatus>
    <Code>OK</Code>
    </APIResponseStatus>
    <WorkOrders>
    <WorkOrder>
    <JobCode>026369</JobCode>
    <Result>Work Order 026369 for ID  added</Result>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintInsertWorkOrderResponse>

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 03-mark-in-progress update-wo · HTTP 200 · 0.4s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOMaintUpdateWorkOrder

    <SCOMaintUpdateWorkOrderRequest>
    <WorkOrders>
    <WorkOrder JobCode="026369">
    <Status>I</Status>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintUpdateWorkOrderRequest>

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOMaintUpdateWorkOrderResponse xmlns="http://scopesystems.com.au/1.00">
    <APIResponseStatus>
    <Code>OK</Code>
    </APIResponseStatus>
    <WorkOrders>
    <WorkOrder>
    <JobCode>026369</JobCode>
    <Result>Work Order 026369 updated</Result>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintUpdateWorkOrderResponse>

    Checks

    • ✓ response.ok === true status=200
  4. passed 04-trigger-prismatic-sync trigger-prismatic · HTTP 200 · 1.0s

    Request

    POST <redacted>

    {
      "jobcode": "026369"
    }

    Reply · HTTP 200

    {
      "executionId": "SW5zdGFuY2VFeGVjdXRpb25SZXN1bHQ6ZGZlY2ZiYWYtZDM3MS00NTIxLWIyZjMtMDVlMjMwZDljMGE2"
    }

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  5. passed 05-check-assignment-exists check-assignment · HTTP 200 · 5.3s

    Request

    POST [Obzervr]/api/v1/assignments

    skip=0&take=500&requireTotalCount=true&sort=%5B%7B%22selector%22%3A%22AssignmentId%22%2C%22desc%22%3Afalse%7D%5D&select=%5B%22Id%22%2C%22AssignmentId%22%5D&filter=%5B%5B%22AssignmentId%22%2C%22%3D%22%2C%22026369%22%5D%5D

    Reply · HTTP 200

    {
      "data": [
        {
          "Id": "7efb7388-e3e2-4f0e-b766-b4f2002d63cb",
          "AssignmentId": "026369"
        }
      ],
      "totalCount": 1
    }

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="7efb7388-e3e2-4f0e-b766-b4f2002d63cb"
  6. fail 06-readback-link-written query-changed-wos · HTTP 200 · 154.7s · 5 attempts

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOMaintGetChangedWorkOrders

    <SCOMaintGetChangedWorkOrdersRequest>
    <RecordLimit>100</RecordLimit>
    <Parameters>
    <Company>
    </Company>
    <IntegrationCode>OBZERVR</IntegrationCode>
    </Parameters>
    <StartKeys>
    </StartKeys>
    <Filters>
    <ChangeDateTime>
    <Range>
    <From>29/10/2026T10:35:09</From>
    <To>29/10/2026T10:47:09</To>
    </Range>
    </ChangeDateTime>
    </Filters>
    <RequestFields>
    <MaintenanceWorkOrders>
    <MaintenanceWorkOrder>
    <ALLFIELDS />
    </MaintenanceWorkOrder>
    </MaintenanceWorkOrders>
    </RequestFields>
    </SCOMaintGetChangedWorkOrdersRequest>

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOMaintGetChangedWorkOrdersResponse xmlns="http://scopesystems.com.au/1.00">
    <APIResponseStatus>
    <Code>OK</Code>
    </APIResponseStatus>
    <MaintenanceWorkOrders>
    <Count>25</Count>
    <Count>25</Count>
    <MaintenanceWorkOrder>
    <ActualDowntime>1.00</ActualDowntime>
    <ActualFinishDate>
    </ActualFinishDate>
    <ActualFinishTime>00:00:00</ActualFinishTime>
    <BranchCode>HFP</BranchCode>
    <CarryoverNotesFlag>
    </CarryoverNotesFlag>
    <ChangeCompanyCode>D11</ChangeCompanyCode>
    <ChangeDateTime>2026-10-29T10:35:37+00:00:00</ChangeDateTime>
    <ChangeIntegrationCode>OBZERVR</ChangeIntegrationCode>
    <ChangeOperation>U</ChangeOperation>
    <ChangeRecordID>174445</ChangeRecordID>
    <ChangeRecordKey>026355</ChangeRecordKey>
    <ChangeRecordType>WORKORDER</ChangeRecordType>
    <ChangeType>WOINPROGRESS</ChangeType>
    <ChangeUser>****</ChangeUser>
    <CostCentreCode>1131410</CostCentreCode>
    <Description>[Internal Test 1793241315880] PWO-O2P-05 finalisation reject</Description>
    <DoneByCode>
    </DoneByCode>
    <EarliestDate>
    </EarliestDate>
    <EstDowntime>2.00</EstDowntime>
    <EstDuration>4.00</EstDuration>
    <EstFinishDate>
    </EstFinishDate>
    <EstStartDate>2026-10-22</EstStartDate>
    <Fault1Code>
    </Fault1Code>
    <Fault2Code>
    </Fault2Code>
    <Fault3Code>
    </Fault3Code>
    <HoldReasonCode>
    </HoldReasonCode>
    <IntegrationCode>OBZERVR</IntegrationCode>
    <IntegrationID>6e653257</IntegrationID>
    <JcmUserOnlyAlpha201>
    </JcmUserOnlyAlpha201>
    <JcmUserOnlyAlpha202>
    </JcmUserOnlyAlpha202>
    <JcmUserOnlyAlpha41>
    </JcmUserOnlyAlpha41>
    <JcmUserOnlyAlpha42>
    </JcmUserOnlyAlpha42>
    <JcmUserOnlyAlpha43>
    </JcmUserOnlyAlpha43>
    <JcmUserOnlyAlpha44>
    </JcmUserOnlyAlpha44>
    <JcmUserOnlyDate1>T00:00:00+00:00</JcmUserOnlyDate1>
    <JcmUserOnlyDate2>T00:00:00+00:00</JcmUserOnlyDate2>
    <JcmUserOnlyNum1>0.00</JcmUserOnlyNum1>
    <JcmUserOnlyNum2>0.00</JcmUserOnlyNum2>
    <JcmUserOnlyNum3>0.00</JcmUserOnlyNum3>
    <JcmUserOnlyNum4>0.00</JcmUserOnlyNum4>
    <LatestDate>
    </LatestDate>
    <PMTaskNo>17</PMTaskNo>
    <ParentProjectCode>026355</ParentProjectCode>
    <ParentProjectDescription>[Internal Test 1793241315880] PWO-O2P-05 finalisation reject</ParentProjectDescription>
    <PlannedByCode>
    </PlannedByCode>
    <PlantItem>005-BK-002</PlantItem>
    <Priority>MEDIUM RISK - NEXT PLAN WEEK</Priority>
    <PriorityCode>3</PriorityCode>
    <ProjectCode>026355</ProjectCode>
    <ProjectCostCategories>
    <Count>0</Count>
    </ProjectCostCategories>
    <ProjectTimesheets/>
    <Reference>ON CONDITION</Reference>
    <ReferenceCode>OC</ReferenceCode>
    <RequiredDate>
    </RequiredDate>
    <Responsibility>FIXED PLANT - PLUMBING</Responsibility>
    <ResponsibilityCode>FPL</ResponsibilityCode>
    <ScheduledDate>
    </ScheduledDate>
    <SectionCode>SERV</SectionCode>
    <Status>Cancelled</Status>
    <StatusCode>L</StatusCode>
    <TotalActualCost>0.00</TotalActualCost>
    <TotalActualHours>0.00</TotalActualHours>
    <TotalBudgetCost>0.00</TotalBudgetCost>
    <TotalBudgetHours>0.00</TotalBudgetHours>
    <TotalCommitments>0.00</TotalCommitments>
    <TotalInvoicedAmount>0.00</TotalInvoicedAmount>
    <WorkOrderDocuments/>
    <WorkOrderMaterials/>
    <WorkOrderNotes/>
    <WorkOrderPurchases/>
    <WorkTypeCode>PM</WorkTypeCode>
    </MaintenanceWorkOrder>
    <MaintenanceWorkOrder>
    <ActualDowntime>1.00</ActualDowntime>
    <ActualFinishDate>
    </ActualFinishDate>
    <ActualFinishTime>00:00:00</ActualFinishTime>
    <BranchCode>HFP</BranchCode>
    <CarryoverNotesFlag>
    </CarryoverNotesFlag>
    <ChangeCompanyCode>D11</ChangeCompanyCode>
    <ChangeDateTime>2026-10-29T10:35:45+00:00:00</ChangeDateTime>
    <ChangeIntegrationCode>OBZERVR</ChangeIntegrationCode>
    <ChangeOperation>U</ChangeOperation>
    <ChangeRecordID>174446</ChangeRecordID>
    <ChangeRecordKey>026355</ChangeRecordKey>
    <ChangeRecordType>WORKORDER</ChangeRecordType>
    <ChangeType>WOLOST</ChangeType>
    <ChangeUser>****</ChangeUser>
    <CostCentreCode>1131410</CostCentreCode>
    <Description>[Internal Test 1793241315880] PWO-O2P-05 finalisation reject</Description>
    <DoneByCode>
    </DoneByCode>
    <EarliestDate>
    </EarliestDate>
    <EstDowntime>2.00</EstDowntime>
    <EstDuration>4.00</EstDuration>
    <EstFinishDate>
    </EstFinishDate>
    <EstStartDate>2026-10-22</EstStartDate>
    <Fault1Code>
    </Fault1Code>
    <Fault2Code>
    </Fault2Code>
    <Fault3Code>
    </Fault3Code>
    <HoldReasonCode>
    </HoldReasonCode>
    <IntegrationCode>OBZERVR</IntegrationCode>
    <IntegrationID>6e653257</IntegrationID>
    <
    …[truncated 77664 bytes]

    Checks

    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
    • ✓ ChangeRecordKey == "026369" matched 1 of 25 rows; using latest
    • ✓ StatusCode == "I" got="I"
    • ✗ IntegrationID matches /^[0-9a-fA-F-]{36}$/ got="7efb7388"
    • ✓ Description contains "1793241909850" got="[Internal Test 1793241909850] PWO-P2O-07 integration key (WO"
Quick links on a Pronto job show in ObzervrQL-01WorkingAll steps passed.Pronto job 026370
Show the 9 steps
  1. passed 01-login login · HTTP 200 · 0.8s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo insert-wo · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 03-mark-in-progress update-wo · HTTP 200 · 0.7s

    Checks

    • ✓ response.ok === true status=200
  4. passed 04-trigger-prismatic trigger-prismatic · HTTP 200 · 1.5s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  5. passed 05-check-assignment-exists check-assignment · HTTP 200 · 5.8s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="d6d2fcc2-2c20-4766-bc8b-b4f2002e2407"
  6. passed 06-insert-quicklink-single insert-quicklinks · HTTP 200 · 1.0s

    Checks

    • ✓ response.ok === true status=200
  7. passed 07-insert-quicklinks-multiple insert-quicklinks · HTTP 200 · 0.3s

    Checks

    • ✓ response.ok === true status=200
  8. passed 08-trigger-resync trigger-prismatic · HTTP 200 · 0.8s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  9. passed 09-recheck-assignment check-assignment · HTTP 200 · 5.7s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="d6d2fcc2-2c20-4766-bc8b-b4f2002e2407"

Completing jobs back to Pronto

7 of 10 working
What we checkResultWhat happened
A break-in job raised in Obzervr is created in Pronto with every fieldBWO-01WorkingAll steps passed.
Show the 5 steps
  1. passed 01-login login · HTTP 200 · 1.1s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-create-assignment create-assignment · HTTP 200 · 1.9s

    Checks

    • ✓ response.ok === true status=200
  3. passed 03-update-assignment-content update-assignment · HTTP 200 · 0.8s

    Checks

    • ✓ response.ok === true status=200
  4. passed 04-finalise-assignment finalise-assignment · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
  5. passed 05-trigger-prismatic trigger-prismatic · HTTP 200 · 1.2s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
Different kinds of timesheet entry on a break-in job reach ProntoBWO-02WorkingAll steps passed.
Show the 17 steps
  1. passed 01-login login · HTTP 200 · 1.2s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-create-assignment-A create-assignment · HTTP 200 · 1.8s

    Checks

    • ✓ response.ok === true status=200
  3. passed 03-content-A update-assignment · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
  4. passed 04-finalise-A finalise-assignment · HTTP 200 · 0.3s

    Checks

    • ✓ response.ok === true status=200
  5. passed 05-trigger-A trigger-prismatic · HTTP 200 · 1.0s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  6. passed 06-create-assignment-B create-assignment · HTTP 200 · 0.7s

    Checks

    • ✓ response.ok === true status=200
  7. passed 07-content-B update-assignment · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
  8. passed 08-finalise-B finalise-assignment · HTTP 200 · 0.3s

    Checks

    • ✓ response.ok === true status=200
  9. passed 09-trigger-B trigger-prismatic · HTTP 200 · 0.9s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  10. passed 10-create-assignment-C create-assignment · HTTP 200 · 0.7s

    Checks

    • ✓ response.ok === true status=200
  11. passed 11-content-C update-assignment · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
  12. passed 12-finalise-C finalise-assignment · HTTP 200 · 0.3s

    Checks

    • ✓ response.ok === true status=200
  13. passed 13-trigger-C trigger-prismatic · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  14. passed 14-create-assignment-D create-assignment · HTTP 200 · 0.8s

    Checks

    • ✓ response.ok === true status=200
  15. passed 15-content-D update-assignment · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
  16. passed 16-finalise-D finalise-assignment · HTTP 200 · 0.3s

    Checks

    • ✓ response.ok === true status=200
  17. passed 17-trigger-D trigger-prismatic · HTTP 200 · 0.8s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
Finishing one section of a job sends it to Pronto straight away, onceGIC-01Not set up yetNeeds the Inflight update flow link for BE99.
Materials on a job are kept in step between Pronto and ObzervrMAT-01Test or sandbox issueThe checks passed, but the test couldn't tidy up afterwards. Unable to Update Work Order, Linked Sales/Store Issue Orders exist for Work Order (WorkOrderLinkedOrdersExist: 026347)Pronto job 026347
Show the 13 steps (stopped at 99-cleanup-cancel-wo)
  1. passed 01-login login · HTTP 200 · 0.6s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/login

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <AuthInfo>
    <token>
    <redacted>
    </token>
    <AuthStatus>
    <Id>200</Id>
    <Description>LOGIN_OK</Description>
    </AuthStatus>
    </AuthInfo>

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo insert-wo · HTTP 200 · 1.0s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOMaintInsertWorkOrder

    <SCOMaintInsertWorkOrderRequest>
    <WorkOrders>
    <WorkOrder>
    <ActualStartDate>2026-10-29</ActualStartDate>
    <ActualStartTime>10:28:00</ActualStartTime>
    <Section>SERV</Section>
    <PlantItem>005-BK-002</PlantItem>
    <WorkType>PM</WorkType>
    <RespCode>FPL</RespCode>
    <Priority>3</Priority>
    <Reference>OC</Reference>
    <WorkDescription>[Internal Test 1793240879834] MAT-01 — materials lifecycle</WorkDescription>
    <PMTask>17</PMTask>
    <WorkOrderMaterials>
    <WorkOrderMaterial>
    <ItemCode>100000</ItemCode>
    <BudgetQty>1</BudgetQty>
    </WorkOrderMaterial>
    </WorkOrderMaterials>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintInsertWorkOrderRequest>

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOMaintInsertWorkOrderResponse xmlns="http://scopesystems.com.au/1.00">
    <APIResponseStatus>
    <Code>OK</Code>
    </APIResponseStatus>
    <WorkOrders>
    <WorkOrder>
    <JobCode>026347</JobCode>
    <Result>Work Order 026347 for ID  added</Result>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintInsertWorkOrderResponse>

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 02b-readback-materials-initial query-wo-materials · HTTP 200 · 0.6s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOWorkOrderGetMaterials

    <SCOWorkOrderGetMaterialsRequest>
    <RecordLimit>50</RecordLimit>
    <Parameters>
    <JobCode>026347</JobCode>
    <CategoryCode>
    </CategoryCode>
    </Parameters>
    <Filters>
    <CategoryCode />
    </Filters>
    <RequestFields>
    <WorkOrderMaterials>
    <WorkOrderMaterial>
    <ActionDate />
    <ActualAmount />
    <BudgetQty />
    <CostCentre />
    <ItemCode />
    <ItemDescription />
    <UOM />
    <Warehouse />
    </WorkOrderMaterial>
    </WorkOrderMaterials>
    </RequestFields>
    </SCOWorkOrderGetMaterialsRequest>

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOWorkOrderGetMaterialsResponse xmlns="http://scopesystems.com.au/2.00">
    <APIResponseStatus>
    <Code>OK</Code>
    </APIResponseStatus>
    <WorkOrderMaterials>
    <WorkOrderMaterial>
    <ActionDate>
    </ActionDate>
    <ActualAmount>
    </ActualAmount>
    <BudgetQty>1.0000</BudgetQty>
    <CostCentre>3506</CostCentre>
    <ItemCode>100000</ItemCode>
    <ItemDescription>VALVE;BALL;TYPE A;1 INCH</ItemDescription>
    <UOM>EACH</UOM>
    <Warehouse>GHMN</Warehouse>
    </WorkOrderMaterial>
    </WorkOrderMaterials>
    </SCOWorkOrderGetMaterialsResponse>

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  4. passed 03-mark-in-progress update-wo · HTTP 200 · 2.7s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOMaintUpdateWorkOrder

    <SCOMaintUpdateWorkOrderRequest>
    <WorkOrders>
    <WorkOrder JobCode="026347">
    <Status>I</Status>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintUpdateWorkOrderRequest>

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOMaintUpdateWorkOrderResponse xmlns="http://scopesystems.com.au/1.00">
    <APIResponseStatus>
    <Code>OK</Code>
    </APIResponseStatus>
    <WorkOrders>
    <WorkOrder>
    <JobCode>026347</JobCode>
    <Result>Work Order 026347 updated</Result>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintUpdateWorkOrderResponse>

    Checks

    • ✓ response.ok === true status=200
  5. passed 04-trigger-prismatic trigger-prismatic · HTTP 200 · 1.1s

    Request

    POST <redacted>

    {
      "jobcode": "026347"
    }

    Reply · HTTP 200

    {
      "executionId": "SW5zdGFuY2VFeGVjdXRpb25SZXN1bHQ6YjIyOTJlZGEtYWJjNS00Njk3LTgxYzEtY2M3YTYxODI0ODgx"
    }

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  6. passed 05-check-assignment-exists check-assignment · HTTP 200 · 20.8s · 2 attempts

    Request

    POST [Obzervr]/api/v1/assignments

    skip=0&take=500&requireTotalCount=true&sort=%5B%7B%22selector%22%3A%22AssignmentId%22%2C%22desc%22%3Afalse%7D%5D&select=%5B%22Id%22%2C%22AssignmentId%22%5D&filter=%5B%5B%22AssignmentId%22%2C%22%3D%22%2C%22026347%22%5D%5D

    Reply · HTTP 200

    {
      "data": [
        {
          "Id": "3420af09-c8f9-4fd9-8a5c-b4f20028b35b",
          "AssignmentId": "026347"
        }
      ],
      "totalCount": 1
    }

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="3420af09-c8f9-4fd9-8a5c-b4f20028b35b"
  7. passed 06-add-materials-multiple insert-materials · HTTP 200 · 1.3s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOWorkOrderInsertMaterials

    <SCOWorkOrderInsertMaterialsRequest>
    <WorkOrderMaterials>
    <WorkOrderMaterial JobCode="026347">
    <ItemCode>100015</ItemCode>
    <BudgetQty>1</BudgetQty>
    </WorkOrderMaterial>
    <WorkOrderMaterial JobCode="026347">
    <ItemCode>100040</ItemCode>
    <BudgetQty>1</BudgetQty>
    </WorkOrderMaterial>
    </WorkOrderMaterials>
    </SCOWorkOrderInsertMaterialsRequest>

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOWorkOrderInsertMaterialsResponse xmlns="http://scopesystems.com.au/2.00">
    <APIResponseStatus>
    <Code>OK</Code>
    </APIResponseStatus>
    <WorkOrderMaterials>
    <WorkOrderMaterial>
    <Result>Added Material Line for Work Order '026347', Cost Centre '3691', Item '100015', Warehouse 'GHMN', Qty '1', UoM 'EACH'</Result>
    <WorkOrder>026347</WorkOrder>
    <CostCentre>3691</CostCentre>
    <Item>100015</Item>
    <Warehouse>GHMN</Warehouse>
    <Qty>1</Qty>
    <UoM>EACH</UoM>
    <Item>100015</Item>
    <StockOnHand>1</StockOnHand>
    <CurrentCommitments>0</CurrentCommitments>
    <AvailableForSale>1</AvailableForSale>
    </WorkOrderMaterial>
    <WorkOrderMaterial>
    <Result>Added Material Line for Work Order '026347', Cost Centre '3691', Item '100040', Warehouse 'GHMN', Qty '1', UoM 'EACH'</Result>
    <WorkOrder>026347</WorkOrder>
    <CostCentre>3691</CostCentre>
    <Item>100040</Item>
    <Warehouse>GHMN</Warehouse>
    <Qty>1</Qty>
    <UoM>EACH</UoM>
    <Item>100040</Item>
    <StockOnHand>2</StockOnHand>
    <CurrentCommitments>0</CurrentCommitments>
    <AvailableForSale>2</AvailableForSale>
    </WorkOrderMaterial>
    </WorkOrderMaterials>
    <WorkOrderMaterialsResult>
    <WorkOrder>026347</WorkOrder>
    <IssueOrder>
    </IssueOrder>
    </WorkOrderMaterialsResult>
    </SCOWorkOrderInsertMaterialsResponse>

    Checks

    • ✓ response.ok === true status=200
  8. passed 06b-readback-materials-after-add query-wo-materials · HTTP 200 · 0.4s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOWorkOrderGetMaterials

    <SCOWorkOrderGetMaterialsRequest>
    <RecordLimit>50</RecordLimit>
    <Parameters>
    <JobCode>026347</JobCode>
    <CategoryCode>
    </CategoryCode>
    </Parameters>
    <Filters>
    <CategoryCode />
    </Filters>
    <RequestFields>
    <WorkOrderMaterials>
    <WorkOrderMaterial>
    <ActionDate />
    <ActualAmount />
    <BudgetQty />
    <CostCentre />
    <ItemCode />
    <ItemDescription />
    <UOM />
    <Warehouse />
    </WorkOrderMaterial>
    </WorkOrderMaterials>
    </RequestFields>
    </SCOWorkOrderGetMaterialsRequest>

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOWorkOrderGetMaterialsResponse xmlns="http://scopesystems.com.au/2.00">
    <APIResponseStatus>
    <Code>OK</Code>
    </APIResponseStatus>
    <WorkOrderMaterials>
    <WorkOrderMaterial>
    <ActionDate>
    </ActionDate>
    <ActualAmount>
    </ActualAmount>
    <BudgetQty>1.0000</BudgetQty>
    <CostCentre>3506</CostCentre>
    <ItemCode>100000</ItemCode>
    <ItemDescription>VALVE;BALL;TYPE A;1 INCH</ItemDescription>
    <UOM>EACH</UOM>
    <Warehouse>GHMN</Warehouse>
    </WorkOrderMaterial>
    <WorkOrderMaterial>
    <ActionDate>
    </ActionDate>
    <ActualAmount>
    </ActualAmount>
    <BudgetQty>1.0000</BudgetQty>
    <CostCentre>3691</CostCentre>
    <ItemCode>100015</ItemCode>
    <ItemDescription>ASSEMBLY; FRONT BEARING</ItemDescription>
    <UOM>EACH</UOM>
    <Warehouse>GHMN</Warehouse>
    </WorkOrderMaterial>
    <WorkOrderMaterial>
    <ActionDate>
    </ActionDate>
    <ActualAmount>
    </ActualAmount>
    <BudgetQty>1.0000</BudgetQty>
    <CostCentre>3691</CostCentre>
    <ItemCode>100040</ItemCode>
    <ItemDescription>BATTERY; LV; 12V.</ItemDescription>
    <UOM>EACH</UOM>
    <Warehouse>GHMN</Warehouse>
    </WorkOrderMaterial>
    </WorkOrderMaterials>
    </SCOWorkOrderGetMaterialsResponse>

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  9. passed 07-update-material-qty update-materials · HTTP 200 · 0.3s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOWorkOrderUpdateMaterials

    <SCOWorkOrderUpdateMaterialsRequest>
    <WorkOrderMaterials>
    <WorkOrderMaterial JobCode="026347" ItemCode="100000">
    <BudgetQty>2</BudgetQty>
    </WorkOrderMaterial>
    </WorkOrderMaterials>
    </SCOWorkOrderUpdateMaterialsRequest>

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOWorkOrderUpdateMaterialsResponse xmlns="http://scopesystems.com.au/2.00">
    <APIResponseStatus>
    <Code>OK</Code>
    <APIErrors>
    <APIError>
    <Desc>Error Updating Materials</Desc>
    <Code>MaterialsUpdateError</Code>
    <Value>6469|100000|0</Value>
    <Record>026347|100000|0</Record>
    </APIError>
    </APIErrors>
    </APIResponseStatus>
    <WorkOrderMaterials/>
    </SCOWorkOrderUpdateMaterialsResponse>

    Checks

    • ✓ response.ok === true status=200
  10. passed 07b-readback-materials-after-update query-wo-materials · HTTP 200 · 0.4s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOWorkOrderGetMaterials

    <SCOWorkOrderGetMaterialsRequest>
    <RecordLimit>50</RecordLimit>
    <Parameters>
    <JobCode>026347</JobCode>
    <CategoryCode>
    </CategoryCode>
    </Parameters>
    <Filters>
    <CategoryCode />
    </Filters>
    <RequestFields>
    <WorkOrderMaterials>
    <WorkOrderMaterial>
    <ActionDate />
    <ActualAmount />
    <BudgetQty />
    <CostCentre />
    <ItemCode />
    <ItemDescription />
    <UOM />
    <Warehouse />
    </WorkOrderMaterial>
    </WorkOrderMaterials>
    </RequestFields>
    </SCOWorkOrderGetMaterialsRequest>

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOWorkOrderGetMaterialsResponse xmlns="http://scopesystems.com.au/2.00">
    <APIResponseStatus>
    <Code>OK</Code>
    </APIResponseStatus>
    <WorkOrderMaterials>
    <WorkOrderMaterial>
    <ActionDate>
    </ActionDate>
    <ActualAmount>
    </ActualAmount>
    <BudgetQty>1.0000</BudgetQty>
    <CostCentre>3506</CostCentre>
    <ItemCode>100000</ItemCode>
    <ItemDescription>VALVE;BALL;TYPE A;1 INCH</ItemDescription>
    <UOM>EACH</UOM>
    <Warehouse>GHMN</Warehouse>
    </WorkOrderMaterial>
    <WorkOrderMaterial>
    <ActionDate>
    </ActionDate>
    <ActualAmount>
    </ActualAmount>
    <BudgetQty>1.0000</BudgetQty>
    <CostCentre>3691</CostCentre>
    <ItemCode>100015</ItemCode>
    <ItemDescription>ASSEMBLY; FRONT BEARING</ItemDescription>
    <UOM>EACH</UOM>
    <Warehouse>GHMN</Warehouse>
    </WorkOrderMaterial>
    <WorkOrderMaterial>
    <ActionDate>
    </ActionDate>
    <ActualAmount>
    </ActualAmount>
    <BudgetQty>1.0000</BudgetQty>
    <CostCentre>3691</CostCentre>
    <ItemCode>100040</ItemCode>
    <ItemDescription>BATTERY; LV; 12V.</ItemDescription>
    <UOM>EACH</UOM>
    <Warehouse>GHMN</Warehouse>
    </WorkOrderMaterial>
    </WorkOrderMaterials>
    </SCOWorkOrderGetMaterialsResponse>

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  11. passed 10-trigger-resync trigger-prismatic · HTTP 200 · 1.0s

    Request

    POST <redacted>

    {
      "jobcode": "026347"
    }

    Reply · HTTP 200

    {
      "executionId": "SW5zdGFuY2VFeGVjdXRpb25SZXN1bHQ6MThmODcyYzUtNDRkYi00NzAzLWFhZWUtNGUxMWZiYTMyOGQw"
    }

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  12. passed 11-recheck-assignment check-assignment · HTTP 200 · 5.3s

    Request

    POST [Obzervr]/api/v1/assignments

    skip=0&take=500&requireTotalCount=true&sort=%5B%7B%22selector%22%3A%22AssignmentId%22%2C%22desc%22%3Afalse%7D%5D&select=%5B%22Id%22%2C%22AssignmentId%22%5D&filter=%5B%5B%22AssignmentId%22%2C%22%3D%22%2C%22026347%22%5D%5D

    Reply · HTTP 200

    {
      "data": [
        {
          "Id": "3420af09-c8f9-4fd9-8a5c-b4f20028b35b",
          "AssignmentId": "026347"
        }
      ],
      "totalCount": 1
    }

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="3420af09-c8f9-4fd9-8a5c-b4f20028b35b"
  13. fail 99-cleanup-cancel-wo update-wo · HTTP 422 · 0.8s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOMaintUpdateWorkOrder

    <SCOMaintUpdateWorkOrderRequest>
    <WorkOrders>
    <WorkOrder JobCode="026347">
    <Status>L</Status>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintUpdateWorkOrderRequest>

    Reply · HTTP 422

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOMaintUpdateWorkOrderResponse xmlns="http://scopesystems.com.au/1.00">
    <APIResponseStatus>
    <Code>OK</Code>
    <APIErrors>
    <APIError>
    <Desc>Unable to Update Work Order, Linked Sales/Store Issue Orders exist for Work Order</Desc>
    <Code>WorkOrderLinkedOrdersExist</Code>
    <Value>026347</Value>
    <Record>026347</Record>
    </APIError>
    </APIErrors>
    </APIResponseStatus>
    <WorkOrders>
    <WorkOrder>
    <JobCode>026347</JobCode>
    <Result>Work Order NOT updated</Result>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintUpdateWorkOrderResponse>

    Checks

    • ✗ response.ok === true status=422
Completing a planned (PM) job updates Pronto: notes, times and hoursPWO-O2P-01WorkingAll steps passed.Pronto job 026348
Show the 10 steps
  1. passed 01-login login · HTTP 200 · 0.7s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo insert-wo · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 03-mark-in-progress update-wo · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
  4. passed 04-trigger-prismatic-sync trigger-prismatic · HTTP 200 · 0.8s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  5. passed 05-check-assignment-exists check-assignment · HTTP 200 · 5.7s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="b0d5f3da-9bf6-4256-a3ff-b4f20028d66e"
  6. passed 06-add-completion-content update-assignment · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
  7. passed 07-complete-assignment complete-assignment · HTTP 200 · 0.3s

    Checks

    • ✓ response.ok === true status=200
  8. passed 08-finalise-assignment finalise-assignment · HTTP 200 · 0.8s

    Checks

    • ✓ response.ok === true status=200
  9. passed 09-wait-cft-autotrigger trigger-prismatic · HTTP 200 · 0.9s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  10. passed 10-readback-content-and-status query-changed-wos · HTTP 200 · 37.3s

    Checks

    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
    • ✓ ChangeRecordKey == "026348" matched 2 of 33 rows; using latest
    • ✓ StatusCode == "F" got="F"
    • ✓ Description contains "1793240916810" got="[Internal Test 1793240916810] PWO-O2P-01 PM back-sync (conte"
Completing a breakdown job updates ProntoPWO-O2P-02WorkingAll steps passed.Pronto job 026349
Show the 10 steps
  1. passed 01-login login · HTTP 200 · 0.7s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo insert-wo · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 03-mark-in-progress update-wo · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
  4. passed 04-trigger-prismatic-sync trigger-prismatic · HTTP 200 · 0.7s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  5. passed 05-check-assignment-exists check-assignment · HTTP 200 · 5.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="8d27ea66-3aed-41c1-9f53-b4f20029119b"
  6. passed 06-add-completion-content update-assignment · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
  7. passed 07-complete-assignment complete-assignment · HTTP 200 · 0.3s

    Checks

    • ✓ response.ok === true status=200
  8. passed 08-finalise-assignment finalise-assignment · HTTP 200 · 0.3s

    Checks

    • ✓ response.ok === true status=200
  9. passed 09-wait-cft-autotrigger trigger-prismatic · HTTP 200 · 0.8s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  10. passed 10-readback-content-and-status query-changed-wos · HTTP 200 · 39.0s

    Checks

    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
    • ✓ ChangeRecordKey == "026349" matched 2 of 39 rows; using latest
    • ✓ StatusCode == "F" got="F"
    • ✓ Description contains "1793240964804" got="[Internal Test 1793240964804] PWO-O2P-02 BD breakdown back-s"
Completing a corrective job updates ProntoPWO-O2P-03WorkingAll steps passed.Pronto jobs 026350, 026351, 026352
Show the 16 steps
  1. passed 01-login login · HTTP 200 · 0.6s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo-CM insert-wo · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 03-mark-in-progress-CM update-wo · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
  4. passed x-insert-wo[IM] insert-wo · HTTP 200 · 0.3s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  5. passed x-mark-in-progress[IM] update-wo · HTTP 200 · 0.7s

    Checks

    • ✓ response.ok === true status=200
  6. passed x-insert-wo[SD] insert-wo · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  7. passed x-mark-in-progress[SD] update-wo · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
  8. passed 04-trigger-prismatic-sync trigger-prismatic · HTTP 200 · 1.0s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  9. passed 05-check-assignment-CM check-assignment · HTTP 200 · 5.7s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="2e7fdc07-d399-4dab-937a-b4f200294db7"
  10. passed 06-add-completion-content-CM update-assignment · HTTP 200 · 0.8s

    Checks

    • ✓ response.ok === true status=200
  11. passed 07-complete-assignment-CM complete-assignment · HTTP 200 · 0.3s

    Checks

    • ✓ response.ok === true status=200
  12. passed 08-finalise-assignment-CM finalise-assignment · HTTP 200 · 0.8s

    Checks

    • ✓ response.ok === true status=200
  13. passed 09-wait-cft-autotrigger trigger-prismatic · HTTP 200 · 5.6s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  14. passed 10-readback-content-and-status-CM query-changed-wos · HTTP 200 · 42.2s

    Checks

    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
    • ✓ ChangeRecordKey == "026350" matched 2 of 47 rows; using latest
    • ✓ StatusCode == "F" got="F"
    • ✓ Description contains "1793241013415" got="[Internal Test 1793241013415] PWO-O2P-03 CM back-sync Obzerv"
  15. passed x-check-assignment[IM] check-assignment · HTTP 200 · 5.3s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="68b0b247-ac9a-4962-91cc-b4f200294cb9"
  16. passed x-check-assignment[SD] check-assignment · HTTP 200 · 5.8s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="cfde0041-315e-4068-a681-b4f200294bd3"
When Pronto refuses to finalise a job, the refusal is handled cleanlyPWO-O2P-05WorkingAll steps passed.Pronto job 026355
Show the 10 steps
  1. passed 01-login login · HTTP 200 · 0.6s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo insert-wo · HTTP 200 · 20.9s · 2 attempts

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 03-mark-in-progress update-wo · HTTP 200 · 0.6s

    Checks

    • ✓ response.ok === true status=200
  4. passed 04-trigger-prismatic-sync trigger-prismatic · HTTP 200 · 0.9s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  5. passed 05-check-assignment-exists check-assignment · HTTP 200 · 5.7s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="6e653257-0ec2-43ef-854a-b4f2002ac31e"
  6. passed 06-cancel-in-pronto update-wo · HTTP 200 · 1.5s

    Checks

    • ✓ response.ok === true status=200
  7. passed 07-complete-assignment complete-assignment · HTTP 200 · 0.8s

    Checks

    • ✓ response.ok === true status=200
  8. passed 08-finalise-assignment finalise-assignment · HTTP 200 · 0.4s

    Checks

    • ✓ response.ok === true status=200
  9. passed 09-wait-cft-autotrigger trigger-prismatic · HTTP 200 · 0.9s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  10. passed 10-readback-still-cancelled query-changed-wos · HTTP 200 · 72.9s

    Checks

    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
    • ✓ ChangeRecordKey == "026355" matched 2 of 53 rows; using latest
    • ✓ StatusCode == "L" got="L"
    • ✓ Description contains "1793241315880" got="[Internal Test 1793241315880] PWO-O2P-05 finalisation reject"
Fault codes, downtime and finish date reach Pronto on completionPWO-O2P-06Problem foundFault codes entered on a completed planned job don't reach Pronto: planned jobs never send them. Logged as OBZT-3145.Pronto job 026356
Show the 10 steps (stopped at 10-readback-field-values)
  1. passed 01-login login · HTTP 200 · 0.7s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/login

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <AuthInfo>
    <token>
    <redacted>
    </token>
    <AuthStatus>
    <Id>200</Id>
    <Description>LOGIN_OK</Description>
    </AuthStatus>
    </AuthInfo>

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo insert-wo · HTTP 200 · 0.5s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOMaintInsertWorkOrder

    <SCOMaintInsertWorkOrderRequest>
    <WorkOrders>
    <WorkOrder>
    <ActualStartDate>2026-10-29</ActualStartDate>
    <ActualStartTime>10:37:01</ActualStartTime>
    <Section>SERV</Section>
    <PlantItem>005-BK-002</PlantItem>
    <WorkType>PM</WorkType>
    <RespCode>FPL</RespCode>
    <Priority>3</Priority>
    <Reference>OC</Reference>
    <WorkDescription>[Internal Test 1793241421079] PWO-O2P-06 completion field values reach the Pronto WO</WorkDescription>
    <PMTask>17</PMTask>
    <EstimatedStartDate>22-10-2026</EstimatedStartDate>
    <EstimatedStartTime>14.00</EstimatedStartTime>
    <EstimatedDuration>4</EstimatedDuration>
    <EstimatedDowntime>2</EstimatedDowntime>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintInsertWorkOrderRequest>

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOMaintInsertWorkOrderResponse xmlns="http://scopesystems.com.au/1.00">
    <APIResponseStatus>
    <Code>OK</Code>
    </APIResponseStatus>
    <WorkOrders>
    <WorkOrder>
    <JobCode>026356</JobCode>
    <Result>Work Order 026356 for ID  added</Result>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintInsertWorkOrderResponse>

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 03-mark-in-progress update-wo · HTTP 200 · 0.6s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOMaintUpdateWorkOrder

    <SCOMaintUpdateWorkOrderRequest>
    <WorkOrders>
    <WorkOrder JobCode="026356">
    <Status>I</Status>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintUpdateWorkOrderRequest>

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOMaintUpdateWorkOrderResponse xmlns="http://scopesystems.com.au/1.00">
    <APIResponseStatus>
    <Code>OK</Code>
    </APIResponseStatus>
    <WorkOrders>
    <WorkOrder>
    <JobCode>026356</JobCode>
    <Result>Work Order 026356 updated</Result>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintUpdateWorkOrderResponse>

    Checks

    • ✓ response.ok === true status=200
  4. passed 04-trigger-prismatic-sync trigger-prismatic · HTTP 200 · 1.1s

    Request

    POST <redacted>

    {
      "jobcode": "026356"
    }

    Reply · HTTP 200

    {
      "executionId": "SW5zdGFuY2VFeGVjdXRpb25SZXN1bHQ6NDcxYmQwNWMtYjJjMC00OWYyLWE4MmMtMjg2ZDI0N2JmNjVh"
    }

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  5. passed 05-check-assignment-exists check-assignment · HTTP 200 · 5.8s

    Request

    POST [Obzervr]/api/v1/assignments

    skip=0&take=500&requireTotalCount=true&sort=%5B%7B%22selector%22%3A%22AssignmentId%22%2C%22desc%22%3Afalse%7D%5D&select=%5B%22Id%22%2C%22AssignmentId%22%5D&filter=%5B%5B%22AssignmentId%22%2C%22%3D%22%2C%22026356%22%5D%5D

    Reply · HTTP 200

    {
      "data": [
        {
          "Id": "eade45c5-c5d4-4294-bdc9-b4f2002b25f0",
          "AssignmentId": "026356"
        }
      ],
      "totalCount": 1
    }

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="eade45c5-c5d4-4294-bdc9-b4f2002b25f0"
  6. passed 06-add-completion-content update-assignment · HTTP 200 · 0.9s

    Request

    PUT [Obzervr]/api/v1/schedule/assignment

    {
      "AssignmentId": "eade45c5-c5d4-4294-bdc9-b4f2002b25f0",
      "AssignmentPointCode": "006-AC-031",
      "Content": {
        "Groups": [
          {
            "Identifier": "History Notes",
            "Phase": "Obzerv",
            "Sections": [
              {
                "Identifier": "Additional Notes",
                "Fields": [
                  {
                    "Identifier": "History Notes",
                    "Instances": [
                      {
                        "Identifier": "History Notes 1",
                        "Reading": "[Internal Test 1793241421079] PWO-O2P-01 Obzervr history note (completion back-sync)"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "Identifier": "Safety Notes",
            "Phase": "Obzerv",
            "Sections": [
              {
                "Identifier": "Additional Notes",
                "Fields": [
                  {
                    "Identifier": "Safety Notes",
                    "Instances": [
                      {
                        "Identifier": "Safety Notes 1",
                        "Reading": "[Internal Test 1793241421079] PWO-O2P-01 Obzervr safety note (completion back-sync)"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "Identifier": "Duration/Downtime",
            "Phase": "Complete",
            "Sections": [
              {
                "Identifier": "Duration/Downtime",
                "Fields": [
                  {
                    "Identifier": "Actual Duration",
                    "Instances": [
                      {
                        "Identifier": "Duration/Downtime 1",
                        "Reading": "4"
                      }
                    ]
                  },
                  {
                    "Identifier": "Actual Downtime",
                    "Instances": [
                      {
                        "Identifier": "Duration/Downtime 1",
                        "Reading": "2"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "Identifier": "Fault Codes",
            "Phase": "Complete",
            "Sections": [
              {
                "Identifier": "Fault Codes",
                "Fields": [
                  {
                    "Identifier": "Fault Code 1",
                    "Instances": [
                      {
                        "Identifier": "Fault Codes 1",
                        "Reading": "1300"
                      }
                    ]
                  },
                  {
                    "Identifier": "Fault Code 2",
                    "Instances": [
                      {
                        "Identifier": "Fault Codes 1",
                        "Reading": "ABCDE"
                      }
                    ]
                  },
                  {
                    "Identifier": "Fault Code 3",
                    "Instances": [
                      {
                        "Identifier": "Fault Codes 1",
                        "Reading": "SI  AD"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "Identifier": "Timesheets",
            "Phase": "Complete",
            "Sections": [
              {
                "Identifier": "Timesheets",
                "Fields": [
                  {
                    "Identifier": "Employee",
                    "Instances": [
                      {
                        "Identifier": "Timesheets 1",
                        "Reading": "SEACAN"
                      }
                    ]
                  },
                  {
                    "Identifier": "Labour Type",
                    "Instances": [
                      {
                        "Identifier": "Timesheets 1",
                        "Reading": "CINS"
                      }
                    ]
                  },
                  {
                    "Identifier": "Act Hours",
                    "Instances": [
                      {
                        "Identifier": "Timesheets 1",
                        "Reading": "4"
                      }
                    ]
                  },
                  {
                    "Identifier": "Worked",
                    "Instances": [
                      {
                        "Identifier": "Timesheets 1",
                        "Reading": "2026-10-29"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    }

    Reply · HTTP 200

    {
      "Validation": {
        "IsValid": true,
        "ValidationErrors": {}
      },
      "HasErrors": false
    }

    Checks

    • ✓ response.ok === true status=200
  7. passed 07-complete-assignment complete-assignment · HTTP 200 · 0.3s

    Request

    POST [Obzervr]/api/v1/work/assignment/complete/eade45c5-c5d4-4294-bdc9-b4f2002b25f0

    {}

    Reply · HTTP 200

    No body.

    Checks

    • ✓ response.ok === true status=200
  8. passed 08-finalise-assignment finalise-assignment · HTTP 200 · 0.8s

    Request

    POST [Obzervr]/api/v1/work/assignment/finalise/eade45c5-c5d4-4294-bdc9-b4f2002b25f0

    {}

    Reply · HTTP 200

    No body.

    Checks

    • ✓ response.ok === true status=200
  9. passed 09-wait-cft-autotrigger trigger-prismatic · HTTP 200 · 1.0s

    Request

    POST <redacted>

    {
      "assignmentId": "eade45c5-c5d4-4294-bdc9-b4f2002b25f0"
    }

    Reply · HTTP 200

    {
      "executionId": "SW5zdGFuY2VFeGVjdXRpb25SZXN1bHQ6OTUwZDQ3YjAtMjBjZi00MTUxLTk2ZjQtODYzNzBiN2ViZTQx"
    }

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  10. fail 10-readback-field-values query-changed-wos · HTTP 200 · 191.2s · 5 attempts

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOMaintGetChangedWorkOrders

    <SCOMaintGetChangedWorkOrdersRequest>
    <RecordLimit>100</RecordLimit>
    <Parameters>
    <Company>
    </Company>
    <IntegrationCode>OBZERVR</IntegrationCode>
    </Parameters>
    <StartKeys>
    </StartKeys>
    <Filters>
    <ChangeDateTime>
    <Range>
    <From>29/10/2026T10:27:01</From>
    <To>29/10/2026T10:39:01</To>
    </Range>
    </ChangeDateTime>
    </Filters>
    <RequestFields>
    <MaintenanceWorkOrders>
    <MaintenanceWorkOrder>
    <ALLFIELDS />
    </MaintenanceWorkOrder>
    </MaintenanceWorkOrders>
    </RequestFields>
    </SCOMaintGetChangedWorkOrdersRequest>

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOMaintGetChangedWorkOrdersResponse xmlns="http://scopesystems.com.au/1.00">
    <APIResponseStatus>
    <Code>OK</Code>
    </APIResponseStatus>
    <MaintenanceWorkOrders>
    <Count>60</Count>
    <Count>60</Count>
    <MaintenanceWorkOrder>
    <ActualDowntime>1.00</ActualDowntime>
    <ActualFinishDate>2026-10-29</ActualFinishDate>
    <ActualFinishTime>10:26:00</ActualFinishTime>
    <BranchCode>HFP</BranchCode>
    <CarryoverNotesFlag>
    </CarryoverNotesFlag>
    <ChangeCompanyCode>D11</ChangeCompanyCode>
    <ChangeDateTime>2026-10-29T10:27:02+00:00:00</ChangeDateTime>
    <ChangeIntegrationCode>OBZERVR</ChangeIntegrationCode>
    <ChangeOperation>U</ChangeOperation>
    <ChangeRecordID>174394</ChangeRecordID>
    <ChangeRecordKey>026342</ChangeRecordKey>
    <ChangeRecordType>WORKORDER</ChangeRecordType>
    <ChangeType>WOINPROGRESS</ChangeType>
    <ChangeUser>****</ChangeUser>
    <CostCentreCode>1131410</CostCentreCode>
    <Description>[Internal Test 1793240811856] BWO-01 break-in work descripti</Description>
    <DoneByCode>
    </DoneByCode>
    <EarliestDate>
    </EarliestDate>
    <EstDowntime>2.00</EstDowntime>
    <EstDuration>4.00</EstDuration>
    <EstFinishDate>
    </EstFinishDate>
    <EstStartDate>2026-10-29</EstStartDate>
    <Fault1Code>
    </Fault1Code>
    <Fault2Code>
    </Fault2Code>
    <Fault3Code>
    </Fault3Code>
    <HoldReasonCode>
    </HoldReasonCode>
    <IntegrationCode>OBZERVR</IntegrationCode>
    <IntegrationID>927b54a1</IntegrationID>
    <JcmUserOnlyAlpha201>
    </JcmUserOnlyAlpha201>
    <JcmUserOnlyAlpha202>
    </JcmUserOnlyAlpha202>
    <JcmUserOnlyAlpha41>
    </JcmUserOnlyAlpha41>
    <JcmUserOnlyAlpha42>
    </JcmUserOnlyAlpha42>
    <JcmUserOnlyAlpha43>
    </JcmUserOnlyAlpha43>
    <JcmUserOnlyAlpha44>
    </JcmUserOnlyAlpha44>
    <JcmUserOnlyDate1>T00:00:00+00:00</JcmUserOnlyDate1>
    <JcmUserOnlyDate2>T00:00:00+00:00</JcmUserOnlyDate2>
    <JcmUserOnlyNum1>0.00</JcmUserOnlyNum1>
    <JcmUserOnlyNum2>0.00</JcmUserOnlyNum2>
    <JcmUserOnlyNum3>0.00</JcmUserOnlyNum3>
    <JcmUserOnlyNum4>0.00</JcmUserOnlyNum4>
    <LatestDate>
    </LatestDate>
    <PMTaskNo>
    </PMTaskNo>
    <ParentProjectCode>026342</ParentProjectCode>
    <ParentProjectDescription>[Internal Test 1793240811856] BWO-01 break-in work descripti</ParentProjectDescription>
    <PlannedByCode>
    </PlannedByCode>
    <PlantItem>005-BK-002</PlantItem>
    <Priority>MEDIUM - HIGH RISK = 1-2 DAYS</Priority>
    <PriorityCode>2</PriorityCode>
    <ProjectCode>026342</ProjectCode>
    <ProjectCostCategories>
    <Count>0</Count>
    </ProjectCostCategories>
    <ProjectTimesheets/>
    <Reference>ON CONDITION</Reference>
    <ReferenceCode>OC</ReferenceCode>
    <RequiredDate>
    </RequiredDate>
    <Responsibility>FIXED PLANT - PLUMBING</Responsibility>
    <ResponsibilityCode>FPL</ResponsibilityCode>
    <ScheduledDate>
    </ScheduledDate>
    <SectionCode>SERV</SectionCode>
    <Status>Complete</Status>
    <StatusCode>F</StatusCode>
    <TotalActualCost>0.00</TotalActualCost>
    <TotalActualHours>0.00</TotalActualHours>
    <TotalBudgetCost>0.00</TotalBudgetCost>
    <TotalBudgetHours>0.00</TotalBudgetHours>
    <TotalCommitments>0.00</TotalCommitments>
    <TotalInvoicedAmount>0.00</TotalInvoicedAmount>
    <WorkOrderDocuments/>
    <WorkOrderMaterials/>
    <WorkOrderNotes>
    <JobNote>
    <JobCode>026342</JobCode>
    <NoteType>S</NoteType>
    <NoteTypeDescription>Safety</NoteTypeDescription>
    <Notes>[Internal Test 1793240811856] BWO-01 safety note 1 | safety;note 2;</Notes>
    </JobNote>
    <JobNote>
    <JobCode>026342</JobCode>
    <NoteType>S</NoteType>
    <NoteTypeDescription>Safety</NoteTypeDescription>
    <Notes>[Internal Test 1793240811856] BWO-01 safety note 1 | safety;note 2;</Notes>
    </JobNote>
    <JobNote>
    <JobCode>026342</JobCode>
    <NoteType>N</NoteType>
    <NoteTypeDescription>History</NoteTypeDescription>
    <Notes>[Internal Test 1793240811856] BWO-01 history note 1 | histor;y note 2;</Notes>
    </JobNote>
    <JobNote>
    <JobCode>026342</JobCode>
    <NoteType>N</NoteType>
    <NoteTypeDescription>History</NoteTypeDescription>
    <Notes>[Internal Test 1793240811856] BWO-01 history note 1 | histor;y note 2;</Notes>
    </JobNote>
    </WorkOrderNotes>
    <WorkOrderPurchases/>
    <WorkTypeCode>BD</WorkTypeCode>
    </MaintenanceWorkOrder>
    <MaintenanceWorkOrder>
    <ActualDowntime>1.00</ActualDowntime>
    <ActualFinishDate>2026-10-29</ActualFinishDate>
    <ActualFinishTime>10:26:00</ActualFinishTime>
    <BranchCode>HFP</BranchCode>
    <CarryoverNotesFlag>
    </CarryoverNotesFlag>
    <ChangeCompanyCode>D11</ChangeCompanyCode>
    <ChangeDateTime>
    …[truncated 203153 bytes]

    Checks

    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
    • ✓ ChangeRecordKey == "026356" matched 2 of 60 rows; using latest
    • ✓ StatusCode == "F" got="F"
    • ✗ Fault1Code == "1300" got=""
    • ✗ Fault2Code == "ABCDE" got=""
    • ✗ Fault3Code == "SI AD" got=""
    • ✓ ActualDowntime matches /^2(\.0+)?$/ got="2.00"
    • ✓ ActualFinishDate present got="2026-10-29"
    • ✓ Description contains "1793241421079" got="[Internal Test 1793241421079] PWO-O2P-06 completion field va"
A job Pronto has already finished isn't changed by a later cancelPWO-O2P-09WorkingAll steps passed.Pronto job 026357
Show the 10 steps
  1. passed 01-login login · HTTP 200 · 1.2s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo insert-wo · HTTP 200 · 1.6s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 03-mark-in-progress update-wo · HTTP 200 · 0.6s

    Checks

    • ✓ response.ok === true status=200
  4. passed 04-trigger-prismatic-sync trigger-prismatic · HTTP 200 · 1.3s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  5. passed 05-check-assignment-exists check-assignment · HTTP 200 · 5.9s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="f0eccc5f-ddef-43b2-a753-b4f2002c15a7"
  6. passed 06-complete-in-pronto update-wo · HTTP 200 · 0.8s

    Checks

    • ✓ response.ok === true status=200
  7. passed 07-resync-from-pronto trigger-prismatic · HTTP 200 · 0.9s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  8. passed 08-finalisedby-pronto-tag get-assignment-tags · HTTP 200 · 15.8s

    Checks

    • ✓ response.ok === true status=200
  9. passed 09-trigger-cancel-flow trigger-prismatic · HTTP 200 · 0.9s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  10. passed 10-readback-still-complete query-changed-wos · HTTP 200 · 65.8s

    Checks

    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
    • ✓ ChangeRecordKey == "026357" matched 2 of 20 rows; using latest
    • ✓ StatusCode == "F" got="F"
    • ✓ Description contains "1793241623795" got="[Internal Test 1793241623795] PWO-O2P-09 completed in Pronto"

Cancelling and putting jobs on hold

2 of 5 working
What we checkResultWhat happened
Cancelling a job in Obzervr cancels it in ProntoWOSC-01WorkingAll steps passed.Pronto job 026371
Show the 8 steps
  1. passed 01-login login · HTTP 200 · 0.6s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo insert-wo · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 03-mark-in-progress update-wo · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
  4. passed 04-trigger-prismatic-sync trigger-prismatic · HTTP 200 · 0.9s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  5. passed 05-check-assignment-exists check-assignment · HTTP 200 · 21.1s · 2 attempts

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="f692cbbb-f0c4-49ab-bb71-b4f2002e3e69"
  6. passed 06-cancel-in-obzervr cancel-assignment · HTTP 200 · 0.9s

    Checks

    • ✓ response.ok === true status=200
  7. passed 07-trigger-cancel-flow trigger-prismatic · HTTP 200 · 0.9s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  8. passed 08-readback-cancelled-status query-changed-wos · HTTP 200 · 19.3s

    Checks

    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
    • ✓ ChangeRecordKey == "026371" matched 2 of 19 rows; using latest
    • ✓ StatusCode == "L" got="L"
    • ✓ Description contains "1793242091332" got="[Internal Test 1793242091332] WOSC-01 cancel command Obzervr"
Putting a job on hold with a coded reason puts it on hold in ProntoWOSC-02Not set up yetNeeds the On hold flow link for BE99.
Putting a job on hold with an 'Other' free-text reasonWOSC-03Not set up yetNeeds the On hold flow link for BE99.
A coded hold reason that needs a comment carries the comment to ProntoWOSC-04Not set up yetNeeds the On hold flow link for BE99.
Cancelling after a job is finalised leaves the Pronto job finishedWOSC-05WorkingAll steps passed.Pronto job 026372
Show the 12 steps
  1. passed 01-login login · HTTP 200 · 21.7s · 2 attempts

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo insert-wo · HTTP 200 · 0.6s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 03-mark-in-progress update-wo · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
  4. passed 04-trigger-prismatic-sync trigger-prismatic · HTTP 200 · 1.0s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  5. passed 05-check-assignment-exists check-assignment · HTTP 200 · 5.8s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="51f5f9c4-41ab-4f33-8b65-b4f2002e85bd"
  6. passed 06-add-completion-content update-assignment · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
  7. passed 07-complete-assignment complete-assignment · HTTP 200 · 0.3s

    Checks

    • ✓ response.ok === true status=200
  8. passed 08-finalise-assignment finalise-assignment · HTTP 200 · 0.7s

    Checks

    • ✓ response.ok === true status=200
  9. passed 09-wait-cft-autotrigger trigger-prismatic · HTTP 200 · 0.8s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  10. passed 10-readback-finalised query-changed-wos · HTTP 200 · 36.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
    • ✓ ChangeRecordKey == "026372" matched 2 of 26 rows; using latest
    • ✓ StatusCode == "F" got="F"
    • ✓ Description contains "1793242136189" got="[Internal Test 1793242136189] WOSC-05 cancel command after f"
  11. passed 11-trigger-cancel-after-finalise trigger-prismatic · HTTP 200 · 1.4s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  12. passed 12-readback-still-complete query-changed-wos · HTTP 200 · 67.9s

    Checks

    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
    • ✓ ChangeRecordKey == "026372" matched 2 of 26 rows; using latest
    • ✓ StatusCode == "F" got="F"
    • ✓ Description contains "1793242136189" got="[Internal Test 1793242136189] WOSC-05 cancel command after f"

Work requests

0 of 4 working
What we checkResultWhat happened
A work request raised inside a job carries every field to ProntoWR-01Needs a lookData was rejected by the target system: WORKTEMPLATEID — The Provided Work Template Identifier or Name does not match any active records.
Show the 2 steps (stopped at 02-create-assignment)
  1. passed 01-login login · HTTP 200 · 2.6s · 2 attempts

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/login

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <AuthInfo>
    <token>
    <redacted>
    </token>
    <AuthStatus>
    <Id>200</Id>
    <Description>LOGIN_OK</Description>
    </AuthStatus>
    </AuthInfo>

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. fail 02-create-assignment create-assignment · HTTP 400 · 0.4s

    Request

    POST [Obzervr]/api/v1/schedule/assignment

    {
      "Title": "[Internal Test 1793242273717] WR-01 work request inside WO",
      "FromDate": "2026-06-04T14:00:00",
      "ToDate": "2026-06-06T14:00:00",
      "WorkTemplateIdentifier": "WR",
      "AssignmentPointCode": "005-BK-002",
      "TeamName": "FPL",
      "Content": {
        "Groups": []
      }
    }

    Reply · HTTP 400

    {
      "Validation": {
        "IsValid": false,
        "ValidationErrors": {
          "WORKTEMPLATEID": "The Provided Work Template Identifier or Name does not match any active records."
        }
      },
      "HasErrors": true
    }

    Checks

    • ✗ response.ok === true status=400
A standalone work request reaches ProntoWR-02Needs a lookData was rejected by the target system: WORKTEMPLATEID — The Provided Work Template Identifier or Name does not match any active records.
Show the 2 steps (stopped at 02-create-assignment)
  1. passed 01-login login · HTTP 200 · 1.1s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/login

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <AuthInfo>
    <token>
    <redacted>
    </token>
    <AuthStatus>
    <Id>200</Id>
    <Description>LOGIN_OK</Description>
    </AuthStatus>
    </AuthInfo>

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. fail 02-create-assignment create-assignment · HTTP 400 · 0.3s

    Request

    POST [Obzervr]/api/v1/schedule/assignment

    {
      "Title": "[Internal Test 1793242276736] WR-02 standalone work request",
      "FromDate": "2026-06-04T14:00:00",
      "ToDate": "2026-06-06T14:00:00",
      "WorkTemplateIdentifier": "WR",
      "AssignmentPointCode": "005-BK-002",
      "TeamName": "FPL",
      "Content": {
        "Groups": []
      }
    }

    Reply · HTTP 400

    {
      "Validation": {
        "IsValid": false,
        "ValidationErrors": {
          "WORKTEMPLATEID": "The Provided Work Template Identifier or Name does not match any active records."
        }
      },
      "HasErrors": true
    }

    Checks

    • ✗ response.ok === true status=400
A work request raised inside a planned job reaches ProntoWR-03Needs a lookCould not reach the integration service: SEACAN:TableValueNotFound — Could not find value [SEACAN] in table [Requested By]Pronto job 026373
Show the 6 steps (stopped at 06-fill-work-request-group)
  1. passed 01-login login · HTTP 200 · 1.2s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/login

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <AuthInfo>
    <token>
    <redacted>
    </token>
    <AuthStatus>
    <Id>200</Id>
    <Description>LOGIN_OK</Description>
    </AuthStatus>
    </AuthInfo>

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-parent-wo insert-wo · HTTP 200 · 0.5s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOMaintInsertWorkOrder

    <SCOMaintInsertWorkOrderRequest>
    <WorkOrders>
    <WorkOrder>
    <ActualStartDate>2026-10-29</ActualStartDate>
    <ActualStartTime>10:51:19</ActualStartTime>
    <Section>SERV</Section>
    <PlantItem>005-BK-002</PlantItem>
    <WorkType>PM</WorkType>
    <RespCode>FPL</RespCode>
    <Priority>3</Priority>
    <Reference>OC</Reference>
    <WorkDescription>[Internal Test 1793242278159] WR-03 parent planned WO (carries a Work Request)</WorkDescription>
    <PMTask>17</PMTask>
    <EstimatedStartDate>22-10-2026</EstimatedStartDate>
    <EstimatedStartTime>14.00</EstimatedStartTime>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintInsertWorkOrderRequest>

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOMaintInsertWorkOrderResponse xmlns="http://scopesystems.com.au/1.00">
    <APIResponseStatus>
    <Code>OK</Code>
    </APIResponseStatus>
    <WorkOrders>
    <WorkOrder>
    <JobCode>026373</JobCode>
    <Result>Work Order 026373 for ID  added</Result>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintInsertWorkOrderResponse>

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 03-mark-in-progress update-wo · HTTP 200 · 0.5s

    Request

    POST [Pronto]/pronto/rest/D11.obzervr/api/SCOMaintUpdateWorkOrder

    <SCOMaintUpdateWorkOrderRequest>
    <WorkOrders>
    <WorkOrder JobCode="026373">
    <Status>I</Status>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintUpdateWorkOrderRequest>

    Reply · HTTP 200

    <?xml version="1.0" encoding="UTF-8"?>
    <SCOMaintUpdateWorkOrderResponse xmlns="http://scopesystems.com.au/1.00">
    <APIResponseStatus>
    <Code>OK</Code>
    </APIResponseStatus>
    <WorkOrders>
    <WorkOrder>
    <JobCode>026373</JobCode>
    <Result>Work Order 026373 updated</Result>
    </WorkOrder>
    </WorkOrders>
    </SCOMaintUpdateWorkOrderResponse>

    Checks

    • ✓ response.ok === true status=200
  4. passed 04-trigger-prismatic-sync trigger-prismatic · HTTP 200 · 1.2s

    Request

    POST <redacted>

    {
      "jobcode": "026373"
    }

    Reply · HTTP 200

    {
      "executionId": "SW5zdGFuY2VFeGVjdXRpb25SZXN1bHQ6NjViNGFjNjctMjBhNS00MDc0LTg3ZTUtNGRmYmVlNDRkNDAw"
    }

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  5. passed 05-check-assignment-exists check-assignment · HTTP 200 · 5.7s

    Request

    POST [Obzervr]/api/v1/assignments

    skip=0&take=500&requireTotalCount=true&sort=%5B%7B%22selector%22%3A%22AssignmentId%22%2C%22desc%22%3Afalse%7D%5D&select=%5B%22Id%22%2C%22AssignmentId%22%5D&filter=%5B%5B%22AssignmentId%22%2C%22%3D%22%2C%22026373%22%5D%5D

    Reply · HTTP 200

    {
      "data": [
        {
          "Id": "85a05fc9-034c-4ddf-8a4a-b4f2002f13cd",
          "AssignmentId": "026373"
        }
      ],
      "totalCount": 1
    }

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="85a05fc9-034c-4ddf-8a4a-b4f2002f13cd"
  6. fail 06-fill-work-request-group update-assignment · HTTP 400 · 0.3s

    Request

    PUT [Obzervr]/api/v1/schedule/assignment

    {
      "AssignmentId": "85a05fc9-034c-4ddf-8a4a-b4f2002f13cd",
      "Content": {
        "Groups": [
          {
            "Identifier": "Work Requests",
            "Phase": "Obzerv",
            "Sections": [
              {
                "Identifier": "Work Requests",
                "Fields": [
                  {
                    "Identifier": "Work Description",
                    "Instances": [
                      {
                        "Identifier": "Work Requests 1",
                        "Reading": "[Internal Test 1793242278159] WR-03 work request raised from within the planned WO"
                      }
                    ]
                  },
                  {
                    "Identifier": "Section",
                    "Instances": [
                      {
                        "Identifier": "Work Requests 1",
                        "Reading": "SERV"
                      }
                    ]
                  },
                  {
                    "Identifier": "Reference Code",
                    "Instances": [
                      {
                        "Identifier": "Work Requests 1",
                        "Reading": "OC"
                      }
                    ]
                  },
                  {
                    "Identifier": "Work Type",
                    "Instances": [
                      {
                        "Identifier": "Work Requests 1",
                        "Reading": "CM"
                      }
                    ]
                  },
                  {
                    "Identifier": "Priority",
                    "Instances": [
                      {
                        "Identifier": "Work Requests 1",
                        "Reading": "2"
                      }
                    ]
                  },
                  {
                    "Identifier": "RequiredBy",
                    "Instances": [
                      {
                        "Identifier": "Work Requests 1",
                        "Reading": "2026-11-05"
                      }
                    ]
                  },
                  {
                    "Identifier": "RequestedBy",
                    "Instances": [
                      {
                        "Identifier": "Work Requests 1",
                        "Reading": "SEACAN"
                      }
                    ]
                  },
                  {
                    "Identifier": "Responsibility Code",
                    "Instances": [
                      {
                        "Identifier": "Work Requests 1",
                        "Reading": "CMP"
                      }
                    ]
                  },
                  {
                    "Identifier": "Labour Type 1",
                    "Instances": [
                      {
                        "Identifier": "Work Requests 1",
                        "Reading": "CINS"
                      }
                    ]
                  },
                  {
                    "Identifier": "Persons 1",
                    "Instances": [
                      {
                        "Identifier": "Work Requests 1",
                        "Reading": "1"
                      }
                    ]
                  },
                  {
                    "Identifier": "Est. Hrs 1",
                    "Instances": [
                      {
                        "Identifier": "Work Requests 1",
                        "Reading": "4"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "Identifier": "Safety Notes",
            "Phase": "Obzerv",
            "Sections": [
              {
                "Identifier": "Additional Notes",
                "Fields": [
                  {
                    "Identifier": "Safety Notes",
                    "Instances": [
                      {
                        "Identifier": "Safety Notes 1",
                        "Reading": "[Internal Test 1793242278159] WR-03 safety note"
                      }
                    ]
                  }
                ]
              }
            ]
          },
          {
            "Identifier": "History Notes",
            "Phase": "Obzerv",
            "Sections": [
              {
                "Identifier": "Additional Notes",
                "Fields": [
                  {
                    "Identifier": "History Notes",
                    "Instances": [
                      {
                        "Identifier": "History Notes 1",
                        "Reading": "[Internal Test 1793242278159] WR-03 history note"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      }
    }

    Reply · HTTP 400

    {
      "Validation": {
        "IsValid": false,
        "ValidationErrors": {
          "SEACAN:TableValueNotFound": "Could not find value [SEACAN] in table [Requested By]"
        }
      },
      "HasErrors": true
    }

    Checks

    • ✗ response.ok === true status=400
A work request with a blank Requested By doesn't fail or loopWR-04Not set up yetNeeds the Inflight update flow link for BE99.

Stock, readings and master data

2 of 5 working
What we checkResultWhat happened
Master data record counts match between Pronto and ObzervrMDS-COUNT-RECONCILEWorkingAll steps passed.
Show the 1 steps
  1. passed 01-login login · HTTP 200 · 0.6s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
New monitor points in Pronto are created in ObzervrMP-01Not set up yetNeeds the Monitoring points flow link for BE99.
Monitor point readings: update, correct and deleteMP-02Not set up yetNeeds the Monitoring points flow link for BE99.
Plant readings taken in Obzervr reach ProntoPWO-O2P-04WorkingAll steps passed.Pronto job 026353
Show the 11 steps
  1. passed 01-login login · HTTP 200 · 0.7s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.AuthStatus.Id equals "200" got="200"
  2. passed 02-insert-wo insert-wo · HTTP 200 · 0.6s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
  3. passed 03-mark-in-progress update-wo · HTTP 200 · 0.5s

    Checks

    • ✓ response.ok === true status=200
  4. passed 04-trigger-prismatic-sync trigger-prismatic · HTTP 200 · 1.3s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  5. passed 05-check-assignment-exists check-assignment · HTTP 200 · 152.9s · 6 attempts

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ json.firstGuid.matches value "^[0-9a-f-]{36}$" got="01f4fce5-3218-4418-be33-b4f2002a2fb4"
  6. passed 06-capture-mp-reading update-assignment · HTTP 200 · 0.9s

    Checks

    • ✓ response.ok === true status=200
  7. passed 07-complete-assignment complete-assignment · HTTP 200 · 0.3s

    Checks

    • ✓ response.ok === true status=200
  8. passed 08-finalise-assignment finalise-assignment · HTTP 200 · 0.8s

    Checks

    • ✓ response.ok === true status=200
  9. passed 09-wait-cft-autotrigger trigger-prismatic · HTTP 200 · 1.0s

    Checks

    • ✓ response.ok === true status=200
    • ✓ response.ok === true status=200
    • ✓ status.in value [200,201,202,204] got=200
  10. passed 10-readback-wo-status query-changed-wos · HTTP 200 · 41.2s

    Checks

    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
    • ✓ ChangeRecordKey == "026353" matched 1 of 48 rows; using latest
    • ✓ StatusCode == "F" got="F"
    • ✓ Description contains "1793241084450" got="[Internal Test 1793241084450] PWO-O2P-04 monitor-point readi"
  11. passed 11-readback-mp-reading query-changed-monitor-points · HTTP 200 · 31.1s

    Checks

    • ✓ response.ok === true status=200
    • ✓ xml.APIResponseStatus.Code equals "OK" got="OK"
A stock order raised in Obzervr reaches ProntoSO-01Not set up yetNeeds the Stock ordering flow link for BE99.

How much of the UAT workbook this covers

The customer's UAT workbook has 221 rows that BAs test by hand before a release. This is where each row stands after this run.

  • 102 checked automatically and passed
  • 2 checked automatically and failed
  • 18 automated, but not run this time
  • 65 still needs a person to check
  • 21 can't be automated (emails, pdfs, tablet)
  • 13 dropped from uat on purpose

How to read the results

Working

The integration did what it should, checked in both Pronto and Obzervr.

Problem found

The integration did something wrong. It has a Jira ticket.

Needs a look

The check didn't pass and the team hasn't said why yet, or it hit a test or sandbox issue.

Not set up yet

The sandbox is missing a setting the check needs, so it didn't run.