QPR ProcessAnalyzer API: Difference between revisions

From QPR ProcessAnalyzer Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
(48 intermediate revisions by the same user not shown)
Line 1: Line 1:
QPR ProcessAnalyzer API's can be used to automate operations in process mining or create integration with other applications. QPR ProcessAnalyzer has two API:
QPR ProcessAnalyzer API can be used to create integration with other applications and automate many operations in process mining.
* '''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.
QPR ProcessAnalyzer API is a JSON based API following the REST design principles. All methods (except the Token and ServerInfo) require a prior login which is performed with the ''Token'' call with username and password, and the access token is returned as a response for a successful login. The methods requiring the prior authenticated session, need to have a HTTP request header ''Authorization'' with value ''Bearer <access token>'' in place to identify the session.


== Web API ==
Url for calling the API has the following form (replace the server DNS name with a correct one):
The Web API is based on the REST principles and it uses JSON. All operations require a login which is done with the ''Token'' operation with username and password.
 
Url has the following form:
<pre>
<pre>
http(s)://customer.onqpr.com/qprpa/api/operationName
https://customer.onqpr.com/qprpa/api/<methodName>
</pre>
</pre>


* [[Web_API:_Token|Token]]: Login user using username and password, and get a session token as a response.
Following methods are available:
* [[Web_API:_Signout|Sign out]]: Logs out a session.
* [[Web_API:_Token|token]]: Login user using username and password and get a session token as a response.
* [[Web_API:_Analysis|Analysis]]: Run query in the server and returns results as a response.
* [[Web_API:_Signout|signout]]: Logs out a user session.
* [[Web_API:_Cancel|Cancel]]: Cancels currently running operation.
* [[Web_API:_Expression/query|expression/query]]: Runs query written using the expression language and returns result data as response.
* [[Web_API:_Filters|Filters]]: Get all filters in system or filters in a model.
* [[Web_API:_Filters|filters]]: Get filters for all models or filters for a single model.
* [[Web_API:_Serverinfo|serverinfo]]: Gets some basic information about the system, such as the default UI language in whether SSO has been configured (which is needed by the UI).
* [[Web_API:_Importfile|importfile]]: Import data into datatable from .csv, .xes or .pacm file.
* [[Web_API:_Usersettings|usersettings]]: Save user specific settings to the server.
* [[Web_API:_Operations/terminate|operations/terminate]]: Stops the defined tasks (by the task id) to save computing resources.
* [[Web_API:_Cancel|analysis/cancel]]: Stops currently running tasks (by the task identifier)to save computing resources.


== WCF API ==
In addition, there are methods for
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.
* [[Web API for Workspace Elements|workspace elements]]
* [[Web_API_for_Datatables|datatables]]
* [[Web_API_for_Models|models]]
* [[Web_API_for_Scripts|scripts]]
* [[Web_API_for_User_Management|user management]]


The following methods are available in the WCF API:
=== Examples ===
* [[QPR ProcessAnalyzer API: Authenticate|Authenticate]]: Tries to authenticate given user with given password and authentication parameters.
* [[QPR ProcessAnalyzer API: CancelQueryOperation|CancelQueryOperation]]: Cancels running operation using query identifier.
* [[QPR ProcessAnalyzer API: DeleteModel|DeleteModel]]: Deletes a model.
* [[QPR ProcessAnalyzer API: DeleteProject|DeleteProject]]: Deletes a project.
* [[QPR ProcessAnalyzer API: GetAnalysis|GetAnalysis]]: Calculates and returns QPR ProcessAnalyzer analysis.
* [[QPR ProcessAnalyzer API: GetAnalysisImageAsByteArray|GetAnalysisImageAsByteArray]]: Get [[Flowchart_Analysis|Flowchart Analysis]] as image.
* [[QPR ProcessAnalyzer API: GetModel|GetModel]]: Can be used to query QPR ProcessAnalyzer model data.
* [[QPR ProcessAnalyzer API: GetModels|GetModels]]: Can be used to query QPR ProcessAnalyzer model related information.
* [[QPR ProcessAnalyzer API: GetModelAsStream|GetModelAsStream]]: Exports a model or a filtered data as a .pacm file.
* [[QPR ProcessAnalyzer API: GetStream|GetStream]] can be used to query contents of a stream bound to the given session identified by given stream id.
* [[QPR ProcessAnalyzer API: GetUsers|GetUsers]]: can be used to get user related information.
* [[QPR ProcessAnalyzer API: ImportModelFromStream|ImportModelFromStream]]: Import data to QPR ProcessAnalyzer.
* [[QPR ProcessAnalyzer API: LogOff|LogOff]]: Logs off the user session.
* [[QPR ProcessAnalyzer API: QueryObjectProperties|QueryObjectProperties]] returns all the listed properties queried for all the listed objects identified by unique identifiers.
* [[QPR ProcessAnalyzer API: ResetModelCache|ResetModelCache]]: Can be used to clear all cached model information of the given model.
* [[QPR ProcessAnalyzer API: RunScript|RunScript]] can be used to execute given PA script using given parameters.
* [[QPR ProcessAnalyzer API: SetModel|SetModel]]: Can be used to set model related information.
* [[QPR ProcessAnalyzer API: SetUser|SetUser]]: Can be used to set user information.
* [[QPR ProcessAnalyzer API: ValidateModel|ValidateModel]] can be used to perform all the pending tasks stored in the work queue of the given model.
* [[QPR ProcessAnalyzer API: GetUserPermissions|GetUserPermissions]] can be used to query permissions given user has for a set of objects.
* [[QPR ProcessAnalyzer API: ModifyUserRelations|ModifyUserRelations]] can be used to modify permissions given user.
* [[QPR ProcessAnalyzer API: GetUserRoles|GetUserRoles]] can be used to get available user roles.


== WCF API Usage Examples ==
[[Move Data from QPR ProcessAnalyzer to Database using PowerShell]]
=== JavaScript Examples ===
<pre>
//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': ''
  })
});                     
</pre>


<pre>
__NOTOC__
//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"}]
  })
});
</pre>
 
<pre>
//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"}]
  })
});
</pre>
 
<pre>
//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
  })
});
</pre>
 
=== PowerShell Examples ===
==== [[Move Data from QPR ProcessAnalyzer to Database using PowerShell]] ====
==== List Users ====
<pre>
$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"}
</pre>
 
==== Update Model Configuration ====
<pre>
$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)
</pre>
 
==== Get Flowchart Image ====
<pre>
$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
[[Category: QPR ProcessAnalyzer]]
$processAnalysisType = 4
$minTransitionPercentage = 0.0
 
$png=  $paService.GetAnalysisImageAsByteArray($token, $ids,  $analysisType,1,  $processAnalysisType,1 , $minTransitionPercentage,1)
[IO.File]::WriteAllBytes('c:\tmp\image.png', $png)
</pre>
 
__NOTOC__

Revision as of 19:37, 23 June 2021

QPR ProcessAnalyzer API can be used to create integration with other applications and automate many operations in process mining.

QPR ProcessAnalyzer API is a JSON based API following the REST design principles. All methods (except the Token and ServerInfo) require a prior login which is performed with the Token call with username and password, and the access token is returned as a response for a successful login. The methods requiring the prior authenticated session, 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 server DNS name with a correct one):

https://customer.onqpr.com/qprpa/api/<methodName>

Following methods are available:

  • token: Login user using username and password and get a session token as a response.
  • signout: Logs out a user session.
  • expression/query: Runs query written using the expression language and returns result data as response.
  • filters: Get filters for all models or filters for a single model.
  • serverinfo: Gets some basic information about the system, such as the default UI language in whether SSO has been configured (which is needed by the UI).
  • importfile: Import data into datatable from .csv, .xes or .pacm file.
  • usersettings: Save user specific settings to the server.
  • operations/terminate: Stops the defined tasks (by the task id) to save computing resources.
  • analysis/cancel: Stops currently running tasks (by the task identifier)to save computing resources.

In addition, there are methods for

Examples

Move Data from QPR ProcessAnalyzer to Database using PowerShell