This document will continue to evolve as existing sections change and new information is added. All updates appear in the following table:
Date | Feature | Notes |
---|---|---|
31 OCT 2018 |
Updated document. Revised feature information. |
|
31 OCT 2018 |
Updated document. Revised feature information. |
|
31 OCT 2018 |
Updated document. Revised feature information. |
|
31 OCT 2018 | Support for Kosovo | Updated document. Revised feature information. |
31 OCT 2018 |
Updated document. Revised feature information. |
|
19 OCT 2018 | Created initial document. |
This guide outlines the information you need to know about new and improved functionality in Oracle Field Service Cloud, 18D Release on November 3, 2018. Each section includes a brief description of the feature, the steps you need to take to enable or begin using the feature, any tips or considerations that you should keep in mind, and the resources available to help you. For a listing of browsers supported by Oracle Field Service Cloud, log in to our support site and access Answer ID 8215.
You will notice that a few 18D features reference Oracle Field Service Cloud Professional Cloud Service and Oracle Field Service Cloud Enterprise Cloud Service. These are new base product offerings available. You will be able to transition to one of these offerings with ease. If you have decided to transition, Oracle Field Service Cloud will look and operate just like it does today but with additional functionality and services. Here is a preview:
- Oracle Field Service Cloud Professional Cloud Service will be a single, unified offering consisting of what is currently known as Core Manage, Mobility, Routing, Collaboration, Customer Communication, and Smart Location.
- Oracle Field Service Cloud Enterprise Cloud Service will be a single unified offering consisting of what is currently known as Core Manage, Mobility, Routing, Collaboration, Customer Communication, Smart Location, Capacity, and Forecasting.
Give Us Feedback
We welcome your comments and suggestions to improve the content. Please send us your feedback at https://documentation.custhelp.com/ci/documents/detail/5/4/12.
Action Required to Enable Feature |
||||
---|---|---|---|---|
Feature |
Automatically Available |
End User Action Required |
Administrator Action Required |
Oracle Service Request Required |
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
Security Improvements for SAML Authentication
The feature introduces enhanced security settings for authentication established via external Identity providers. Starting with the release 18D, SHA-256 is available as a signature hashing algorithm, which when selected will be applied to the Oracle Field Service Cloud metadata.
To use SHA-256:
- Create or modify a login policy that uses SAML for authentication.
- Select SHA-256 in the Signature hashing algorithm drop-down list.
When you download the Oracle Field Service Cloud metadata, it will be signed with SHA-256 hash.
We recommend that you use SHA-256 as it is a more advanced and a reliable hashing algorithm. The SHA-1 hashing algorithm will be supported to maintain backward compatibility with SAML IdP providers that are already integrated with Oracle Field Service Cloud.
Steps to Enable
No steps are required to enable this feature.
Key Resources
Starting with release 18D, Kosovo is a supported country in Oracle Field Service Cloud. Kosovo is available in the list of countries in the Maps and Geocoding section on the Business Rules screen, with a non-ISO country code XK. Activity and resource coordinates in Kosovo can be resolved.
NOTE: 'XK' is not an ISO-registered country code and some service providers may not support it.
Steps to Enable
No steps are required to enable this feature.
Key Resources
Release 18D brings a new set of Metadata API functions providing the ability to obtain:
- Inventory types
- Resource types
- Time slots
GET INVENTORY TYPES
Use this operation to view a collection of inventory types.
You must grant permissions to the Core API and must at least set Read-Only access to the Inventory type entity in the Configuration, Applications (API permissions) screen.
The following request parameters are supported:
- Language: The translation language code. See Supported Language codes to view the values that are supported. Based on this value, the translations for the name and unit of measurement of the inventory type is returned in the 'name' and ‘unitOfMeasurement’ fields. If the parameter is specified, then the translated value is returned in the 'name' and ‘unitOfMeasurement’ fields and the 'translations' field is not returned. If translation to the specified language does not exist, then the value in the 'name' and ‘unitOfMeasurement’ fields is returned in English. If the 'language' parameter is not specified, then the 'translations' field is returned in response and contains the translations to every language in the system.
- Offset: The record number from which to start retrieval. The default value is zero. If no value is specified, then it defaults to zero. The value zero indicates that the retrieval will start from the beginning of the collection.
- Limit: The number of inventory type records to be returned in the response. The minimum value that can be provided is 1. The maximum value that can be provided is 100. If value is greater than 100, then it defaults to 100. If no value or zero is provided, then also it defaults to 100.
The following information is returned in the response:
- hasMore—The value indicates whether there are more results that can be retrieved with successive paging requests. If the value is true, it indicates that there are more results that can be retrieved with successive paging requests. If the value is false or is absent, it indicates there are no more results or this is the final page.
- Items—An array of the inventory type records in the collection.
- Limit—The limit value specified in the request or the value displays as 100 if the limit was not specified or not accepted.
- offset—The offset value specified in the request.
- totalResults—The total number of the inventory type records in the collection.
Examples
Example 1:
The following example shows how to obtain a collection of inventory types by submitting a GET request on the REST resource using cURL.
Use the cURL command with the following syntax:
curl -u 'clientId@instanceName:clientSecret' --url'https://api.etadirect.com/rest/ofscMetadata/v1/inventoryTypes/?limit=2&offset=2
The following shows an example of the response header:
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 24 Jan 2018 12:28:18 GMT
Content-Type: application/json; charset=utf-8
Connection: close
The following shows an example of the response body in JSON format:
{
"hasMore": true,
"totalResults": 10,
"limit": 2,
"offset": 2,
"items": [
{
"label": "DT",
"name": "Digital Telephony",
"active": true,
"nonSerialized": false,
"modelProperty": "inventory_model",
"translations": [
{
"language":"en",
"name": "Digital Telephony",
"languageISO": "en-US"
},
{
"language":"es",
"name": "Telefonía digital",
"languageISO": "es-ES"
}
],
"links": [
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/metadata-catalog/inventoryTypes"
}
]
},
{
"label": "EC",
"name": "Ethernet Cable",
"unitOfMeasurement": "ft",
"active": true,
"nonSerialized": true,
"modelProperty": "inventory_model",
"translations": [
{
"language":"en",
"name": "Ethernet Cable",
"unitOfMeasurement": "ft",
"languageISO": "en-US"
},
{
"language":"es",
"name": "Cable Ethernet",
"unitOfMeasurement": "m",
"languageISO": "es-ES"
}
],
"links": [
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/metadata-catalog/inventoryTypes"
}
]
}
],
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/inventoryTypes/?limit=2&offset=2"
},
{
"rel": "prev",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/inventoryTypes/?limit=2&offset=0"
},
{
"rel": "next",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/inventoryTypes/?limit=2&offset=4"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/metadata-catalog/inventoryTypes"
}
]
}
Example 2:
The following example shows how to obtain a collection of inventory types by using the language parameter with the GET request on the REST resource.
Use the cURL command with the following syntax:
curl -u 'clientId@instanceName:clientSecret' --url'https://api.etadirect.com/ /rest/ofscMetadata/v1/inventoryTypes/?language=en-US&limit=2&offset=2
The following shows an example of the response header:
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 24 Jan 2018 12:28:18 GMT
Content-Type: application/json; charset=utf-8
Connection: close
The following shows an example of the response body in JSON format:
{
"hasMore": true,
"totalResults": 10,
"limit": 2,
"offset": 2,
"items": [
{
"label": "DT",
"name": "Digital Telephony",
"active": true,
"nonSerialized": false,
"modelProperty": "inventory_model",
"links": [
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/metadata-catalog/inventoryTypes"
}
]
},
{
"label": "EC",
"name": "Ethernet Cable",
"unitOfMeasurement": "ft",
"active": true,
"nonSerialized": true,
"modelProperty": "inventory_model",
"links": [
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/metadata-catalog/inventoryTypes"
}
]
}
],
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/inventoryTypes/?limit=2&offset=2"
},
{
"rel": "prev",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/inventoryTypes/?limit=2&offset=0"
},
{
"rel": "next",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/inventoryTypes/?limit=2&offset=4"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/metadata-catalog/inventoryTypes"
}
]
}
GET RESOURCE TYPES
Use this operation to view a collection of resource types.
You must grant permissions to the Core API and must at least set Read-Only access to the Resource type entity in the Configuration, Applications (API permissions) screen.
The following request parameters are supported:
- Language: The translation language code. See Supported Language codes to view the values that are supported. Based on this value, the translation for the name of the resource type is returned in the 'name' field. If the parameter is specified, then the translated value is returned in the 'name' field and the 'translations' field is not returned. If translation to the specified language does not exist, then the value in the 'name' field is returned in English. If the 'language' parameter is not specified, then the 'translations' field is returned in response and contains the translations to every language in the system.
- Offset: The record number from which to start retrieval. The default value is zero. If no value is specified, then it defaults to zero. The value zero indicates that the retrieval will start from the beginning of the collection.
- Limit: The number of resource type records to be returned in the response. The minimum value that can be provided is 1. The maximum value that can be provided is 100. If value is greater than 100, then it defaults to 100. If no value or zero is provided, then also it defaults to 100.
The following information is returned in the response:
- hasMore—The value indicates whether there are more results that can be retrieved with successive paging requests. If the value is true, it indicates that there are more results that can be retrieved with successive paging requests. If the value is false or is absent, it indicates there are no more results or this is the final page.
- Items—An array of the resource type records in the collection.
- Limit—The limit value specified in the request or the value displays as 100 if the limit was not specified or not accepted.
- offset—The offset value specified in the request.
- totalResults—The total number of the resource type records in the collection.
Examples
Example 1:
The following example shows how to obtain a collection of resource types by submitting a GET request on the REST resource using cURL.
Use the cURL command with the following syntax:
curl -u 'clientId@instanceName:clientSecret' --url'https://api.etadirect.com/rest/ofscMetadata/v1/resourceTypes/?limit=2&offset=2
The following shows an example of the response header:
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 24 Jan 2018 12:28:18 GMT
Content-Type: application/json; charset=utf-8
Connection: close
The following shows an example of the response body in JSON format:
{
"hasMore": true,
"totalResults": 10,
"limit": 2,
"offset": 2,
"items": [
{
"label": "BK",
"name": "Bucket",
"active": true,
"role": "bucket",
"translations": [
{
"language":"en",
"name": "Bucket",
"languageISO": "en-US"
},
{
"language":"es",
"name": "Envase",
"languageISO": "es-ES"
}
],
"links": [
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/metadata-catalog/resourceTypes"
}
]
},
{
"label": "TR",
"name": "Truck",
"active": true,
"role": "vehicle",
"translations": [
{
"language":"en",
"name": "Truck",
"languageISO": "en-US"
},
{
"language":"es",
"name": "Camión",
"languageISO": "es-ES"
}
],
"links": [
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/metadata-catalog/resourceTypes"
}
]
}
],
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/resourceTypes/?limit=2&offset=2"
},
{
"rel": "prev",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/resourceTypes/?limit=2&offset=0"
},
{
"rel": "next",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/resourceTypes/?limit=2&offset=4"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/metadata-catalog/resourceTypes"
}
]
}
Example 2:
The following example shows how to obtain a collection of resource types by using the language parameter with the GET request on the REST resource.
Use the cURL command with the following syntax:
curl -u 'clientId@instanceName:clientSecret' --url'https://api.etadirect.com/ /rest/ofscMetadata/v1/resourceTypes/?language=en-US&limit=2&offset=2
The following shows an example of the response header:
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 24 Jan 2018 12:28:18 GMT
Content-Type: application/json; charset=utf-8
Connection: close
The following shows an example of the response body in JSON format:
{
"hasMore": true,
"totalResults": 10,
"limit": 2,
"offset": 2,
"items": [
{
"label": "BK",
"name": "Bucket",
"active": true,
"role": "bucket",
"links": [
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/metadata-catalog/resourceTypes"
}
]
},
{
"label": "TR",
"name": "Truck",
"active": true,
"role": "vehicle",
"links": [
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/metadata-catalog/resourceTypes"
}
]
}
],
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/resourceTypes/?language=en-US&limit=2&offset=2"
},
{
"rel": "prev",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/resourceTypes/?language=en-US&limit=2&offset=0"
},
{
"rel": "next",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/resourceTypes/?language=en-US&limit=2&offset=4"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/metadata-catalog/resourceTypes"
}
]
}
GET TIME SLOTS
Use this operation to view a collection of time slots.
You must grant permissions to the Core API and must at least set Read-Only access to the time slots entity in the Configuration, Applications (API permissions) screen.
The following request parameters are supported:
- Offset: The record number from which to start retrieval. The default value is zero. If no value is specified, then it defaults to zero. The value zero indicates that the retrieval will start from the beginning of the collection.
- Limit: The number of inventory type records to be returned in the response. The minimum value that can be provided is 1. The maximum value that can be provided is 100. If value is greater than 100, then it defaults to 100. If no value or zero is provided, then also it defaults to 100.
The following information is returned in the response:
- hasMore—The value indicates whether there are more results that can be retrieved with successive paging requests. If the value is true, it indicates that there are more results that can be retrieved with successive paging requests. If the value is false or is absent, it indicates there are no more results or this is the final page.
- Items—An array of the inventory type records in the collection.
- Limit—The limit value specified in the request or the value displays as 100 if the limit was not specified or not accepted.
- offset—The offset value specified in the request.
- totalResults—The total number of the timeslot type records in the collection.
Examples
Example 1:
The following example shows how to obtain a collection of timeslots by using the language parameter with the GET request on the REST resource.
Use the cURL command with the following syntax:
curl -u 'clientId@instanceName:clientSecret' --url'https://api.etadirect.com/ /rest/ofscMetadata/v1/timeSlots/?limit=2&offset=2
The following shows an example of the response header:
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 24 Jan 2018 12:28:18 GMT
Content-Type: application/json; charset=utf-8
Connection: close
The following shows an example of the response body in JSON format:
{
"hasMore": true,
"totalResults": 10,
"limit": 2,
"offset": 2,
"items": [
{
"label": "08-10",
"name": "08-10",
"active": true,
"isAllDay": false,
"timeStart": "08:00",
"timeEnd": "10:00",
"links": [
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/metadata-catalog/timeSlots"
}
]
},
{
"label": "all-day",
"name": "All-Day",
"active": true,
"isAllDay": true,
"links": [
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/metadata-catalog/timeSlots"
}
]
}
],
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/timeSlots/?limit=2&offset=2"
},
{
"rel": "prev",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/timeSlots/?limit=2&offset=0"
},
{
"rel": "next",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/timeSlots/?limit=2&offset=4"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscMetadata/v1/metadata-catalog/timeSlots"
}
]
}
Steps to Enable
No steps are required to enable this feature.
Key Resources
Support of Alternate Instance Name in Public APIs
From 18D release onward, Oracle Field Service Cloud supports alternate instance name (that is configured in Service Console) in each request of Oracle Field Service Cloud REST and SOAP public APIs.
It can take up to 5-10 minutes for an updated or new alternate name to be available for use in the API. If updated, old alternate names will fail with the "Not authorized" error response.
For example, you can use the alternate instance name in the curl command as follows:
curl -X GET "https://api.etadirect.com/rest/ofscCore/v1/users" -u "<CLIENT_ID>@<INSTANCE_NAME/Alternate_Instance_Name>:<CLIENT_SECRET>"
Steps to Enable
No steps are required to enable this feature.
Key Resources
API Support for Temporary Resource Locations
Starting with release 18D, the following operations have been added to support the configuration of location overrides:
- Update assigned location – Allows you to modify the location information for the specified days (week days or dates) without impacting the remaining resource locations.
- Delete assigned location – Allows you to remove the location information for a specific day (week day or date).
The following operation has been improved:
- Get assigned locations – You can now retrieve the existing location information of a resource for the specified date range.
Dictionary
- Resource Locations - Locations for a specified resource.
- Daily Locations (or Resource assigned locations) - Assignments of resource locations for a given weekday. Includes the 'start', 'end', and 'home zone center' locations.
- Override Locations (or Temporary resource locations) - Assignments of resource locations for a specified date. This location override 'daily Location' only for current date. Includes the 'start', 'end', and 'home zone center' locations.
UPDATE ASSIGNED LOCATIONS:
Use this operation to create or update the temporary locations assigned to the specified resource. The temporary locations include the ‘start’, ‘end’, and ‘home zone center’ locations.
NOTE: When the location is specified in the request, it is assigned to the resource.
The following request parameter is supported:
- resourceId (string): The identifier of the resource.
The request body is a json object containing the following fields:
- Items: An array of items containing the temporary assigned locations for the resource.
- end (optional, integer): The identifier of the end location for this weekday.
- homeZoneCenter (optional, integer): The identifier of the home zone center location for this weekday.
- start (optional, integer): The identifier of the start location for this weekday.
The permission ‘core_api_resource’ has to be set to ‘ReadWrite’ for this API to work.
Example
The following example shows how to update the assigned locations of a resource by submitting a PATCH request on the REST resource using cURL.
curl -s -u "<CLIENT_ID>@<INSTANCE_NAME>:<CLIENT_SECRET>" --url "https://api.etadirect.com/rest/ofscCore/v1/resources/default_technician/assignedLocations" -X PATCH -d '
{
"mon": {
"start": 1,
"end": 7,
"homeZoneCenter": 7
},
"2018-06-02": {
"start": 1,
"end": 3,
"homeZoneCenter": 7
},
"2018-06-03": {
"start": 1,
"end": 2,
"homeZoneCenter": 7
}
} '
Example of Response Header
The following shows an example of the response header.
HTTP/1.1 204 No Content Server: nginx/1.2.7 Date: Mon, 18 Dec 2017 02:20:33 GMT Content-Type: application/json; charset=utf-8
GET ASSIGNED LOCATIONS
The following example shows how to retrieve details of the locations assigned to a resource for the specified date range by submitting a GET request on the REST resource using cURL.
cURL Command Example
The following shows an example of the request header:
curl -s -u "<CLIENT_ID>@<INSTANCE_NAME>:<CLIENT_SECRET>" --url "https://api.etadirect.com/rest/ofscCore/v1/resources/default_technician/assignedLocations?dateFrom =2018-06-01,dateTo=2018-06-03" -X GET
Example of Response Header
The following shows an example of the response header:
HTTP/1.1 200 OK
Server: nginx/1.6.2
Date: Fri, 24 Jul 2015 08:35:48 GMT
Content-Type: application/json; charset=utf-8
Connection: close
Example of Response Body
The following example shows the contents of the response body in JSON format:
{
"mon": {
"start": 1,
"end": 7,
"homeZoneCenter": 7
},
"sun": {
"start": 1,
"end": 3,
"homeZoneCenter": 7
},
"2018-06-03": {
"start": 1,
"end": 2,
"homeZoneCenter": 7
},
"2018-06-01": {
"start": 1,
"end": 7,
"homeZoneCenter": 7
},
"2018-06-02": {
"start": 1,
"end": 3,
"homeZoneCenter": 7
},
"2018-06-04": {
"start": 1,
"end": 2,
"homeZoneCenter": 7
},
"links": [
{
"rel": "canonical",
"href": "https://api.etadirect.com/rest/ofscCore/v1/resources/44035/assignedLocations"
},
{
"rel": "describedby",
"href": "https://api.etadirect.com/rest/ofscCore/v1/metadata-catalog/resources"
}
]
}
DELETE ASSIGNED LOCATIONS
Use this operation to delete the locations assigned for the specified resource.
The following are the request parameters:
- date (required, string): The date for which you want to remove the location information of the resource. Specify the date in either of these formats:
- YYYY-MM-DD
- Day of the week (“sun”, “mon”, etc.)
- resourceId (required, string): The external identifier of the resource.
The permission ‘core_api_resource’ has to be set to ‘ReadWrite’ for this API to work.
Example 1
The following example shows how to delete the assigned locations of a resource for the specified date by submitting a DELETE request on the REST resource using cURL.
curl -s -u "$AUTH" --url "https://api.etadirect.com/rest/ofscCore/v1/resources/default_technician/assignedLocations/2018-06-01" -X DELETE
Example 2
The following example shows how to delete the assigned locations of a resource for the specified weekday by submitting a DELETE request on the REST resource using cURL.
curl -s -u "$AUTH" --url "https://api.etadirect.com/rest/ofscCore/v1/resources/default_technician/overrideLocations/mon" -X DELETE
Steps to Enable
The "core_api_resource" permission has to be set to "ReadWrite" for this API to work.
Key Resources
Activity Selection in Landing Page
With release 18D, when the "Suggest activity by location” setting is enabled and there is more than one activity in the same location, resources will be able to choose the activity they want to start.
When you have more than one activity in the same location, you will get a notification with the list of nearby activities. Select one activity and click Start, the selected activity starts. In the End Activity dialog, you will get a notification about the number of activities in nearby locations. You can select any activity that you want to start next depending on the priority.
Activities are considered to be at the same location when they are within X meters of the pending activity. The X is configured using the 'Resource is considered to be at the activity location if the distance to it is less than X meters' parameter in the SmartLocation/GPS section on the Business Rules configuration page.
NOTE: If you do not have a subscription to Smart Location, Oracle Field Service Professional or Oracle Field Service Enterprise Cloud Service then the distance value is set to 100 meters and is not configurable.
Activity is displayed in the list of activities when all of the following conditions are met:
- activity is scheduled for current day
- activity has resolved coordinates
- activity has pending status
- activities are located in the same location - when distance to the next activity does not exceed X meters.
- activity is not blocked by any other linked activity
This functionality is also available in offline mode.
In Mobility, when you have more than one activity in the same location and "Suggest activity by location” setting is enabled:
- The message "You have N more activities at this location" is displayed above the Start button on the Resource Dashboard.
Resource Dashboard Showing Start Button
-
Upon tapping the Start button, you will see the Select activity to start dialog displaying:
- a list of nearby activities is displayed
- option to start an activity. You can select and start a required activity.
Select Activity to Start Dialog
- The message "You have N more activities at this location" is displayed on the End activity dialog.
End Activity Dialog
- Activities in the same location are marked with bubble icon when selecting next activity on End activity dialog:
Select Next Activity Dialog
- Note the following:
- If the Resource Dashboard is not enabled, then only Options 3 and 4 are available for users.
- This functionality does not require the 'Allow activity reorder inside the route' check box to be enabled in the Activity Management screen.
Steps to Enable
Use the following procedure to enable this feature:
- Click Configuration, User Types to open the User Types screen.
- Under the Activity Management section, select the ‘Suggest activity by location’ option.
Key Resources
Navigating the Organization Hierarchy Structure
Starting with release 18D, the Oracle Field Service Cloud Core Application Resource Info screen has been updated with additional details and improved navigation including:
- Providing additional information about the organization structure
- Visibility into what resources belong to a particular organizational level
- Other navigation options (for example, Add child resources, Edit resource information)
CHANGES TO RESOURCE INFO SCREEN FOR A FIELD RESOURCE/ TOOL/ VEHICLE
The Resource Info screen for a field resource or tool or vehicle has been improved as follows:
- Breadcrumbs added the screen help you to navigate to the parent level or to find the organization unit to which the particular resource belongs to. In the Resource Info Screen below you can see "Sunrise Enterprise > FL, USA" reference.
- You can click Properties icon to display a set of options to edit the current Resource.
The Resource Info screen appears for a field resource or tool or vehicle as follows:
Resource Info Screen
CHANGES TO RESOURCE INFO SCREEN FOR AN ORGANIZATIONAL UNIT/BUCKET
It is now possible to identify which resources belongs to the particular organizational level. This allows you to add child resources without returning to the Resources screen, navigate to any resource or see additional information about resources.
The Resource Info screen for an organizational unit has been improved as follows:
- Breadcrumbs to navigate from a resource to the organization unit to which the current resource belongs to.
- To edit the current resource (for example add child resource) or navigate to the resource's Calendar, Locations, Work skills, Work zones, and Inventory screens, click the Properties icon and select the relevant menu option.
Edit Resource Drop-Down Menu
- When you click Add child resource from the drop-down list, the Add resource screen is displayed. The OrgUnit/Bucket field is automatically populated.
- Resources view is shown as the main view on the Resource info screen. Resources view allows you to navigate the structure of the current Organization Unit and its resources.
- Resource hint allows you to see additional information about each resource at once. You may navigate to the Resource info screen or Resource's route quickly.
Additional GUI changes include:
- Resource avatar unification - all the resource avatars are unified.
- The Resource Type section incudes an icon next to the resource type.
Steps to Enable
You can create user types as needed.
NOTE: You should have the permissions to create new resources.
To create resources for a particular user type:
- Click Configuration, User types.
- In the User Types page, General tab, the Can create users of the following User types field displays the user types.
- To add a user type, click the edit icon. Click the check boxes corresponding to the user types you want to add and click OK.
- For the newly selected user type, the Can create resource/user field is added to the "Resources" context layout with Read/Write mode. The "Add resource/user" context layout contains all mandatory fields with Mandatory visibility.
Key Resources
Using Oracle Rest Data Service (ORDS) for DBaaS Integration
With release 18D, users can now connect to Oracle Database as a Service (DBaaS) through the Oracle Rest Data Service (ORDS). By release 18D, the Oracle Net Listener option to connect DBaaS will be deprecated. You can switch connection from Oracle Net Listener to ORDS.
The Outbound Integration Channels page shows DBaaS channel status as follows:
- DBaaS channel with Oracle Net Listener connection:
For existing DBaaS connection with Oracle Net Listener option, you will be notified with a message that the connection needs to be updated. The steps to switch connection from Oracle Net Listener to ORDS is provided later in this section.
DBaaS Connection Using Oracle Net Listener
- DBaaS channel with ORDS
For all new users, the connectivity to DBaaS will be through Oracle REST Data Service (ORDS).
DBaaS Channel
Steps to Enable
For all new users, the connection to DBaaS will be through ORDS; only exiting users will have the option to modify the existing channel from Oracle Net listener to ORDS.
ADD DBAAS CHANNEL
When you add a new DBaaS channel in Outbound Integration page, you should provide the Oracle REST Data Service (ORDS) endpoint details in the Add Channel dialog in the Outbound Integration page.
NOTE: Users who have permissions to access Outbound delivery channels should also have access to DBaaS.
To add a new DBaaS channel:
- Click Configuration, Outbound Integration Channels.
- In the Outbound Integration page, click Add Channel.
Outbound Integration Channels Page
- In the Add Channel dialog, select Database as a Service (DBaaS) from the Channel Type drop-down list: The DBaaS channel options are displayed.
Add Channel Dialog
- Complete the values in the following fields as necessary and click OK:
- Host—Specify the URL of the DBaaS Oracle REST data service endpoint in the following format: https://<node-ip-address>.
NOTE: Make sure that the access rule ora_p2_httpssl is enabled in DBaaS. For more information, see https://docs.oracle.com/en/cloud/paas/database-dbaas-cloud/csdbi/enable-access-port.html#GUID-94DB31C5-33EE-4CA1-93B7-AE8934A0E441.
- Schema—Provide the schema alias for the Oracle REST Data Service enabled schema.
If you are connecting to a Pluggable Database (PDB), the format should be <PDB_Name>/<schema_name>.
If you are not connecting to a PDB , the format will be <schema_name>
Prerequisite: You must REST-enable the Oracle database schema on which you want to use the service. For more information about how to enable the Oracle Database Schema: see https://docs.oracle.com/database/ords-17/AELIG/GUID-BA9F9457-ED3A-48A4-828A-CC8CBEA9A2AB.htm#AELIG-GUID-7C0E4F73-D253-4251-9789-ED3F4021B561.
- User Name—Enter the name of the Oracle REST Data service user with roles: SQL Developer or Oracle database schema name. For more information, see https://docs.oracle.com/database/ords-17/AELIG/GUID-BA9F9457-ED3A-48A4-828A-CC8CBEA9A2AB.htm#AELIG-GUID-D3E94A5E-61C2-4A57-B438-5E9B25C332A6.
- Password—Provide the Oracle REST Data service user's password with SQL Developer role or the Oracle database schema password
- Confirm Password—Retype the password.
- After a successful channel is created using ORDS, the Outbound Integration page shows the DBaaS channel. You can add, delete and modify DBaaS channel configurations from Outbound Integration configuration page.
NOTE: To add, delete and modify DBaaS configurations, you should have the permission to access Outbound Integration.
MODIFY THE CONNECTION DETAILS OF A DBAAS CHANNEL
This section provides the steps to enable ORDS for an existing DBaaS channel. You can provide the ORDS endpoint details in the Modify Channel dialog.
To modify an existing DBaaS channel:
- In the Outbound Integration Channels page, select the Database as a Service (DBaaS) channel to edit.
- You can click the Properties icon in an existing DBaaS channel and select Modify from the drop-down list. The Modify Channel dialog is displayed:
Modify Channel Dialog
- In the Connection Method field, select Oracle REST Data Service from the drop-down list. When you select this option, existing DBaaS endpoint details will be automatically populated in the Modify Channel dialog.
Modify Channel Dialog
-
You can validate the endpoint details by adding the Schema Alias and testing the connection.
-
In the Schema Alias field, provide the Oracle REST Data Service enabled schema.
-
Click Test Connection to validate the connection.
NOTE: Once saved, you cannot change the connection method. Hence, you must validate the connection before you save the channel.
- Click OK.
Once enabled, the Outbound Integration Channels page shows the data transfer success rate and last updated details for DBaaS channel:
DBaaS Connection Using ORDS
Key Resources
Parts Catalog in Plug-In API Framework
Earlier, you could not create any plug-in to search the parts catalog that is available in Oracle Field Service Cloud. Starting with release 18D, you can create your own plug-in to perform the following functions:
- Search for inventory
- Get the structure of the catalog
- Get items by label or ID
The plug-in framework includes four new procedures:
- getParts
- getPartsCatalogsStructure
- searchParts
- searchPartsContinue
Run these procedures using the existing callProcedure method.
Apart from this, the plug-in framework now includes the ability to run multiple procedures simultaneously. This means that the plug-in can send the next "callProcedure" messages to Oracle Field Service Cloud before it sends the "callProcedureResult" message. You can associate the results with the procedure calls using the "callId" parameter. For backward compatibility, simultaneous calls of procedures "openLink" and "scanBarcode" cause an error with the code "CODE_METHOD_UNEXPECTED".
NEW PROCEDURE IN THE PLUGIN API
getPartsCatalogsStructure
The procedure returns via "callProcedureResult" method the description and field/type schemas for all available Parts Catalogs as they was set using the "create" method of the Parts Catalog API.
Parameters
Method accepts no parameters.
Response
For each Parts catalog, the following fields are returned:
Field |
Type |
Parts Catalog API Parameter |
Description |
---|---|---|---|
catalogId |
Number |
- |
-- |
label |
String |
label |
-- |
language |
String |
language |
-- |
name |
String |
name |
Name of the catalog to be displayed in GUI |
fieldSchemas |
Array |
field_schemas |
Array of fieldSchema items, each of which contains one of the fields to be set for the catalog |
typeSchemas |
Array |
type_schemas |
Array of typeSchema items, each of which contains an item type and may also contain the inventory type corresponding to such item type |
cacheLoadingState |
Object |
- |
Status of loading the Parts Catalog contents to the device storage to be available in offline. Can be used to visualize the progress of loading. |
fieldSchema Item Structure
Field |
Type |
Parts Catalog API 'type_schema' Element Param |
Description |
---|---|---|---|
label | String | label | Field identifier |
name | String | name | Name of the field to be displayed in GUI |
propertyLabel | String | property_label | Label of corresponding inventory property in OFSC |
searchable | Boolean | searchable | Whether the field is used for search |
preview | Boolean | preview | Whether the field is cached in offline mode and displayed in the offline search results |
typeSchema Item Structure
Field |
Type |
Parts Catalog API 'type_schema' Element Param |
Description |
---|---|---|---|
itemType | String | item_type | Item type according to the catalog |
inventoryType | String | inventory_type | Inventory type according to the settings of OFSC |
cacheLoadingState Structure
Field |
Type |
Description |
---|---|---|
isLoaded | String | Whether the all needed data of Parts catalog is loaded and is available offline |
loadedItemsNumber | Number | Number of catalog items that are loaded to device |
totalItemsNumber | Number | Total number of catalog items to be loaded to device |
loadedSize | Number | The amount of data that's loaded to device (bytes) |
Example of a Request
{
"apiVersion" : 1,
"callId" : "CMFYN5AKpc9Yg1POv6773g==" ,
"method" : "callProcedure" ,
"procedure" : "getPartsCatalogsStructure" } |
Example of a Response
Collapse source
{
"apiVersion" : 1,
"method" : "callProcedureResult" ,
"callId" : "CMFYN5AKpc9Yg1POv6773g==" ,
"resultData" : [
{
"catalogId" : 2,
"label" : "network" ,
"language" : "en" ,
"name" : "Network devices" ,
"fieldSchemas" : [
{
"label" : "model" ,
"name" : "Model" ,
"propertyLabel" : "switch_model" ,
"searchable" : true ,
"preview" : true
},
{
"label" : "ports" ,
"name" : "Ports" ,
"propertyLabel" : false ,
"searchable" : true ,
"preview" : false
},
{
"label" : "price" ,
"name" : "Price" ,
"propertyLabel" : "switch_price" ,
"searchable" : false ,
"preview" : false
},
{
"label" : "vendor" ,
"name" : "Vendor" ,
"propertyLabel" : false ,
"searchable" : false ,
"preview" : true
}
],
"typeSchemas" : [
{
"itemType" : "switch_type" ,
"inventoryType" : "switch_general"
},
{
"itemType" : "router_type" ,
"inventoryType" : "router_general"
}
],
"cacheLoadingState" : {
"isLoaded" : true ,
"loadedItemsNumber" : 2,
"loadedSize" : 1138,
"totalItemsNumber" : 2
}
},
{
"catalogId" : 4,
"label" : "misc" ,
"language" : "en" ,
"name" : "Miscellaneous parts" ,
"fieldSchemas" : [
{
"label" : "item_type" ,
"name" : "Item Type" ,
"propertyLabel" : false ,
"searchable" : false ,
"preview" : false
},
{
"label" : "description" ,
"name" : "Item description" ,
"propertyLabel" : false ,
"searchable" : true ,
"preview" : true
},
],
"typeSchemas" : [
{
"itemType" : "parts" ,
"inventoryType" : "PART"
}
],
"cacheLoadingState" : { "isLoaded" : true ,
"loadedItemsNumber" : 3558, "loadedSize" : 2793309, "totalItemsNumber" : 3558 } } ] } |
getParts
Procedure returns all information that was set for particular Parts Catalog items using the "upload" method of Parts Catalog API.
Parameters
Parameter Name |
Mandatory |
Type |
Description |
---|---|---|---|
items |
Yes | Array | Array of itemKey objects that identify the catalog items to get info for. |
itemKey Object Structure
Field Name |
Mandatory |
Type |
Parts Catalog API Param for 'item' Element of 'upload_catalog' request |
Description |
---|---|---|---|---|
catalogId |
Yes | Integer | - | A unique identifier of a catalog which contains the item. Id can be retrieved using the getPartsCatalogStructure procedure. |
label |
Yes | String | label | A unique identifier of a part within a catalog. Can be changed after catalog update. |
Response
Field Name |
Type |
Description |
---|---|---|
items |
Array | Array of FoundItem objects. Each object represents one item whose data is available. |
notFoundItems |
String | Array of itemKey objects. Each object contains the key fields of an item whose data is not available. |
FoundItem Object Structure
Field Name |
Type |
Parts Catalog API Param for 'item' Element of 'upload_catalog' Request |
Description |
---|---|---|---|
catalogId |
Integer | A unique identifier of a catalog. | |
itemId |
Integer | A unique identifier of a part within a catalog. Can be changed after catalog update. |
|
label | String | label | A unique identifier of a part within a catalog. |
itemType | String | type | Item type |
inventoryType | String | Label of a corresponding inventory type in Oracle Field Service Cloud. Can be empty if the mapping of item types to inventory types wasn't configured in the catalog schema. Mapping between itemType and inventoryType can be found in the typeSchemas field of the getPartsCatalogStructureprocedure result. |
|
fields | Object | fields | An object (dictionary) which contains item's fields by it's labels. |
linkedItems | Array | linked_items | Array of LinkedItem objects |
images | Array | images | An array of strings, where each string is a URL of an image. |
LinkedItem Object Structure
Field Name |
Type |
Parts Catalog API 'linked_item' Element of 'upload_catalog' Request |
Description |
---|---|---|---|
id |
Integer | A unique identifier of a linked part within a catalog. Can be changed after catalog update. | |
label | String | label | A unique identifier of a linked part within a catalog. |
displayData | String | display_data | Text comments to the linked item to be displayed in GUI. |
Example of a Request
{ "apiVersion" : 1, "callId" : "KnnXUS7APzIzY+8B0g==" , "method" : "callProcedure" , "procedure" : "getParts" ,
"params" : { "items" : [
{
"catalogId" : "2" ,
"label" : "Switch_model_001" },
{
"catalogId" : "2" ,
"label" : "Switch_009" },
{
"catalogId" : "4" ,
"label" : "FM3-2048-007" } ] } } |
Example of a Response
Collapse source
{ "apiVersion" : 1, "method" : "callProcedureResult" , "callId" : "KnnXUxzIzY+8B0g==" , "resultData" : { "items" : [
{ "catalogId" : 2, "itemId" : 2, "label" : "Switch_001" ,
"itemType" : "switch_type" , "inventoryType" : "switch_general_eta" , "linkedItems" : [ { "id" : 3,
"label" : "Switch_002" , "displayData" : "better"
}
],
"fields" : {
"descr" : "Automatic direction" ,
"model" : "Switch_model_001" ,
"ports" : "8 x Fast Ethernet (10/100 Mbit/s)" ,
"price" : "25$" ,
"size" : "151x81x33 mm,200 g" ,
"vendor" : "Oracle" }, "images" : [
"https://example.com/switch_1.jpg"
]
},
{
"catalogId" : 4,
"itemId" : 3463,
"label" : "FM3-2048-007" ,
"itemType" : "parts" ,
"inventoryType" : "" ,
"linkedItems" : [
{
"id" : 2350,
"label" : "Z4603011" ,
"displayData" : "5"
},
{
"id" : 3160,
"label" : "Z0293015" ,
"displayData" : "7"
},
],
"fields" : {
"cost" : "54.2346747003" ,
"description" : "NETWORK I/F BOARD PCB ASSY\nFirmware update 2" ,
"item_disposition" : "Repairable" ,
"item_type" : "BOARD" ,
"price" : "174.85" ,
"vendor" : "ORCL"
},
"images" : [
"https://example.com/pictures/12.jpg" ,
"https://example.com/pictures/8.jpg" ,
"https://example.com/pictures/23.jpg" ,
"https://example.com/pictures/14.jpg"
]
}
],
"notFoundItems" : [
{
"catalogId" : 2,
"label" : "Switch_009"
}
]
} } |
searchParts
The procedure performs a search of parts in the Parts Catalog.
Parameters
Parameter Name |
Mandatory |
Type |
Description |
---|---|---|---|
query |
Yes | String | Search query. Minimal length - 3 symbols (spaces symbols at the beginning and at the end are trimmed), maximal length - 100 symbols. |
limit |
No | Integer | Maximal number of results returned as a result. Minimal value - 1, maximal - 1000. By default is 10. |
cacheOnly |
No | Boolean | Whether the search should be done only in cache or it's allowed to make a network request to finish a search. If it's set to true then the search will be done in offline mode without any network requests. By default is false. |
Response
Field Name |
Type |
Description |
---|---|---|
items |
Array | Array of FoundItem objects. Found parts. Limited by the limit parameter. |
source |
String | Source of the search. Possible values:
|
searchId |
Integer | A unique id of the search procedure within the particular plugin open session. Used as a parameter for the searchPartsContinue procedure. |
isContinueAvailable | Boolean | Indicates whether the total results number overflows the "limit" parameter or not. If it's true - then the searchPartsContinue procedure can be used to return more results (limited bythe limitparameter) |
FoundItem Object Structure
Field Name |
Type |
Parts Catalog API Param for 'item' Element of 'upload_catalog' Request |
Description |
---|---|---|---|
catalogId |
Integer | - | A unique identifier of a catalog. |
itemId |
Integer | - | A unique identifier of a part within a catalog. Can be changed after catalog update. |
label | String | label | A unique identifier of a part within a catalog. |
itemType | String | type | Item type. |
inventoryType | String | - | Label of a corresponding inventory type in OFSC. Can be empty if the mapping of item types to inventory types wasn't configured in the catalog schema. Mapping between itemType and inventoryType can be found in the typeSchemas field of the getPartsCatalogStructure procedure result. |
fields | Object | fields | An object (dictionary) which contains item's fields by it's labels. |
linkedItems | Array | linked_items | Array of LinkedItem objects. |
images | Array | images | An array of strings, where each string is a URL of an image. |
LinkedItem Object Structure
Field Name |
Type |
Parts Catalog API 'linked_item' Element of 'upload_catalog' Request |
Description |
---|---|---|---|
id |
Integer | - | A unique identifier of a linked part within a catalog. Can be changed after catalog update. |
label | String | label | A unique identifier of a linked part within a catalog. |
displayData | String | display_data | Text comments to the linked item to be displayed in GUI. |
Loading More Results for a Search
If the searchParts procedure returns isContinueAvailable = true then more search results can be loaded via searchPartsContinue method using returned searchId.
The searchPartsContinue method is available for 10 most recent searchId.
The searchId values returned by searchParts procedure are stored in a queue for 10 most recent calls that have isContinueAvailable = true. If the queue is overflown - the searchId for the first calls are removed and searchPartsContinue isn't available for them any more.
Each call of the searchPartsContinue procedure moves it's searchId to the top of the queue (makes it most recent) and when searchPartsContinue returns isContinueAvailable = false the searchId is removed from the queue.
Example of a Request
{
"apiVersion" : 1,
"callId" : "3quvGlWIgHrYRN4vg==" ,
"method" : "callProcedure" ,
"procedure" : "searchParts" ,
"params" : {
"query" : "055" ,
"limit" : 5
} } |
Example of a Response
Collapse source
{
"apiVersion" : 1,
"method" : "callProcedureResult" ,
"callId" : "3quvGlWIgNJlQhHrYRN4vg==" ,
"resultData" : {
"items" : [
{
"catalogId" : 3,
"itemId" : 4179,
"label" : "XG9-0552-000" ,
"itemType" : "parts" ,
"inventoryType" : "PT" ,
"linkedItems" : [
{
"id" : 4298,
"label" : "D3625170" ,
"displayData" : "9"
},
{
"id" : 4547,
"label" : "D5853100" ,
"displayData" : "2"
},
{
"id" : 4824,
"label" : "D8093048" ,
"displayData" : "8"
},
{
"id" : 6310,
"label" : "AB014229" ,
"displayData" : "7"
}
],
"fields" : {
"description" : "BEARING NP6560" ,
"vendor" : "AGHA" ,
"cost" : "5.704125031" ,
"price" : "22.7" ,
"item_type" : "NA" ,
"item_disposition" : "NA"
},
"images" : [
"https://example.com/picture/15.jpg" ,
"https://example.com/picture/10.jpg" ,
"https://example.com/picture/18.jpg"
]
},
{
"catalogId" : 3,
"itemId" : 5631,
"label" : "KHB670550A00" ,
"itemType" : "parts" ,
"inventoryType" : "PT" ,
"linkedItems" : [],
"fields" : {
"description" : "KID-MOD MF16, TENSION&DETACK" ,
"vendor" : "KODAK" ,
"cost" : "742.5143066464" ,
"price" : "1270.86" ,
"item_type" : "NA" ,
"item_disposition" : "NA"
},
"images" : [
"https://example.com/picture/26.jpg"
]
},
{
"catalogId" : 3,
"itemId" : 5029,
"label" : "D0605507" ,
"itemType" : "parts" ,
"inventoryType" : "PT" ,
"linkedItems" : [
{
"id" : 3972,
"label" : "FB6-2374-000" ,
"displayData" : "0"
},
{
"id" : 4975,
"label" : "B1253830" ,
"displayData" : "8"
}
],
"fields" : {
"description" : "PCB:B-C4B:SERVICE:ASS'Y" ,
"vendor" : "HYTEC" ,
"cost" : "1427.04" ,
"price" : "2854.08" ,
"item_type" : "BOARD" ,
"item_disposition" : "Repairable"
},
"images" : []
},
{
"catalogId" : 3,
"itemId" : 7551,
"label" : "D3305502" ,
"itemType" : "parts" ,
"inventoryType" : "PT" ,
"linkedItems" : [],
"fields" : {
"description" : "[XREF TO HD3305502] DF MAIN BOARD" ,
"vendor" : "NWRS" ,
"cost" : "191.5" ,
"price" : "480.95" ,
"item_type" : "BOARD" ,
"item_disposition" : "Repairable"
},
"images" : [
"https://example.com/picture/2.jpg"
]
},
{
"catalogId" : 3,
"itemId" : 4203,
"label" : "D0746055" ,
"itemType" : "other" ,
"inventoryType" : "" ,
"linkedItems" : [
{
"id" : 4037,
"label" : "AB012067" ,
"displayData" : "1"
}
],
"fields" : {
"description" : "FLAT BELT-TRANSFER SERVICE PARTS" ,
"vendor" : "SUNRISE" ,
"cost" : "902.0665087976" ,
"price" : "1848.46" ,
"item_type" : "NA" ,
"item_disposition" : "NA"
},
"images" : [
"https://example.com/picture/26.jpg"
]
}
],
"isContinueAvailable" : true ,
"source" : "cache" ,
"searchId" : 1
} } |
searchPartsContinue
The procedure returns additional results for a search, initiated by the searchParts procedure.
Parameters
Parameter Name |
Mandatory |
Type |
Description |
---|---|---|---|
searchId |
Yes | Integer | A unique id of the search procedure within the particular plugin open session. Minimal value: 0, Maximal value: 2147483647 See more: Loading more results for a search |
Response
Field Name |
Type |
Description |
---|---|---|
items |
Array | Array of FoundItem objects. Found parts. Limited by the limitparameter for the searchParts procedure. |
source |
String | Source of the search. Possible values:
|
searchId |
Integer | A unique id of the search procedure within the particular plugin open session. It's equal to the searchId input parameter. |
isContinueAvailable | Boolean | Indicates whether the total results number overflows the limit parameter of the searchParts procedure or not. If it's true - then this procedure can be called once more to return more results (limited by the limit parameter for the searchParts procedure). |
FoundItem Object Structure
Field Name |
Type |
Parts Catalog API Param for 'item' Element of 'upload_catalog' Request |
Description |
---|---|---|---|
catalogId |
Integer | - | A unique identifier of a catalog. |
itemId |
Integer | - | A unique identifier of a part within a catalog. Can be changed after catalog update. |
label | String | label | A unique identifier of a part within a catalog. |
itemType | String | type | Item type. |
inventoryType | String | - | Label of a corresponding inventory type in OFSC. Can be empty if the mapping of item types to inventory types wasn't configured in the catalog schema. Mapping between itemType and inventoryType can be found in the typeSchemas field of the getPartsCatalogStructure procedure result. |
fields | Object | fields | An object (dictionary) which contains item's fields by it's labels. |
linkedItems | Array | linked_items | Array of LinkedItem objects. |
images | Array | images | An array of strings, where each string is a URL of an image. |
LinkedItem Object Structure
Field Name |
Type |
Parts Catalog API 'linked_item' Element of 'upload_catalog' Request |
Description |
---|---|---|---|
id |
Integer | - | A unique identifier of a linked part within a catalog. Can be changed after catalog update. |
label | String | label | A unique identifier of a linked part within a catalog. |
displayData | String | display_data | Text comments to the linked item to be displayed in GUI. |
Example of a Request
{
"apiVersion" : 1,
"callId" : "J3wa6jhfAZbsCdjQ==" ,
"method" : "callProcedure" ,
"procedure" : "searchPartsContinue" ,
"params" : {
"searchId" : 1
} } |
Example of a Response
Collapse source
{
"apiVersion" : 1,
"method" : "callProcedureResult" ,
"callId" : "J3wa6jhKxwf6xfAZbsCdjQ==" ,
"resultData" : {
"items" : [
{
"catalogId" : 3,
"itemId" : 7300,
"label" : "MU220055000" ,
"itemType" : "parts" ,
"inventoryType" : "PT" ,
"linkedItems" : [
{
"id" : 4481,
"label" : "CF064-67901" ,
"displayData" : "0"
},
{
"id" : 4986,
"label" : "B2469510" ,
"displayData" : "5"
}
],
"fields" : {
"description" : "INTRACK JOGGER AY F4100-02" ,
"vendor" : "KOZAK" ,
"cost" : "341.4693432572" ,
"price" : "799.075" ,
"item_type" : "NA" ,
"item_disposition" : "NA"
},
"images" : [
"https://example.com/picture/4.jpg" ,
"https://example.com/picture/26.jpg" ,
"https://example.com/picture/10.jpg" ,
"https://example.com/picture/8.jpg"
]
},
{
"catalogId" : 3,
"itemId" : 6337,
"label" : "B8305562" ,
"itemType" : "parts" ,
"inventoryType" : "PT" ,
"linkedItems" : [],
"fields" : {
"description" : "STEPPER MOTOR DC1 .56V 3.7W\nCatalog: #3 en Ricoh (ver 19151)" ,
"vendor" : "RICOH" ,
"cost" : "36.97" ,
"price" : "185.7" ,
"item_type" : "NA" ,
"item_disposition" : "NA"
},
"images" : [
"https://example.com/picture/14.jpg" ,
"https://example.com/picture/15.jpg" ,
"https://example.com/picture/4.jpg"
]
}
],
"isContinueAvailable" : false ,
"source" : "server" ,
"searchId" : 1
} } |
NEW ERROR TYPE AND CODES FOR PLUGIN API
New Error Types
Type |
When Occurs |
Available Message Fields |
---|---|---|
TYPE_PROCEDURE_PARAM_ITEM | One or more items in array which was sent as the value of procedure parameter have wrong contents |
|
Available Message Fields
- procedure - name of procedure on which error occured
- paramName - name of parameter which is an array and whose item is invalid
- itemId - number (index) of invalid item in the array starting from 0
New Error Codes
Type |
Code |
Caused by Procedure |
Error Type |
Cause |
---|---|---|---|---|
TYPE_PROCEDURE_PARAM_ITEM | CODE_PROCEDURE_PARAM_ITEM_MANDATORY_FIELD_EMPTY | getParts | Validation error | Mandatory field of the item is missing. |
TYPE_PROCEDURE_PARAM_ITEM | CODE_PROCEDURE_PARAM_ITEM_FIELD_INVALID | getParts | Validation error | Value of item field is not valid. |
Error Example
Request
{
"apiVersion" : 1,
"callId" : "KnnXUxS7IzY+8B0g==" ,
"method" : "callProcedure" ,
"procedure" : "getParts" ,
"params" : {
"items" : [
{
"catalogId" : "2" ,
"label" : "Switch_model_001"
},
{
"catalogId" : "2" ,
"label" : "Switch_model_003"
},
{
"catalogId" : "4" ,
"label" : ""
}
]
} } |
Response
{
"apiVersion" : 1,
"callId" : "KnnXUxS7APzLBVIzY+8B0g==" ,
"method" : "error" ,
"errors" : [
{
"type" : "TYPE_PROCEDURE_PARAM_ITEM" ,
"code" : "CODE_PROCEDURE_PARAM_ITEM_MANDATORY_FIELD_EMPTY" ,
"procedure" : "getParts" ,
"paramName" : "items" ,
"itemId" : 2,
"itemField" : "label"
}
] } |
Steps to Enable
No steps are required to enable this feature.
Goal Based Optimization in Routing
With release 18D, a new section "Optimization Goal" allows users to choose optimization goal for the particular routing plan and obtain a series of suggestions how to set routing plan parameters in an optimal way.
The following changes were made:
- In the Add/Edit Routing Plan dialog, the "Reoptimization" section is renamed as "Optimization Strategy"
- The "Reoptimization Goal" drop-down list is renamed as "Optimization Goal".
- Additional optimization goals are available so that users can choose Optimization Goal for the particular routing plan and obtain series of suggestions on how to set routing plan parameters in an optimal way.
- The "Reoptimization" field is now renamed as "Allow moving activities between providers routes".
MIGRATION
During the migration process, re-optimization goals are migrated to optimizations using the following correspondence:
Legacy Re-Optimization Goal |
New Optimization Goal |
---|---|
Optimize routes |
Default |
Assign high priority activities |
Maximized assigned activities number |
Reduce overdue |
Reduce activities overdue |
CHANGE THE OPTIMIZATION GOAL
You can now select optimization goals for the routing plan and set routing plan parameters in an optimal way. The Optimization goal drop-down list presents a set of goals to choose.
Optimization Goal Drop-Down List
When you select an Optimization Goal, routing provides suggestions to the routing plan parameters. The following example shows the Optimization Strategy section with the Maximize assigned activities number option selected in the Optimization Goal field.
Optimization Strategy Section
Steps to Enable
NOTE: There is no need to configure this particular feature; the optimization goal section is available by default after the 18D update is applied.
To set optimization goal for a routing plan:
- Navigate to the Routing screen.
- Select a routing plan.
- Expand the Optimization goal section and select an Optimization goal from the drop-down list:
- Default—Ensures that there are no changes in the general routing behavior in comparison with previous versions. This is the default value.
- Maximize assigned activities number—Outcome focuses on assigning more activities are assigned to routes in total even if it requires more travel. If moving the activities between resource routes is ON, the routing plan will start only if there are non-assigned activities with high or highest non-assignment cost and the results are applied only if at least one such activity is assigned. The suggestions listed also help in setting up a routing plan to assign activities more aggressively.
- Minimize total travel—Outcome focuses on having less travel in routes even at the cost of fewer total activities being assigned. The suggestions listed also helps to set up a routing plan to minimize travel more aggressively.
- Maximize activities per resource ratio—Outcome focuses on assigning activities to fewer resources, leaving some of them completely free if possible. This option is recommended if there more field resources in the bucket that are needed for today and user would like to transfer resources to another bucket for some time. The suggestions listed also helps to set up a routing plan to minimize number of assigned resources.
- Reduce activities overdue—If moving the activities between resource routes is ON, the routing plan will only start if there are activities to be processed with high or highest overdue penalty and actually assigned with overdue and the results are applied only if the resulting overdue was decreased by given percentage. The suggestions listed helps to set up a routing plan to minimize number of activities having overdue and total overdue value.
Key Resources
Multi Language Support for Reports
With release 18D, reports in Oracle Field Service Cloud have been enhanced to support multi language translations..
MULTI LANGUAGE SUPPORT FOR REPORT COLUMNS
Column names are available for translation:
Report Name |
Old Column Name |
New Column Name |
---|---|---|
Activities by status | Activity final status |
Final status |
Type prework |
Prework |
|
Type regular |
Regular |
|
Type reopened |
Reopened |
|
Average travel time |
Provider name |
Resource name |
Average Travel Time (min) |
Average Travel Time, minutes |
|
In Time/Late/Early activities |
Provider |
Resource |
Total number of appts |
Total number of activities |
|
Started In Time % |
% of Started In Time |
|
Started Late % |
% of Started Late |
|
Started Early % |
% of Started Early |
|
Not started % |
% of Not Started |
|
% Cancelled |
% of Canceled |
|
Inactive users |
Days since last login |
Days since the last login |
Last message window size |
Size of window (min) |
Size of window, minutes |
Provider name |
Resource name |
|
% Activated |
% of Activated |
|
% Completed |
% of Completed |
|
Route Statistics |
Average number appts per route |
Average number of activities per route |
Summary time spent on appts (hrs) |
Summary time spent on activities, hours |
|
Route time parameters |
Provider |
Resource |
Length of day |
Day length |
|
Routing Report |
Travel (mins) |
Travel, minutes |
Work (mins) |
Work, minutes |
|
Overtime (mins) |
Overtime, minutes |
|
Idle Time (mins) |
Idle Time, minutes |
|
Transferred Calls |
Before Start Route |
Before Route Start |
After Start Route |
After Route Start |
|
Total Count |
Total |
|
Travel Statistics |
From |
Start Location |
To |
End Location |
|
Dev |
Deviation |
|
Work Order Statistics |
Provider |
Resource |
Total number of appts |
Total number of activities |
|
% Completed |
% of Completed |
|
Avg time to complete (min) |
Average time to complete, minutes |
|
Work Statistics |
Appointment Key |
Activity Key |
Avg |
Average |
|
Dev |
Deviation |
|
LevelInfo |
Level Info |
NOTIFICATION SUMMARY REPORT FILTER REMOVAL
In Notification summary report, the "Date of" (Message) option has been removed.
Notification Summary Report With Date of Filter Field:
Notification Summary Report Showing Date of Filter Field
Notification Summary Report Without Date of Filter Field:
Notification Summary Report After Removing Date of Filter Field
This feature also includes the following changes in the Schedule Report and Configuration History reports:
- Changes to the Schedule report:
- Time from field is now renamed as start time
- Date start field is now renamed as start date
- Date end field is now renamed as end date
- The value in the start time field will be updated based on the label defined in the glossary for the corresponding field
- The value in the start date and end date fields will be updated based on the labels defined in the glossary for the corresponding fields
- Changes to the Configuration History report:
- When there is a change in launch condition of message scenario, the Configuration History report reflects changes in message launch conditions. The message "The scenario will be launched when" is now "Launch condition for scenario".
Steps to Enable
No steps are required to enable this feature.
Key Resources
Configuration History Report Improvements
With release 18D, improvements have been made to the Configuration History Report for easy use. The following fields will be included in the Configuration History report now:
- Work skill in Capacity category
- Work skill in Work Skill Groups
- Shifts/Non-working Time in Work Schedules
The following changes will be made to the Configuration History report for entries corresponding to certain selected screens:
- Earlier, in some cases, the Element field was ambiguous and did not display the actual Element that was modified. Element field will now be clearer by showing the exact Element that was modified. For example 'Work Skill: <label/ID>' will be displayed in place of the earlier 'Category: Work Skill: Name'
- For names of Fields, the Element used to display the language. Now, the language will appear within the label of the Old Value/New Value between parentheses. For example: Name (English): Activity
- Multiple or duplicate entries have been removed, the field will display only the required information.
- During deletion, only relevant entries will be displayed.
- Wherever Labels and IDs are available, the field will display them under the Element and the Value columns (if applicable) in the format Label/ID.
The above changes will be reflected for entries corresponding to the following screens/modules:
- Visit bundling keys
- Custom Map layers
- Activity Search Fields
- Inventory Search Fields
- Work skill in Capacity category
- Time slots in Capacity Category
- Capacity Categories
- Work Skills
- Work Skill Groups
- Work skill in Work Skill Groups
- Work Schedule
- Non-working reason
- Shifts/Non-working Time in Work Schedules
- Properties
- Inventory Types
- Glossary
- Display
- Themes
- Filters
- Filter Conditions
- Organizations
- Login Policies
- Display Profile
Steps to Enable
No steps are required to enable this feature.
Key Resources
---

Copyright © 2018, Oracle and/or its affiliates. All rights reserved.
This document is provided for information purposes only, and the contents hereof are subject to change without notice.This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document, and no contractual obligations are formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without our prior written permission.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation.All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.
