Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 3 Next »

5.4.0

A pass-through API to ServiceScheduling (when configured) which allows the ServiceScheduling's "Book Dependency Group Jobs" API to be called.

Description

The sp:BookDependencyGroupRequest API method allows dependencies to be defined between pairs of jobs. In most cases, the normal job data for each job (JobID, access hours, etc. - the data supplied in Book Non-Appointment Job API) is supplied along with the dependencies, but it is also possible to supply dependencies between jobs that are already in the ServiceOptimizer database.

The set of dependencies between pairs of jobs are contained in a sequence of SP_JobDeps:

#define     SP_CostIDSize      10

typedef     char SP_CostID     [SP_CostIDSize  +1];

In this context, the ServiceScheduling "Book Dependency Group Jobs" API is the sp:BookDependencyGroupRequest API.

On this page:

Related pages:

Resource URL Summary

Pass Through Call to ServiceScheduling's "Book Dependency Group Jobs" API

PUT /up/v5/rest/scheduling/BookDependencyGroup

HTTP Headers

This API uses the standard ServiceBroker HTTP Headers.


API Specifics

Pass Through Call to ServiceScheduling's "Book Dependency Group Jobs" API

This RESTified API will perform a pass-through call to the ServiceScheduling sub-system's "Book Dependency Group Jobs" API (when configured).

URL

PUT /up/v5/rest/scheduling/BookDependencyGroup

HTTP Request Body

This request requires a JSON object supplied in the HTTP request body, which defines the parameters that will be passed through to the ServiceScheduling "Book Dependency Group Jobs" APi.

BookDependencyGroupJobs Object Format

