SOAP 3 Documentation
Contents |
The Yiguiroo SOAP 3 API
The API has been developed as a SOAP XML Web Service, which means it is based on a widely supported standard, and is supported by many languages and operating systems. Most developer environments, such as Microsoft's Visual Studio, and IBM's Eclipse-based Developer Environments, directly support Web Service integration. Depending on the sophistication of the client's system, a module can be written and linked to the system, allowing it direct communication with Yiguiroo. Alternatively, a stand-alone application can be built to act as a go-between, transferring data between Yiguiroo and the existing client software (job management application, sales program, accounting software, etc).
The SOAP 3 API is an external interface which allows authorized users to directly connect their system to the TALC system. The interface allows jobs to be created, updated, dispatched, progressed and completed. In addition, it also allows for the creation and maintenance of customer, resource, and employee data.
TALC has also developed the CallBack Interface. This interface is a WSDL (Web Services Descriptor Language) file, which describes a Web Service interface that clients may implement for themselves on there own systems. Once implemented, the interface can be registered on Yiguiroo SOAP API by calling the Register method, and passing in the URL of the CallBack interface. By registering the interface on Yiguiroo, Yiguiroo is then able to send real-time updates of job events to the CallBack interface. This will give the client system up-to-the-second monitoring of job progression and field worker events.
If you have further questions, you could try looking at the Frequently Asked Questions page which may answer your query. Otherwise, please contact your local sales representative for further information.
Best Practises
- The SOAP API is a request and response system, which means that while you can create new jobs, or update the details of an existing job, by default you will not receive notifications about the change of details to existing data on the service.
- To check for changes of state of a set of jobs, you must poll the server regularly for the summaries of the jobs you are interested in. See getJobSummaries.
- Polling should be performed no more than once per minute, to avoid over loading the server.
- Jobs where the status has changed can also be retrieved by using the getUnsynchronisedJobs and ackJobSynchronisation methods. Simply AckSynch the jobs you are interested in, and then get Unsynched Jobs. Each time the job is updated, it will also become unsynched, and thus be returned by the get unsynched method, with full details.
- The sync methods can also be used to store additional external data related to jobs, customers and resources. For example, this can be used to mark a specific job as having been invoiced by the external system.
- If realtime job status monitoring is required, Yiguiroo does have the capability to call specific Yiguiroo-defined functions on external web services, passing across job status updates in real time. This functionality requires the Call Back Interface to be appropriately implemented and then registered with Yiguiroo. Please contact your local sales representative for further information.
The Interface Definition
Below are listed the various functions that make up the SOAP 3 API. Each function is called, passing in at least one parameter, a UserIDBean. This bean contains the user name and password of a previously registered Yiguiroo User, with administrative rights. This ensures only authorized users are able to access the interface.
Please select a link to see documentation on each method's function and features.
Job Creation and Management Functions
Method | Summary |
---|---|
createJob | Creates a new job based on the job data passed in. |
updateJob | Updates an existing job, based on the data passed in. Does not apply to Verizon Wireless Cellphones. |
progressJobStatus | Moves a job forwards through its logical state transitions. Does not apply to Verizon Wireless Cellphones. |
onHoldJob | Places a started job on hold. |
resumeJob | Resumes a job previously placed on hold. |
recallJob | Recalls a job previously dispatched to a field worker. Optionally forces return even after the job has been started. |
confirmJobRecall | Forces completion of the recall, even if the field worker has not confirmed job recall. |
cancelJob | Cancels an existing job. |
dispatchJob | Sends the job to the specified field worker. |
getJobSummary | Retrieves a quick summary of the job, its status, and the customer details. |
getJobSummaries | Retrieves a series of summaries of requested jobs, their status, and their customer details. |
getJobSummariesBetween | Retrieves all job summaries where the job moved from one state to another state (ie. an event occurred) within the specified time period. In general, it is a useful method for finding all jobs that were created, dispatched, or completed within a particular time frame. |
getJobSummariesBetweenStatusAfterPK | Retrieves a summary of every job who's status lies between status A and status B, inclusive and who's primary key lies after the passed key. |
getJobDetail | Retrieves the full job details for the specified job. |
getJobDetails | Retrieves the full job detail for each of the specified jobs. |
getJobDetailsBetween | Retrieves the full job details for all jobs whose Event fell between the two specified dates. |
getJobDetailsByExternalRef | Retrieves the full job details for the specified job whose external reference matches the passed in value. |
getJobAttributeNames | Retrieves the list of all job custom attributes. |
getJobTypeNames | Retrieves the list of all job types. |
getUnsynchronisedJobs | Retrieves all jobs which have not previously been synchronized and acknowledged, and all jobs that have changed since their last synchronization |
ackJobSynchronisation | Acknowledges that synchronisation has been performed on the selected jobs. |
getJobsBySynchronisation | Retrieve the job(s), referenced by the ID of the job(s) in the external application data to which they are synchronized to, from the job synchronization table. If the afterPK parameter is not null, the job record(s) retrieved must have a PK greater than that value. |
Customer Management Functions
Method | Summary |
---|---|
createCustomer | Creates a new customer based on the customer data passed in. |
getCustomerDetail | Gets the full set of details for a customer, specified by the customer's primary key. |
getCustomerDetailByExternalRef | Gets the full set of details for a customer, specified by the customer's external ref field. |
getCustomerDetailsUpdatedSince | Gets all customer details for all customers who have had details updated since a specified date and time. |
updateCustomer | Updates a customer with new detalis. |
deleteCustomer | Marks a customer as deleted. |
getCustomerAttributeNames | Gets a list of all custom customer attroibute names. |
getUnsynchronisedCustomers | Gets the details of all customers who have not been acknowledged as synchronized, and all customers who have been updated since being acknowledged as synchronized. |
ackCustomerSynchronisation | Acknowledges all specified customers as having been synchronized. |
getCustomersBySynchronisation | Retrieve the customer(s), specified by the ID of the customer(s) in the external application data to which they are synchronized to, from the customer synchronization table. If the last parameter, i.e. afterPK, is not null, the customer record(s) retrieved must have a Primary Key greater than the afterPK. |
User Management Functions
Method | Summary |
---|---|
createUser | Creates a new user based on the user data passed in. |
getUserDetail | Gets all the details of a specified user. |
updateUser | Updates a particular user with new details. |
updateUserPassword | Updates a user's password. |
deleteUser | Deletes an existing user. |
getUnsynchronisedUsers | Retrieves all users who have not previously been synchronised and acknowledged, and all users that have changed since their last synchronisation. |
ackUserSynchronisation | Acknowledges that synchronisation has been performed on the selected users. |
getUsersBySynchronisation | Retrieve the user(s), specified by the ID of the user(s) in the external application data to which they are synchronised to, from the user synchronisation table. If the last parameter, i.e. afterPK, is not null, the user record(s) retrieved must have a Primary Key greater than the afterPK. |
Field Device Management Functions
Method | Summary |
---|---|
createFieldDevice | Creates a new field device based on the field device data passed in. |
getFieldDeviceDetail | Gets the full set of details for a specified field device. |
getFieldDeviceDetails | Gets the full set of details for all specified field devices. |
getFieldDeviceDetailsUpdatedSince | Gets the full set of details for all field devices that have been updated since the specified date and time. |
updateFieldDevice | Updates a field device with new details. |
deleteFieldDevice | Marks a field device as deleted. |
getFieldDevicePKForName | Gets the primary key of a field device, based on the name passed in. |
getFieldDevicePKForDeviceID | Gets the primary key of a field device, based on the device id passed in. |
Resource Management Functions
Method | Summary |
---|---|
createResource | Creates a new resource based on the resource data passed in, and attachs it to the specified resource group. |
getResourceList | Gets the full list of all resources stored for this organisation. |
getResource | Gets the full details of a single resource. |
getResourcesUpdatedSince | Gets the full details of all resources updated since the specified date and time. |
deleteResource | Marks a specific resource as deleted. |
getUnsynchronisedResources | Retrieves all resources which have not previously been synchronised and acknowledged, and all resources that have changed since their last synchronisation. |
ackResourceSynchronisation | Acknowledges that synchronisation has been performed on the selected resources. |
getResourceGroups | Gets a list of all resource group names. |
createResourceGroup | Creates a new resource group. |
deleteResourceGroup | Deletes an existing resource group. |
getResourcesBySynchronisation | Retrieve the resource(s), referenced by the id of the resource(s) in the external application data to which it is synchronised to, from the resource synchronisation table. If the afterPK parameter is not null, the resource record(s) retrieved must have a PK greater than that value. |
Callback Functions
Method | Summary |
---|---|
registerCallback | Register an external interface as a interested receiver of callback events. |
unRegisterCallback | Unregisters an external interface, and deletes all queued up events for that interface. |
getCallbackErrors | Gets a list of all call back errors stored on the server. |
getVersion | Gets the version of this SOAP Interface. |
Failure Objects
Method | Summary |
---|---|
AccessDeniedFailure | Indicates the method was called within an invalid username or password. |
CallbackAlreadyRegisteredFailure | An attempt has been made to register an instance of the callback interface which has already been registered on Yiguiroo. |
CallbackNotRegisteredFailure | An attempt has been made to unregister an instance of the callback interface which is not registered on Yiguiroo. |
CustomerNotFoundFailure | An attempt was made to update or modify a customer's details, but the primary key of the customer was not found on the server. |
CustomerPKMismatchFailure | Indicates the JobCustomerbean contains a CustomerBean whose primary key does not match the Job's customer's primary key. |
ConcurrentUpdateFailure | An attempt was made to update or change something on the server, but the update index passed in does not match the one in the record to be updated. |
FieldDeviceNotFoundFailure | An attempt was made to reference a particular field device, but the primary key does not match any field devices located on the server. |
IllegalEscapeSequenceFailure | Indicates that the escaped "wild card" values passed in were not valid for the method called. |
InvalidCallbackVersionFailure | Indicates that the specified version of the callback interface instance, is not a valid CallbackVersion. |
JobNotFoundFailure | An attempt was made to progress/update/modify a job, but the primary key or External ID was not found on the server. |
ResourceGroupExistsFailure | An attempt was made to create a resource group which already exists on the server. |
ResourceGroupNotFoundFailure | An attempt was made to modify or delete a resource group, but the name of the resource group was not found on the server. |
ResourceNotFoundFailure | An attempt was made to update or modify a resource's details, but the name of the resource was not found on the server. |
TooManyFailure | Indicates there are too many records to be returned, and includes the max number of records that can be returned. |
UnknownJobStatusProgressionFailure | Indicates a invalid JobStatus field was passed in, please ensure you only use fields from this enumeration. |
UserNotFoundFailure | An attempt was made to update or modify a user's details, but the primary key of the user was not found on the server. |
ValidationFailure | A complex structure of nested arrays of errors, indicating data passed into a method did not match certain criteria for validation. |
Constants and Enumerated Values
Method | Summary |
---|---|
JobStatus | The list of possible states a job may be in, or progressed to. |
JobStatusEvent | The list of possible events that may occur, causing a job to change its state. |
ConcurrentUpdateSource | The list of possible sources for a concurrency problem. |
CancelState | The list of possible cancel states a job can be in. |
CallbackVersion | The list of possible versions an external callback interface could implement. |
NADSWebserviceVersion | The list of possible interface versions that can be used to communicate with Yiguiroo. |
SOAP 3 Example Code
We have prepared a sample application and source code to aid in learning to use the SOAP API. Contact your local sales representative for assistance.
Further Help
Details about our system can be found at https://americantimeandlaborcompany.com or https://californiatimeandlaborcompany.com
If you have further questions, you could try looking at the Frequently Asked Questions page which may answer your query.