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 added models for the most common entities and metadata. All models should be imported from ofsc.models
. All existing create functions will be eventually transitioned to models.
The models are based on the Pydantic BaseModel, so it is possible to build an entity using the model_validate
static methods.
Currently implemented:
- ActivityTypeGroup
- ActivityType
- CapacityArea
- CapacityCategory
- InventoryType
- Property
- Workskill
- WorkSkillCondition
- WorkSkillGroup
- Workzone
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=OBJ_RESPONSE)
Core / Events
get_subscriptions(self, response_type=OBJ_RESPONSE)
create_subscription(self, data, response_type=OBJ_RESPONSE)
delete_subscription(self, subscription_id, response_type=OBJ_RESPONSE)
get_subscription_details(self, subscription_id, response_type=OBJ_RESPONSE)
get_events(self, params, response_type=OBJ_RESPONSE)
Core / Resources
create_resource(self, resourceId, data, response_type=OBJ_RESPONSE)
get_resource(self, resource_id, inventories=False, workSkills=False, workZones=False, workSchedules=False , response_type=OBJ_RESPONSE)
get_position_history(self, resource_id,date,response_type=OBJ_RESPONSE)
get_resource_route(self, resource_id, date, activityFields = None, offset=0, limit=100, response_type=OBJ_RESPONSE)
get_resource_descendants(self, resource_id, resourceFields=None, offset=0, limit=100, inventories=False, workSkills=False, workZones=False, workSchedules=False, response_type=OBJ_RESPONSE)
Core / Users
get_users(self, offset=0, limit=100, response_type=OBJ_RESPONSE)
get_user(self, login, response_type=OBJ_RESPONSE):
update_user (self, login, data, response_type=OBJ_RESPONSE)
create_user(self, login, data, response_type=OBJ_RESPONSE)
delete_user(self, login, response_type=OBJ_RESPONSE)
Core / Daily Extract
get_daily_extract_dates(self, response_type=OBJ_RESPONSE)
get_daily_extract_files(self, date, response_type=OBJ_RESPONSE)
get_daily_extract_file(self, date, filename, response_type=OBJ_RESPONSE)
\
Metadata / Activity Type Groups
get_activity_type_groups (self, expand="parent", offset=0, limit=100, response_type=OBJ_RESPONSE)
get_activity_type_group (self,label, response_type=OBJ_RESPONSE)
Metadata / Activity Types
get_activity_types(self, offset=0, limit=100, response_type=OBJ_RESPONSE)
get_activity_type (self, label, response_type=OBJ_RESPONSE)
Metadata / Capacity
get_capacity_areas (self, expand="parent", fields=capacityAreasFields, status="active", queryType="area", response_type=OBJ_RESPONSE)
get_capacity_area (self,label, response_type=OBJ_RESPONSE)
Metadata / Inventory
get_inventory_types (self, offset=0, limit=100, response_type=OBJ_RESPONSE)
get_inventory_type (self, label, response_type=OBJ_RESPONSE)
create_or_replace_inventory_type(self, inventory: InventoryType, response_type=OBJ_RESPONSE)
Metadata / Properties
get_properties (self, offset=0, limit=100, response_type=OBJ_RESPONSE)
get_property(self, label: str, response_type=OBJ_RESPONSE)
create_or_replace_property(self, property: Property, response_type=OBJ_RESPONSE)
Metadata / Workskills
get_workskills (self, offset=0, limit=100, response_type=OBJ_RESPONSE)
get_workskill(self, label: str, response_type=OBJ_RESPONSE)
create_or_update_workskill(self, skill: Workskill, response_type=OBJ_RESPONSE)
delete_workskill(self, label: str, response_type=OBJ_RESPONSE)
get_workskill_conditions(self, response_type=OBJ_RESPONSE)
replace_workskill_conditions(self, data: WorskillConditionList, response_type=OBJ_RESPONSE)
get_workskill_groups(self, response_type=OBJ_RESPONSE)
get_workskill_group(self, label: str, response_type=OBJ_RESPONSE)
create_or_update_workskill_group(self, group: WorkSkillGroup, response_type=OBJ_RESPONSE)
delete_workskill_group(self, label: str, response_type=OBJ_RESPONSE)
Metadata / Plugins
import_plugin(self, plugin: str)
import_plugin_file(self, plugin: Path)
Metadata / Resource Types
get_resource_types(self, response_type=OBJ_RESPONSE):
Metadata / Workzones
get_workzones(self, response_type=OBJ_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 |
24C | 2.0 |
Deprecation Warning
Starting in OFSC 2.0 all functions are 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
What's new in OFSC 2.0
- All metadata functions now use models, when available
- All functions are now using the API name (Core or Metadata)
- All functions return a python object by default. If there is an available model it will be used, otherwise a dict will be returned (see
response_type
parameter andauto_model
parameter) - Errors during API calls can raise exceptions and will by default when returning an object (see
auto_raise
parameter) - OBJ_RESPONS and TEXT_RESPONSE are now deprecated. Use
response_type
parameter to control the response type
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ofsc-2.1.0.tar.gz
.
File metadata
- Download URL: ofsc-2.1.0.tar.gz
- Upload date:
- Size: 12.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.11.0 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5706928967884fecd35b8267d138caccb45de247600ac0958634c76cece79ee8 |
|
MD5 | 28977b097e2abf561bcf6b3570fd0f9d |
|
BLAKE2b-256 | 086afd3df2f63825c9a7875e68e7bda3fa93411ac00bf0e1e84cafc22acd2bf1 |
File details
Details for the file ofsc-2.1.0-py3-none-any.whl
.
File metadata
- Download URL: ofsc-2.1.0-py3-none-any.whl
- Upload date:
- Size: 14.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.11.0 Linux/6.5.0-1025-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a3b11166f2ea94dd2a45461e0a93ce4c21bb615b10e1c36aeb7328e82a57eb5 |
|
MD5 | 175c9d14218c9b01ed90c0450468d1ca |
|
BLAKE2b-256 | c07efa6c4ba152fcb136eff4ea7c16c4b2bcaca9367e7303eb773213bf69ae7a |