Last updated

Studies

The studies API is responsible for study data within FDPlan.

The key API concepts include:

  • studies: A study covers the allocation of time and resources to gain knowledge of an asset, identify potential opportunities and threats, derive and evaluate candidate development scenarios, and make critical decisions in field-development planning. It can also be referred to as an asset evaluation project or a conceptual field-development planning project. You can have several studies for different stages of field-development planning, such as one study for the appraisal stage and another for the concept selection stage.

  • KPOs: A key performance objective (KPO) is an objective that is critical to the success of the project. Typically, three to five objectives are identified as key objectives.

  • KPIs: A key performance indicator (KPI) represents the performance of the current development scenario compared with the key performance objective, for example, net present value (NPV), internal rate of return (IRR), payback period, date of first oil, maximum exposure, and proven reserves.

  • decisions: A decision must be made or has been made to define the field-development plan. It can contain one or more available choices to select. A decision is made when one of the available choices is selected.

  • choices: A choice is an option you can choose to make a decision. It can also be referred to as a concept. There can be multiple available choices in making a decision. A choice can be available or unavailable, and can be selected or unselected.

  • scenarios: A scenario is a combination of development choices that describes a particular way to develop a field. It can also be referred to as a development scenario, a concept, or a development option.

  • deliverables: A deliverable is a work item in which you can manage the life cycle of the required data or the documents for a study. It holds the information on the status of the domain contribution, the contributors, the approvers, and the due date. A contribution that fulfills a deliverable is referred to as an 'data source'.

Table of contents

Get the list of Key Performance Indicators (KPIs).

Parameters

  • slb-data-partition-id Data partition id.

  • pageNumber The number of the page in the list of KPIs

  • pageSize The number of KPIs per page

Example

curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/kpis'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'

