Skip to main content

Python wrapper for Oracle Field Service API

Project description

OFSC

A simple Python wrapper for Oracle OFS REST API

Models

Starting with OFS 1.17 we are adding models for the most common entities. All models should be imported from ofsc.models. All existing create functions will be transitioned to models. In OFS 2.0 all functions will use models

The models are based on the Pydantic BaseModel, so it is possible to build an entity using the parse_obj or parse_file static methods.

Currently implemented:

  • Workskill
  • WorkSkillCondition
  • Workzone
  • Property

Experimental:

  • Resource
  • ResourceType
  • User

Functions implemented

Core / Activities

get_activities (self, params, response_type=TEXT_RESPONSE)
get_activity (self, activity_id, response_type=TEXT_RESPONSE):
update_activity (self, activity_id, data, response_type=TEXT_RESPONSE)
move_activity (self, activity_id, data, response_type=TEXT_RESPONSE)
get_file_property(self, activityId, label, mediaType="application/octet-stream", response_type=FULL_RESPONSE)
get_all_activities( self, root, date_from, date_to, activity_fields, initial_offset=0, limit=5000)
search_activities(self, params, response_type=TEXT_RESPONSE)
bulk_update(self, data:BulkUpdateRequest, response_type=JSON_RESPONSE)

Core / Events

get_subscriptions(self, response_type=TEXT_RESPONSE)
create_subscription(self, data, response_type=TEXT_RESPONSE)
delete_subscription(self, subscription_id, response_type=FULL_RESPONSE)
get_subscription_details(self, subscription_id, response_type=TEXT_RESPONSE)
get_events(self, params, response_type=TEXT_RESPONSE)

Core / Resources

create_resource(self, resourceId, data, response_type=TEXT_RESPONSE)
get_resource(self, resource_id, inventories=False, workSkills=False, workZones=False, workSchedules=False , response_type=TEXT_RESPONSE)
get_position_history(self, resource_id,date,response_type=TEXT_RESPONSE)
get_resource_route(self, resource_id, date, activityFields = None, offset=0, limit=100, response_type=TEXT_RESPONSE)
get_resource_descendants(self, resource_id,  resourceFields=None, offset=0, limit=100, inventories=False, workSkills=False, workZones=False, workSchedules=False, response_type=TEXT_RESPONSE)

Core / Users

get_users(self, offset=0, limit=100, response_type=FULL_RESPONSE)
get_user(self, login, response_type=FULL_RESPONSE):
update_user (self, login, data, response_type=TEXT_RESPONSE)
create_user(self, login, data, response_type=FULL_RESPONSE)
delete_user(self, login, response_type=FULL_RESPONSE)

Core / Daily Extract

get_daily_extract_dates(self, response_type=FULL_RESPONSE)
get_daily_extract_files(self, date, response_type=FULL_RESPONSE)
get_daily_extract_file(self, date, filename, response_type=FULL_RESPONSE)

Metadata / Capacity

get_capacity_areas (self, expand="parent", fields=capacityAreasFields, status="active", queryType="area", response_type=FULL_RESPONSE)
get_capacity_area (self,label, response_type=FULL_RESPONSE)

Metadata / Activity Types

get_activity_type_groups (self, expand="parent", offset=0, limit=100, response_type=FULL_RESPONSE)
get_activity_type_group (self,label, response_type=FULL_RESPONSE)   
get_activity_types(self, offset=0, limit=100, response_type=FULL_RESPONSE)
get_activity_type (self, label, response_type=FULL_RESPONSE)

Metadata / Properties

get_properties (self, offset=0, limit=100, response_type=FULL_RESPONSE)
get_property(self, label: str, response_type=JSON_RESPONSE)
create_or_replace_property(self, property: Property, response_type=JSON_RESPONSE)

Metadata / Workskills

get_workskills (self, offset=0, limit=100, response_type=FULL_RESPONSE)
get_workskill(self, label: str, response_type=FULL_RESPONSE)
create_or_update_workskill(self, skill: Workskill, response_type=FULL_RESPONSE)
delete_workskill(self, label: str, response_type=FULL_RESPONSE)
get_workskill_conditions(self, response_type=FULL_RESPONSE)
replace_workskill_conditions(self, data: WorskillConditionList, response_type=FULL_RESPONSE

Metadata / Plugins

import_plugin(self, plugin: str)
import_plugin_file(self, plugin: Path)

Metadata / Resource Types

get_resource_types(self, response_type=JSON_RESPONSE):

Metadata / workzones

get_workzones(self, response_type=FULL_RESPONSE)

Test History

OFS REST API Version PyOFSC
20C 1.7
21A 1.8, 1.8,1, 1.9
21D 1.15
22B 1.16, 1.17
22D 1.18

Deprecation Warning

Starting in OFSC 2.0 (estimated for December 2022) all functions will have to be called using the API name (Core or Metadata). See the examples.

Instead of

instance = OFSC(..)
list_of_activities = instance.get_activities(...)

It will be required to use the right API module:

instance = OFSC(..)
list_of_activites = instance.core.get_activities(...)

During the transition period a DeprecationWarning will be raised if the functions are used in the old way

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ofsc-1.20.3.tar.gz (10.0 kB view hashes)

Uploaded Source

Built Distribution

ofsc-1.20.3-py3-none-any.whl (11.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page