QPR ProcessAnalyzer API
QPR ProcessAnalyzer API's can be used to automate operations in process mining or create integration with other applications. QPR ProcessAnalyzer has two API:
- Web API: REST-based API used by the web UI.
- WCF API: Older API used by the Excel Client and ScriptLauncher.
Prefer the Web API, because WCF API is a legacy API that will be removed in future.
Web API
The Web API uses JSON and it's based on the REST design principles. All operations require a login which is done with the Token operation with username and password. All operations (except the Token) need to have a HTTP request header Authorization with value Bearer <access token> in place to identify the session.
Url for calling the API has the following form (replace the DNS name with a correct one):
https://customer.onqpr.com/qprpa/api/<operationName>
Following operations is available:
- Token: Login user using username and password, and get a session token as a response.
- Signout: Logs out a session.
- Analysis: Run query in the server and returns results as a response.
- Cancel: Cancels currently running operation.
- Filters: Get all filters in system or filters in a model.
- Serverinfo: Gets the default UI language in whether SSO has been configured.
- Importfile: Import data into models and datatables from .csv, .xes and .pacm files.
- Usersettings: Save user specific settings to the server.
In addition, there are Web API operations datatables and user management.
WCF API
All WCF API operations only accept HTTP POST method (HTTP GET is not allowed). WCF API can be used with wsHttp (SOAP) and webHttp endpoints.
The following methods are available in the WCF API:
- Authenticate: Tries to authenticate given user with given password and authentication parameters.
- CancelQueryOperation: Cancels running operation using query identifier.
- DeleteModel: Deletes a model.
- DeleteProject: Deletes a project.
- GetAnalysis: Calculates and returns QPR ProcessAnalyzer analysis.
- GetAnalysisImageAsByteArray: Get Flowchart Analysis as image.
- GetModel: Can be used to query QPR ProcessAnalyzer model data.
- GetModels: Can be used to query QPR ProcessAnalyzer model related information.
- GetModelAsStream: Exports a model or a filtered data as a .pacm file.
- GetStream can be used to query contents of a stream bound to the given session identified by given stream id.
- GetUsers: can be used to get user related information.
- ImportModelFromStream: Import data to QPR ProcessAnalyzer.
- LogOff: Logs off the user session.
- QueryObjectProperties returns all the listed properties queried for all the listed objects identified by unique identifiers.
- ResetModelCache: Can be used to clear all cached model information of the given model.
- RunScript can be used to execute given PA script using given parameters.
- SetModel: Can be used to set model related information.
- SetUser: Can be used to set user information.
- ValidateModel can be used to perform all the pending tasks stored in the work queue of the given model.
- GetUserPermissions can be used to query permissions given user has for a set of objects.
- ModifyUserRelations can be used to modify permissions given user.
- GetUserRoles can be used to get available user roles.
WCF API Usage Examples
JavaScript Examples
//login $.ajax({ "method": "POST", "url": "http://localhost/qprpa/Mainservice.svc/webHttp/Authenticate", "dataType": "json", "contentType": "application/json; charset=utf-8", "data": JSON.stringify({ 'logOnName': '<username>', 'password': '<password>', 'parameters': '' }) });
//create user $.ajax({ "method": "POST", "url": "http://localhost/qprpa/Mainservice.svc/webHttp/SetUser", "dataType": "json", "contentType": "application/json; charset=utf-8", "data": JSON.stringify({ "sessionId": sessionId, "user": {"Name": "user", "FullName": "first last" }, "parameters": [{"Key": "Password", "Value": "demo"}] }) });
//add user to group, value 8:12:0 is user:group:member type $.ajax({ "method": "POST", "url": "http://localhost/qprpa/Mainservice.svc/webHttp/ModifyUserRelations", "dataType": "json", "contentType": "application/json; charset=utf-8", "data": JSON.stringify({ "sessionId": sessionId, "parameters": [{"Key": "AddGroups", "Value": "8:12:0"}] }) });
//log off $.ajax({ "method": "POST", "url": "http://localhost/qprpa/Mainservice.svc/webHttp/LogOff", "dataType": "json", "contentType": "application/json; charset=utf-8", "data": JSON.stringify({ "sessionId": sessionId }) });
PowerShell Examples
Move Data from QPR ProcessAnalyzer to Database using PowerShell
List Users
$paService=New-WebServiceProxy –Uri "http://localhost/qprpa/MainService.svc" $connection=$paService.Authenticate("username", "password", @()) $token=$connection.GetValue(0).Value $param=@() $users=$paService.GetUsers($token, $null, $param) $users $paService | get-member | ? {$_.definition -match "GetAnalysis"}
Update Model Configuration
$paService=New-WebServiceProxy –Uri "http://localhost/qprpa/MainService.svc" $connection=$paService.Authenticate("username", "password", @()) $token=$connection.GetValue(0).Value $param=@() $modelId=@(2) $model=$paService.GetModels($token,$modelId, $param) $model[0] $model[0].ConfigurationJson = "{}" $paService.SetModel($token,$model[0], $param)
Get Flowchart Image
$paService=New-WebServiceProxy –Uri "http://localhost/qprpa/MainService.svc" -Namespace "WebServiceProxy" -Class "PaService" $connection=$paService.Authenticate("username", "password", @()) $token=$connection.GetValue(0).Value $ids = new-object WebServiceProxy.ModelViewId $ids.ViewId = 13 $ids.ViewIdSpecified = 1 $analysisType = 0 $processAnalysisType = 4 $minTransitionPercentage = 0.0 $png= $paService.GetAnalysisImageAsByteArray($token, $ids, $analysisType,1, $processAnalysisType,1 , $minTransitionPercentage,1) [IO.File]::WriteAllBytes('c:\tmp\image.png', $png)