Download OpenAPI specification:Download
The Maintenance API is an open API covering the Operation & Maintenance area in Equinor.
This document describes release v0.10.0 planned for 19th May 2021. We recommend using documentation published at https://equinor.github.io/maintenance-api-docs as it provides the best developer experience. Information on the next release v0.11.0 planned for June 2021 is available at this page
The API is designed and built according to Equinor's API strategy.
The API is documented in OpenAPI 3.0 format and follows REST principles.
A simple way to test the API is through Postman. Click button below to import the Maintenance API collection for Postman.
The API will use common terminology used across the Oil&Gas industry for the maintenance process. Norsok standard NS-EN 13306 and ISO 14224 are key resource in the naming of resources in the API.
api-version
must be present in all request as part of the query string. Requests without API version will be rejected with a HTTP 404 response code. The latest api-version is v1.
Subscription key must be created from Equinor's API Portal for the consumer application and each request must have the HTTP header Ocp-Apim-Subscription-Key
present with this value.
The Maintenance API will combine information from various business systems in Equinor used in the maintenance area through one common API.
Currently, the majority of endpoints connect to Equinor's ERP system based on SAP.
The API allows you to get mock response for all endpoints if required. This can be useful in special cases. For example if developers from external companies do not have (and should not have) authorization in Equinor's ERP system, they can still interact with the API to see the possibilities.
Add mock-response=true
as a query parmeter to the request and the response will be mock data based on the OpenAPI specification.
Maintenance API can be integrated and provide value in solutions such as web applications, mobile apps, Power Apps, commandline scripts and many more. In order to start using Maintenance API, some setup is required. We strive to keep this to a minimum and will assist developers from IT and the business in the necessary setup.
The standard and prefered scenario for using Maintenance API involves OAuth Authorization Code Flow. Here the client application is configured with permission to call the Maintenance API on behalf of the logged on user in Equinor Azure AD. Interaction with the backend ERP system (such as read a failure report or update a work order) is performed with the logged on user and requires that the logged on user has the necessary authorizations.
The following configuration steps needs to be performed for the initial setup:
Create client app registration in Equinor Azure AD through portal.azure.com for each environment of your solution. This step requires the Application Developer role in Access IT. See Omnia documentation Application Management in AAD for more information. We recommend one client app registration pr client environment such as dev, qa and production.
Create client secrets for your client app registrations
Add an API permission for the app registrations towards the Maintenance API. The following API names are used with application id in parenthesis: Maintenance API Dev (0e595101-1f08-4ce0-8684-148b2e2b8e18), Maintenance API Test (25bb4326-cdc1-4048-8306-29d9fe1102a4), Maintenance API QA (ad711600-154b-4ab0-8945-06cba7f10c4b) and Maintenance API Prod (1aee2186-b5f4-445a-bbf2-d28589ccb59a)
Create a subscription key from Equinor's API Portal. We recommend first creating the subscription key in the API Portal QA environment, before proceeding with the API Portal Production environment
Trigger an authentication request through a http client (such as postman) in order to trigger the consent process of the API permission
Contact us at the #maintenance-api channel on slack or create a Github issue for maintenance-api-docs. We would love to hear how you intend to use the API and to allow us to map the subscription key to an application in our operational logging
We recommend using Postman as a tool for experimenting with the API.
In some scenarios, the standard setup does not cover the requirements and there is a need for system to system communication without user interaction. An example of such a scenario is scheduled background jobs.
For Maintenance API system to system integration requires additional setup both in the ERP system and for the client.
In the ERP system, a role supporting the specific client requirements must be established. In addition, a system user with this role will be need to be created.
The client must use the OAuth 2.0 client credentials flow with certificates. In the client credentials flow, the client application will be registered in Equinor Azure AD as an app registration with a client secret. The client must securely store the client secret. The client must also generate a self-signed client certificate and upload the public key to Equinor Azure AD.
The Maintenance API team will assist in the system to system setup if it's necessary for integration. So contact us at the #maintenance-api channel on slack or create a Github issue for maintenance-api-docs.
Microsoft Power Apps is a low-code platform for implementing business functionality. For more information on the usage of Power Apps in Equinor, see the Microsoft Power Platform group at yammer.
In order to simplify the usage of Maintenance API within Equinor Power Apps, our team maintains a custom connector for the API. The custom connector will be kept up to date with the latest functionality in the API.
We also maintain a proof of concept Power App using the Maintenance API custom connector called "Maintenance API - GP Møte Forberedelser".
The following steps are required in order to add the custom connector to an existing Power Apps project:
Create a subscription key from Equinor's API Portal. We recommend first creating the subscription key in the API Portal QA environment, before proceeding with the API Portal Production environment
Edit the Power App to use. In the data panel, select Add Data, expand connector and add maintenance-api-qa for the QA environment and maintenance-api for the production environment. Power Apps will prompt you to create a connection to the custom connector. For more information see Microsoft documentation Use a custom connector from a Power Apps app
MaintenanceAPI object will now be available from formulas in the Power App. We recommend the results of calls to Maintenance API are stored as a collection. As the last mandatory parameter to all calls, Ocp-Apim-Subscription-Key, use the subscription key from step 1.
Below we have provided some example formulas with Maintenance API which can be used from Power Apps.
ClearCollect(FailureReports, MaintenanceAPI.SearchFailureReport("recent-status-activations",
"<my subscription key>",{'status-id':"CRTE",'plant-id': "1100", 'max-days-since-activation':7}))
ClearCollect(FailureReportSelected, MaintenanceAPI.LookupFailureReport(failureReportId,
"<my subscription key>",{'include-status-details': false,'include-tag-details': false}))
To understand the operations and its parameters available see this documentation.
The resource will be named according to common terminology used across the Oil&Gas industry (for example Norsok standard NS-EN 13306 and ISO 14224).
Example of resources are /work-orders/preventive-work-orders and /plants/{plant-id}/tags .
Resources keys will indicate the resource type as part of the name.
Example: workCenterId
and priorityId
.
If there is a common "supertype resource", the supertype will determine the naming standard of the key.
Example: FailureReports
and ActivityReports
are both a type of MaintenanceRecord
. Therefore, the key for both is recordId
.
Some resources may have multi-line text describing the resource or the contents of it in more detail. This will always have property name text
.
All date and time information are based on UTC (Universal Time Coordinated) and formatted according to RFC3339
This also applies to durations, such as 1 day or 2 hours, which are encoded as P0Y0M1DT0H0M0S
and P0Y0M0DT2H0M0S
.
These values are easily compatible with time libraries such as moment.js library.
From some resources there will be a need to provide uri links to other endpoints. This can for example to provide the endpoint for download of a binary attachment from a work order resource it belongs to.
The link will be defined in the data model of the resource and be grouped under the property name _links.
The name of the properties for the _links object will taken from Link relations defined through RFC8288 when possible. Typical link relation names are self
and enclosure
.
The uri will not include query parameters required or supported by the endpoint (such as api-version, include-operations etc). Subscription key header (Ocp-Apim-Subscription-Key
) must also present in the subsequent request.
"attachments": [
{
"attachmentId": "H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA",
"fileName": "equipment_location.jpg",
"fileSize": "1636352",
"mimeType": "image/jpg",
"_links": {
"enclosure": "/work-orders/preventive-work-orders/20005446/attachments/H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA"
}
}
Lookup operations return a single instance for the resource based on the key.
The resource may have related data which may or may not be relevant for a client. In order to indicate which related data to include, the lookup operation provides include-...
query string boolean options.
Examples: include-operations
and include-tasks
Clients need to retrieve a subset of all resources for an endpoint. Usually, the criteria are non-trivial and in many case are not direct properties of the resource. REST does not provide a well-defined pattern for these types of requests.
Our approach, is to provide predefined filters with parameters. Each filter is documented in the OpenAPI specification.
Examples: maintenance-records/failure-reports/?api-version=v1&filter=recent-status-activation&status-id=RIDO&max-days-since-activation=1
and /maintenance-orders/preventive-work-order/?api-version=v1&filter=same-maintenance-plan&work-order-id=12345678&max=5
Update operations for resources will utilize a sub-set of the JSON Patch proposed standard. JSON Patch is described in RFC 6902 with a user-friendly version at http://jsonpatch.com/.
Our goals with using JSON Patch is to focus on the intent of the update and avoid common pitfalls for the client. The common pitfalls we avoid with JSON Patch are:
Using JSON Patch is straightforward.
application/json-patch+json
. As part of the OpenAPI documentation, we will provide concrete examples for all update operation. In addition, the schema definiton for the request body defines which resource properties can be updated.
Example of JSON Patch request body which replaces the value of the properties title and text:
[
{
"op": "replace",
"path": "/title",
"value": "Material failure"
},
{
"op": "replace",
"path": "/text",
"value": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nMaterial tretthet..\n"
}
]
HTTP response codes will follow established best practice for REST services and will be documented in the OpenAPI specification.
Below is a list of status codes used in the API which the client should handle. Common:
Read - HTTP GET:
Create - HTTP POST:
Create - HTTP PUT
Update - HTTP PATCH:
Delete - HTTP DELETE:
The Maintenance API will use the principles of API evolution instead of introducing a new api-version on every breaking change.
In order to achieve this, endpoints, query parameters and resource properties can become deprecated and will be marked so in the OpenAPI specification.
In general, depcrated properties will be removed after 3 months.
If a client uses a deprecated endpoint or query parameter, the Maintenance API will in the response provide a Sunset HTTP header
Sunset: Sat, 15 May 2021 12:59:59 GMT
representing the removal date for the deprecated feature as specified in RFC8594. In addition, a HTTP header Link: <https://equinor.github.io/maintenance-api-docs/#section/Deprecation>; rel="sunset"
will be provided to pointing to relevant documentation.
Clients must monitor these messages and take corrective actions.
In order to align naming of structured locations within a plant across Equinor systems, Maintenance API is renaming areaId
,area-id
and area
to locationId
,location-id
and location
.
This deprecates the following endpoints:
This deprecates query parameters for the following endpoints:
This deprecates HTTP POST request properties for the following endpoints:
This deprecates properties of the response in the following endpoints:
Feature requests are welcomed and can be submitted through:
Subscription key created from https://api.equinor.com
Security Scheme Type | API Key |
---|---|
Header parameter name: | ocp-apim-subscription-key |
Search for Work orders changes done recently.
The response contains only minimum information about the change made to the work orders.
For more information about each individual work order, use the lookup end-point referenced in _links.related
.
This endpoint relies on change log being activated for the plant in question.
Find Work orders which have recently had a change in a specific property. Parameters:
basicStartDateTime
and basicEndDateTime
include-work-order-types is an optional parameter to define which work orders to return changes for.
The response contains list of changes to work orders (not list of work orders changed). Therefore, an individual work order may be represented multiple times. Consumers can use changeDateTime to identify the last change.
filter required | string Value: "recently-changed-property" Filter to limit the work order by |
plant-id | string Plant |
changed-since-datetime | string <date-time> Earliest datetime to returned changed work orders for |
property-name | string Enum: "basicStartDateTime" "basicEndDateTime" The property which was recently changed |
include-work-order-types | Array of strings Items Enum: "correctiveWorkOrders" "preventiveWorkOrders" "modificationWorkOrders" "sasChangeWorkOrders" "projectWorkOrders" "subseaWorkOrders" Include which types of work orders. Use comma separated list of entries. |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders-change-log?filter=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&changed-since-datetime=SOME_STRING_VALUE&property-name=SOME_STRING_VALUE&include-work-order-types=SOME_ARRAY_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "correctiveWorkOrdersChanged": [
- {
- "_links": {
- "related": "/work-orders/<type>-work-orders/24597659"
}, - "workOrderId": "24597659",
- "property": "basicStartDateTime",
- "changeDateTime": "2021-01-15T13:10:00Z",
- "oldValue": "2020-09-16T00:00:00Z",
- "newValue": "2020-10-16T00:00:00Z"
}
], - "preventiveWorkOrdersChanged": [
- {
- "_links": {
- "related": "/work-orders/<type>-work-orders/24597659"
}, - "workOrderId": "24597659",
- "property": "basicStartDateTime",
- "changeDateTime": "2021-01-15T13:10:00Z",
- "oldValue": "2020-09-16T00:00:00Z",
- "newValue": "2020-10-16T00:00:00Z"
}
], - "modificationWorkOrdersChanged": [
- {
- "_links": {
- "related": "/work-orders/<type>-work-orders/24597659"
}, - "workOrderId": "24597659",
- "property": "basicStartDateTime",
- "changeDateTime": "2021-01-15T13:10:00Z",
- "oldValue": "2020-09-16T00:00:00Z",
- "newValue": "2020-10-16T00:00:00Z"
}
], - "sasChangeWorkOrdersChanged": [
- {
- "_links": {
- "related": "/work-orders/<type>-work-orders/24597659"
}, - "workOrderId": "24597659",
- "property": "basicStartDateTime",
- "changeDateTime": "2021-01-15T13:10:00Z",
- "oldValue": "2020-09-16T00:00:00Z",
- "newValue": "2020-10-16T00:00:00Z"
}
], - "projectWorkOrdersChanged": [
- {
- "_links": {
- "related": "/work-orders/<type>-work-orders/24597659"
}, - "workOrderId": "24597659",
- "property": "basicStartDateTime",
- "changeDateTime": "2021-01-15T13:10:00Z",
- "oldValue": "2020-09-16T00:00:00Z",
- "newValue": "2020-10-16T00:00:00Z"
}
], - "subseaWorkOrdersChanged": [
- {
- "_links": {
- "related": "/work-orders/<type>-work-orders/24597659"
}, - "workOrderId": "24597659",
- "property": "basicStartDateTime",
- "changeDateTime": "2021-01-15T13:10:00Z",
- "oldValue": "2020-09-16T00:00:00Z",
- "newValue": "2020-10-16T00:00:00Z"
}
]
}
Update existing activity for failure report
To find possible activityCodeGroupId and activityCodeId use the /maintenance-records/activity-codes?maintenance-record-id=...
.
record-id required | string id of the failure report |
activity-id required | string id of the activity |
Activities to update for existing failure report
op required | string Value: "replace" JSON Patch operation according to RFC6902 |
path required | string Enum: "/title" "/text" "/activityCodeId" "/activityCodeGroupId" "/startDateTime" "/endDateTime" Path indicating the property to be impacted by the operation |
value required | string Value to be assigned to a resource property based on the operation and path
|
[- {
- "op": "replace",
- "path": "/title",
- "value": "Smøring av deler"
}, - {
- "op": "replace",
- "path": "/text",
- "value": "Smør deler\\n Stram bolter"
}, - {
- "op": "replace",
- "path": "/activityCodeGroupId",
- "value": "PM-GENE1"
}, - {
- "op": "replace",
- "path": "/activityCodeId",
- "value": "A50"
}, - {
- "op": "replace",
- "path": "/startDateTime",
- "value": "2020-11-11T12:00:00Z"
}, - {
- "op": "replace",
- "path": "/endDateTime",
- "value": "2020-11-11T16:00:00Z"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Add activities for activity report.
To find possible activityCodeGroupId and activityCodeId use the /maintenance-records/activity-codes?maintenance-record-id=...
.
record-id required | string id of the activity report |
Activities to add to existing activity report
title required | string |
text | string |
activityCodeId | string |
activityCodeGroupId | string |
startDateTime | string <date-time> |
endDateTime | string <date-time> |
[- {
- "title": "Smøring av deler",
- "text": " Smør deler\n Stram bolter",
- "activityCodeId": "A50",
- "activityCodeGroupId": "PM-GENE1",
- "startDateTime": "2020-11-01T00:00:00Z",
- "endDateTime": "2020-11-14T00:00:00Z"
}, - {
- "title": "Rengjøring",
- "activityCodeId": "A40",
- "activityCodeGroupId": "PM-GENE1",
- "startDateTime": "2020-11-11T12:00:00Z",
- "endDateTime": "2020-11-11T16:00:00Z"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Update existing activity for activity report
To find possible activityCodeGroupId and activityCodeId use the /maintenance-records/activity-codes?maintenance-record-id=...
.
record-id required | string id of the actuvity report |
activity-id required | string id of the activity |
Activities to add to existing failure report
op required | string Value: "replace" JSON Patch operation according to RFC6902 |
path required | string Enum: "/title" "/text" "/activityCodeId" "/activityCodeGroupId" "/startDateTime" "/endDateTime" Path indicating the property to be impacted by the operation |
value required | string Value to be assigned to a resource property based on the operation and path
|
[- {
- "op": "replace",
- "path": "/title",
- "value": "Smøring av deler"
}, - {
- "op": "replace",
- "path": "/text",
- "value": "Smør deler\\n Stram bolter"
}, - {
- "op": "replace",
- "path": "/activityCodeGroupId",
- "value": "PM-GENE1"
}, - {
- "op": "replace",
- "path": "/activityCodeId",
- "value": "A50"
}, - {
- "op": "replace",
- "path": "/startDateTime",
- "value": "2020-11-11T12:00:00Z"
}, - {
- "op": "replace",
- "path": "/endDateTime",
- "value": "2020-11-11T16:00:00Z"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Update maintenance plan item.
This endpoint updates the direct properties of the maintenance plan item. Other endpoints allow update of other parts of the maintenance plan item such as:
HTTP PATCH maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}?api-version=v1
HTTP POST maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}?api-version=v1
HTTP PATCH maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}?api-version=v1
HTTP PUT maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}/maintenance-packages?api-version=v1
HTTP POST maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}/material-needs?api-version=v1
HTTP PATCH maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}/material-needs/{material-id}?api-version=v1
HTTP DEL maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}/material-needs/{material-id}?api-version=v1
plan-id required | string The id of the maintenance plan |
item-id required | string The id of the maintenance plan item |
Update maintenance plan item body
op required | string Value: "replace" JSON Patch operation according to RFC6902 |
path required | string Value: "/maintenancePlanItem" Path indicating the property to be impacted by the operation |
value required | string Value to be assigned to a resource property based on the operation and path. Path specific information:
|
[- {
- "op": "replace",
- "path": "/maintenancePlanItem",
- "value": "12M FV-TELE MODULPROGRAM CD2"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Update task lit of maintenance plan item.
This endpoint updates the direct properties of the task list of maintenance plan item. Other maintenance plan item may use the same task list and will be affected by this change.
plan-id required | string The id of the maintenance plan |
item-id required | string The id of the maintenance plan item |
task-id required | string Example: T-10012713-02 The id of the task within the maintenance plant item |
Update task list of maintenance plan item body
op required | string Value: "replace" JSON Patch operation according to RFC6902 |
path required | string Value: "/taskList" Path indicating the property to be impacted by the operation |
value required | string Value to be assigned to a resource property based on the operation and path. Path specific information:
|
[- {
- "op": "replace",
- "path": "/taskList",
- "value": "36M FV-MULTI TRAIN1 GLYCOL REBOILER"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Lookup a single measuring point.
A measuring point represents the physical or virtual location at which process values, events or conditions are described. For instance a temperature reader, pressure sensor, or a spot on a pipe where thickness is measured.
Measuring points indicate where measurements (or derived/calculated values) occur.
A measuring point is normally connected to a tag or equipment, facilitating the monitoring of its state and perfomance.
Measuring points support quantitative (example 3mm), qualitative (example YES) or combination of the two when creating measurements for the measuring point.
Quantitative measurements are defined by quantitativeCharacteristicId and have a unit of measure.
Qualitative measurement codes are defined by qualitativeCodeGroupId.
Added user-friendly description of unit through quantitativeCharacteristicUnit.
point-id required | string Example: 14626974 |
include-last-measurement | boolean Default: false Include the last measurement of the measuring point |
include-measurements | boolean Default: false Include measurements of the measuring point |
include-qualitative-code-group | boolean Default: false Include possible codes for qualitative measurements if qualitativeCodeGroupId is set |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/measuring-points/%7Bpoint-id%7D?include-last-measurement=SOME_BOOLEAN_VALUE&include-measurements=SOME_BOOLEAN_VALUE&include-qualitative-code-group=SOME_BOOLEAN_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "lastMeasurement": {
- "measurementId": "10017608811",
- "measuringPointId": "14626974",
- "measurementDateTime": "2019-08-24T14:15:22Z",
- "measurementTitle": "string",
- "quantitativeReading": 19.2,
- "quantitativeReadingUnitId": "MM",
- "qualitativeCodeGroupId": "OBSMETH",
- "qualitativeCodeId": "UT-I",
- "processingStatusId": "1"
}, - "measurements": [
- {
- "measurementId": "10017608811",
- "measuringPointId": "14626974",
- "measurementDateTime": "2019-08-24T14:15:22Z",
- "measurementTitle": "string",
- "quantitativeReading": 19.2,
- "quantitativeReadingUnitId": "MM",
- "qualitativeCodeGroupId": "OBSMETH",
- "qualitativeCodeId": "UT-I",
- "processingStatusId": "1"
}
], - "qualitativeCodes": [
- {
- "qualitativeCodeId": "UT-I",
- "qualitativeCode": "UT Man. Pulse-Echo: Internal degradation"
}
], - "tagId": "1A1-A16A",
- "tagPlantId": "1111",
- "equipmentId": "12410072",
- "measuringPosition": "P:M03 2\" SV 301",
- "supportsQuantitativeMeasurement": true,
- "quantitativeCharacteristicId": "SM_COATING_CONDITION_ITEM",
- "quantitativeCharacteristicUnitId": "MBA",
- "quantitativeCharacteristicUnit": "mbar",
- "categoryId": "B",
- "qualitativeCodeGroupId": "OBSMETH",
- "supportsQualitativeMeasurement": true,
- "measuringPointId": "14626974",
- "measuringPoint": "Surface coating condition"
}
Get a list of all activity codes which are in use for maintenance records.
To be used when adding new activities to an existing failure report
/maintenance-records/activity-codes?maintenance-record-id=45939208&api-version=v1
- Use when maintenance record already exist
/maintenance-records/activity-codes?catalog-profile-id=PM-600&maintenance-record-type=failure-report&api-version=v1
- Use when maintenance record does not already exist. Get catalog-profile-id from tag or equipment to be used when the maintenance record is created
Endpoint now requires a query parameter maintenance-record-id. The values returned are dependent on the maintenance record type and possibly tag or equipment for the maintenance record.
activityCodeHelpText added as property.
Endpoint requires either query parameter maintenance-record-id or both catalog-profile-id and maintenance-record-type.
maintenance-record-id | string The maintenance record to get activity codes for |
catalog-profile-id | string The catalog profile of the functional location/equipments |
maintenance-record-type | string Enum: "failure-report" "activity-report" The type of maintenance record to get activities or |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/activity-codes?maintenance-record-id=SOME_STRING_VALUE&catalog-profile-id=SOME_STRING_VALUE&maintenance-record-type=SOME_STRING_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
[- {
- "activityCodeGroupId": "PM-GENE1",
- "activityCodeGroup": "PM: General Actions (E)",
- "activityCodes": [
- {
- "activityCodeId": "A50",
- "activityCode": "Lubrication",
- "activityCodeHelpText": "English\nTHIS CODE IS NORMALLY USED FOR:\nAll kinds of lubrication and preservation.\n\nCOVERS/ USED FOR:\nLubrication. Lubrication/ Topping up/ Oil change/ Pre\nCorrosion protection/ Surface treatment.\n\nNorwegian\nNÅR BRUKES NORMALT KODENE:\nVed alle former for smøring og preservering.\n\nDEKKER / BRUKES OM:\nSmøreaktivitet / etterfylling / oljeskift / preserver\nkorrosjonsbeskyttelse / overflatebehandling.\n"
}
]
}
]
Create new activity report
Equinor governing documents states that activity reports should be created at the lowest possible level in the tag hierachy.
Currently, it's only supported to create failure reports for tags. In the future, support for equipment will be provided.
Added workCenterId, workCenterPlantId to create endpoint.
Added activities to create endpoint.
Activity report to create
title required | string |
text required | string |
tagId | string Required to input either tag or equipment |
tagPlantId | string Required to input either tag or equipment |
equipmentId | string Required to input either tag or equipment |
workCenterId | string If workCenter is not provided, it will use default defined on tag/equipment |
workCenterPlantId | string If workCenter is not provided, it will use default defined on tag/equipment |
Array of objects (MaintenanceRecordActivityCreate) Activities to add to the activity report on creation |
{- "tagId": "PX",
- "tagPlantId": "1100",
- "title": "Skiftet ventiler på bulk system",
- "text": "Skiftet 5 stk ventiler på bulk system sement og barytt da både vent og\nTrykkside var utvasket, testet alt OK.\n"
}
{- "recordId": "45894100",
- "tagId": "PX",
- "tagPlantId": "1100",
- "equipmentId": "12410072",
- "title": "Endre skalering på PDT",
- "text": "Multi-line text based on template",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "activeStatusIds": "OSNO CRTE",
- "createdDateTime": "2019-08-24T14:15:22Z"
}
Lookup a single tag with related information
Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.
Added include-measuring-points and include-last-measurement query parameters.
plant-id required | string |
tag-id required | string |
include-maintenance-records | boolean Default: true Include maintenance records. If include-maintenance-record-types is not supplied, all support types are returned |
include-maintenance-record-types | Array of strings Items Enum: "failure-report" "activity-report" Include which types of maintenance records |
include-installed-equipment | boolean Default: false Include installed equipment |
include-catalog-profile-details | boolean Default: false Include possible detection methods, failure modes and failure mechanisms |
include-characteristics | boolean Default: false Include tag characteristics such as 'Function Fail Consequence' and 'Safety Critical Element (SCE)' |
include-maintenance-plan-items | boolean Default: false Include Maintenance Plan items this functional location is part of |
include-measuring-points | boolean Default: false Include measuring points for this tag |
include-last-measurement | boolean Default: false Include last measurement for the measuring points (only relevant if include-last-measurement is true) |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/tags/%7Btag-id%7D?include-maintenance-records=SOME_BOOLEAN_VALUE&include-maintenance-record-types=SOME_ARRAY_VALUE&include-installed-equipment=SOME_BOOLEAN_VALUE&include-catalog-profile-details=SOME_BOOLEAN_VALUE&include-characteristics=SOME_BOOLEAN_VALUE&include-maintenance-plan-items=SOME_BOOLEAN_VALUE&include-measuring-points=SOME_BOOLEAN_VALUE&include-last-measurement=SOME_BOOLEAN_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "maintenanceConceptId": "VA1631",
- "classId": "DG0105",
- "characteristics": [
- {
- "characteristicId": "HIDDEN_FAILURE",
- "characteristic": "Safety Critical Element (SCE)",
- "valueId": "01",
- "value": "Pressure Safety Valve (PSV)"
}
], - "maintenanceRecords": {
- "failureReports": [
- {
- "recordId": "45894100",
- "tagId": "PX",
- "tagPlantId": "1100",
- "equipmentId": "12410072",
- "title": "Endre skalering på PDT",
- "requiredEndDate": "2019-08-24",
- "failureImpactId": "D",
- "isBreakdown": false,
- "failureModeId": "STC",
- "failureModeGroupId": "PMMO-080",
- "detectionMethodId": "STC",
- "detectionMethodGroupId": "PMDM-005",
- "failureMechanismId": "2.9",
- "failureMechanismGroupId": "PMMC-010",
- "activeStatusIds": "OSNO CRTE",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "correctiveWorkOrderExist": false,
- "correctiveWorkOrderId": "24871954",
- "failureStartDateTime": "2019-08-24T14:15:22Z",
- "failureEndDateTime": "2019-08-24T14:15:22Z"
}
], - "activityReports": [
- {
- "recordId": "45894100",
- "tagId": "PX",
- "tagPlantId": "1100",
- "equipmentId": "12410072",
- "title": "Endre skalering på PDT",
- "activeStatusIds": "OSNO CRTE",
- "createdDateTime": "2019-08-24T14:15:22Z"
}
]
}, - "installedEquipment": [
- {
- "equipmentId": "12578254",
- "equipment": "CAP 22 OB Protection",
- "catalogProfileId": "PMM-01",
- "serialNumber": "450024-10-001",
- "partNumber": "BB14-NT2012",
- "warrantyStartDate": "2019-08-24",
- "warrantyEndDate": "2019-08-24"
}
], - "maintenancePlanItems": [
- {
- "maintenancePlanItemId": "10072940",
- "maintenancePlanItem": "24M FV-TELE MODULPROGRAM CD2",
- "maintenancePlanId": "1056916",
- "planningPlantId": "1100",
- "mainTagId": "AE5566",
- "mainTagPlantId": "1100",
- "maintenanceActivityTypeId": "002",
- "maintenanceActivityType": "Periodic maintenance"
}
], - "catalogProfileDetails": {
- "detectionMethods": [
- {
- "detectionMethodGroupId": "PMDM-005",
- "detectionMethodGroup": "ISO Scheduled activities",
- "items": [
- {
- "detectionMethodId": "5",
- "detectionMethod": "ISO Continuous condition monitoring"
}
]
}
], - "failureModes": [
- {
- "failureModeGroupId": "PMMO-999",
- "failureModeGroup": "CST General",
- "items": [
- {
- "failureModeId": "ELP",
- "failureMode": "ISO External leakage – process medium"
}
]
}
], - "failureMechanisms": [
- {
- "failureMechanismGroupId": "PMMC-030",
- "failureMechanismGroup": "ISO Miscellaneous",
- "items": [
- {
- "failureMechanismId": "6.2",
- "failureMechanism": "ISO Combined causes"
}
]
}
]
}, - "measuringPoints": [
- {
- "lastMeasurement": {
- "measurementId": "10017608811",
- "measuringPointId": "14626974",
- "measurementDateTime": "2019-08-24T14:15:22Z",
- "measurementTitle": "string",
- "quantitativeReading": 19.2,
- "quantitativeReadingUnitId": "MM",
- "qualitativeCodeGroupId": "OBSMETH",
- "qualitativeCodeId": "UT-I",
- "processingStatusId": "1"
}, - "tagId": "1A1-A16A",
- "tagPlantId": "1111",
- "equipmentId": "12410072",
- "measuringPosition": "P:M03 2\" SV 301",
- "supportsQuantitativeMeasurement": true,
- "quantitativeCharacteristicId": "SM_COATING_CONDITION_ITEM",
- "quantitativeCharacteristicUnitId": "MBA",
- "quantitativeCharacteristicUnit": "mbar",
- "categoryId": "B",
- "qualitativeCodeGroupId": "OBSMETH",
- "supportsQualitativeMeasurement": true,
- "measuringPointId": "14626974",
- "measuringPoint": "Surface coating condition"
}
], - "isInactive": false,
- "parentTagId": "AT5566",
- "systemId": "BS",
- "system": "PM-PROG.SYST.",
- "ABCId": "5",
- "ABC": "Crit.=M & Red.=B",
- "locationId": "W14",
- "location": "METERING DECK",
- "areaId": "Deprecated - Use locationId",
- "area": "Deprecated - Use location",
- "catalogProfileId": "PM-160",
- "tagId": "AE5566",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE."
}
Get the entire tag hierachy for a plant. For each tag you will be provided with catalog profile and the parent tag.
Limits the response to the sub trees defined by the provided root tags. Parameters:
This returns a significant amount of data as it returns all tags for a plant (which may be up to 250 000).
The data will be cached in the API and renewed on a daily basis.
Added limit-to-root-tags filter.
plant-id required | string |
filter | string Value: "limit-to-root-tags" Filter to limit the tag hierachy by |
root-tags | string Example: root-tags=10A1,10A10,10A11,10A12,10A13 Comma separated list of tags (without tagPlantId prefix) |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/tag-hierachy?filter=SOME_STRING_VALUE&root-tags=10A1%2C10A10%2C10A11%2C10A12%2C10A13' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
[- {
- "tagId": "AE5566",
- "parentTagId": "AT5566",
- "catalogProfileId": "PM-160"
}
]
Search tags for a plant based on the first few characters of the tag.
The results include key information for a tag.
Additional information for each tag can be retrieved by using the endpoint /plants/{plant-id}/tags/{tag-id}
.
If there are no tags found for the search, the response will be HTTP 200 with an empty array as content.
Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.
The value of the tag-prefix parameter should be url-encoded in order to support special characters
/plants/1219/tags?tag-prefix=44&api-version=v1
/plants/1100/tags?tag-prefix=02%22-EC-%202525-M&api-version=v1
plant-id required | string |
tag-prefix required | string >= 2 characters The first few characters of the tag |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/tags?tag-prefix=SOME_STRING_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
[- {
- "isInactive": false,
- "parentTagId": "AT5566",
- "systemId": "BS",
- "system": "PM-PROG.SYST.",
- "ABCId": "5",
- "ABC": "Crit.=M & Red.=B",
- "locationId": "W14",
- "location": "METERING DECK",
- "areaId": "Deprecated - Use locationId",
- "area": "Deprecated - Use location",
- "catalogProfileId": "PM-160",
- "tagId": "AE5566",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE."
}
]
Provide master data for a plant for example for tags, areas and work centers. This is information is often required as parameters to other endpoints for example when creating a failure report.
Get structured locations within the plant.
locationId
is commonly used as metadata for tags and when creating project-work-orders
.
plant-id required | string |
curl --request GET \ --url https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/locations \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
[- {
- "locationId": "MG29",
- "location": "MAIN DECK AFT"
}
]
Get areas
Endpoint is deprecated as of 01.2021 in order to align with naming across Equinor system. Use /plants/{plant-id}/locations instead .
plant-id required | string |
curl --request GET \ --url https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/areas \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
[- {
- "areaId": "MG29",
- "area": "MAIN DECK AFT"
}
]
Get planner groups
plant-id required | string |
curl --request GET \ --url https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/planner-groups \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
[- {
- "plannerGroupId": "PPM",
- "plannerGroup": "Plattform PV"
}
]
Get Work centers for plant.
plant-id required | string |
curl --request GET \ --url https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/work-centers \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
[- {
- "workCenterId": "PPMELE",
- "workCenter": "PV Elektro"
}
]
Get the surface degradation factors defined for a plant. This information can be used to understand how paint degrades over time.
plant-id required | string |
curl --request GET \ --url https://api-test.gateway.equinor.com/maintenance-api/plants/%7Bplant-id%7D/surface-degradation-factors \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
[- {
- "plantId": "1140",
- "tagPrefix": "A4",
- "surface": "PAINTED HANDRAILS",
- "degradationRate1": 0.075,
- "degradationRate2": 0.12,
- "degradationRate3": 0.15
}
]
Lookup a single activity report
record-id required | string The recordId of the activity report. |
include-status-details | boolean Default: false Include detailed information for statuses (both active and non-active) |
include-activities | boolean Default: false Include detailed information for activities |
include-attachments | boolean Default: false Include attachments |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/activity-reports/%7Brecord-id%7D?include-status-details=SOME_BOOLEAN_VALUE&include-activities=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "activities": [
- {
- "activityId": "12",
- "title": "Lubricated parts",
- "text": "Smørt deler\nStrammet bolter\n",
- "activityCodeId": "A50",
- "activityCode": "Lubrication",
- "activityCodeGroupId": "PM-GENE1",
- "activityCodeGroup": "PM: General Actions (E)",
- "startDateTime": "2019-08-24T14:15:22Z",
- "endDateTime": "2019-08-24T14:15:22Z"
}
], - "attachments": [
- {
- "attachmentId": "H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA",
- "fileName": "equipment_location.jpg",
- "fileSize": "1636352",
- "mimeType": "image/jpg",
- "_links": {
- "enclosure": "/work-orders/preventive-work-orders/20005446/attachments/H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA"
}
}
], - "statuses": [
- {
- "statusId": "RDEX",
- "status": "Ready for execution",
- "statusOrder": 2,
- "isActive": false,
- "activatedDateTime": "2019-08-24T14:15:22Z"
}
], - "recordId": "45894100",
- "tagId": "PX",
- "tagPlantId": "1100",
- "equipmentId": "12410072",
- "title": "Endre skalering på PDT",
- "text": "Multi-line text based on template",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "activeStatusIds": "OSNO CRTE",
- "createdDateTime": "2019-08-24T14:15:22Z"
}
Create new activity report
Equinor governing documents states that activity reports should be created at the lowest possible level in the tag hierachy.
Currently, it's only supported to create failure reports for tags. In the future, support for equipment will be provided.
Added workCenterId, workCenterPlantId to create endpoint.
Added activities to create endpoint.
Activity report to create
title required | string |
text required | string |
tagId | string Required to input either tag or equipment |
tagPlantId | string Required to input either tag or equipment |
equipmentId | string Required to input either tag or equipment |
workCenterId | string If workCenter is not provided, it will use default defined on tag/equipment |
workCenterPlantId | string If workCenter is not provided, it will use default defined on tag/equipment |
Array of objects (MaintenanceRecordActivityCreate) Activities to add to the activity report on creation |
{- "tagId": "PX",
- "tagPlantId": "1100",
- "title": "Skiftet ventiler på bulk system",
- "text": "Skiftet 5 stk ventiler på bulk system sement og barytt da både vent og\nTrykkside var utvasket, testet alt OK.\n"
}
{- "recordId": "45894100",
- "tagId": "PX",
- "tagPlantId": "1100",
- "equipmentId": "12410072",
- "title": "Endre skalering på PDT",
- "text": "Multi-line text based on template",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "activeStatusIds": "OSNO CRTE",
- "createdDateTime": "2019-08-24T14:15:22Z"
}
Add activities for activity report.
To find possible activityCodeGroupId and activityCodeId use the /maintenance-records/activity-codes?maintenance-record-id=...
.
record-id required | string id of the activity report |
Activities to add to existing activity report
title required | string |
text | string |
activityCodeId | string |
activityCodeGroupId | string |
startDateTime | string <date-time> |
endDateTime | string <date-time> |
[- {
- "title": "Smøring av deler",
- "text": " Smør deler\n Stram bolter",
- "activityCodeId": "A50",
- "activityCodeGroupId": "PM-GENE1",
- "startDateTime": "2020-11-01T00:00:00Z",
- "endDateTime": "2020-11-14T00:00:00Z"
}, - {
- "title": "Rengjøring",
- "activityCodeId": "A40",
- "activityCodeGroupId": "PM-GENE1",
- "startDateTime": "2020-11-11T12:00:00Z",
- "endDateTime": "2020-11-11T16:00:00Z"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Update existing activity for activity report
To find possible activityCodeGroupId and activityCodeId use the /maintenance-records/activity-codes?maintenance-record-id=...
.
record-id required | string id of the actuvity report |
activity-id required | string id of the activity |
Activities to add to existing failure report
op required | string Value: "replace" JSON Patch operation according to RFC6902 |
path required | string Enum: "/title" "/text" "/activityCodeId" "/activityCodeGroupId" "/startDateTime" "/endDateTime" Path indicating the property to be impacted by the operation |
value required | string Value to be assigned to a resource property based on the operation and path
|
[- {
- "op": "replace",
- "path": "/title",
- "value": "Smøring av deler"
}, - {
- "op": "replace",
- "path": "/text",
- "value": "Smør deler\\n Stram bolter"
}, - {
- "op": "replace",
- "path": "/activityCodeGroupId",
- "value": "PM-GENE1"
}, - {
- "op": "replace",
- "path": "/activityCodeId",
- "value": "A50"
}, - {
- "op": "replace",
- "path": "/startDateTime",
- "value": "2020-11-11T12:00:00Z"
}, - {
- "op": "replace",
- "path": "/endDateTime",
- "value": "2020-11-11T16:00:00Z"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Download single attachment for activity report
record-id required | string |
attachment-id required | string |
curl --request GET \ --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/activity-reports/%7Brecord-id%7D/attachments/%7Battachment-id%7D \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Upload attachment for activity report
record-id required | string |
files | Array of strings <binary> |
curl --request POST \ --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/activity-reports/%7Brecord-id%7D/attachments \ --header 'content-type: multipart/form-data' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Used when an equipment fault/degradation is detected or when there is need for work that is not related to equipment fault.
Lookup a single failure report
Added failureMechanismId,failureMechanismGroupId to additionalMetadata.
record-id required | string The recordId of the failure report. |
include-status-details | boolean Default: false Include detailed information for statuses (both active and non-active) |
include-tag-details | boolean Default: false Include details about tag for failure report |
include-activities | boolean Default: false Include detailed information for activities |
include-attachments | boolean Default: false Include attachments |
include-additional-metadata | boolean Default: false Include extra metadata related to additional failure modes and detection modes. This is only used in rare cases |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/failure-reports/%7Brecord-id%7D?include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-activities=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-additional-metadata=SOME_BOOLEAN_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "statuses": [
- {
- "statusId": "RDEX",
- "status": "Ready for execution",
- "statusOrder": 2,
- "isActive": false,
- "activatedDateTime": "2019-08-24T14:15:22Z"
}
], - "activities": [
- {
- "activityId": "12",
- "title": "Lubricated parts",
- "text": "Smørt deler\nStrammet bolter\n",
- "activityCodeId": "A50",
- "activityCode": "Lubrication",
- "activityCodeGroupId": "PM-GENE1",
- "activityCodeGroup": "PM: General Actions (E)",
- "startDateTime": "2019-08-24T14:15:22Z",
- "endDateTime": "2019-08-24T14:15:22Z"
}
], - "attachments": [
- {
- "attachmentId": "H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA",
- "fileName": "equipment_location.jpg",
- "fileSize": "1636352",
- "mimeType": "image/jpg",
- "_links": {
- "enclosure": "/work-orders/preventive-work-orders/20005446/attachments/H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA"
}
}
], - "tagDetails": {
- "isInactive": false,
- "parentTagId": "AT5566",
- "systemId": "BS",
- "system": "PM-PROG.SYST.",
- "ABCId": "5",
- "ABC": "Crit.=M & Red.=B",
- "locationId": "W14",
- "location": "METERING DECK",
- "areaId": "Deprecated - Use locationId",
- "area": "Deprecated - Use location",
- "catalogProfileId": "PM-160",
- "tagId": "AE5566",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE."
}, - "additionalMetadata": [
- {
- "metadataId": "2",
- "title": "NES additional info",
- "failureModeId": "STC",
- "failureModeGroupId": "PMMO-080",
- "detectionMethodId": "STC",
- "detectionMethodGroupId": "PMDM-005",
- "failureMechanismId": "2.9",
- "failureMechanismGroupId": "PMMC-010"
}
], - "recordId": "45894100",
- "tagId": "PX",
- "tagPlantId": "1100",
- "equipmentId": "12410072",
- "title": "Endre skalering på PDT",
- "text": "Multi-line text based on template",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD2",
- "location": "METERING DECK",
- "areaId": "Deprecated - Use locationId",
- "area": "Deprecated - Use location",
- "failureImpactId": "D",
- "failureImpact": "Unwell (InF)",
- "isBreakdown": false,
- "requiredEndDate": "2019-08-24",
- "failureModeId": "STC",
- "failureMode": "CST Struct. deficiency containment risk",
- "failureModeGroupId": "PMMO-080",
- "failureModeGroup": "ISO Piping",
- "detectionMethodId": "3",
- "detectionMethod": "ISO Inspection",
- "detectionMethodGroupId": "PMDM-005",
- "detectionMethodGroup": "ISO Scheduled activities",
- "failureMechanismId": "2.9",
- "failureMechanism": "CST Corrosion external",
- "failureMechanismGroupId": "PMMC-010",
- "failureMechanismGroup": "ISO Material failure",
- "correctiveWorkOrderExist": false,
- "correctiveWorkOrderId": "24871954",
- "activeStatusIds": "OSNO CRTE",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "failureStartDateTime": "2019-08-24T14:15:22Z",
- "failureEndDateTime": "2019-08-24T14:15:22Z"
}
Update key fields of a failure report.
To avoid accidently overwriting the multi-line text property, the endpoint will reject any request with an empty text property.
record-id required | string The recordId of the failure report. |
Failure report to create
op required | string Value: "replace" JSON Patch operation according to RFC6902 |
path required | string Enum: "/tagId" "/tagPlantId" "/equipmentId" "/failureImpactId" "/failureModeId" "/failureModeGroupId" "/detectionMethodId" "/detectionMethodGroupId" "/failureMechanismId" "/failureMechanismGroupId" "/workCenterId" "/workCenterPlantId" "/locationId" "/title" "/text" "/failureStartDateTime" "/failureEndDateTime" Path indicating the property to be impacted by the operation |
value required | string Value to be assigned to a resource property based on the operation and path. Path specific information:
|
[- {
- "op": "replace",
- "path": "/title",
- "value": "Material failure"
}, - {
- "op": "replace",
- "path": "/text",
- "value": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nMaterial tretthet..\n"
}
]
{- "recordId": "45894100",
- "tagId": "PX",
- "tagPlantId": "1100",
- "equipmentId": "12410072",
- "title": "Endre skalering på PDT",
- "text": "Multi-line text based on template",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD2",
- "location": "METERING DECK",
- "areaId": "Deprecated - Use locationId",
- "area": "Deprecated - Use location",
- "failureImpactId": "D",
- "failureImpact": "Unwell (InF)",
- "isBreakdown": false,
- "requiredEndDate": "2019-08-24",
- "failureModeId": "STC",
- "failureMode": "CST Struct. deficiency containment risk",
- "failureModeGroupId": "PMMO-080",
- "failureModeGroup": "ISO Piping",
- "detectionMethodId": "3",
- "detectionMethod": "ISO Inspection",
- "detectionMethodGroupId": "PMDM-005",
- "detectionMethodGroup": "ISO Scheduled activities",
- "failureMechanismId": "2.9",
- "failureMechanism": "CST Corrosion external",
- "failureMechanismGroupId": "PMMC-010",
- "failureMechanismGroup": "ISO Material failure",
- "correctiveWorkOrderExist": false,
- "correctiveWorkOrderId": "24871954",
- "activeStatusIds": "OSNO CRTE",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "failureStartDateTime": "2019-08-24T14:15:22Z",
- "failureEndDateTime": "2019-08-24T14:15:22Z"
}
Update status of failure report.
The statuses available for the failure report can be found by querying /maintenance-records/failure-reports/{record-id}?include-status-details=true
.
When a failure report is created, it will have status CRTE - Created
and OSNO - Outstanding Notification
.
Technical responsible (Norwegian: Fagansvarlig) will be responsible for initial evaluation of the failure report.
As part of this, the statuses QAVE - Notification QA Verified
or RIDO - Risk Assessment Done
can be set.
The statuses REJE - Rejected, Not Needed
or CANC - Cancelled, Duplicate
can also be set at this stage. Clients should ensure text of failure report is updated with reasoning behind REJE/CANC
status through PATCH request to /maintenance-records/failure-reports/{record-id}
If the failure report fulfills the criteria for simplified maintenance, the status NOSI - Exec. as Simpl. Maint.
can be set.
When the failure report is ready to be approved and prioritized, the status NOPR - Notification in process
must be set.
When the failure report has been approved and prioritized, the status RIVE - Risk Assesment Verified
can be set. In addition, the failure report will be assigned to a corrective work order (either in ERP system or through POST request to /work-orders/corrective-work-orders
) and the status ORAS - Order assigned
will be set automatically on the failure report.
When the failure report is completed, the status NOCO - Notification completed
must be set. This will typically be set automatically for the failure report when the corrective work order is set to status TECO - Technical Complete
(either in ERP system or through PATCH request to /work-orders/corrective-work-orders/{work-order-id}/statuses/TECO
).
Setting the status EXTR - Date Extension Required
is not supported for this endpoint and will give a HTTP 400 response. Clients should use POST request against /maintenance-records/failure-reports/{record-id}/required-end-extensions
instead.
Setting the ORAS - Order assigned
is not supported for this endpoint and will give a HTTP 400 response.
Equinor's governing document GL1561 - Work orders and notifications types provides some additional information.
record-id required | string The recordId of the failure report. |
status-id required | string |
Work order status to update
op required | string Value: "replace" JSON Patch operation according to RFC6902 |
path required | string Value: "/isActive" Path indicating the property to be impacted by the operation |
required | string or boolean Value to be assigned to a resource property based on the operation and path |
[- {
- "op": "replace",
- "path": "/isActive",
- "value": true
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Download single attachment for failure report
record-id required | string |
attachment-id required | string |
curl --request GET \ --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/failure-reports/%7Brecord-id%7D/attachments/%7Battachment-id%7D \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Upload attachment for failure report
record-id required | string |
files | Array of strings <binary> |
curl --request POST \ --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/failure-reports/%7Brecord-id%7D/attachments \ --header 'content-type: multipart/form-data' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Search for failure reports through predefined filters. Each filter has a defined action and a set of parameters as described below.
The response does not include status details for each failure report. This can be found by subsequent call to lookup failure-reports
Failure reports based on recent status activations for the failure reports. Parameters:
filter required | string Value: "recent-status-activations" Filter to limit the failure reports by |
status-id | string Status |
plant-id | string Plant |
max-days-since-activation | integer <int32> [ 0 .. 255 ] Define how many days from the current day to include results for. 0 if only include for today |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/failure-reports?filter=SOME_STRING_VALUE&status-id=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&max-days-since-activation=SOME_INTEGER_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
[- {
- "recordId": "45894100",
- "tagId": "PX",
- "tagPlantId": "1100",
- "equipmentId": "12410072",
- "title": "Endre skalering på PDT",
- "requiredEndDate": "2019-08-24",
- "failureImpactId": "D",
- "isBreakdown": false,
- "failureModeId": "STC",
- "failureModeGroupId": "PMMO-080",
- "detectionMethodId": "STC",
- "detectionMethodGroupId": "PMDM-005",
- "failureMechanismId": "2.9",
- "failureMechanismGroupId": "PMMC-010",
- "activeStatusIds": "OSNO CRTE",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "correctiveWorkOrderExist": false,
- "correctiveWorkOrderId": "24871954",
- "failureStartDateTime": "2019-08-24T14:15:22Z",
- "failureEndDateTime": "2019-08-24T14:15:22Z"
}
]
Create new failure report
Equinor governing documents states that failure reports should be created at the lowest possible level in the tag hierachy.
It is possible to create failure report for either tagId or equipmentId.
Added failureMechanismId,failureMechanismGroupId properties to additionalMetadata on creation.
Failure report to create
title required | string |
text required | string |
failureImpactId required | string Enum: "D" "S" "U" "X" |
failureModeId required | string |
failureModeGroupId required | string |
detectionMethodId required | string |
detectionMethodGroupId required | string |
tagId | string Required to input either tag or equipment |
tagPlantId | string Required to input either tag or equipment |
equipmentId | string Required to input either tag or equipment |
isBreakdown | boolean |
failureMechanismId | string |
failureMechanismGroupId | string |
workCenterId | string If workCenter is not provided, it will use default defined on tag |
workCenterPlantId | string If workCenter is not provided, it will use default defined on tag |
externalPartnerRecordId | string <= 12 characters If failure report was initially created in an external system, this represent the unique id of it |
createdDateTime | string <date-time> Optional parameter used in special cases where the failure report was created at an earlier time. Should not be a date in the future |
failureStartDateTime | string <date-time> The point in time where the failure started |
failureEndDateTime | string <date-time> The point in time where the failure resolved |
Array of objects (MaintenanceRecordItemMetadataCreate) Additional metadata to be used in special cases |
{- "tagId": "PX",
- "tagPlantId": "1100",
- "title": "Skiftet ventiler på bulk system",
- "failureImpactId": "S",
- "failureModeId": "STC",
- "failureModeGroupId": "PMMO-080",
- "detectionMethodId": "3",
- "detectionMethodGroupId": "PMDM-005",
- "failureMechanismId": "2.9",
- "failureMechanismGroupId": "PMMC-010",
- "text": "Skiftet 5 stk ventiler på bulk system sement og barytt da både vent og\nTrykkside var utvasket, testet alt OK.\n"
}
{- "recordId": "45894100",
- "tagId": "PX",
- "tagPlantId": "1100",
- "equipmentId": "12410072",
- "title": "Endre skalering på PDT",
- "text": "Multi-line text based on template",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD2",
- "location": "METERING DECK",
- "areaId": "Deprecated - Use locationId",
- "area": "Deprecated - Use location",
- "failureImpactId": "D",
- "failureImpact": "Unwell (InF)",
- "isBreakdown": false,
- "requiredEndDate": "2019-08-24",
- "failureModeId": "STC",
- "failureMode": "CST Struct. deficiency containment risk",
- "failureModeGroupId": "PMMO-080",
- "failureModeGroup": "ISO Piping",
- "detectionMethodId": "3",
- "detectionMethod": "ISO Inspection",
- "detectionMethodGroupId": "PMDM-005",
- "detectionMethodGroup": "ISO Scheduled activities",
- "failureMechanismId": "2.9",
- "failureMechanism": "CST Corrosion external",
- "failureMechanismGroupId": "PMMC-010",
- "failureMechanismGroup": "ISO Material failure",
- "correctiveWorkOrderExist": false,
- "correctiveWorkOrderId": "24871954",
- "activeStatusIds": "OSNO CRTE",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "failureStartDateTime": "2019-08-24T14:15:22Z",
- "failureEndDateTime": "2019-08-24T14:15:22Z"
}
Add activities for failure report.
To find possible activityCodeGroupId and activityCodeId use the /maintenance-records/activity-codes?maintenance-record-id=...
.
activityCodeId and activityCodeGroupId are no longer required properties. Client's are still recommended to provide them if possible.
record-id required | string id of the failure report |
Activities to add to existing failure report
title required | string |
text | string |
activityCodeId | string |
activityCodeGroupId | string |
startDateTime | string <date-time> |
endDateTime | string <date-time> |
[- {
- "title": "Smøring av deler",
- "text": " Smør deler\n Stram bolter",
- "activityCodeId": "A50",
- "activityCodeGroupId": "PM-GENE1",
- "startDateTime": "2020-11-01T00:00:00Z",
- "endDateTime": "2020-11-14T00:00:00Z"
}, - {
- "title": "Rengjøring",
- "activityCodeId": "A40",
- "activityCodeGroupId": "PM-GENE1",
- "startDateTime": "2020-11-11T12:00:00Z",
- "endDateTime": "2020-11-11T16:00:00Z"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Update existing activity for failure report
To find possible activityCodeGroupId and activityCodeId use the /maintenance-records/activity-codes?maintenance-record-id=...
.
record-id required | string id of the failure report |
activity-id required | string id of the activity |
Activities to update for existing failure report
op required | string Value: "replace" JSON Patch operation according to RFC6902 |
path required | string Enum: "/title" "/text" "/activityCodeId" "/activityCodeGroupId" "/startDateTime" "/endDateTime" Path indicating the property to be impacted by the operation |
value required | string Value to be assigned to a resource property based on the operation and path
|
[- {
- "op": "replace",
- "path": "/title",
- "value": "Smøring av deler"
}, - {
- "op": "replace",
- "path": "/text",
- "value": "Smør deler\\n Stram bolter"
}, - {
- "op": "replace",
- "path": "/activityCodeGroupId",
- "value": "PM-GENE1"
}, - {
- "op": "replace",
- "path": "/activityCodeId",
- "value": "A50"
}, - {
- "op": "replace",
- "path": "/startDateTime",
- "value": "2020-11-11T12:00:00Z"
}, - {
- "op": "replace",
- "path": "/endDateTime",
- "value": "2020-11-11T16:00:00Z"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Extend the required end date of the failure report. This endpoint should only be executed by persons which have access to the 'action box' in Equinor's ERP system.
Client applications should take special care in ensuring the business process of Equinor is followed in advance of calling this endpoint.
The activityCodeId defines the reason for the extension
A121
= Lack of resourcesA122
= Lack of sparesA123
=Maintenance accessA124
=Failure development timeAn activity for the failure report will be created by this call and the status Date Extension Required ('EXTR')
will be set.
Most users will not have sufficient authorizations to execute this endpoint. If a request fails due to missing authorizations, the response code will be HTTP 403.
record-id required | string id of the failure report |
Activities to add to existing failure report
requiredEndDate required | string <date> The extended required end date of the failure report |
riskAssessmentTitle required | string Title of the risk assessment done for the extension |
riskAssessmentText required | string The text should describe the risk assessment done |
activityCodeId required | string Enum: "A121" "A122" "A123" "A124" The activity code defines the reason for the extension. |
activityCodeGroupId required | string Value: "PM-ACB-1" The group the activityCodeId belongs to. Currently, only a single value is possible |
{- "requiredEndDate": "2021-11-20",
- "riskAssessmentTitle": "Risk vurdering for utsettelse",
- "riskAssessmentText": "Risk vurdert nøye\nVedlikehold kan utsettes",
- "activityCodeId": "A121",
- "activityCodeGroupId": "PM-ACB-1"
}
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Update additional metadata for a failure report. This related to additional failure modes and detection modes for a failure report and only used in rare cases.
The metadata-id available to update for a given failure report can be found by querying /maintenance-records/failure-reports/{record-id}?include-additional-metadata=true
Added failureMechanismId,failureMechanismGroupId properties.
record-id required | string The recordId of the failure report. |
metadata-id required | string The id of the metadata record |
Update to make for metadata
op required | string Value: "replace" JSON Patch operation according to RFC6902 |
path required | string Enum: "/title" "/failureModeId" "/failureModeGroupId" "/detectionMethodId" "/detectionMethodGroupId" "/failureMechanismId" "/failureMechanismGroupId" Path indicating the property to be impacted by the operation |
value required | string Value to be assigned to a resource property based on the operation and path Path specific information:
|
[- {
- "op": "replace",
- "path": "/title",
- "value": "Material failure"
}, - {
- "op": "replace",
- "path": "/failureModeId",
- "value": "STC"
}, - {
- "op": "replace",
- "path": "/failureModeGroupId",
- "value": "PMMO-080"
}, - {
- "op": "replace",
- "path": "/failureModeId",
- "value": "STC"
}, - {
- "op": "replace",
- "path": "/detectionMethodId",
- "value": "3"
}, - {
- "op": "replace",
- "path": "/detectionMethodGroupId",
- "value": "PMDM-005"
}, - {
- "op": "replace",
- "path": "/failureMechanismId",
- "value": "2.9"
}, - {
- "op": "replace",
- "path": "/failureMechanismGroupId",
- "value": "PMMC-010"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Add additional metadata for a failure report. This related to additional failure modes and detection modes for a failure report and only used in rare cases.
The metadata-id available to update for a given failure report can be found by querying /maintenance-records/failure-reports/{record-id}?include-additional-metadata=true
Added failureMechanismId,failureMechanismGroupId properties.
record-id required | string The recordId of the failure report. |
Update to make for metadata
title | string <= 40 characters |
failureModeId | string |
failureModeGroupId | string |
detectionMethodId | string |
detectionMethodGroupId | string |
failureMechanismId | string |
failureMechanismGroupId | string |
[- {
- "title": "Material failure",
- "failureModeId": "STC",
- "failureModeGroupId": "PMMO-080",
- "detectionMethodId": "3",
- "detectionMethodGroupId": "PMDM-005",
- "failureMechanismId": "2.9",
- "failureMechanismGroupId": "PMMC-010"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Maintenance records represent registration, prioritisation, control of needs/activities and registration of technical history. Each maintenance records type is tailored for a specific purpose.
Search for Maintenance records regardless of type through predefined filters. Each filter has a defined action and a set of parameters as described below.
The response does not include all details for each Maintenance record. This can be found by subsequent call to lookup for the respective maintenance record resource type
Find open Maintenance records for an id in an external partner system. Note: In theory different external system could have the same external-partner-record-id
but it's very unlikely. Clients are recommended to filter the response based on the plants they are intersted in to avoid any issues.
Parameters:
filter required | string Value: "by-external-partner-record-id" Filter to limit the failure reports by |
external-partner-record-id | string If failure report was initially created in an external system, this represent the unique id of it |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records?filter=SOME_STRING_VALUE&external-partner-record-id=SOME_STRING_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "failureReports": [
- {
- "_links": {
- "self": "/maintenance-records/failure-reports/45939208"
}, - "recordId": "45894100",
- "tagId": "PX",
- "tagPlantId": "1100",
- "equipmentId": "12410072",
- "title": "Endre skalering på PDT",
- "requiredEndDate": "2019-08-24",
- "failureImpactId": "D",
- "isBreakdown": false,
- "failureModeId": "STC",
- "failureModeGroupId": "PMMO-080",
- "detectionMethodId": "STC",
- "detectionMethodGroupId": "PMDM-005",
- "failureMechanismId": "2.9",
- "failureMechanismGroupId": "PMMC-010",
- "activeStatusIds": "OSNO CRTE",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "correctiveWorkOrderExist": false,
- "correctiveWorkOrderId": "24871954",
- "failureStartDateTime": "2019-08-24T14:15:22Z",
- "failureEndDateTime": "2019-08-24T14:15:22Z"
}
], - "activityReports": [
- {
- "_links": {
- "self": "/maintenance-records/activity-reports/46126319"
}, - "recordId": "45894100",
- "tagId": "PX",
- "tagPlantId": "1100",
- "equipmentId": "12410072",
- "title": "Endre skalering på PDT",
- "activeStatusIds": "OSNO CRTE",
- "createdDateTime": "2019-08-24T14:15:22Z"
}
]
}
Provide master data related to maintenance records for example activity codes.
Get a list of all activity codes which are in use for maintenance records.
To be used when adding new activities to an existing failure report
/maintenance-records/activity-codes?maintenance-record-id=45939208&api-version=v1
- Use when maintenance record already exist
/maintenance-records/activity-codes?catalog-profile-id=PM-600&maintenance-record-type=failure-report&api-version=v1
- Use when maintenance record does not already exist. Get catalog-profile-id from tag or equipment to be used when the maintenance record is created
Endpoint now requires a query parameter maintenance-record-id. The values returned are dependent on the maintenance record type and possibly tag or equipment for the maintenance record.
activityCodeHelpText added as property.
Endpoint requires either query parameter maintenance-record-id or both catalog-profile-id and maintenance-record-type.
maintenance-record-id | string The maintenance record to get activity codes for |
catalog-profile-id | string The catalog profile of the functional location/equipments |
maintenance-record-type | string Enum: "failure-report" "activity-report" The type of maintenance record to get activities or |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-records/activity-codes?maintenance-record-id=SOME_STRING_VALUE&catalog-profile-id=SOME_STRING_VALUE&maintenance-record-type=SOME_STRING_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
[- {
- "activityCodeGroupId": "PM-GENE1",
- "activityCodeGroup": "PM: General Actions (E)",
- "activityCodes": [
- {
- "activityCodeId": "A50",
- "activityCode": "Lubrication",
- "activityCodeHelpText": "English\nTHIS CODE IS NORMALLY USED FOR:\nAll kinds of lubrication and preservation.\n\nCOVERS/ USED FOR:\nLubrication. Lubrication/ Topping up/ Oil change/ Pre\nCorrosion protection/ Surface treatment.\n\nNorwegian\nNÅR BRUKES NORMALT KODENE:\nVed alle former for smøring og preservering.\n\nDEKKER / BRUKES OM:\nSmøreaktivitet / etterfylling / oljeskift / preserver\nkorrosjonsbeskyttelse / overflatebehandling.\n"
}
]
}
]
Work orders are used to describe and plan activities regarding the plants technical structure for operations, maintenance, improvement work, modifications, and projects.
Search for Work orders regardless of type through predefined filters. Each filter has a defined action and a set of parameters as described below.
The response can include most of the details for each work order.
If additional data is needed, it can be retrieved by using the endpoint represented in the _links.self
property.
Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.
Find Work orders which have been recently changed for a given plant. Normally, clients will provide parameters changed-since-datetime and plant-id and in this case the endpoint will return any changed work order from changed-since-datetime and to now. It is also possible to add before-datetime query parameter and the endpoint will then return any changed work order between changed-since-datetime and before-datetime. Parameters:
Find open work orders before the basic-end-date Parameters:
Find work orders by tag with possibility of not including completed or not release work orders. Parameters:
filter required | string Enum: "recently-changed" "before-basic-end-date" "by-tag" Filter to limit the work order by |
plant-id | string Plant |
changed-since-datetime | string <date-time> Earliest datetime to returned changed work orders for |
before-datetime | string <date-time> Optional parameter to limit the response to only work orders changed after changed-since-datetime but before this datetime |
include-work-order-text | string The text of the Work order is time-consuming to retrieve. Set to false to avoid returning it |
include-work-order-operation-text | string The text of the Work order operation is time-consuming to retrieve. Set to false to avoid returning it |
include-work-order-types | Array of strings Items Enum: "correctiveWorkOrders" "preventiveWorkOrders" "modificationWorkOrders" "sasChangeWorkOrders" "projectWorkOrders" "subseaWorkOrders" Include which types of work orders. Use comma separated list of entries. |
basic-end-date | string <date> Earliest date to find maintenance plan history for (optional for filter) |
area-id | string Deprecated Deprecated. Use location-id instead |
location-id | string Structured location within the plant. Use /plants/{plant-id}/locations for possible values |
include-completed | boolean Default: true Include completed work orders |
include-not-released | boolean Default: true Include not released work orders |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders?filter=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&changed-since-datetime=SOME_STRING_VALUE&before-datetime=SOME_STRING_VALUE&include-work-order-text=SOME_STRING_VALUE&include-work-order-operation-text=SOME_STRING_VALUE&include-work-order-types=SOME_ARRAY_VALUE&basic-end-date=SOME_STRING_VALUE&area-id=SOME_STRING_VALUE&location-id=SOME_STRING_VALUE&include-completed=SOME_BOOLEAN_VALUE&include-not-released=SOME_BOOLEAN_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "correctiveWorkOrders": [
- {
- "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n Hvordan påvirker feilen utstyrets funksjon? ...\n",
- "_links": {
- "self": "/work-orders/corrective-work-orders/24983466"
}, - "operations": [
- {
- "operationId": "1005419798-00000001",
- "operation": "0020",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
- "standardTextTemplate": "1100-GS",
- "isCompleted": false,
- "plannedWorkHours": "PT3H",
- "actualWorkHours": "PT2H30M",
- "actualPercentageComplete": 75,
- "capacityCount": 1,
- "plannedDuration": "PT2H45M",
- "isScheduledExternally": true,
- "earliestStartDateTime": "2019-08-24T14:15:22Z",
- "earliestFinishDateTime": "2019-08-24T14:15:22Z",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2019-08-24T14:15:22Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2019-08-24T14:15:22Z"
}
], - "workOrderId": "24983466",
- "tagId": "BF",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE.",
- "title": "Modifikasjon av brannmur",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "failureReportId": "45836077",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "002",
- "maintenanceType": "Periodic maintenance",
- "requiredEndDate": "2019-08-24",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "sortField": "PRS10239.WP12",
- "priorityId": "L"
}
], - "preventiveWorkOrders": [
- {
- "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n Hvordan påvirker feilen utstyrets funksjon? ...\n",
- "_links": {
- "self": "/work-orders/preventive-work-orders/24597659"
}, - "operations": [
- {
- "operationId": "1005419798-00000001",
- "operation": "0020",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
- "standardTextTemplate": "1100-GS",
- "isCompleted": false,
- "plannedWorkHours": "PT3H",
- "actualWorkHours": "PT2H30M",
- "actualPercentageComplete": 75,
- "capacityCount": 1,
- "plannedDuration": "PT2H45M",
- "isScheduledExternally": true,
- "earliestStartDateTime": "2019-08-24T14:15:22Z",
- "earliestFinishDateTime": "2019-08-24T14:15:22Z",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2019-08-24T14:15:22Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2019-08-24T14:15:22Z"
}
], - "workOrderId": "24597659",
- "tagId": "BF",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE.",
- "title": "Modifikasjon av brannmur",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "002",
- "maintenanceType": "Periodic maintenance",
- "plannedDate": "2019-08-24",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "sortField": "PRS10239.WP12"
}
], - "modificationWorkOrders": [
- {
- "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n Hvordan påvirker feilen utstyrets funksjon? ...\n",
- "_links": {
- "self": "/work-orders/modification-work-orders/24597659"
}, - "operations": [
- {
- "operationId": "1005419798-00000001",
- "operation": "0020",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
- "standardTextTemplate": "1100-GS",
- "isCompleted": false,
- "plannedWorkHours": "PT3H",
- "actualWorkHours": "PT2H30M",
- "actualPercentageComplete": 75,
- "capacityCount": 1,
- "plannedDuration": "PT2H45M",
- "isScheduledExternally": true,
- "earliestStartDateTime": "2019-08-24T14:15:22Z",
- "earliestFinishDateTime": "2019-08-24T14:15:22Z",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2019-08-24T14:15:22Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2019-08-24T14:15:22Z"
}
], - "workOrderId": "24597659",
- "tagId": "BF",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE.",
- "title": "Modifikasjon av brannmur",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "002",
- "maintenanceType": "Periodic maintenance",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "sortField": "PRS10239.WP12"
}
], - "sasChangeWorkOrders": [
- {
- "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n Hvordan påvirker feilen utstyrets funksjon? ...\n",
- "_links": {
- "self": "/work-orders/sas-change-work-orders/24684145"
}, - "operations": [
- {
- "operationId": "1005419798-00000001",
- "operation": "0020",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
- "standardTextTemplate": "1100-GS",
- "isCompleted": false,
- "plannedWorkHours": "PT3H",
- "actualWorkHours": "PT2H30M",
- "actualPercentageComplete": 75,
- "capacityCount": 1,
- "plannedDuration": "PT2H45M",
- "isScheduledExternally": true,
- "earliestStartDateTime": "2019-08-24T14:15:22Z",
- "earliestFinishDateTime": "2019-08-24T14:15:22Z",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2019-08-24T14:15:22Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2019-08-24T14:15:22Z"
}
], - "workOrderId": "24684145",
- "tagId": "LZ1012",
- "tagPlantId": "1100",
- "tag": "A10 OIL PRODUCTION WELL",
- "title": "1416/Installerer Flowlinw A10",
- "workCenterId": "PPMAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "Z06",
- "maintenanceType": "SAS Change Activity",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "costWBSId": "M.O037C.20.A.0002.A2",
- "projectId": "M.O037C.20.A.0002",
- "costNetworkId": "9045173",
- "costNetworkOperationId": "0010",
- "sortField": "PRS10239.WP12"
}
], - "projectWorkOrders": [
- {
- "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n Hvordan påvirker feilen utstyrets funksjon? ...\n",
- "_links": {
- "self": "/work-orders/project-work-orders/24684145"
}, - "operations": [
- {
- "operationId": "1005419798-00000001",
- "operation": "0020",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
- "standardTextTemplate": "1100-GS",
- "isCompleted": false,
- "plannedWorkHours": "PT3H",
- "actualWorkHours": "PT2H30M",
- "actualPercentageComplete": 75,
- "capacityCount": 1,
- "plannedDuration": "PT2H45M",
- "isScheduledExternally": true,
- "earliestStartDateTime": "2019-08-24T14:15:22Z",
- "earliestFinishDateTime": "2019-08-24T14:15:22Z",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2019-08-24T14:15:22Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2019-08-24T14:15:22Z"
}
], - "workOrderId": "24684145",
- "tagId": "LZ1012",
- "tagPlantId": "1100",
- "tag": "A10 OIL PRODUCTION WELL",
- "title": "1416/Installerer Flowlinw A10",
- "isTimeOnlyWorkOrder": false,
- "workCenterId": "PPMAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "015",
- "maintenanceType": "Project work",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "costWBSId": "M.O037C.20.A.0002.A2",
- "projectId": "M.O037C.20.A.0002",
- "costNetworkId": "9045173",
- "costNetworkOperationId": "0010",
- "sortField": "PRS10239.WP12"
}
], - "subseaWorkOrders": [
- {
- "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n Hvordan påvirker feilen utstyrets funksjon? ...\n",
- "_links": {
- "self": "/work-orders/subsea-work-orders/24597659"
}, - "operations": [
- {
- "operationId": "1005419798-00000001",
- "operation": "0020",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
- "standardTextTemplate": "1100-GS",
- "isCompleted": false,
- "plannedWorkHours": "PT3H",
- "actualWorkHours": "PT2H30M",
- "actualPercentageComplete": 75,
- "capacityCount": 1,
- "plannedDuration": "PT2H45M",
- "isScheduledExternally": true,
- "earliestStartDateTime": "2019-08-24T14:15:22Z",
- "earliestFinishDateTime": "2019-08-24T14:15:22Z",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2019-08-24T14:15:22Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2019-08-24T14:15:22Z"
}
], - "workOrderId": "24597659",
- "tagId": "BF",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE.",
- "title": "Modifikasjon av brannmur",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "002",
- "maintenanceType": "Periodic maintenance",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "sortField": "PRS10239.WP12"
}
]
}
Search for Work orders changes done recently.
The response contains only minimum information about the change made to the work orders.
For more information about each individual work order, use the lookup end-point referenced in _links.related
.
This endpoint relies on change log being activated for the plant in question.
Find Work orders which have recently had a change in a specific property. Parameters:
basicStartDateTime
and basicEndDateTime
include-work-order-types is an optional parameter to define which work orders to return changes for.
The response contains list of changes to work orders (not list of work orders changed). Therefore, an individual work order may be represented multiple times. Consumers can use changeDateTime to identify the last change.
filter required | string Value: "recently-changed-property" Filter to limit the work order by |
plant-id | string Plant |
changed-since-datetime | string <date-time> Earliest datetime to returned changed work orders for |
property-name | string Enum: "basicStartDateTime" "basicEndDateTime" The property which was recently changed |
include-work-order-types | Array of strings Items Enum: "correctiveWorkOrders" "preventiveWorkOrders" "modificationWorkOrders" "sasChangeWorkOrders" "projectWorkOrders" "subseaWorkOrders" Include which types of work orders. Use comma separated list of entries. |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders-change-log?filter=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&changed-since-datetime=SOME_STRING_VALUE&property-name=SOME_STRING_VALUE&include-work-order-types=SOME_ARRAY_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "correctiveWorkOrdersChanged": [
- {
- "_links": {
- "related": "/work-orders/<type>-work-orders/24597659"
}, - "workOrderId": "24597659",
- "property": "basicStartDateTime",
- "changeDateTime": "2021-01-15T13:10:00Z",
- "oldValue": "2020-09-16T00:00:00Z",
- "newValue": "2020-10-16T00:00:00Z"
}
], - "preventiveWorkOrdersChanged": [
- {
- "_links": {
- "related": "/work-orders/<type>-work-orders/24597659"
}, - "workOrderId": "24597659",
- "property": "basicStartDateTime",
- "changeDateTime": "2021-01-15T13:10:00Z",
- "oldValue": "2020-09-16T00:00:00Z",
- "newValue": "2020-10-16T00:00:00Z"
}
], - "modificationWorkOrdersChanged": [
- {
- "_links": {
- "related": "/work-orders/<type>-work-orders/24597659"
}, - "workOrderId": "24597659",
- "property": "basicStartDateTime",
- "changeDateTime": "2021-01-15T13:10:00Z",
- "oldValue": "2020-09-16T00:00:00Z",
- "newValue": "2020-10-16T00:00:00Z"
}
], - "sasChangeWorkOrdersChanged": [
- {
- "_links": {
- "related": "/work-orders/<type>-work-orders/24597659"
}, - "workOrderId": "24597659",
- "property": "basicStartDateTime",
- "changeDateTime": "2021-01-15T13:10:00Z",
- "oldValue": "2020-09-16T00:00:00Z",
- "newValue": "2020-10-16T00:00:00Z"
}
], - "projectWorkOrdersChanged": [
- {
- "_links": {
- "related": "/work-orders/<type>-work-orders/24597659"
}, - "workOrderId": "24597659",
- "property": "basicStartDateTime",
- "changeDateTime": "2021-01-15T13:10:00Z",
- "oldValue": "2020-09-16T00:00:00Z",
- "newValue": "2020-10-16T00:00:00Z"
}
], - "subseaWorkOrdersChanged": [
- {
- "_links": {
- "related": "/work-orders/<type>-work-orders/24597659"
}, - "workOrderId": "24597659",
- "property": "basicStartDateTime",
- "changeDateTime": "2021-01-15T13:10:00Z",
- "oldValue": "2020-09-16T00:00:00Z",
- "newValue": "2020-10-16T00:00:00Z"
}
]
}
Work orders operations are part of a work order and describe the planned activitied.
Covers updating relationships between Work order and other resources such as maintenance records, tags and material
Used for all corrective maintenance, i.e. all maintenance that is intended to restore the equipment's technical condition, so that it can perform its assigned function.
Corrective work orders can also be used for activities not directly connected with equipment failure (corrective), but as follows same work process for prioritisation and scheduling.
Lookup single Corrective Work order with related information
Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.
If work-order-id exist, but is not of type corrective, the response is a HTTP 301 Moved Permanently with the url to the resource in the HTTP header Location.
work-order-id required | string |
include-operations | boolean Default: true Include Work order operations |
include-materials | boolean Default: true Include materials for Work order operations |
include-maintenance-records | boolean Default: false Include related maintenance records (from object list) |
include-attachments | boolean Default: false Include Work order attachments (on header and for operation) |
include-status-details | boolean Default: false Include detailed information for statuses (both active and non-active) |
include-tag-details | boolean Default: false Include detailed for the main tag of the Work order |
include-related-tags | boolean Default: false Include related tags (from object list) |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/corrective-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "operations": [
- {
- "materials": [
- {
- "reservationId": "TBD",
- "materialId": "741466",
- "material": "LIGHT,FIXTURE,26w,SZ 4155.100,RITTAL",
- "quantity": 1,
- "quantityUnit": "PC",
- "location": "P10N utenfor lager",
- "tracking": {
- "trackingStatusId": "0C",
- "trackingStatus": "Component cancelled",
- "trackingStatusColor": "no-color"
}
}
], - "attachments": [
- {
- "attachmentId": "H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA",
- "fileName": "equipment_location.jpg",
- "fileSize": "1636352",
- "mimeType": "image/jpg",
- "_links": {
- "enclosure": "/work-orders/preventive-work-orders/20005446/attachments/H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA"
}
}
], - "operationId": "1005419798-00000001",
- "operation": "0020",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
- "standardTextTemplate": "1100-GS",
- "isCompleted": false,
- "plannedWorkHours": "PT3H",
- "actualWorkHours": "PT2H30M",
- "actualPercentageComplete": 75,
- "capacityCount": 1,
- "plannedDuration": "PT2H45M",
- "isScheduledExternally": true,
- "earliestStartDateTime": "2019-08-24T14:15:22Z",
- "earliestFinishDateTime": "2019-08-24T14:15:22Z",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2019-08-24T14:15:22Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2019-08-24T14:15:22Z"
}
], - "statuses": [
- {
- "statusId": "RDEX",
- "status": "Ready for execution",
- "statusOrder": 2,
- "isActive": false,
- "activatedDateTime": "2019-08-24T14:15:22Z"
}
], - "tagsRelated": [
- {
- "tagId": "AE5566",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE."
}
], - "maintenanceRecords": [
- {
- "recordId": "45894100",
- "recordResource": "maintenance-records/modification-proposals",
- "tagId": "PX",
- "tagPlantId": "1100",
- "equipmentId": "12410072",
- "title": "Endre skalering på PDT",
- "source": "ObjectList",
- "_links": {
- "self": "/maintenance-records/failure-reports/45894100"
}
}
], - "tagDetails": {
- "isInactive": false,
- "parentTagId": "AT5566",
- "systemId": "BS",
- "system": "PM-PROG.SYST.",
- "ABCId": "5",
- "ABC": "Crit.=M & Red.=B",
- "locationId": "W14",
- "location": "METERING DECK",
- "areaId": "Deprecated - Use locationId",
- "area": "Deprecated - Use location",
- "catalogProfileId": "PM-160",
- "tagId": "AE5566",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE."
}, - "attachments": [
- {
- "attachmentId": "H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA",
- "fileName": "equipment_location.jpg",
- "fileSize": "1636352",
- "mimeType": "image/jpg",
- "_links": {
- "enclosure": "/work-orders/preventive-work-orders/20005446/attachments/H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA"
}
}
], - "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n\nHvordan påvirker feilen utstyrets funksjon? ... \n",
- "plannerGroup": "Plattform PV",
- "workCenter": "AI Automasjon",
- "workOrderId": "24983466",
- "tagId": "BF",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE.",
- "title": "Modifikasjon av brannmur",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "failureReportId": "45836077",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "002",
- "maintenanceType": "Periodic maintenance",
- "requiredEndDate": "2019-08-24",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "sortField": "PRS10239.WP12",
- "priorityId": "L"
}
Update corrective work order.
Currently, we support appending text to the Work order.
The append request body has a special syntax. See the provide example for more details.
work-order-id required | string |
The information to be updated
op | string Value: "append" The type of non-trivial patch operation to perform. Currently, only append is supported |
path | string Value: "/text" The property to be updated by the non-trivial patch operation. Currently, only /text is supported |
value | string The value to update with non-trivial patch operation. |
[- {
- "op": "append",
- "path": "/text",
- "value": "Text to append\nMulti-line"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Add operations
work-order-id required | string |
Operations to add to existing Work order
title required | string [ 0 .. 40 ] characters |
operation required | string Id of operation user is familiar with |
workCenterId | string |
workCenterPlantId | string |
text | string |
plannedWorkDuration | string Duration as defined in ISO8601 |
plannedWorkHours | string Duration as defined in ISO8601 |
capacityCount | integer <int32> |
schedulingStartConstraintId | string Enum: "MSO" "SNET" "SNLT" Constraint: * |
schedulingStartConstraintDateTime | string <date-time> |
schedulingFinishConstraintId | string Enum: "MFO" "FNET" "FNLT" Constraint: * |
schedulingFinishConstraintDateTime | string <date-time> |
isScheduledExternally | boolean |
earliestStartDateTime | string <date-time> |
earliestFinishDateTime | string <date-time> |
[- {
- "operation": "0010",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "plannedWorkHours": "P0Y0M0DT4H0M0S",
- "capacityCount": 2,
- "text": "Bygge stillas\n3 x 3 x 5 meter",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
}, - {
- "operation": "0020",
- "title": "Bytte del",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "plannedWorkHours": "P0Y0M0DT3H30M0S",
- "capacityCount": 1,
- "text": "",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Endpoint is deprecated as of 06.2021.
It is replaced by a generic endpoint for all work order types /work-order-operations/{operation-id}
.
Update the work order operation. Currently, we support completing the operation but additional functionality will be added in future releases.
work-order-id required | string |
operation required | string Example: 0020 |
Work order operation to update
op required | string Value: "replace" JSON Patch operation according to RFC6902 |
path required | string Value: "/isCompleted" Path indicating the property to be impacted by the operation |
required | boolean or string Value to be assigned to a resource property based on the operation and path. |
{- "op": "replace",
- "path": "/isCompleted",
- "value": true
}
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Add time ticket for work performed
Text multi-line property now is persisted as expected in ERP system.
work-order-id required | string |
operation required | string Example: 0020 |
Time ticket to add to operation
workHours required | string The work performed for the operation. Duration as defined in ISO8601 |
remainingWorkHours | string New estimate of remaining work for the operation. In Duration format as defined in ISO8601 |
workStartDateTime | string <date-time> Nullable |
workEndDateTime | string <date-time> Nullable |
workCenterId | string Resource which performed the work. Default is based on Work order operation. |
workCenterPlantId | string Resource which performed the work. Default is based on Work order operation. |
title | string <= 40 characters Title for time ticket |
text | string Multi-line description for the time ticket |
{- "workHours": "P0Y0M0DT2H0M0S",
- "remainingWorkHours": "P0Y0M0DT2H0M0S",
- "workStartDateTime": "2020-11-01T00:00:00Z",
- "workEndDateTime": "2020-11-05T00:00:00Z",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "title": "Prep jobb",
- "text": "Multi-line text\nDescribing the work done"
}
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Download single attachment for corrective Work order
work-order-id required | string |
attachment-id required | string |
curl --request GET \ --url https://api-test.gateway.equinor.com/maintenance-api/work-orders/corrective-work-orders/%7Bwork-order-id%7D/attachments/%7Battachment-id%7D \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Activate or deactivate status for Work order.
Overview of how status are used can be found in Equinor's governing document GL1561 - Work orders and notifications types
To identify which status the work order currently has perform a request to: work-orders/corrective-work-orders/{{work-order-id}}?include-status-details=true
The endpoint supports most status activiation such as:
Deactivation is supported in most cases where there is no interdependency between statuses. For status with a statusOrder value, deactivation is not necessary (nor supported) as the business logic will handle the switch.
The following statuses are not supported at the moment and will return a HTTP 405 response:
Support for releasing a work order by setting the REL status.
Support for complete-outstanding-maintenance-records query parameter for TECO and CLSD statuses.
work-order-id required | string |
status-id required | string |
complete-outstanding-maintenance-records | boolean Default: true Additional parameter to activation of TECO and CLSD statuses. Determines if related maintenance records should be closed as well. |
Work order status to update
isActive required | boolean |
{- "isActive": true
}
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Search for corrective Work orders through predefined filters. Each filter has a defined action and a set of parameters as described below.
The response does not include all details for each corrective work order. This can be found by subsequent call to lookup corrective-work-order
Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.
Corrective work orders based on recent status activations for the work orders. Parameters:
Find open Corrective work orders before the required-end-date Parameters:
Find preventive work orders by maintenance type. Response will only include open work orders. Parameters:
Added filter by-maintenance-type-id.
filter required | string Enum: "recent-status-activations" "same-maintenance-plan" "before-required-end-date" Filter to limit the Corrective work order by |
status-id | string Status |
plant-id | string Plant |
max-days-since-activation | integer <int32> [ 0 .. 255 ] Define how many days from the current day to include results for. 0 if only include for today |
max-work-orders | integer <int32> >= 0 Maximal numbers of results returned (optional for filter) |
area-id | string Deprecated Deprecated. Use location-id instead |
location-id | string Structured location within the plant. Use /plants/{plant-id}/locations for possible values |
required-end-date | string <date> placeholder |
maintenance-type-id | string Example: maintenance-type-id=017 Type of maintenance for the work order |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/corrective-work-orders?filter=SOME_STRING_VALUE&status-id=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&max-days-since-activation=SOME_INTEGER_VALUE&max-work-orders=SOME_INTEGER_VALUE&area-id=SOME_STRING_VALUE&location-id=SOME_STRING_VALUE&required-end-date=SOME_STRING_VALUE&maintenance-type-id=017' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
[- {
- "workOrderId": "24983466",
- "tagId": "BF",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE.",
- "title": "Modifikasjon av brannmur",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "failureReportId": "45836077",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "002",
- "maintenanceType": "Periodic maintenance",
- "requiredEndDate": "2019-08-24",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "sortField": "PRS10239.WP12",
- "priorityId": "L"
}
]
Create new Corrective Work order based on a supplied failure report.
It's possible to supply operations in the create operation. If no operations are passed, a default operation will be created automatically.
To lookup the created corrective work order use endpoint /work-orders/corrective-work-orders/{work-order-id}
Corrective Work order to create
planningPlantId required | string |
workCenterId required | string |
workCenterPlantId required | string |
title required | string |
plantId required | string |
failureReportId required | string |
Array of objects (WorkOrderOperationListCreate) | |
tagId | string |
tagPlantId | string |
plannerGroupId | string |
maintenanceTypeId | string |
basicStartDateTime | string <date-time> |
basicEndDateTime | string <date-time> |
locationId | string Structured location within the plant where the tag is located |
areaId | string Deprecated Deprecated 01.2021 - Use locationId instead |
text | string |
{- "failureReportId": "45836077",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "workCenterId": "CO2PIP",
- "workCenterPlantId": "1100",
- "title": "14xx/Installere flowline CD2",
- "tagId": "LZ1012",
- "tagPlantId": "1100",
- "plantId": "1100",
- "basicStartDateTime": "2020-11-01T00:00:00Z",
- "basicEndDateTime": "2021-03-01T00:00:00Z",
- "text": "Project for replacing flowing on CD2\n",
- "operations": [
- {
- "operation": "0010",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "plannedWorkDuration": "P0Y0M0DT3H30M0S",
- "text": "Bygge stillas\n3 x 3 x 5 meter",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
}, - {
- "operation": "0020",
- "title": "Bytte del",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "plannedWorkDuration": "P0Y0M0DT3H30M0S",
- "text": "",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
}
]
}
{- "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n\nHvordan påvirker feilen utstyrets funksjon? ... \n",
- "plannerGroup": "Plattform PV",
- "workCenter": "AI Automasjon",
- "workOrderId": "24983466",
- "tagId": "BF",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE.",
- "title": "Modifikasjon av brannmur",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "failureReportId": "45836077",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "002",
- "maintenanceType": "Periodic maintenance",
- "requiredEndDate": "2019-08-24",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "sortField": "PRS10239.WP12",
- "priorityId": "L"
}
Used for work orders generated from pre-defined preventive maintenance programs.
Lookup single Preventive Work order with related information.
Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.
If work-order-id exist, but is not of type corrective, the response is a HTTP 301 Moved Permanently with the url to the resource in the HTTP header Location.
work-order-id required | string |
include-operations | boolean Default: true Include Work order operations |
include-materials | boolean Default: false Include materials for Work order operations |
include-maintenance-records | boolean Default: false Include related maintenance records (from object list and technical feedback) |
include-maintenance-plan-details | boolean Default: false Include details for maintenance plan |
include-attachments | boolean Default: false Include Work order attachments (on header and for operation) |
include-status-details | boolean Default: false Include detailed information for statuses (both active and non-active) |
include-tag-details | boolean Default: false Include detailed for the main tag of the Work order |
include-related-tags | boolean Default: false Include related tags (from object list) |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/preventive-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-maintenance-plan-details=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "operations": [
- {
- "materials": [
- {
- "reservationId": "TBD",
- "materialId": "741466",
- "material": "LIGHT,FIXTURE,26w,SZ 4155.100,RITTAL",
- "quantity": 1,
- "quantityUnit": "PC",
- "location": "P10N utenfor lager",
- "tracking": {
- "trackingStatusId": "0C",
- "trackingStatus": "Component cancelled",
- "trackingStatusColor": "no-color"
}
}
], - "attachments": [
- {
- "attachmentId": "H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA",
- "fileName": "equipment_location.jpg",
- "fileSize": "1636352",
- "mimeType": "image/jpg",
- "_links": {
- "enclosure": "/work-orders/preventive-work-orders/20005446/attachments/H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA"
}
}
], - "operationId": "1005419798-00000001",
- "operation": "0020",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
- "standardTextTemplate": "1100-GS",
- "isCompleted": false,
- "plannedWorkHours": "PT3H",
- "actualWorkHours": "PT2H30M",
- "actualPercentageComplete": 75,
- "capacityCount": 1,
- "plannedDuration": "PT2H45M",
- "isScheduledExternally": true,
- "earliestStartDateTime": "2019-08-24T14:15:22Z",
- "earliestFinishDateTime": "2019-08-24T14:15:22Z",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2019-08-24T14:15:22Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2019-08-24T14:15:22Z"
}
], - "statuses": [
- {
- "statusId": "RDEX",
- "status": "Ready for execution",
- "statusOrder": 2,
- "isActive": false,
- "activatedDateTime": "2019-08-24T14:15:22Z"
}
], - "tagsRelated": [
- {
- "tagId": "AE5566",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE."
}
], - "maintenanceRecords": [
- {
- "recordId": "45894100",
- "recordResource": "maintenance-records/modification-proposals",
- "tagId": "PX",
- "tagPlantId": "1100",
- "equipmentId": "12410072",
- "title": "Endre skalering på PDT",
- "source": "ObjectList",
- "_links": {
- "self": "/maintenance-records/failure-reports/45894100"
}
}
], - "maintenancePlan": {
- "maintenancePlanId": "1108244",
- "maintenancePlanItemId": "10149640",
- "planDate": "2019-08-24"
}, - "tagDetails": {
- "isInactive": false,
- "parentTagId": "AT5566",
- "systemId": "BS",
- "system": "PM-PROG.SYST.",
- "ABCId": "5",
- "ABC": "Crit.=M & Red.=B",
- "locationId": "W14",
- "location": "METERING DECK",
- "areaId": "Deprecated - Use locationId",
- "area": "Deprecated - Use location",
- "catalogProfileId": "PM-160",
- "tagId": "AE5566",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE."
}, - "attachments": [
- {
- "attachmentId": "H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA",
- "fileName": "equipment_location.jpg",
- "fileSize": "1636352",
- "mimeType": "image/jpg",
- "_links": {
- "enclosure": "/work-orders/preventive-work-orders/20005446/attachments/H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA"
}
}
], - "text": "OBSERVERT FEILTILSTAND FYLLES UT AV INNMELDER:\nBeskriv feilen så godt som mulig (legg gjerne med bilde):\nHvor er utstyret fysisk plassert (legg gjerne med bilde)?\n-\n\nHvordan påvirker feilen utstyrets funksjon? ...\n",
- "plannerGroup": "Plattform PV",
- "workCenter": "AI Automasjon",
- "workOrderId": "24597659",
- "tagId": "BF",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE.",
- "title": "Modifikasjon av brannmur",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "002",
- "maintenanceType": "Periodic maintenance",
- "plannedDate": "2019-08-24",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "sortField": "PRS10239.WP12"
}
Update preventive work order.
Currently, we support appending text to the Work order.
The append request body has a special syntax. See the provide example for more details.
work-order-id required | string |
The information to be updated
op | string Value: "append" The type of non-trivial patch operation to perform. Currently, only append is supported |
path | string Value: "/text" The property to be updated by the non-trivial patch operation. Currently, only /text is supported |
value | string The value to update with non-trivial patch operation. |
[- {
- "op": "append",
- "path": "/text",
- "value": "Text to append\nMulti-line"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Add operations
work-order-id required | string |
Operations to add to existing Work order
title required | string [ 0 .. 40 ] characters |
operation required | string Id of operation user is familiar with |
workCenterId | string |
workCenterPlantId | string |
text | string |
plannedWorkDuration | string Duration as defined in ISO8601 |
plannedWorkHours | string Duration as defined in ISO8601 |
capacityCount | integer <int32> |
schedulingStartConstraintId | string Enum: "MSO" "SNET" "SNLT" Constraint: * |
schedulingStartConstraintDateTime | string <date-time> |
schedulingFinishConstraintId | string Enum: "MFO" "FNET" "FNLT" Constraint: * |
schedulingFinishConstraintDateTime | string <date-time> |
isScheduledExternally | boolean |
earliestStartDateTime | string <date-time> |
earliestFinishDateTime | string <date-time> |
[- {
- "operation": "0010",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "plannedWorkHours": "P0Y0M0DT4H0M0S",
- "capacityCount": 2,
- "text": "Bygge stillas\n3 x 3 x 5 meter",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
}, - {
- "operation": "0020",
- "title": "Bytte del",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "plannedWorkHours": "P0Y0M0DT3H30M0S",
- "capacityCount": 1,
- "text": "",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Endpoint is deprecated as of 06.2021.
It is replaced by a generic endpoint for all work order types /work-order-operations/{operation-id}
.
Update the work order operation. Currently, we support completing the operation but additional functionality will be added in future releases.
work-order-id required | string |
operation required | string Example: 0020 |
Work order operation to update
op required | string Value: "replace" JSON Patch operation according to RFC6902 |
path required | string Value: "/isCompleted" Path indicating the property to be impacted by the operation |
required | boolean or string Value to be assigned to a resource property based on the operation and path. |
{- "op": "replace",
- "path": "/isCompleted",
- "value": true
}
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Add time ticket for work performed
Text multi-line property now is persisted as expected in ERP system.
work-order-id required | string |
operation required | string Example: 0020 |
Time ticket to add to operation
workHours required | string The work performed for the operation. Duration as defined in ISO8601 |
remainingWorkHours | string New estimate of remaining work for the operation. In Duration format as defined in ISO8601 |
workStartDateTime | string <date-time> Nullable |
workEndDateTime | string <date-time> Nullable |
workCenterId | string Resource which performed the work. Default is based on Work order operation. |
workCenterPlantId | string Resource which performed the work. Default is based on Work order operation. |
title | string <= 40 characters Title for time ticket |
text | string Multi-line description for the time ticket |
{- "workHours": "P0Y0M0DT2H0M0S",
- "remainingWorkHours": "P0Y0M0DT2H0M0S",
- "workStartDateTime": "2020-11-01T00:00:00Z",
- "workEndDateTime": "2020-11-05T00:00:00Z",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "title": "Prep jobb",
- "text": "Multi-line text\nDescribing the work done"
}
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Download single attachment for preventive Work order
record-id required | string |
attachment-id required | string |
curl --request GET \ --url https://api-test.gateway.equinor.com/maintenance-api/work-orders/preventive-work-orders/%7Brecord-id%7D/attachments/%7Battachment-id%7D \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Activate or deactivate status for Work order.
Overview of how status are used can be found in Equinor's governing document GL1561 - Work orders and notifications types
To identify which status the work order currently has perform a request to: work-orders/preventive-work-orders/{{work-order-id}}?include-status-details=true
The endpoint supports most status activiation such as:
Deactivation is supported in most cases where there is no interdependency between statuses. For status with a statusOrder value, deactivation is not necessary (nor supported) as the business logic will handle the switch.
The following statuses are not supported at the moment and will return a HTTP 405 response:
Support for releasing a work order by setting the REL status.
work-order-id required | string |
status-id required | string |
Work order status to update
isActive required | boolean |
{- "isActive": true
}
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Search for preventive Work orders through predefined filters. Each filter has a defind action and a set of parameters as described below.
The response does not include all details for each preventive work order. This can be found by subsequent call to lookup preventive-work-order
Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.
Based on the maintenance plan of the Preventive Work order provided, find other instances sorted by start date Parameters:
Preventive work orders based on recent status activations for the work order. Parameters:
Find open Preventive work orders before the before-planned-date Parameters:
Find preventive work orders by maintenance type. Response will only include open work orders. Parameters:
Added filter by-maintenance-type-id.
filter required | string Enum: "recent-status-activations" "same-maintenance-plan" "before-planned-date" Filter to limit the failure reports by |
status-id | string Status |
plant-id | string Plant |
max-days-since-activation | integer <int32> [ 0 .. 255 ] Define how many days from the current day to include results for. 0 if only include for today |
work-order-id | string Preventive Work order id |
earliest-date | string <date> Earliest date to find maintenance plan history for (optional for filter) |
max-work-orders | integer <int32> Maximal numbers of results returned (optional for filter) |
location-id | string Structured location within the plant. Use /plants/{plant-id}/locations for possible values |
area-id | string <date> Deprecated Deprecated. Use locationId instead |
planned-date | string <date> Earliest date to find maintenance plan history for (optional for filter) |
maintenance-type-id | string Example: maintenance-type-id=005 Type of maintenance for the work order |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/preventive-work-orders?filter=SOME_STRING_VALUE&status-id=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&max-days-since-activation=SOME_INTEGER_VALUE&work-order-id=SOME_STRING_VALUE&earliest-date=SOME_STRING_VALUE&max-work-orders=SOME_INTEGER_VALUE&location-id=SOME_STRING_VALUE&area-id=SOME_STRING_VALUE&planned-date=SOME_STRING_VALUE&maintenance-type-id=005' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
[- {
- "workOrderId": "24597659",
- "tagId": "BF",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE.",
- "title": "Modifikasjon av brannmur",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "002",
- "maintenanceType": "Periodic maintenance",
- "plannedDate": "2019-08-24",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "sortField": "PRS10239.WP12"
}
]
Used as a tool to ensure change control of software changes to Safety and Automation Systems.
Download single attachment for SAS Change Work order
work-order-id required | string |
attachment-id required | string |
curl --request GET \ --url https://api-test.gateway.equinor.com/maintenance-api/work-orders/sas-change-work-orders/%7Bwork-order-id%7D/attachments/%7Battachment-id%7D \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Lookup single SAS Change Work order with related information
Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.
work-order-id required | string |
include-operations | boolean Default: true Include Work order operations |
include-materials | boolean Default: true Include materials for Work order operations |
include-maintenance-records | boolean Default: false Include related maintenance records (from object list) |
include-attachments | boolean Default: false Include Work order attachments (on header and for operation) |
include-status-details | boolean Default: false Include detailed information for statuses (both active and non-active) |
include-tag-details | boolean Default: false Include detailed for the main tag of the Work order |
include-related-tags | boolean Default: false Include related tags (from object list) |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/sas-change-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "operations": [
- {
- "materials": [
- {
- "reservationId": "TBD",
- "materialId": "741466",
- "material": "LIGHT,FIXTURE,26w,SZ 4155.100,RITTAL",
- "quantity": 1,
- "quantityUnit": "PC",
- "location": "P10N utenfor lager",
- "tracking": {
- "trackingStatusId": "0C",
- "trackingStatus": "Component cancelled",
- "trackingStatusColor": "no-color"
}
}
], - "attachments": [
- {
- "attachmentId": "H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA",
- "fileName": "equipment_location.jpg",
- "fileSize": "1636352",
- "mimeType": "image/jpg",
- "_links": {
- "enclosure": "/work-orders/preventive-work-orders/20005446/attachments/H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA"
}
}
], - "operationId": "1005419798-00000001",
- "operation": "0020",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
- "standardTextTemplate": "1100-GS",
- "isCompleted": false,
- "plannedWorkHours": "PT3H",
- "actualWorkHours": "PT2H30M",
- "actualPercentageComplete": 75,
- "capacityCount": 1,
- "plannedDuration": "PT2H45M",
- "isScheduledExternally": true,
- "earliestStartDateTime": "2019-08-24T14:15:22Z",
- "earliestFinishDateTime": "2019-08-24T14:15:22Z",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2019-08-24T14:15:22Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2019-08-24T14:15:22Z"
}
], - "statuses": [
- {
- "statusId": "RDEX",
- "status": "Ready for execution",
- "statusOrder": 2,
- "isActive": false,
- "activatedDateTime": "2019-08-24T14:15:22Z"
}
], - "tagsRelated": [
- {
- "tagId": "AE5566",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE."
}
], - "maintenanceRecords": [
- {
- "recordId": "45894100",
- "recordResource": "maintenance-records/modification-proposals",
- "tagId": "PX",
- "tagPlantId": "1100",
- "equipmentId": "12410072",
- "title": "Endre skalering på PDT",
- "source": "ObjectList",
- "_links": {
- "self": "/maintenance-records/failure-reports/45894100"
}
}
], - "tagDetails": {
- "isInactive": false,
- "parentTagId": "AT5566",
- "systemId": "BS",
- "system": "PM-PROG.SYST.",
- "ABCId": "5",
- "ABC": "Crit.=M & Red.=B",
- "locationId": "W14",
- "location": "METERING DECK",
- "areaId": "Deprecated - Use locationId",
- "area": "Deprecated - Use location",
- "catalogProfileId": "PM-160",
- "tagId": "AE5566",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE."
}, - "attachments": [
- {
- "attachmentId": "H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA",
- "fileName": "equipment_location.jpg",
- "fileSize": "1636352",
- "mimeType": "image/jpg",
- "_links": {
- "enclosure": "/work-orders/preventive-work-orders/20005446/attachments/H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA"
}
}
], - "text": "Beskrivelse av prosjekt modifikasjon\n",
- "costWBS": "Conc.: Well A10 GL hook-up FL",
- "plannerGroup": "Plattform PV",
- "workCenter": "AI Automasjon",
- "workOrderId": "24684145",
- "tagId": "LZ1012",
- "tagPlantId": "1100",
- "tag": "A10 OIL PRODUCTION WELL",
- "title": "1416/Installerer Flowlinw A10",
- "workCenterId": "PPMAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "Z06",
- "maintenanceType": "SAS Change Activity",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "costWBSId": "M.O037C.20.A.0002.A2",
- "projectId": "M.O037C.20.A.0002",
- "costNetworkId": "9045173",
- "costNetworkOperationId": "0010",
- "sortField": "PRS10239.WP12"
}
Activate or deactivate status for Work order
Currently, not all statuses are supported.
The status supported are:
work-order-id required | string |
status-id required | string |
Work order status to update
isActive required | boolean |
{- "isActive": true
}
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Search for SAS Change Work orders through predefined filters. Each filter has a defined action and a set of parameters as described below.
The response does not include all details for each SAS Change Work order. This can be found by subsequent call to lookup sas-change-work-orders
Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.
Find open SAS Change Work orders by plant Parameters:
SAS Change Work orders based on recent status activations for the work orders. Parameters:
filter required | string Enum: "open-by-plant" "recent-status-activations" Filter to limit the SAS Change work order by |
status-id | string Status |
plant-id | string Plant |
max-days-since-activation | integer <int32> [ 0 .. 255 ] Define how many days from the current day to include results for. 0 if only include for today |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/sas-change-work-orders?filter=SOME_STRING_VALUE&status-id=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&max-days-since-activation=SOME_INTEGER_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
[- {
- "workOrderId": "24684145",
- "tagId": "LZ1012",
- "tagPlantId": "1100",
- "tag": "A10 OIL PRODUCTION WELL",
- "title": "1416/Installerer Flowlinw A10",
- "workCenterId": "PPMAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "Z06",
- "maintenanceType": "SAS Change Activity",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "costWBSId": "M.O037C.20.A.0002.A2",
- "projectId": "M.O037C.20.A.0002",
- "costNetworkId": "9045173",
- "costNetworkOperationId": "0010",
- "sortField": "PRS10239.WP12"
}
]
Create new SAS Change Work order
Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.
SAS Change Work order to create
planningPlantId required | string |
workCenterId required | string |
workCenterPlantId required | string |
title required | string |
plantId required | string |
locationId required | string Structured location within the plant where the tag is located |
required | Array of objects (WorkOrderOperationCreate) |
tagId required | string |
tagPlantId required | string |
costNetworkId | string |
costNetworkOperationId | string |
plannerGroupId | string |
maintenanceTypeId | string |
basicStartDateTime | string <date-time> |
basicEndDateTime | string <date-time> |
areaId | string Deprecated Deprecated 01.2021 - Use locationId instead |
text | string |
{- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "workCenterId": "PPMAUT",
- "workCenterPlantId": "1100",
- "title": "14xx/Installere flowline CD2",
- "tagId": "LZ1012",
- "tagPlantId": "1100",
- "costNetworkId": "9045173",
- "costNetworkOperationId": "0010",
- "plantId": "1100",
- "locationId": "CD2",
- "maintenanceTypeId": "015",
- "basicStartDateTime": "2020-11-01T00:00:00Z",
- "basicEndDateTime": "2021-03-01T00:00:00Z",
- "text": "Project for replacing flowing on CD2\n",
- "operations": [
- {
- "operation": "0010",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "plannedWorkDuration": "P0Y0M0DT3H30M0S",
- "text": "Bygge stillas\n3 x 3 x 5 meter",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
}, - {
- "operation": "0020",
- "title": "Bytte del",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "plannedWorkDuration": "P0Y0M0DT3H30M0S",
- "text": "",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
}
]
}
{- "text": "Beskrivelse av prosjekt modifikasjon\n",
- "costWBS": "Conc.: Well A10 GL hook-up FL",
- "plannerGroup": "Plattform PV",
- "workCenter": "AI Automasjon",
- "workOrderId": "24684145",
- "tagId": "LZ1012",
- "tagPlantId": "1100",
- "tag": "A10 OIL PRODUCTION WELL",
- "title": "1416/Installerer Flowlinw A10",
- "workCenterId": "PPMAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "Z06",
- "maintenanceType": "SAS Change Activity",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "costWBSId": "M.O037C.20.A.0002.A2",
- "projectId": "M.O037C.20.A.0002",
- "costNetworkId": "9045173",
- "costNetworkOperationId": "0010",
- "sortField": "PRS10239.WP12"
}
Add operations
work-order-id required | string |
Operations to add to existing Work order
title required | string [ 0 .. 40 ] characters |
operation required | string Id of operation user is familiar with |
workCenterId | string |
workCenterPlantId | string |
text | string |
plannedWorkDuration | string Duration as defined in ISO8601 |
plannedWorkHours | string Duration as defined in ISO8601 |
capacityCount | integer <int32> |
schedulingStartConstraintId | string Enum: "MSO" "SNET" "SNLT" Constraint: * |
schedulingStartConstraintDateTime | string <date-time> |
schedulingFinishConstraintId | string Enum: "MFO" "FNET" "FNLT" Constraint: * |
schedulingFinishConstraintDateTime | string <date-time> |
isScheduledExternally | boolean |
earliestStartDateTime | string <date-time> |
earliestFinishDateTime | string <date-time> |
[- {
- "operation": "0010",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "plannedWorkHours": "P0Y0M0DT4H0M0S",
- "capacityCount": 2,
- "text": "Bygge stillas\n3 x 3 x 5 meter",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
}, - {
- "operation": "0020",
- "title": "Bytte del",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "plannedWorkHours": "P0Y0M0DT3H30M0S",
- "capacityCount": 1,
- "text": "",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Used for modification projects that are controlled and managed using standard modification project structures that include WBS, network orders and activities.
Download single attachment for Project Work order
record-id required | string |
attachment-id required | string |
curl --request GET \ --url https://api-test.gateway.equinor.com/maintenance-api/work-orders/project-work-orders/%7Brecord-id%7D/attachments/%7Battachment-id%7D \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Lookup single Project Work order with related information
Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.
work-order-id required | string |
include-operations | boolean Default: true Include Work order operations |
include-materials | boolean Default: true Include materials for Work order operations |
include-maintenance-records | boolean Default: false Include related maintenance records (from object list) |
include-attachments | boolean Default: false Include Work order attachments (on header and for operation) |
include-status-details | boolean Default: false Include detailed information for statuses (both active and non-active) |
include-tag-details | boolean Default: false Include detailed for the main tag of the Work order |
include-related-tags | boolean Default: false Include related tags (from object list) |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/project-work-orders/%7Bwork-order-id%7D?include-operations=SOME_BOOLEAN_VALUE&include-materials=SOME_BOOLEAN_VALUE&include-maintenance-records=SOME_BOOLEAN_VALUE&include-attachments=SOME_BOOLEAN_VALUE&include-status-details=SOME_BOOLEAN_VALUE&include-tag-details=SOME_BOOLEAN_VALUE&include-related-tags=SOME_BOOLEAN_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "operations": [
- {
- "materials": [
- {
- "reservationId": "TBD",
- "materialId": "741466",
- "material": "LIGHT,FIXTURE,26w,SZ 4155.100,RITTAL",
- "quantity": 1,
- "quantityUnit": "PC",
- "location": "P10N utenfor lager",
- "tracking": {
- "trackingStatusId": "0C",
- "trackingStatus": "Component cancelled",
- "trackingStatusColor": "no-color"
}
}
], - "attachments": [
- {
- "attachmentId": "H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA",
- "fileName": "equipment_location.jpg",
- "fileSize": "1636352",
- "mimeType": "image/jpg",
- "_links": {
- "enclosure": "/work-orders/preventive-work-orders/20005446/attachments/H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA"
}
}
], - "operationId": "1005419798-00000001",
- "operation": "0020",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
- "standardTextTemplate": "1100-GS",
- "isCompleted": false,
- "plannedWorkHours": "PT3H",
- "actualWorkHours": "PT2H30M",
- "actualPercentageComplete": 75,
- "capacityCount": 1,
- "plannedDuration": "PT2H45M",
- "isScheduledExternally": true,
- "earliestStartDateTime": "2019-08-24T14:15:22Z",
- "earliestFinishDateTime": "2019-08-24T14:15:22Z",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2019-08-24T14:15:22Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2019-08-24T14:15:22Z"
}
], - "statuses": [
- {
- "statusId": "RDEX",
- "status": "Ready for execution",
- "statusOrder": 2,
- "isActive": false,
- "activatedDateTime": "2019-08-24T14:15:22Z"
}
], - "tagsRelated": [
- {
- "tagId": "AE5566",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE."
}
], - "maintenanceRecords": [
- {
- "recordId": "45894100",
- "recordResource": "maintenance-records/modification-proposals",
- "tagId": "PX",
- "tagPlantId": "1100",
- "equipmentId": "12410072",
- "title": "Endre skalering på PDT",
- "source": "ObjectList",
- "_links": {
- "self": "/maintenance-records/failure-reports/45894100"
}
}
], - "tagDetails": {
- "isInactive": false,
- "parentTagId": "AT5566",
- "systemId": "BS",
- "system": "PM-PROG.SYST.",
- "ABCId": "5",
- "ABC": "Crit.=M & Red.=B",
- "locationId": "W14",
- "location": "METERING DECK",
- "areaId": "Deprecated - Use locationId",
- "area": "Deprecated - Use location",
- "catalogProfileId": "PM-160",
- "tagId": "AE5566",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE."
}, - "attachments": [
- {
- "attachmentId": "H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA",
- "fileName": "equipment_location.jpg",
- "fileSize": "1636352",
- "mimeType": "image/jpg",
- "_links": {
- "enclosure": "/work-orders/preventive-work-orders/20005446/attachments/H4sIAAAAAAAACqsxMDA1MDVzNDQ3srAwdHVxdDR0dDI1MjB3MjFyMzA0cqsxMgAqMTExq6mpMTQwMDSwNKoBitQ4GRsA6ZqAzOSS0qLU-LTMvJTMvHQFXQXn_IJKBQ1jTb2CvHQAwLV5WV4AAAA"
}
}
], - "text": "Beskrivelse av prosjekt modifikasjon\n",
- "costWBS": "Conc.: Well A10 GL hook-up FL",
- "plannerGroup": "Plattform PV",
- "workCenter": "AI Automasjon",
- "workOrderId": "24684145",
- "tagId": "LZ1012",
- "tagPlantId": "1100",
- "tag": "A10 OIL PRODUCTION WELL",
- "title": "1416/Installerer Flowlinw A10",
- "isTimeOnlyWorkOrder": false,
- "workCenterId": "PPMAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "015",
- "maintenanceType": "Project work",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "costWBSId": "M.O037C.20.A.0002.A2",
- "projectId": "M.O037C.20.A.0002",
- "costNetworkId": "9045173",
- "costNetworkOperationId": "0010",
- "sortField": "PRS10239.WP12"
}
Activate or deactivate status for Work order
Currently, not all statuses are supported.
The status supported are:
work-order-id required | string |
status-id required | string |
Work order status to update
isActive required | boolean |
{- "isActive": true
}
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Search for project Work orders through predefined filters. Each filter has a defined action and a set of parameters as described below.
The response does not include all details for each project work order. This can be found by subsequent call to lookup project-work-order
Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.
Find open Project Work orders by plant Parameters:
Project work orders based on recent status activations for the work orders. Parameters:
filter required | string Enum: "open-by-plant" "recent-status-activations" Filter to limit the Project work order by |
status-id | string Status |
plant-id | string Plant |
max-days-since-activation | integer <int32> [ 0 .. 255 ] Define how many days from the current day to include results for. 0 if only include for today |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/work-orders/project-work-orders?filter=SOME_STRING_VALUE&status-id=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&max-days-since-activation=SOME_INTEGER_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
[- {
- "workOrderId": "24684145",
- "tagId": "LZ1012",
- "tagPlantId": "1100",
- "tag": "A10 OIL PRODUCTION WELL",
- "title": "1416/Installerer Flowlinw A10",
- "isTimeOnlyWorkOrder": false,
- "workCenterId": "PPMAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "015",
- "maintenanceType": "Project work",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "costWBSId": "M.O037C.20.A.0002.A2",
- "projectId": "M.O037C.20.A.0002",
- "costNetworkId": "9045173",
- "costNetworkOperationId": "0010",
- "sortField": "PRS10239.WP12"
}
]
Create new Project Work order
Properties areaId and area are deprecated as of 01.2021 in order to align with naming across Equinor system. Use locationId and location instead.
Project Work order to create
planningPlantId required | string |
workCenterId required | string |
workCenterPlantId required | string |
title required | string |
plantId required | string |
locationId required | string Structured location within the plant where the tag is located |
costNetworkId required | string |
costNetworkOperationId required | string |
required | Array of objects (WorkOrderOperationCreate) |
isTimeOnlyWorkOrder | boolean If true, this project work order can only be used for time cost and is represented by a different work order type (PM20) in SAP |
tagId | string |
tagPlantId | string |
plannerGroupId | string |
maintenanceTypeId | string |
basicStartDateTime | string <date-time> |
basicEndDateTime | string <date-time> |
areaId | string Deprecated Deprecated 01.2021 - Use locationId instead |
text | string |
{- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "workCenterId": "PPMAUT",
- "workCenterPlantId": "1100",
- "title": "14xx/Installere flowline CD2",
- "isTimeOnlyWorkOrder": false,
- "tagId": "LZ1012",
- "tagPlantId": "1100",
- "costNetworkId": "9045173",
- "costNetworkOperationId": "0010",
- "plantId": "1100",
- "locationId": "CD2",
- "maintenanceTypeId": "015",
- "basicStartDateTime": "2020-11-01T00:00:00Z",
- "basicEndDateTime": "2021-03-01T00:00:00Z",
- "text": "Project for replacing flowing on CD2\n",
- "operations": [
- {
- "operation": "0010",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "plannedWorkDuration": "P0Y0M0DT3H30M0S",
- "text": "Bygge stillas\n3 x 3 x 5 meter",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
}, - {
- "operation": "0020",
- "title": "Bytte del",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "plannedWorkDuration": "P0Y0M0DT3H30M0S",
- "text": "",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
}
]
}
{- "text": "Beskrivelse av prosjekt modifikasjon\n",
- "costWBS": "Conc.: Well A10 GL hook-up FL",
- "plannerGroup": "Plattform PV",
- "workCenter": "AI Automasjon",
- "workOrderId": "24684145",
- "tagId": "LZ1012",
- "tagPlantId": "1100",
- "tag": "A10 OIL PRODUCTION WELL",
- "title": "1416/Installerer Flowlinw A10",
- "isTimeOnlyWorkOrder": false,
- "workCenterId": "PPMAUT",
- "workCenterPlantId": "1100",
- "locationId": "CD17OU",
- "areaId": "Deprecated - Use locationId",
- "plantId": "1100",
- "planningPlantId": "1100",
- "plannerGroupId": "PPM",
- "activeStatusIds": "OSNO CRTE",
- "maintenanceTypeId": "015",
- "maintenanceType": "Project work",
- "basicStartDateTime": "2019-08-24T14:15:22Z",
- "basicEndDateTime": "2019-08-24T14:15:22Z",
- "createdDateTime": "2019-08-24T14:15:22Z",
- "changedDateTime": "2019-08-24T14:15:22Z",
- "costWBSId": "M.O037C.20.A.0002.A2",
- "projectId": "M.O037C.20.A.0002",
- "costNetworkId": "9045173",
- "costNetworkOperationId": "0010",
- "sortField": "PRS10239.WP12"
}
Add operations
work-order-id required | string |
Operations to add to existing Work order
title required | string [ 0 .. 40 ] characters |
operation required | string Id of operation user is familiar with |
workCenterId | string |
workCenterPlantId | string |
text | string |
plannedWorkDuration | string Duration as defined in ISO8601 |
plannedWorkHours | string Duration as defined in ISO8601 |
capacityCount | integer <int32> |
schedulingStartConstraintId | string Enum: "MSO" "SNET" "SNLT" Constraint: * |
schedulingStartConstraintDateTime | string <date-time> |
schedulingFinishConstraintId | string Enum: "MFO" "FNET" "FNLT" Constraint: * |
schedulingFinishConstraintDateTime | string <date-time> |
isScheduledExternally | boolean |
earliestStartDateTime | string <date-time> |
earliestFinishDateTime | string <date-time> |
[- {
- "operation": "0010",
- "title": "Bygge stillas",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "plannedWorkHours": "P0Y0M0DT4H0M0S",
- "capacityCount": 2,
- "text": "Bygge stillas\n3 x 3 x 5 meter",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
}, - {
- "operation": "0020",
- "title": "Bytte del",
- "workCenterId": "SPIAUT",
- "workCenterPlantId": "1100",
- "plannedWorkHours": "P0Y0M0DT3H30M0S",
- "capacityCount": 1,
- "text": "",
- "schedulingStartConstraintId": "MSO",
- "schedulingStartConstraintDateTime": "2020-11-01T00:00:00Z",
- "schedulingFinishConstraintId": "MFO",
- "schedulingFinishConstraintDateTime": "2021-03-01T00:00:00Z"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
A measuring point represents the physical or virtual location at which process values, events or conditions are described. For instance a temperature reader, pressure sensor, or a spot on a pipe where thickness is measured.
Measuring points indicate where measurements (or derived/calculated values) occur.
A measuring point is normally connected to a tag or equipment, facilitating the monitoring of its state and perfomance.
Lookup a single measuring point.
A measuring point represents the physical or virtual location at which process values, events or conditions are described. For instance a temperature reader, pressure sensor, or a spot on a pipe where thickness is measured.
Measuring points indicate where measurements (or derived/calculated values) occur.
A measuring point is normally connected to a tag or equipment, facilitating the monitoring of its state and perfomance.
Measuring points support quantitative (example 3mm), qualitative (example YES) or combination of the two when creating measurements for the measuring point.
Quantitative measurements are defined by quantitativeCharacteristicId and have a unit of measure.
Qualitative measurement codes are defined by qualitativeCodeGroupId.
Added user-friendly description of unit through quantitativeCharacteristicUnit.
point-id required | string Example: 14626974 |
include-last-measurement | boolean Default: false Include the last measurement of the measuring point |
include-measurements | boolean Default: false Include measurements of the measuring point |
include-qualitative-code-group | boolean Default: false Include possible codes for qualitative measurements if qualitativeCodeGroupId is set |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/measuring-points/%7Bpoint-id%7D?include-last-measurement=SOME_BOOLEAN_VALUE&include-measurements=SOME_BOOLEAN_VALUE&include-qualitative-code-group=SOME_BOOLEAN_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "lastMeasurement": {
- "measurementId": "10017608811",
- "measuringPointId": "14626974",
- "measurementDateTime": "2019-08-24T14:15:22Z",
- "measurementTitle": "string",
- "quantitativeReading": 19.2,
- "quantitativeReadingUnitId": "MM",
- "qualitativeCodeGroupId": "OBSMETH",
- "qualitativeCodeId": "UT-I",
- "processingStatusId": "1"
}, - "measurements": [
- {
- "measurementId": "10017608811",
- "measuringPointId": "14626974",
- "measurementDateTime": "2019-08-24T14:15:22Z",
- "measurementTitle": "string",
- "quantitativeReading": 19.2,
- "quantitativeReadingUnitId": "MM",
- "qualitativeCodeGroupId": "OBSMETH",
- "qualitativeCodeId": "UT-I",
- "processingStatusId": "1"
}
], - "qualitativeCodes": [
- {
- "qualitativeCodeId": "UT-I",
- "qualitativeCode": "UT Man. Pulse-Echo: Internal degradation"
}
], - "tagId": "1A1-A16A",
- "tagPlantId": "1111",
- "equipmentId": "12410072",
- "measuringPosition": "P:M03 2\" SV 301",
- "supportsQuantitativeMeasurement": true,
- "quantitativeCharacteristicId": "SM_COATING_CONDITION_ITEM",
- "quantitativeCharacteristicUnitId": "MBA",
- "quantitativeCharacteristicUnit": "mbar",
- "categoryId": "B",
- "qualitativeCodeGroupId": "OBSMETH",
- "supportsQualitativeMeasurement": true,
- "measuringPointId": "14626974",
- "measuringPoint": "Surface coating condition"
}
Search measuring point.
Search measuring points based on tag prefix with further options to limit the result based on select properties of the measuring point. Parameters:
Search measuring points based on plant and one other property of the measuring point. Parameters:
/measuring-points?filter=by-tag-prefix&plant-id=1180&tag-prefix=18HV10&api-version=v1
/measuring-points?filter=by-plant&plant-id=1102&quantitative-characteristic=SURFACE_MAINTEANC&api-version=v1
/measuring-points?filter=by-tag-prefix&plant-id=1180&tag-prefix=18HV10&position=VALVE%20STATUS&include-last-measurement=true&api-version=v1
filter required | string Value: "by-tag-prefix" Filter to limit the measuring points by |
plant-id | string Plant the tag-prefix belongs to |
tag-prefix | string >= 2 characters Example: tag-prefix=02%22-EC-%202525-M The first few characters of the tag |
measuring-position | string Example: measuring-position=VALVE%20STATUS Limit result based on a specific measuring position value |
quantitative-characteristic | string Example: quantitative-characteristic=SM_COATING_CONDITION_ITEM Limit result based on a specific quantitative characteristic value |
qualitative-code-group | string Example: qualitative-code-group=OBSMETH Limit result based on a specific qualitative code group value |
measuring-point-name | string Example: measuring-point-name=Breakout%20torque Limit result based on a specific measuring point name value |
include-last-measurement | boolean Default: false Include the last measurement of the measuring points |
include-measurements | boolean Default: false Include measurements of the measuring points |
include-qualitative-code-group | boolean Default: false Include possible codes for qualitative measurements if qualitativeCodeGroupId is set |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/measuring-points?filter=SOME_STRING_VALUE&plant-id=SOME_STRING_VALUE&tag-prefix=02%2522-EC-%25202525-M&measuring-position=VALVE%2520STATUS&quantitative-characteristic=SM_COATING_CONDITION_ITEM&qualitative-code-group=OBSMETH&measuring-point-name=Breakout%2520torque&include-last-measurement=SOME_BOOLEAN_VALUE&include-measurements=SOME_BOOLEAN_VALUE&include-qualitative-code-group=SOME_BOOLEAN_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
[- {
- "lastMeasurement": {
- "measurementId": "10017608811",
- "measuringPointId": "14626974",
- "measurementDateTime": "2019-08-24T14:15:22Z",
- "measurementTitle": "string",
- "quantitativeReading": 19.2,
- "quantitativeReadingUnitId": "MM",
- "qualitativeCodeGroupId": "OBSMETH",
- "qualitativeCodeId": "UT-I",
- "processingStatusId": "1"
}, - "measurements": [
- {
- "measurementId": "10017608811",
- "measuringPointId": "14626974",
- "measurementDateTime": "2019-08-24T14:15:22Z",
- "measurementTitle": "string",
- "quantitativeReading": 19.2,
- "quantitativeReadingUnitId": "MM",
- "qualitativeCodeGroupId": "OBSMETH",
- "qualitativeCodeId": "UT-I",
- "processingStatusId": "1"
}
], - "qualitativeCodes": [
- {
- "qualitativeCodeId": "UT-I",
- "qualitativeCode": "UT Man. Pulse-Echo: Internal degradation"
}
], - "tagId": "1A1-A16A",
- "tagPlantId": "1111",
- "equipmentId": "12410072",
- "measuringPosition": "P:M03 2\" SV 301",
- "supportsQuantitativeMeasurement": true,
- "quantitativeCharacteristicId": "SM_COATING_CONDITION_ITEM",
- "quantitativeCharacteristicUnitId": "MBA",
- "quantitativeCharacteristicUnit": "mbar",
- "categoryId": "B",
- "qualitativeCodeGroupId": "OBSMETH",
- "supportsQualitativeMeasurement": true,
- "measuringPointId": "14626974",
- "measuringPoint": "Surface coating condition"
}
]
Create new measurement for measuring point.
Measuring points support quantitative (example 3mm), qualitative (example YES) or combination of the two when creating measurements for the measuring point.
Quantitative measurements are defined by quantitativeCharacteristicId property of the measuring point. Make sure the quantitativeReading is in the reading unit of the measuring point.
Qualitative measurement codes are defined by qualitativeCodeGroupId property of the measuring point.
point-id required | string Example: 14626974 |
Measurement of measuring point to create
measurementDateTime | string <date-time> When the measurement was performed. If not provided, the current datetime will be used. |
quantitativeReading | number |
qualitativeCodeGroupId | string |
qualitativeCodeId | string |
measurementTitle | string <= 40 characters |
processingStatusId | string <= 1 characters '1' - MeasReading processed: activities need to be carried out '2' - MeasReading processed: activities covered by planned task '7'- MeasReading processed: no activities need to be carried out |
{- "quantitativeReading": 19.2
}
{- "measurementId": "10017608811",
- "measuringPointId": "14626974",
- "measurementDateTime": "2019-08-24T14:15:22Z",
- "measurementTitle": "string",
- "quantitativeReading": 19.2,
- "quantitativeReadingUnitId": "MM",
- "qualitativeCodeGroupId": "OBSMETH",
- "qualitativeCodeId": "UT-I",
- "processingStatusId": "1"
}
The function of the maintenance programme is to systematize the maintenance effort so that the maintenance resources are used in a controlled, cost-effective manner to ensure a safe workplace with stable production and high production efficiency.
Maintenance is defined in accordance with international standards and is about activities intended to prevent loss of or restore an item's ability to provide a required function. In practice, this involves activities to check condition, test functions, prolong life or repair.
Overview of maintenance programme structure can be found in Equinor's internal governing document GL1624 Guidelines for the establishment of a preventive maintenance programme in SAP
The maintenance programme consists of maintenance plans.
Lookup single Maintenance Plan
plan-id required | string |
include-items | boolean Default: true Include items of the maintenance plan |
include-item-calls | boolean Default: true Include calls for items of the maintenance plan |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-plans/%7Bplan-id%7D?include-items=SOME_BOOLEAN_VALUE&include-item-calls=SOME_BOOLEAN_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "maintenancePlanId": "1056916",
- "maintenancePlan": "1100-AKCD2 MODULPROGRAM TELE CD2",
- "items": [
- {
- "maintenanceStrategyId": "1100-1",
- "maintenanceStrategy": "Statfjord A Platform (Month)",
- "status": "RDEX PLAN",
- "objectList": [
- {
- "tagId": "AE5566",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE.",
- "equipmentId": "12578254",
- "equipment": "CAP 22 OB Protection",
- "sortField": "B-4102"
}
], - "calls": [
- {
- "callNr": 8,
- "plannedDate": "2019-08-24",
- "isExecuted": true,
- "preventiveWorkOrderId": "20132844"
}
], - "taskList": {
- "taskListId": "T-10012713-02",
- "taskList": "24/48M FV-MULTI TRAIN1 GLYCOL REBOILER",
- "taskListTypeId": "T",
- "planningPlantId": "1100",
- "statusId": "4",
- "operations": [
- {
- "operationId": "0020",
- "subOperationId": "",
- "title": "24M AUTOMASJON BR2151 - GLYCOL STILL REB",
- "workCenterId": "PPMAUT",
- "workCenterPlantId": "1100",
- "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
- "plannedWorkHours": "PT3H",
- "capacityCount": 1,
- "plannedDuration": "PT2H45M",
- "executionFactor": 1,
- "standardTextTemplate": "1100-GS",
- "activityTypeId": "X4",
- "objectListLinkage": [
- {
- "tagId": "AE5566",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE.",
- "equipmentId": "12578254",
- "equipment": "CAP 22 OB Protection",
- "sortField": "B-4102"
}
], - "maintenancePackages": [
- {
- "maintenanceStrategyId": "1100-1",
- "packageId": "26",
- "cycleId": "24",
- "cycle": " 24 Monthly-2Y (GROUP A)"
}
], - "materialNeeds": [
- {
- "materialId": "741466",
- "material": "LIGHT,FIXTURE,26w,SZ 4155.100,RITTAL",
- "quantity": 1,
- "quantityUnit": "PC"
}
]
}
]
}, - "maintenancePlanItemId": "10072940",
- "maintenancePlanItem": "24M FV-TELE MODULPROGRAM CD2",
- "maintenancePlanId": "1056916",
- "planningPlantId": "1100",
- "mainTagId": "AE5566",
- "mainTagPlantId": "1100",
- "maintenanceActivityTypeId": "002",
- "maintenanceActivityType": "Periodic maintenance"
}
]
}
Lookup single maintenance plan item
Maintenance Item contains the object list, task list and previous calls for preventive work orders.
The object list describes the tag/equipment covered in the maintenance plan item.
The task list describes the maintenance activities with the necessary support activities to be performed in the maintenance programme. These are divided into operations that are listed in an order that is natural for the practical implementation of the maintenance. The task List also sets the interval of operations through maintenance packages.
plan-id required | string The id of the maintenance plan |
item-id required | string The id of the maintenance plan item |
include-item-calls | boolean Default: true Include calls to maintenance plan item |
include-item-object-list | boolean Default: false Include list of objects for the maintenance plan item |
include-item-task-list | boolean Default: false Include task list, operations (w/related objects and material needs) for the maintenance plan item |
curl --request GET \ --url 'https://api-test.gateway.equinor.com/maintenance-api/maintenance-plans/%7Bplan-id%7D/items/%7Bitem-id%7D?include-item-calls=SOME_BOOLEAN_VALUE&include-item-object-list=SOME_BOOLEAN_VALUE&include-item-task-list=SOME_BOOLEAN_VALUE' \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "maintenanceStrategyId": "1100-1",
- "maintenanceStrategy": "Statfjord A Platform (Month)",
- "status": "RDEX PLAN",
- "objectList": [
- {
- "tagId": "AE5566",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE.",
- "equipmentId": "12578254",
- "equipment": "CAP 22 OB Protection",
- "sortField": "B-4102"
}
], - "calls": [
- {
- "callNr": 8,
- "plannedDate": "2019-08-24",
- "isExecuted": true,
- "preventiveWorkOrderId": "20132844"
}
], - "taskList": {
- "taskListId": "T-10012713-02",
- "taskList": "24/48M FV-MULTI TRAIN1 GLYCOL REBOILER",
- "taskListTypeId": "T",
- "planningPlantId": "1100",
- "statusId": "4",
- "operations": [
- {
- "operationId": "0020",
- "subOperationId": "",
- "title": "24M AUTOMASJON BR2151 - GLYCOL STILL REB",
- "workCenterId": "PPMAUT",
- "workCenterPlantId": "1100",
- "text": "Bygge stillas\\n\r\n3 x 3 x 5 meter",
- "plannedWorkHours": "PT3H",
- "capacityCount": 1,
- "plannedDuration": "PT2H45M",
- "executionFactor": 1,
- "standardTextTemplate": "1100-GS",
- "activityTypeId": "X4",
- "objectListLinkage": [
- {
- "tagId": "AE5566",
- "tagPlantId": "1100",
- "tag": "CT5023/24 - POT.WATER PH PROBE.",
- "equipmentId": "12578254",
- "equipment": "CAP 22 OB Protection",
- "sortField": "B-4102"
}
], - "maintenancePackages": [
- {
- "maintenanceStrategyId": "1100-1",
- "packageId": "26",
- "cycleId": "24",
- "cycle": " 24 Monthly-2Y (GROUP A)"
}
], - "materialNeeds": [
- {
- "materialId": "741466",
- "material": "LIGHT,FIXTURE,26w,SZ 4155.100,RITTAL",
- "quantity": 1,
- "quantityUnit": "PC"
}
]
}
]
}, - "maintenancePlanItemId": "10072940",
- "maintenancePlanItem": "24M FV-TELE MODULPROGRAM CD2",
- "maintenancePlanId": "1056916",
- "planningPlantId": "1100",
- "mainTagId": "AE5566",
- "mainTagPlantId": "1100",
- "maintenanceActivityTypeId": "002",
- "maintenanceActivityType": "Periodic maintenance"
}
Update maintenance plan item.
This endpoint updates the direct properties of the maintenance plan item. Other endpoints allow update of other parts of the maintenance plan item such as:
HTTP PATCH maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}?api-version=v1
HTTP POST maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}?api-version=v1
HTTP PATCH maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}?api-version=v1
HTTP PUT maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}/maintenance-packages?api-version=v1
HTTP POST maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}/material-needs?api-version=v1
HTTP PATCH maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}/material-needs/{material-id}?api-version=v1
HTTP DEL maintenance-plans/{plan-id}/items/{item-id}/tasks/{task-id}/operations/{operation-id}/material-needs/{material-id}?api-version=v1
plan-id required | string The id of the maintenance plan |
item-id required | string The id of the maintenance plan item |
Update maintenance plan item body
op required | string Value: "replace" JSON Patch operation according to RFC6902 |
path required | string Value: "/maintenancePlanItem" Path indicating the property to be impacted by the operation |
value required | string Value to be assigned to a resource property based on the operation and path. Path specific information:
|
[- {
- "op": "replace",
- "path": "/maintenancePlanItem",
- "value": "12M FV-TELE MODULPROGRAM CD2"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Update task lit of maintenance plan item.
This endpoint updates the direct properties of the task list of maintenance plan item. Other maintenance plan item may use the same task list and will be affected by this change.
plan-id required | string The id of the maintenance plan |
item-id required | string The id of the maintenance plan item |
task-id required | string Example: T-10012713-02 The id of the task within the maintenance plant item |
Update task list of maintenance plan item body
op required | string Value: "replace" JSON Patch operation according to RFC6902 |
path required | string Value: "/taskList" Path indicating the property to be impacted by the operation |
value required | string Value to be assigned to a resource property based on the operation and path. Path specific information:
|
[- {
- "op": "replace",
- "path": "/taskList",
- "value": "36M FV-MULTI TRAIN1 GLYCOL REBOILER"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Sets the maintenance packages for a single operation. As the endpoint is of type HTTP PUT, this replaces existing maintenance packages set for the operation. Therefore, the client must pass all maintenance packages to be used for for the operation regardless if they have been modified.
Use the HTTP GET endpoint /maintenance-plans/{plan-id}/items/{item-id}?include-task-list=true
for retrieving current data and necesary ids.
Most end-users will not have authorizations to perform this update. Clients must take precautions when changing the maintenance packages. The change will effect all maintenance plans which the maintenance plan item is assigned to.
plan-id required | string Example: 1056916 The id of the maintenance plan |
item-id required | string Example: 10072940 The id of the maintenance plan item |
task-id required | string Example: T-10012713-02 The id of the task within the maintenance plant item |
operation-id required | string Example: 0020 The id of the operation within the task list |
Operations to add to existing Work order
packageId | string <= 2 characters The SAP internal id for the package (not the cycleId) |
[- {
- "packageId": "12"
}, - {
- "packageId": "26"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Update operation for a maintenance plan item.
Note: The operation belongs to a task list which may be shared with multiple maintenance plan items. Therefore, multiple maintenance plan items may be affected by the change.
Use the HTTP GET endpoint /maintenance-plans/{plan-id}/items/{item-id}?include-task-list=true
for retrieving current data and necesary ids.
plan-id required | string Example: 1056916 The id of the maintenance plan |
item-id required | string Example: 10072940 The id of the maintenance plan item |
task-id required | string Example: 10012713-1 The id of the task within the maintenance plant item |
operation-id required | string Example: 0020 The id of the operation within the task list |
Operations to add to existing Work order
op required | string Value: "replace" JSON Patch operation according to RFC6902 |
path required | string Enum: "/operationId" "/workCenterId" "/workCenterPlantId" "/title" "/text" "/capacityCount" "/standardTextTemplate" "/plannedDuration" "/plannedWorkHours" Path indicating the property to be impacted by the operation |
value required | string Value to be assigned to a resource property based on the operation and path |
[- {
- "op": "replace",
- "path": "/operationId",
- "value": "PX"
}, - {
- "op": "replace",
- "path": "/workCenterId",
- "value": "SPIAUT"
}, - {
- "op": "replace",
- "path": "/workCenterPlantId",
- "value": "1100"
}, - {
- "op": "replace",
- "path": "/title",
- "value": "Endre skalering på PDT"
}, - {
- "op": "replace",
- "path": "/text",
- "value": "Multi-line text for operation\nLine nr 2"
}, - {
- "op": "replace",
- "path": "/capacityCount",
- "value": "2"
}, - {
- "op": "replace",
- "path": "/standardTextTemplate",
- "value": "1100-GS"
}, - {
- "op": "replace",
- "path": "/plannedDuration",
- "value": "PT2H45M"
}, - {
- "op": "replace",
- "path": "/plannedWorkHours",
- "value": "PT3H"
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Create material needs of operation for a maintenance plan item.
Note: The operation belongs to a task list which may be shared with multiple maintenance plan items. Therefore, multiple maintenance plan items may be affected by the change.
Use the HTTP GET endpoint /maintenance-plans/{plan-id}/items/{item-id}?include-task-list=true
for retrieving current data and necesary ids.
plan-id required | string Example: 1056916 The id of the maintenance plan |
item-id required | string Example: 10072940 The id of the maintenance plan item |
task-id required | string Example: 10012713-1 The id of the task within the maintenance plant item |
operation-id required | string Example: 0020 The id of the operation within the task list |
Operations to add to existing Work order
materialId required | string The material number there is a need for |
quantity required | number <double> [ 0 .. 1000 ] |
{- "materialId": "741466",
- "quantity": 1
}
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Update material needs of operation for a maintenance plan item.
Note: The operation belongs to a task list which may be shared with multiple maintenance plan items. Therefore, multiple maintenance plan items may be affected by the change.
Use the HTTP GET endpoint /maintenance-plans/{plan-id}/items/{item-id}?include-task-list=true
for retrieving current data and necesary ids.
plan-id required | string Example: 1056916 The id of the maintenance plan |
item-id required | string Example: 10072940 The id of the maintenance plan item |
task-id required | string Example: 10012713-1 The id of the task within the maintenance plant item |
operation-id required | string Example: 0020 The id of the operation within the task list |
material-id required | string Example: 411285 The id of the material to modify |
Operations to add to existing Work order
op required | string Value: "replace" JSON Patch operation according to RFC6902 |
path required | string Value: "/quantity" Path indicating the property to be impacted by the operation |
value required | number Value to be assigned to a resource property based on the operation and path. Path specific information:
|
[- {
- "op": "replace",
- "path": "/quantity",
- "value": 2
}
]
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Remove specific material need of operation for a maintenance plan item.
Note: The operation belongs to a task list which may be shared with multiple maintenance plan items. Therefore, multiple maintenance plan items may be affected by the change.
Use the HTTP GET endpoint /maintenance-plans/{plan-id}/items/{item-id}?include-task-list=true
for retrieving current data and necesary ids.
plan-id required | string Example: 1056916 The id of the maintenance plan |
item-id required | string Example: 10072940 The id of the maintenance plan item |
task-id required | string Example: 10012713-1 The id of the task within the maintenance plant item |
operation-id required | string Example: 0020 The id of the operation within the task list |
material-id required | string Example: 552382 The id of the material to remove |
curl --request DELETE \ --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-plans/%7Bplan-id%7D/items/%7Bitem-id%7D/tasks/%7Btask-id%7D/operations/%7Boperation-id%7D/material-needs/%7Bmaterial-id%7D \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
Create new preventive work order(s) from call of maintenance plan
plan-id required | string |
Create Maintenance plan call
cycleId required | string |
plannedDate required | string <date> |
{- "cycleId": "06",
- "plannedDate": "2019-08-24"
}
{- "title": "Not Found",
- "status": 404,
- "traceId": "00-d9dc368e6caec4449a64e798dad1b5b2-7d82bdde82c9474a-00"
}
The company's collection of standardised preventive maintenance activities to facilitate safe, reliable and efficient operation.
Lookup single maintenance concept
concept-id required | string |
curl --request GET \ --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-concepts/%7Bconcept-id%7D \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "concept": "Valve-act-Efunc",
- "conceptDescription": "Valve - on/off actuated - PSD function- cryo with SCE code 28",
- "catalogProfile": "SC-Valves",
- "responsibleDiscipline": "Valves",
- "maintenanceActivities": [
- {
- "activityId": "VA1580-0001",
- "activityGroupId": "01",
- "activityGroup": "Visual Check",
- "activityTypeId": "T",
- "activityType": "Condition monitoring",
- "activityDescription": "On/off ventil - Visuell inspeksjon",
- "disciplineId": "O",
- "discipline": "Operations",
- "maxInterval": "P0Y6M0DT0H0M0S",
- "maxIntervalJustification": "ARIS R-25136",
- "recommendedInterval": "P0Y3M0DT0H0M0S",
- "recommendedIntervalDescription": "Reduced interval due to failure mode analysis",
- "initialInterval": "P0Y3M0DT0H0M0S",
- "initialIntervalDescription": ""
}
], - "conceptId": "VA1571",
- "catalogProfileId": "PM-170",
- "responsibleDisciplineId": "00000160"
}
Maintenance strategies define a set of maintenance packages which are used in the maintenance plans.
Lookup single maintenance strategy.
Maintenance strategies define a set of maintenance packages which are used in the maintenance plans. The maintenance packages determine the cycle duration for preventive maintenance and can be organised as calendar-based with e.g. 3-, 6-, 12- or 24-monthly intervals, or as hourly with e.g. 1000-, 2000- or 5000-hour interval.
strategy-id required | string Example: 1100-1 The id of the strategy. Example values: |
curl --request GET \ --url https://api-test.gateway.equinor.com/maintenance-api/maintenance-strategies/1100-1 \ --header 'ocp-apim-subscription-key: REPLACE_KEY_VALUE'
{- "maintenanceStrategyId": "1100-1",
- "maintenanceStrategy": "Statfjord A Platform (Month)",
- "maintenancePackages": [
- {
- "cycleDuration": "P2Y0M0DT0H0M0S",
- "hierarchyId": "12",
- "maintenanceStrategyId": "1100-1",
- "packageId": "26",
- "cycleId": "24",
- "cycle": " 24 Monthly-2Y (GROUP A)"
}
]
}