Response: 200 [ { "name": "First Year Capex", "isSystem": false, "lastUpdated": { "atDate": "2022-03-08T08:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "description": "Capital Expenditures at first year", "type": "Money", "defaultObjectiveOperator": "Less Than", "unit": "M$", "priority": 11, "archived": false }, { "name": "First Oil", "isSystem": false, "lastUpdated": { "atDate": "2022-03-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "description": "Date of First Oil", "type": "Date", "defaultObjectiveOperator": "Before", "priority": 14, "archived": false } ]

Back to table of contents

Update an existing Key Performance Indicator (KPI) or create a new one.

Parameters

  • slb-data-partition-id Data partition id.

  • kpiName The name of the KPI to update or create.

  • data The KPI details to update or create.

Example

curl -request PUT
--url 'https://api.delfi.slb.com/fdplan/studies/v1/kpis/{kpiName}'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
--data '{ "description": "Capital Expenditures at first year", "type": "Money", "defaultObjectiveOperator": "Less Than", "unit": "M$", "priority": 11, "archived": false, "measurement": "osdu:reference-data--UnitOfMeasure:1E6%20USD:" }'

Response: 200

Back to table of contents

Get all studies

Get all studies.

Parameters

  • slb-data-partition-id Data partition id.
Example

curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/studies'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'

Response: 200 [ { "id": "01CP3E6EJJ25J29YHZ0K4RDZH8", "title": "Robin Field Development", "description": "New development opportunity.", "country": "US", "isArchived": false, "workflowSpec": { "id": "01FDYW0CS3RS1Z9BHE53DATBDE", "version": 1 } }, { "id": "02DSFJLKJL34HGH6DFLKGJJ9L8", "title": "Forties Field Development", "description": "Workover project.", "country": "UK", "isArchived": false, "workflowSpec": { "id": "01FDYW0CS3V4V36DVSTH7BJNBY", "version": 2 } } ]

Back to table of contents

Create a new study

Parameters

  • slb-data-partition-id Data partition id.

  • study The study that needs to be created.

Example

curl -request POST
--url 'https://api.delfi.slb.com/fdplan/studies/v1/studies'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
--data '[ { "title": "Robin Field Development", "description": "New development opportunity.", "workflowSpecId": "01CP3E6EJJ25J29YHZ0K4RDZH8", "workflowSpecVersion": 1, "legalTags": [ "legal-tag" ], "studyManagers": [ "study-manager" ], "acl": { "owners": [ "data.team-id-a.owners@tenant-id-1.entitlements-domain-1", "data.team-id-b.owners@tenant-id-1.entitlements-domain-1" ], "viewers": [ "data.team-id-a.viewers@tenant-id-1.entitlements-domain-1", "data.team-id-b.viewers@tenant-id-1.entitlements-domain-1" ] } } ]'

Response: 201 { "id": "01CP3E6EJJ25J29YHZ0K4RDZH8", "title": "Robin Field Development", "description": "New development opportunity.", "country": "US", "isArchived": false, "noOfRealizations": 10, "uncertaintyMethod": "MonteCarlo", "workflowSpec": { "id": "01FDYW0CS3ZZB1FS2NCK01WVDX", "version": 1 }, "acl": { "owners": [ "data.team-id-a.owners@tenant-id-1.entitlements-domain-1", "data.team-id-b.owners@tenant-id-1.entitlements-domain-1" ], "viewers": [ "data.team-id-a.viewers@tenant-id-1.entitlements-domain-1", "data.team-id-b.viewers@tenant-id-1.entitlements-domain-1" ] } }

Back to table of contents

Get a study

Get a study given a study ID.

Parameters

  • slb-data-partition-id Data partition id.

  • studyId The study to get.

Example

curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/studies/{studyId}'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'

Response: 200 { "id": "01CP3E6EJJ25J29YHZ0K4RDZH8", "title": "Robin Field Development", "country": "US", "isArchived": false, "noOfRealizations": 10, "uncertaintyMethod": "MonteCarlo", "workflowSpec": { "id": "01FDYW0CS3GYWBH7S080PMJ66F", "version": 1 }, "acl": { "owners": [ "data.team-id-a.owners@tenant-id-1.entitlements-domain-1", "data.team-id-b.owners@tenant-id-1.entitlements-domain-1" ], "viewers": [ "data.team-id-a.viewers@tenant-id-1.entitlements-domain-1", "data.team-id-b.viewers@tenant-id-1.entitlements-domain-1" ] } }

Back to table of contents

Delete a study.

Parameters

  • slb-data-partition-id Data partition id.

  • studyId The study to delete.

Example

curl -request DELETE
--url 'https://api.delfi.slb.com/fdplan/studies/v1/studies/{studyId}'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'

Response: 401 { "data": { "code": 500, "message": "internal server error" } }

Back to table of contents

Update a study.

Parameters

  • slb-data-partition-id Data partition id.

  • studyId The study to be updated.

  • patches The patches to apply to the study. Only "replace" operation is supported.

Example

curl -request PATCH
--url 'https://api.delfi.slb.com/fdplan/studies/v1/studies/{studyId}'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
--data '[ { "op": "replace", "path": "title", "value": "title" }, { "op": "replace", "path": "description", "value": "description" } ]'

Response: 200 { "id": "01CP3E6EJJ25J29YHZ0K4RDZH8", "title": "Robin Field Development", "description": "New development opportunity.", "country": "US", "isArchived": false, "noOfRealizations": 10, "uncertaintyMethod": "MonteCarlo", "workflowSpec": { "id": "01FDYW0CS3ZZB1FS2NCK01WVDX", "version": 1 }, "acl": { "owners": [ "data.team-id-a.owners@tenant-id-1.entitlements-domain-1", "data.team-id-b.owners@tenant-id-1.entitlements-domain-1" ], "viewers": [ "data.team-id-a.viewers@tenant-id-1.entitlements-domain-1", "data.team-id-b.viewers@tenant-id-1.entitlements-domain-1" ] } }

Back to table of contents

Get all KPOs

Get the list of Key Performance Objectives (KPOs).

Parameters

  • slb-data-partition-id Data partition id.

  • studyId The study which KPOs belongs to.

Example

curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/kpos?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'

Response: 200 [ { "name": "ATMaxEx", "description": "After Tax Maximum Exposure", "objectiveOperator": "Less Than", "objectiveValue": 600, "type": "Money", "unit": "M$" }, { "name": "ATNPV", "description": "After Tax Net Present Value", "objectiveOperator": "More than", "objectiveValue": 500, "type": "Money", "unit": "M$" } ]

Back to table of contents

Get all scenarios

Get all scenarios including their associated Decisions/Choices.

Parameters

  • slb-data-partition-id Data partition id.

  • studyId The study which Scenarios/Decisions/Choices belongs to.

Example

curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/scenarios?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'

Response: 200 [ { "id": "01CP3E6EJJ25J29YHZ0K4RDZH8", "displayID": "S1", "title": "Minimal investment", "description": "Minimal investment development option scenario.", "lastUpdated": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "created": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "isSelected": false, "colour": "#ff0000", "associatedDevelopmentConceptId": "01CP3E6EJJ25J29YHZ0K4ANIH8" }, { "id": "01CP3E6EJJ25J29YHZ0K4RSDFI4", "displayID": "S2", "title": "Maximum investment", "description": "Maximum investment development option scenario.", "lastUpdated": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "created": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "isSelected": false, "colour": "#ff0000", "associatedDevelopmentConceptId": "01CP3E6EJJ25J29YHZ0K4ANIH8" } ]

Back to table of contents

Create a new scenario

Parameters

  • slb-data-partition-id Data partition id.

  • studyId The study in which scenario will be created.

  • scenario The scenario that needs to be created.

Example

curl -request POST
--url 'https://api.delfi.slb.com/fdplan/studies/v1/scenarios?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
--data '{ "title": "Minimal investment", "colour": "#ff0000", "description": "Minimal investment development option scenario.", "isSelected": false, "associatedOpportunityIDs": [ "01CP3E6EJJ25J29YHZ0K4ANABC", "01CP3E6EJJ25J29YHZ0K4ANDEF" ] }'

Response: 201 { "id": "01CP3E6EJJ25J29YHZ0K4RDZH8", "displayID": "S1", "title": "Minimal investment", "description": "Minimal investment development option scenario.", "lastUpdated": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "created": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "isSelected": false, "colour": "#ff0000", "version": 2, "associatedDevelopmentConceptId": "01CP3E6EJJ25J29YHZ0K4ANIH8", "associatedOpportunityIDs": [ "01CP3E6EJJ25J29YHZ0K4ANABC", "01CP3E6EJJ25J29YHZ0K4ANDEF" ] }

Back to table of contents

Delete a scenario

Delete a scenario in a given study given scenario ID.

Parameters

  • slb-data-partition-id Data partition id.

  • studyId The study to which the scenario belongs.

  • scenarioId The id of the scenario to delete.

Example

curl -request DELETE
--url 'https://api.delfi.slb.com/fdplan/studies/v1/scenarios?scenarioId=value&studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'

Response: 400 { "data": { "code": 500, "message": "internal server error" } }

Back to table of contents

Update a scenario

Update an existing scenario. It is possible to update the title, description, displayID, colour and isSelected scenario fields.

Parameters

  • slb-data-partition-id Data partition id.

  • studyId The study id which the scenario belong to.

  • scenarioId The id of the scenario to update.

  • patches The patches to apply to the scenario. Only "replace" operation is supported.

Example

curl -request PATCH
--url 'https://api.delfi.slb.com/fdplan/studies/v1/scenarios?scenarioId=value&studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
--data '[ { "op": "replace", "path": "title", "value": "title" }, { "op": "replace", "path": "description", "value": "description" } ]'

Response: 200 { "id": "01CP3E6EJJ25J29YHZ0K4RDZH8", "displayID": "S1", "title": "Minimal investment", "description": "Minimal investment development option scenario.", "lastUpdated": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "created": { "atDate": "2020-09-08T09:53:36.000Z", "byEvent": "01EHPJ54HEA77K95T5KPH5JSW9", "byUser": "user@slb.com" }, "isSelected": false, "colour": "#ff0000", "version": 2, "associatedDevelopmentConceptId": "01CP3E6EJJ25J29YHZ0K4ANIH8", "associatedOpportunityIDs": [ "01CP3E6EJJ25J29YHZ0K4ANABC", "01CP3E6EJJ25J29YHZ0K4ANDEF" ] }

Back to table of contents

Get scenario results state

Get the scenario result state.

Parameters

  • slb-data-partition-id Data partition id.

  • studyId The study from which to get the results state.

  • scenarioId The scenario from which to get the results state.

Example

curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/scenarios/results-state?scenarioId=value&studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'

Response: 200 { "dataSource": { "id": "01EY46YV3JXND9NM0T70HABRXF", "version": 1 }, "dataSourceProcessingErrors": [ ], "dataSourceProcessingState": "CompletedSuccessfully", "lastUpdated": "2021-02-09T20:56:46.000Z", "realizationStates": { "uri": "01HGWMW4HWETWWFZCA1Z0C453Z/realizations/01HGWQMY95XHSCDKSBYRZ8P67M", "computationStates": [ { "address": { "computationIndex": 0, "dataTypeIndex": 0, "type": "Computation" }, "runState": "CompletedSuccessfully" }, { "address": { "computationIndex": 1, "dataTypeIndex": 0, "type": "Computation" }, "runState": "CompletedSuccessfully" } ], "lastUpdatedAt": "2021-02-09T20:53:55.000Z", "resultsErrors": [ ], "state": "CompletedSuccessfully", "version": 11 }, "resultsPublishingErrors": [ ], "resultsPublishingState": "CompletedSuccessfully" }

Back to table of contents

Get all deliverables

Get all deliverables.

Parameters

  • slb-data-partition-id Data partition id.

  • studyId The study which the deliverables belong to.

  • scenarioId The optional scenario which the deliverables belong to. If not specified all deliverables for given study will be returned.

Example

curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/deliverables?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'

Response: 200 [ { "id": "01CKXHZPAEERP06F3CNKBAPE0F", "title": 1, "description": "Decline curves for Robin field.", "status": "Requested", "attachmentType": "decline-curves", "attachmentTypeVersion": 1 }, { "id": "01CKXHZPAEERP06F3SDFKJ567F", "title": 1, "description": "Facility Constraints for Robin field.", "status": "Requested", "attachmentType": "facility-constraints", "attachmentTypeVersion": 1 } ]

Back to table of contents

Get a deliverable

Get a deliverable given a deliverable ID.

Parameters

  • slb-data-partition-id Data partition id.

  • studyId The study which the deliverable belongs to.

  • deliverableId The ID of the deliverable to get.

Example

curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/deliverables/{deliverableId}?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'

Response: 200 { "id": "01CKXHZPAEERP06F3CNKBAPE0F", "title": 1, "description": "Decline curves for Robin field.", "status": "Requested", "attachmentType": "decline-curves", "attachmentTypeVersion": 1 }

Back to table of contents

Update a deliverable

Update an existing deliverable. It is possible to update the title, description, owner, contributers, approvers, due date, status, comments and data source deliverable fields.

Parameters

  • slb-data-partition-id Data partition id.

  • studyId The study which the deliverable belong to.

  • deliverableId The ID of the deliverable to update.

  • patches The patches to apply to the deliverable. Only "replace" and "remove" operations are supported. The "remove" operation is only supported for the "dataSource" path.

Example

curl -request PATCH
--url 'https://api.delfi.slb.com/fdplan/studies/v1/deliverables/{deliverableId}?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'
--data '[ { "op": "replace", "path": "title", "value": "title" }, { "op": "replace", "path": "description", "value": "description" } ]'

Response: 200 { "id": "01CKXHZPAEERP06F3CNKBAPE0F", "title": "title", "description": "description", "status": "Requested", "attachmentType": "decline-curves", "attachmentTypeVersion": 1 }

Back to table of contents

Get the list of opportunities for the given study.

Parameters

  • slb-data-partition-id Data partition id.

  • studyId The study

  • pageNumber The number of the page in the list of Opportunities

  • pageSize The number of Opportunities per page

Example

curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/opportunities?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'

Response: 200

Back to table of contents

Get ranking scores for the scenarios in the given study ID

Parameters

  • slb-data-partition-id Data partition id.

  • studyId The ID of the study for which to get the scenario ranking scores

  • pageNumber The number of the page in the list of ranking scores.

  • pageSize The number of ranking scores per page.

  • includeCriteriaScores Whether to include criteria scores break-down in the response

Example

curl -request GET
--url 'https://api.delfi.slb.com/fdplan/studies/v1/scenario-ranking-scores?studyId=value'
--header 'Authorization: value'
--header 'appkey: value'
--header 'content-type: application/json'
--header 'slb-data-partition-id: header'

Response: 200

Back to table of contents