BookDependencyGroupJobs JSON
{
    "Id": "DepGroup1306",
    "BookOptions": {
	 	"AllowRebookAll": false,
        "DontCancelCleared": false,
        "DontCancelLoggedOff": false,
		"DontCancelLoggedOn": false
    },
    "DepGroup": {
        "DepId": "Dep-1306",
        "DepTime": "ETA",
        "TargetId": "Dep-1307",
        "TargJobsTime": "ETA",
        "DepEmpType": "none",
        "targJobsTime": "ETA",
        "earliestTime": "30",
        "earliestTimeUnits": "mins",
        "latestTime": "30",
        "latestTimeUnits": "mins",
        "targetTime": "0",
        "targetTimeUnits": "mins",
        "costID": "diff"
    },
    "WorkItems": [
        {
            "Id": "Dep-1306",
            "Priority": "50",
            "WorkType": {
                "Name": "M60",
                "Skills": [
                    {
                        "Id": "SK001",
                        "Comp": "1"
                    },
                    // ...
                ]
            },
            "Location": {
                "Address": {
                    "PostalCode": "DE3 9",
                    "latitude": "46.335395",
                    "Longitude": "5.122205"
                },
                "SiteId": "site 11"
            },
            "Flags": {
                "AllowRebook": true,
                "IsPrimary": "true"
            },
            "BookOptions": {
                "AllowEmpOT": true,
                "SpareIgnVanStock": false,
                "ServAsAccHours": true,
                "FixToEmp": false,
                "CallToFix": false,
                "ReqConfirm": false,
                "NonConsecShift": false,
                "ConsecShift": false,
                "ContigShift": false
            },
            "ExtraDuration": 10,
            "ReqProvider": [
                {
                    "Id": "DE7_4_01",
                    "MPX": "Mandatory"
                }
            ],
            "Booking": {
                "ContractLatest": "2006-03-31T23:59",
                "Offer": {
                    "GroupId": "group2006"
                }
            },
            "ForceOptions": {
                "InTray": false,
                "InTrayWithSkill": false,
                "InTrayAfterAll": true,
                "SpareForceGo": false,
                "Reassign": false,
                "IgnoreCapacity": false,
                "NoTravel": false,
                "NoLocalKnowledge": true
            },
            "ServHoursPreDefPatts": {
                "servHoursPreDef": {
                    "dateRange": {
                        "start": "2006-01-01",
                        "end": "2007-01-01"
                    },
                "servHoursPattID": "1"
            }
        },
	    // ...
    ]
}

BookDependencyGroupJobs Object Properties

PropertyTypeLengthDescriptionReq?
Id

string

SS: JobID (string)

SS: 50

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

Is the identifier (ID) of the dependency group as a whole.  Dependency group IDs have a separate name space from regular job IDs.

SS Field: multiJobID

Yes

BookOptionsobject

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

SS Field: bookOptions

PropertyTypeDescriptionReq?
AllowRebookAllBoolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

When true, if the dependency group identified by MultiJobID is already in the ServiceOptimizer database then that whole dependency group, including all of the jobs in it (subject to the options below), will be cancelled first, after which sp:BookDependencyGroupRequest will work just as it does when AllowRebookAll is not set. This allows both the MultiJobID and all of the JobIDs in the dependency group to be reused. All of the jobs supplied must be in the same FRU as the jobs in the original DG, otherwise SP_DIFFERENT_FRUS (533) is returned.

If AllowRebookAll is set, but the supplied MultiJobID isn’t already in the ServiceOptimizer database, the call will continue (i.e AllowRebookAll is effectively ignored) as long as none of the supplied jobs (in SP_BDGJobSeq) already exist, in which case, SP_JOBID_EXISTS (23) is returned.

When AllowRebookAll is set, sp:BookDependencyGroupRequest is an atomic operation, i.e. it won’t return part way through with the existing dependency group cancelled but its replacement not booked.

If one or more of the existing JobIDs in the dependency group are outside the ServiceOptimizer memory horizon, the dependency group can’t be re-booked and will fail with SP_JOBID_OUTSIDE_HORIZON (626).

SS Field: bookOptions.AllowRebookAll

No

DontCancelClearedBoolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

When true, any jobs in the dependency group/split dependency group whose status is Cleared won’t be cancelled.

SS Field: bookOptions.DontCancelCleared

No

DontCancelLoggedOffBoolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

When true, any jobs in the dependency group/split dependency group whose status is Logged Off won’t be cancelled.

SS Field: bookOptions.DontCancelLoggedOff

No

DontCancelLoggedOnBoolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

When true, any jobs in the dependency group/split dependency group whose status is Logged On won’t be cancelled.

SS Field: bookOptions.DontCancelLoggedOn

No


DepGroupobject

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

PropertyTypeLengthDescriptionReq?
DepId

string

SS: JobID (string) 

SS: 50

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API.

Job ID of the ‘dependent’ job (ie parts pickup or helper call). 

SS Field: jobDep.depJobID

Yes

DepTime

string

SS: DepTimeType (string)


SS: See Valid Values

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API.

What part of the ‘dependent’ job is of consequence to the relationship.

SS Field: jobDep.depJobsTime

SS Valid Values: "ETA", "ETF"

Yes

TargetId

string

SS: JobID (string)

SS: 50

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

The job ID of the regular job.

SS Field: jobDep.targJobID

Yes

DepEmpType

string

SS: DepEmpType

SS: See Valid Values

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

What is the relationship for the employee requirements for the target and dependent job.

SS Field: jobDep.depEmpType

SS Valid Values: "none", "same", "diff"


targJobsTime

string

SS: DepTimeType


SS: See Valid Values

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

What part of the regular job is of consequence to the relationship.

SS Field: jobDep.targJobsTime

SS Valid Values: "ETA", "ETF"

Yes

earliestTime

string

SS: integer


Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

What is the maximum time difference there should be between the DepJobsTime and TargetJobsTime.

SS Field: jobDep.earliestTime






Please Note:

Each pairing of earliestTime/earliestTimeUnitslatestTime/latestTimeUnits and targetTime/targetTimeUnits is optional, but at least one pairing must be specified.

earliestTimeUnits

string

SS: DepUnits


SS: See Valid Values

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

What is the Unit of the above time.  If zero then any unit can be supplied.

SS Field: jobDep.earliestTimeUnits

SS Valid Values: "mins", "hours", "days"

latestTime

string

SS: integer


Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

What is the minimum time difference there should be between the DepJobsTime and TargetJobsTime.

SS Field: jobDep.latestTime

latestTimeUnits

string

SS: DepUnits

SS: See Valid Values

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

What is the unit of the above.  If zero then any unit can be supplied.

SS Field: jobDep.latestTimeUnits

SS Valid Values: "mins", "hours", "days"

targetTime

string

SS: integer


Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

What is the target difference between depJobsTime and targetJobsTime.

SS Field: jobDep.targetTime

targetTimeUnits

string

SS: DepUnits

SS: See Valid Values

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

What is the unit of the above.  If zero then any unit can be supplied.

SS Field: jobDep.targetTimeUnits

SS Valid Values: "mins", "hours", "days"

costID

string

SS: DepCostID (string)


SS: 10

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

What is the CostID for variances from the TargetTime. If there is no TargetTime no value should be passed (otherwise SP_COSTID_NO_TARGET_TIME (576) is returned).

SS Field: jobDep.costID


Yes

WorkItemsarray

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

PropertyTypeLengthDescriptionReq?
Id

string

SS: JobID (string)

SS: 50

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

SS Field: job.jobID

Yes

Priority

string

SS:Priority (unsigned integer)



Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

is used to determine the cost of the job being overdue. The ABS and the optimizer will normally cost the lateness of a high priority (SLA) job higher than a low priority job. This should have the effect of making it less likely that a high priority job will be significantly overdue (late). (Lateness is the amount by which a job’s scheduled start time (or finish time in the case of call-to-fix jobs – see callToFix, in the BookOptions below)) exceeds its time.  Must be set to value between 1 and 99.

SS Field: job.priority

No

WorkTypeobjectmax 100000

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

PropertyTypeLengthDescriptionReq?
Name

string

SS: JobTypeID

SS: 30

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

Must be one of the job types (aka task codes) set up in ServiceOptimizer.

SS Field: job.jobType

Yes

Skills

array

SS: ReqSkills


Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

PropertyTypeLengthDescription
IdstringSS: 30

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

SS Field: skillID

Comp

string

SS: unsigned integer


Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

SS Field: skillLevel


Yes

Locationobject
PropertyTypeLengthDescriptionReq?
Addressobject
PropertyTypeLengthDescriptionReq?
PostalCode

string

SS: postcode

SS: 30

SM: 10

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

Is the full post code of the location of the job.

SS Field: postcode

Yes

Latitude

string

SS: double


Is the latitude of the location of the job, format length 18 with max 9 decimal places. If postcode is ‘UNKNOWN’ then latitude and longitude are used to create a named place for the job. Such named places will NOT be visible on a ServicePlanner map.

 SS Field: latitude

No

Longitude

string

SS: double


Is the longitude of the location of the job, format length 18 with max 9 decimal places

SS Field: longitude

No

Yes

SiteId

string

SS: SiteID


SS: 20

Each job can optionally have a Site Identifier.  ServiceOptimizer will attempt to schedule jobs with the same SiteIDs: (a) consecutively, so that there’s zero travel time between them, and (b) with the overhead time (from the Job Type and the supplied ExtraOverhead) removed from all but the first of them.  ServiceOptimizer treats the SiteID as an opaque value that it uses only to group jobs together.

SS Field: siteID

No

Yes

Flagsobject

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

PropertyTypeDescriptionReq?
AllowRebookBoolean

Jobs of long duration cannot be rebooked – if this field is true, and the JobID already exists and is a long job, then SP_MULTIJOBID_ALREADY_EXISTS (539) will be returned

For all other jobs, if this field has the value SP_True, the call to JobBookRequest will not fail if the JobID already exists in the ServiceOptimizer database. Instead, the existing job is deleted and replaced by this one. If AllowRebook is set and the job doesn’t already exist, the JobBookRequest call continues anyway.

SS Field: allowRebook

No

IsPrimaryBoolean

Is this the job fromwhich the dependencies should be taken?

SS Field: isPrimaryJob

Yes

Yes

BookOptionsobject

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

PropertyType

Description

Req?

AllowEmpOTboolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

The employees’ maximum allowed overtime should be included when making appointment offers.

SS Field: bookOptions.AllowEmpOT

No

SpareIgnVanStockboolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

The spareIgnVanStock option indicates to ServiceOptimizer that vehicle stock should be ignored when generating appointments. Any ReqSpares data supplied as part of the offer request will still be read in by ServiceOptimizer, but SP_SPAREID_INVALID (111) will not be returned if any of the supplied ReqSpares is not in the ServiceOptimizer database.

If spareIgnVanStock is set then the SpareForceGo (see ForceOptions) flag will be ignored.

SS Field: bookOptions.SpareIgnVanStock

No

ServAsAccHoursboolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

This option makes the job’s access hours pattern the same as its service hours pattern. (If an access hours pattern is also supplied in an AccHoursPatts structure, SP_ACCHOURS_DUPLICATED (390) will be returned.

SS Field: bookOptions.ServAsAccHours

No

FixToEmpboolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

This option will cause the chosen operative to effectively become mandatory.

SS Field: bookOptions.FixToEmp

No

CallToFixboolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

This option specifies that the job’s ETF will be used instead of its ETA to calculate its lateness (using its Service Hours), and will be used as well as its ETA to determine if it’s outside its access hours.

SS Field: bookOptions.CallToFix

No

ReqConfirmboolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

This option will indicate on the Gantt that this job should be confirmed.

SS Field: bookOptions.ReqConfirm

No

NonConsecShiftboolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

Allows the use of non-consecutive shifts (as well as allowing contiguous and consecutive shifts) for splitting long duration jobs.

SS Field: bookOptions.NonConsecShift

No

ConsecShiftboolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

This option requests the use of consecutive shifts (as well as allowing contiguous shifts) for splitting long duration jobs.

SS Field: bookOptions.ConsecShift

No

ContigShiftboolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

This option requests the use of only contiguous shift time splits for long duration jobs.

SS Field: bookOptions.ContigShift

No

No

ExtraDurationinteger

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

Is the time (in minutes) required to complete the job in addition to what is defined in ServiceOptimizer for this job type. The maximum value which will be accepted for this field plus ExtraOverhead (below) is specified by the SJEDMax database parameter. The maximum total duration for the job is specified by the SJTDMax database parameter.

SS Field: extraDuration

No

ReqProviderarray

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

Allows for a list of up to 10 reqEmps to be specified. 

PropertyTypeLengthDescriptionReq?
Id

string

SS: EmpID

SS: 25

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

Names preferred, mandatory or excluded operatives for this job.

SS Field: ListReqEmps.empID

Yes

MPXstringSS: See Valid Values

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

  • Must do the job (i.e. Mandatory, or M);
  • Are Preferred (or P) to do the job; or
  • Must not do the job (i.e. Excluded, or X).

Accordingly, the Mandatory, Preferred and Excluded options are referred to simply as MPX.

SS Field: ListReqEmps.MPX

SS Valid Values: "None", "Preferred", "Mandatory","PreferredOrdered", "MandatoryOrdered", "MandatoryNot","MAX"


Yes

No

Bookingobject
Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 


PropertyTypeLengthDescriptionReq?
ContractEarliest

string

SS: spDateTime

SS:16

Is the earliest time that the job should be started (ETA). If  ContractEarliest is not supplied, then ContractEarliest will be defaulted to <now>

Example: "2023-03-30T14:15"

No

ContractLatest

string

SS: spDateTime

SS: 16

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

Is the time by which the job should either be started (ETA) or completed, depending on the value of callToFix. 

Example: "2023-03-30T14:15"

SS Field: contractLatest

Yes

Offerobject
PropertyTypeLengthDescription
GroupId

string

SS: GroupID (string)

SS: 30

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

SS Field: groupID

?????

Yes

ForceOptionsobject
Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 


PropertyType

Description

Req?

InTrayBoolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

A ‘catch all’ option to by-pass all constraint checking. The job is not even provisionally allocated to an operative, but remains in an in-tray until it is either manually allocated or another attempt is made to allocate it through the ABS. Both of these operations are done from the Gantt. The job will only be put into the in-tray of one of the FRUs that is mapped to the job’s location (region). Exactly which FRU is undefined, but it won’t be put into an FRU with no posted operatives.

If a mandatory FRU is supplied, the job will be booked into that FRU. If a mandatory DRU is supplied, the job will be booked into an FRU in that DRU.

If one or more mandatory Employees are supplied, but no mandatory FRU or DRU, the job will be booked into an FRU where one of those Employees has a posting (during the memory horizon) to one of the FRUs mapped to the job’s location.

If one or more mandatory Employees are supplied as well as a mandatory FRU, the job will be booked into that FRU as long as at least one of those Employees has a posting to that FRU at some time during the memory horizon.

If one or more mandatory Employees are supplied as well as a mandatory DRU, the job will be booked into an FRU in that DRU as long as at least one of those Employees has a posting to that FRU at some time during the memory horizon.

SS Field: forceOptions.InTray

No

InTrayWithSkillBoolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API.

Is another option to by-pass constraint checking, though the job will still only be put into the in-tray of one of the FRUs that is mapped to the job’s location (region). However, a skills check is done when placing the job: If there is one FRU containing an employee with the skills to do the job at some time during the SLA Search Window (see 6.6), even if that employee is not available, then the job will be put into that FRU’s in-tray. If there is more than one FRU, the one with the (numerically) lowest preference factor will be chosen. If there is more than one FRU with the same preference factor, one of them will be chosen, but which one chosen is undefined. If one or more mandatory employees are supplied, they will be stored but otherwise ignored. If a mandatory FRU is supplied it will be ignored (and not stored). If a mandatory DRU is supplied, it will be ignored.

SS Field: forceOptions.InTrayWithSkill 

No

InTrayAfterAllBoolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

First attempts to allocate the job in the normal way. If this isn’t possible, and neither a mandatory DRU nor a mandatory FRU nor mandatory employees are supplied, the job is booked into an FRU where, during the SLA Search Window, there is at least one employee with the skills to do the job (similar to InTrayWithSkills). The Gantt can then be used to try to allocate it, either manually or through the ABS again.

If a mandatory FRU is supplied in ReqUnitType, UnitType and Unit, then the job will be put into that FRU’s in-tray as long as there is an employee in that FRU with the required skills during the SLA Search Window (though he may not be available). If this is not the case, SP_UNIT_INVALID (28) is returned.

If a mandatory DRU is supplied, the job will be put into the in-tray of one of the FRUs in that DRU as long as there is an employee in that FRU with the required skills during the SLA Search Window (though he may not be available). If this is not the case, SP_UNIT_INVALID (28) is returned.

If one or more mandatory employees are supplied in ReqEmpType and EmpID, a check will be made that one of them has the skills to do the job (at some time during the SLA Search Window), and the job will be put into the in-tray of the FRU where one of those employees is working. If none of them have the skills, SP_EMP_NOT_SKILLED (75) will be returned. If the employee is working in more than one FRU, the job will be put into the in-tray of the FRU with the (numerically) lowest preference factor. If there is more than one FRU with the same preference factor, then which of those is chosen is undefined.

If both a mandatory FRU and one or more mandatory employees are supplied, and the employees aren’t posted to the FRU at any time, the job will be put into the in-tray for the mandatory FRU as long as, during the memory horizon, there is at least one employee with the skills.

If both a mandatory DRU and one or more mandatory employees are supplied, and the employees aren’t posted to any of the FRUs in that DRU at any time, the job will be put into the in-tray of one of the FRUs in that DRU as long as, during the memory horizon, there is at least one employee with the skills.

In all cases, the job will only ever be booked into an FRU that its location (region) is mapped to.

Note: The 3 In-Tray ForceOptions (above) are mutually exclusive. SP_OPTION_COMBINATION_INVALID (159) will be returned if more than 1 of them is set.

SS Field: forceOptions.InTrayAfterAll

No

SpareForceGoBoolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

Indicates that a job that requires spares should still be allocated even if all of the required spares are not available. This means that if all the spares are available from vehicle stock they may be used, otherwise they need to be sourced externally.

SS Field: forceOptions.SpareForceGo

No

ReassignBoolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

Allows existing jobs to be re-assigned among operatives in an attempt to fit this new job into the schedule. Use of this option will increase response times; this may be controlled by means of the database parameters ABS_reassign_jobs_max, ABS_reassign_options_max, and ABS_reassign_timeout.

SS Field: forceOptions.Reassign

No

IgnoreCapacityBoolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

Indicates that the capacity for every day should be treated as though it was 100%, i.e. the capacity check values set for each day should be ignored.

SS Field: forceOptions.IgnoreCapacity

No

NoTravelBoolean

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

Sets the travel time (travel-to) to zero. i.e. Jobs with “NoTravel” are skipped in travel calculations. Travel time to next location will be based on previous location.

SS Field: forceOptions.NoTravel

No

NoLocalKnowledgebooleanIgnores local knowledge checks in candidate searchesNo


ServHoursPreDefPattsobject

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

Is a set of Service Hours patterns that are pre-defined in ServiceOptimizer.  The same ServHoursPattID must be supplied for each, though the accompanying DateRanges can be different.  The date ranges can be ‘open-ended’ in the sense that either Start or End (or both) may be missing, in which case the Service Hours pattern is assumed to continue ‘for ever’ in the corresponding direction.  ServHoursPreDefPatts can’t be supplied as well as ServHoursPatts.


PropertyTypeLengthDescriptionReq?
servHoursPreDefobject
PropertyTypeDescriptionReq?
dateRangeobject
PropertyTypeLengthDescriptionReq?
start

string

SS: spDate (string)

SS: 8

SS Field: servHoursPreDefPatts.servHoursPreDef.dateRange.start

Example: "2023-03-30"

Yes
end

string

SS: spDate (string)

SS: 8

SS Field: servHoursPreDefPatts.servHoursPreDef.dateRange.end

Example: "2023-03-30"

Yes

Yes


servHoursPattID

string

SS: servHoursPattID (string)

SS: 10

Pass through parameter to the ServiceScheduling "Book Dependency Group Jobs" API. 

SS Field: servHoursPreDefPatts.servHoursPreDefPatts

Yes

No


HTTP Response

Success

On success, a JSON-formatted version of the ServiceScheduling "Book Dependency Group Jobs" API response will be returned.

{
    "Success" : true,
    "Code" : 0,
    "Message" : "OK",
    "Payload" : {
        "result" : {
            "type" : "OK",
            "code" : "0"
        },
        "TravelTime" : "3",
        "WorkItems" : [
            {
                "Id" : "Dep-1306",
                "Tech" : "DE3_9_01",
                "ETA" : "2006-01-03T08:01",
                "IRU" : "EMID_I01",
                "FRU" : "EMIDLAND"
            },
            {
                "Id" : "Dep-1307",
                "Tech" : "DE3_9_01",
                "ETA" : "2006-01-03T09:02",
                "IRU" : "EMID_I01",
                "FRU" : "EMIDLAND"
            }
        ]
    }
}

Error

On error, a JSON-formatted version of the ServiceScheduling "Book Dependency Group Jobs" API response will be returned.

{
    "Success": false,
    "Code": 9,
    "Payload": {
        "returnCode": {
            "type": "Error",
            "code": "SCH Error Code"
        }
    }
}

Return Codes

In addition to the Standard Return Codes, the possible Return Codes from this API are:

 Click here to expand...
  • SP_OK (0)
  • SP_JOBID_INVALID (1)
  • SP_JOBTYPE_INVALID (2)
  • SP_POSTCODE_INVALID (3)
  • SP_LOCATION_INVALID (4)
  • SP_EMPID_INVALID (5)
  • SP_NO_TIME_AVAILABLE (8)
  • SP_DURATION_INVALID (12)
  • SP_DATE_INVALID (14)
  • SP_EMP_UNAVAILABLE (21)
  • SP_JOBID_EXISTS (23)
  • SP_SKILL_INVALID (27)
  • SP_UNIT_INVALID (28)
  • SP_END_NOT_GT_START_TIME (31)
  • SP_SKILLLEVEL_INVALID (32)
  • SP_CANNOT_FORCE_SKILL (33)
  • SP_JOBTYPE_NOT_IN_DATE (49)
  • SP_JOBTYPE_CANNOT_BE_FORCED (51)
  • SP_OUTSIDE_HORIZON (53)
  • SP_EXTRA_DURATION_INVALID (54)
  • SP_REQTYPE_INVALID (74)
  • SP_EMP_NOT_SKILLED (75)
  • SP_UNITTYPE_INVALID (77)
  • SP_OPTIONS_INVALID (80)
  • SP_PRIORITY_INVALID (81)
  • SP_ALLOWREBOOK_INVALID (87)
  • SP_EMPSMAX_EXCEEDED (88)
  • SP_EMPID_DUPLICATED (89)
  • SP_CUSTID_INVALID (95)
  • SP_CUSTNAME_INVALID (96)
  • SP_CUSTADD1_INVALID (97)
  • SP_CUSTADD2_INVALID (98)
  • SP_CUSTADD3_INVALID (99)
  • SP_CUSTADD4_INVALID (100)
  • SP_CONTACTNAME_INVALID (101)
  • SP_CUSTPHONE1_INVALID (102)
  • SP_CUSTPHONE2_INVALID (103)
  • SP_DESC1_INVALID (104)
  • SP_DESC2_INVALID (105)
  • SP_DESC3_INVALID (106)
  • SP_DESC4_INVALID (107)
  • SP_SPAREID_INVALID (111)
  • SP_QUANTITY_INVALID (112)
  • SP_NO_REG_TO_RU_MAPPING (115)
  • SP_EXTRASKILL_DUPLICATED (118)
  • SP_JOBSKILLSMAX_EXCEEDED (119)
  • SP_SPARE_SUBS_EXCEEDED (147)
  • SP_FORCEOPTIONS_INVALID (150)
  • SP_EMP_ZERO_LK (155)
  • SP_NO_SKILL (156)
  • SP_OPTION_COMBINATION_INVALID (159)
  • SP_EMP_NOT_POSTED (178)
  • SP_POSTCODE_NOT_MAPPED (179)
  • SP_EMPID_DOES_NOT_EXIST (231)
  • SP_SPARE_SUB_DUPLICATED (254)
  • SP_IMPORTANCE_INVALID (287)
  • SP_DELIVERY_SIZE_INVALID (333)
  • SP_PICKUP_SIZE_INVALID (334)
  • SP_DESCRIPTION2_INVALID (335)
  • SP_OK_IMPORTANCE_IGNORED (346)
  • SP_OK_ABS_SEARCH_TIMEOUT (369)
  • SP_NTA_ABS_SEARCH_TIMEOUT (370)
  • SP_DST_TIME_INVALID (379)
  • SP_SERVHOURS_DUPLICATED (389)
  • SP_ACCHOURS_DUPLICATED (390)
  • SP_OPEN_ENDED_ACCHOURS_NOT_ALLOWED (391)
  • SP_DOTW_INVALID (394)
  • SP_GRACE_PERIOD_INVALID (395)
  • SP_SERVHOURS_STARTTIME_INVALID (397)
  • SP_SERVHOURS_ENDTIME_INVALID (398)
  • SP_SERVHOURS_OVERLAP (399)
  • SP_SERVHOURS_STARTDATE_INVALID (400)
  • SP_SERVHOURS_ENDDATE_INVALID (401)
  • SP_SERVHOURSPATTSEQ_PATTS_NULL (403)
  • SP_SERVHOURSPREDEFPATTSEQ_PATTS_NULL (405)
  • SP_SERVHOURS_PATTID_INVALID (406)
  • SP_SERVHOURS_PATTID_DOES_NOT_EXIST (407)
  • SP_DAYANDTIMEPERIODSEQ_PERIODS_NULL (410)
  • SP_ACCHOURS_STARTTIME_INVALID (411)
  • SP_ACCHOURS_ENDTIME_INVALID (412)
  • SP_ACCHOURS_OVERLAP (413)
  • SP_ACCHOURS_STARTDATE_INVALID (414)
  • SP_ACCHOURS_ENDDATE_INVALID (415)
  • SP_ACCHOURSPATTSEQ_PATTS_NULL (417)
  • SP_SERVHOURSPATTSEQ_SIZE_INVALID (418)
  • SP_DAYANDTIMEPERIODSEQ_SIZE_INVALID (419)
  • SP_SERVHOURSPREDEFPATTSEQ_SIZE_INVALID (420)
  • SP_ACCHOURSPATTSEQ_SIZE_INVALID (421)
  • SP_SERVHOURSPATTSEQ_NOT_SAME (429)
  • SP_DATETIMERANGESEQ_RANGES_NULL (431)
  • SP_DATETIMERANGESEQ_SIZE_INVALID (432)
  • SP_OPENHOURSOVRTYPE_INVALID (433)
  • SP_OPENACCHOURSOVR_START_INVALID (434)
  • SP_OPENACCHOURSOVR_END_INVALID (435)
  • SP_OPENACCHOURSOVR_END_NOT_GT_START (436)
  • SP_CLOSEDACCHOURSOVR_START_INVALID (437)
  • SP_CLOSEDACCHOURSOVR_END_INVALID (438)
  • SP_CLOSEDACCHOURSOVR_END_NOT_GT_START (439)
  • SP_CONTRACT_EARLIEST_INVALID (441)
  • SP_CONTRACT_LATEST_INVALID (442)
  • SP_NO_ACCHOURS (443)
  • SP_SERVHOURS_DATERANGE_END_NOT_GT_START (444)
  • SP_SERVHOURS_DATERANGE_OVERLAP (446)
  • SP_SERVHOURSPREDEFPATTSEQ_NOT_SAME (448)
  • SP_CLOSEDDATES_SEQ_SIZE_INVALID (460)
  • SP_CLOSEDDATES_SEQ_DATERANGES_NULL (462)
  • SP_CLOSEDDATES_STARTDATE_INVALID (463)
  • SP_CLOSEDDATES_ENDDATE_INVALID (464)
  • SP_ACCHOURS_DATERANGE_END_NOT_GT_START (465)
  • SP_ACCHOURS_DATERANGE_OVERLAP (466)
  • SP_ACCHOURSPATTSEQ_NOT_SAME (468)
  • SP_CLOSEDDATES_END_NOT_GT_START (470)
  • SP_PRIORITY_NO_COST (475)
  • SP_IMPORTANCE_NO_COST (476)
  • SP_SITEID_INVALID (500)
  • SP_GROUPID_INVALID (501)
  • SP_BDGJOBSEQ_SIZE_INVALID (506)
  • SP_BDGJOBSEQ_JOBS_NULL (508)
  • SP_JOBDEPSEQ_SIZE_INVALID (509)
  • SP_JOBDEPSEQ_JOBDEPS_NULL (511)
  • SP_DEPJOBID_INVALID (512)
  • SP_DEPJOBSTIME_INVALID (513)
  • SP_TARGJOBID_INVALID (514)
  • SP_TARGJOBSTIME_INVALID (515)
  • SP_EARLIESTTIMEUNITS_INVALID (516)
  • SP_LATESTTIMEUNITS_INVALID (517)
  • SP_TARGETTIMEUNITS_INVALID (518)
  • SP_COSTID_INVALID (519)
  • SP_COSTID_DOES_NOT_EXIST (520)
  • SP_DEPEMPTYPE_INVALID (521)
  • SP_TARGET_TIME_BEFORE (526)
  • SP_TARGET_TIME_AFTER (527)
  • SP_CYCLIC_DEPENDENCY_TIME (528)
  • SP_DEPENDENCY_CONSTRAINT (529)
  • SP_DEPJOBID_DOES_NOT_EXIST (530)
  • SP_TARGJOBID_DOES_NOT_EXIST (531)
  • SP_CYCLIC_DEPENDENCY_EMP (532)
  • SP_DIFFERENT_FRUS (533)
  • SP_MULTIJOBID_ALREADY_EXISTS (539)
  • SP_DEPJOBID_ALREADY_IN_GROUP (540)
  • SP_TARGJOBID_ALREADY_IN_GROUP (541)
  • SP_BDGRETJOBSSEQ_NULL (542)
  • SP_NO_POSTINGS (545)
  • SP_MULTIJOBID_INVALID (563)
  • SP_BDGJOBSEQ_DUPLICATE_JOBIDS (564)
  • SP_DEPJOBID_SAME_AS_TARGJOBID (565)
  • SP_JOB_NO_DEPENDENCY (566)
  • SP_NO_DEPENDENCIES (567)
  • SP_LATEST_BEFORE_EARLIEST (572)
  • SP_DEPENDENCY_ON_UNRESOURCED_JOB (573)
  • SP_BDGJOBSEQ_NOT_SAME_ITAA (574)
  • SP_ISPRIMARYJOB_INVALID (575)
  • SP_COSTID_NO_TARGET_TIME (576)
  • SP_CAPACITYCATEGORY_NOT_DEFINED (581)
  • SP_JOBDEPSEQ_DUPLICATE_DEPENDENCIES (601)
  • SP_CAPACITYCATEGORY_DOES_NOT_EXIST (602)
  • SP_CAPACITYCATEGORY_INVALID (603)
  • SP_DIFFERENT_DRUS (621)
  • SP_DRU_NO_FRUS (625)
  • SP_JOBID_OUTSIDE_HORIZON (626)
  • SP_VEHICLE_CAPACITY_EXCEEDED (662)
  • SP_LISTREQEMPS_NULL (684)
  • SP_LISTREQEMPS_SIZE_GT_MAX (685)
  • SP_LISTREQEMPS_SIZE_INVALID (686)
  • SP_LISTREQEMPS_COMBINATION_INVALID (689)
  • SP_UDLOC_FAILED_REGION_MAPPING (692)
  • SP_TOO_MANY_MANDATORYORDERED (694)

  • SP_RESTRICTION_REF_DOES_NOT_EXIST (697)

  • SP_DEPENDENCY_ON_APPOINTMENT_JOB (815)
  • SP_VWDL_COMBINATION_INVALID (822)
  • SP_VWDL_LOCATION_INVALID (823)
  • SP_VWDL_TRAVEL_INVALID (824)
  • No labels