TL;DR - Developer Quickguide and Cheat Sheet¶
Anymate has a lot of features and a lot of documentation. This page tries to compress it all and give you a quick overview, because that is what Anymate is all about.
API¶
The API is quite flexible. You can always find examples for a given process in the Developer Tab. All endpoints have a matching function in the SDK (oftentimes with multiple overloads).
Authentication¶
Authentication is done using the OAUTH2 protocol, with the resource owner password grants flow. In plain terms, you will send a Client Id, your API secret, a username and a password to the /connect/token endpoint, and you will get an access_token back which you then can use to gain access.
Authentication is baked in to all the official Anymate SDKs - currently available in UiPath, .NET and Python - with authentication and credentials being set and forget
.
Ok To Run¶
Used to check if the Mate should start working or not. Look at the boolean OkToRun in the response object, true
means Go and false
means Stop.
StartRun and FinishRun¶
StartRun is used when a Run starts and FinishRun is used when the Run is done. StartRun will ignore if the Process is stopped
Failure¶
Failure is used to report when an unexpected exception happened, outside of working with Tasks. When a Failure happens, the Process is put in a Failure state, making it obvious to the users that a Failure has happened. The Failure is also logged under Process Notifications. The Failure will automatically be removed once another action, e.g. TakeNext or StartRun, happens.
Get Rules¶
Get Rules will get all rules on the Process. Rules are 100% customized, and it is up to the developer how they are used. It is meant to be an easy way to give the business users a place to change variables, without having to ask a Developer for help or requiring a code modification.
Take Next¶
Takes the first Task from the Ready Queue and locks it for other users. If the queue is empty, TaskId is -1. Automatically starts and finishes runs.
Error, Retry, Manual and Solved¶
Error, Retry, Manual and Solved are the 4 endpoints for returning a Task once the Mate is done with it. Usually, they take TaskId, Reason and Comment as arguments.
Error¶
When sending a Task to Error, it is placed in the Manual queue with an Error flag. It is used for when an unexpected exception happen.
Retry¶
If a Task is sent to Retry then it will return to the bottom of the Ready queue.
Manual¶
Tasks sent to the Manual queue are intended for an employee to look at them and decide what to do, as they are - for whatever reason - not possible for the Mate the solve. It is meant to be a result of a business rule, agreed with the business users.
Solved¶
Once a task is Solved, it is locked for future edits.
Create Task¶
Will create a new task in the target process. When submitting a Task to CreateTask, the ProcessKey given is for the target process where you want the Task created. You can - besides the needed fields - add activationDate and comment when creating a new Task.
Create and Take Task¶
Create and Take Task works as a combination of CreateTask and TakeNext. It takes all the same arguments to create a task as CreateTask but it will take the created Task directly, and lock it, returning a Task object in the response.
UpdateTask¶
Update Task is used for updating fields on a Task, before it is solved. UpdateTask will only update the fields included when called, and leave the rest as-is. Keys can't be modified. Remember to include the TaskId in the object when submitting UpdateTask.
SDK¶
The SDK's are made to make it easier to work with Anymate in a given coding language. They are for the most part a wrapper around the API, with authentication baked in so the Developer doesn't have to worry about including and refreshing access_tokens. All SDK's are open source.
.NET¶
The source code for the .NET SDK can be found on our github page. We have also published it at nuget.org. Installing the Anymate package is done with the following command:
// Install via dotnet
dotnet add package Anymate
dotnet restore
Python¶
The source code for the Python SDK is available as open source and can be found on our github page. We have also published it at pypi.org. Installing the Anymate package is done with the following command:
#Install through pip
pip install --upgrade anymate
UiPath¶
Anymate UiPath SDK is made for UiPath, which relies on .NET Framework 4.6.1.
The SDK is available as open source and can be found on our github page.
We have also published it at nuget.org.
Installing the Anymate package is done in UiPath Studio from the Package Manager by searching for Anymate.UiPath
.
Process¶
The Process is the starting point of any automation.
Stopping the Process¶
Stopping the Process only applies to Mates. There are two ways to do it - through the Calendar or using Stop Process in the overview. Once the Process is stopped, then OkToRun will be set to False with the Gate Closed or Date Blocked, and TakeNext will behave as if the queue is empty. It will also be visible in the Overview.
Error Handling¶
Error Handling consists of Retry functionality, Emergency Stops and Monitoring.
Retrying Tasks¶
If enabled, Mates can send Tasks back in the Ready queue using the Retry endpoint. The Developer or Process Owner sets a limit for how many times retrying is allowed, and once the limit is reached then the Task will be sent to Manual with an Error flag.
Emergency Stops¶
Emergency Stops can be enabled for both regular Errors and when Tasks are not closed right. Regular Errors is whenever the Error endpoint is invoked. Tasks not closed right is when the Mate is taking Tasks but not returning them using Error, Retry, Manual or Solved. For both emergency stops, the Developer or Process Owner will set a limit and once the limit is reached the Gate will be closed until the errors have been resolved.
Monitoring¶
Anymate has 3 ways of monitoring if everything is running as intended. The AI Monitoring uses Machine Learning to automatically monitor the Process based on historical behavior. The schedule-based Warning will generate warnings based on a CRON schedule. Finally, the Dead man's Switch is given a threshold, e.g. 72 hours, and if it doesn't see the Mate for that long it will create a warning in the Overview. For all monitoring applies that the Mate does not have to actually perform any work, but simply checking in with the API through the TakeNext or OkToRun is enough for Anymate to know that it is alive.
Anymate also offers randomized sampling for Manual Control. You just enable it and set how much you want sampled, and whenever a Mate solves a Task then there is a chance it will be put in the Manual queue with the reason Manual Control.
Finish and Reporting¶
Anymate helps visualize the value of software automation by looking at work time saved. For Processes with Tasks enabled, Time Saved KPI's are logged whenever a Task is solved. Otherwise they are logged when a Run is finished.
In the Finish and Reporting tab, it is possible to set up default values on each Process for how much work time an average Task or Run will have saved. If needed, it can be measured more accurately by reporting Entries when a Task is solved, or simply by overriding using the overwriteSecondsSaved attribute in the Solved, Manual, Retry, Error or FinishRun endpoint.
Task Creation¶
Task Creation is automated actions that happen as a New Task is created.
Activation Date¶
The Activation Date decides when a Task is ready to be solved. Tasks that are not active yet, are invisible when using the TakeNext endpoint.
Due Dates¶
Due Date and Urgent Date is always calculated from the Activation Date. Tasks that are Urgent or Overdue will show up with an alert in the overview and in the Task Card. When the Mate takes Tasks from the Ready queue, it will always try to take the most urgent Task first.
Key Duplication¶
Key Duplication rules can be set up to prevent multiple tasks with the same key from being created in the same process. The default option is to allow unlimited copies of the same key.
Task Approval¶
When Task Approval is enabled, Tasks will go to the Needs Approval queue instead of the Ready queue when created. Once a Task is in the Needs Approval queue, it can be moved to the Ready queue when it is Approved by an employee.
Authorization¶
As Tasks and Processes in Anymate typically is translated to work in other systems by Mates, we have added Roles and Teams to help control what employees can see and do.
Roles¶
Roles limits what a user can do. Typically, a business user will have the role of Agent or Process Owner depending on their responsibility in the organization. The people coding the software automation will typically have the role of Developer or if they are also in charge of managing new processes, users, mates and teams they can be Architects. If your organization requires someone, like IT Operations, to only manage users, mates and teams then the Application Manager role is for them. Finally, the Customer Admin role is given to the user creating the Anymate subscription and has access to modify the Subscription.
Teams¶
Both employees and Mates need to be member of a Team to access their Processes and Tasks. There is no limit to how many teams can be created or how many members a team can have.