QPR ProcessAnalyzer API: Difference between revisions

From QPR ProcessAnalyzer Wiki
Jump to navigation Jump to search
No edit summary
(35 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 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):
<pre>
https://customer.onqpr.com/qprpa/api/<operationName>
</pre>
 
Following operations is available:
* [[Web_API:_Token|Token]]: Login user using username and password, and get a session token as a response.
* [[Web_API:_Signout|Signout]]: Logs out a session.
* [[Web_API:_Analysis|Analysis]]: Run query in the server and returns results as a response.
* [[Web_API:_Cancel|Cancel]]: Cancels currently running operation.
* [[Web_API:_Filters|Filters]]: Get all filters in system or filters in a model.
* [[Web_API:_Serverinfo|Serverinfo]]: Gets the default UI language in whether SSO has been configured.
* [[Web_API:_Importfile|Importfile]]: Import data into models and datatables from .csv, .xes and .pacm files.
* [[Web_API:_Usersettings|Usersettings]]: Save user specific settings to the server.
 
In addition, there are [[Web_API:_User_Management#Membership|user management operations]].
 
== 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:
* [[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 ==
=== 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>
//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>
<pre>
$paService=New-WebServiceProxy –Uri "http://localhost/qprpa/MainService.svc"
https://customer.onqpr.com/qprpa/api/<methodName>
$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>
</pre>


==== Get Flowchart Image ====
Following methods are available:
<pre>
* [[Web_API:_Token|token]]: Login user using username and password and get a session token as a response.
$paService=New-WebServiceProxy –Uri "http://localhost/qprpa/MainService.svc" -Namespace "WebServiceProxy" -Class "PaService"
* [[Web_API:_Signout|signout]]: Logs out a user session.
$connection=$paService.Authenticate("username", "password", @())
* [[Web_API:_Expression/query|expression/query]]: Runs query written using the expression language and returns result data as response.
$token=$connection.GetValue(0).Value
* [[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.


$ids = new-object WebServiceProxy.ModelViewId
In addition, there are methods for
$ids.ViewId = 13
* [[Web API for Workspace Elements|workspace elements]]
$ids.ViewIdSpecified = 1
* [[Web_API_for_Datatables|datatables]]
* [[Web_API_for_Models|models]]
* [[Web_API_for_Scripts|scripts]]
* [[Web_API_for_User_Management|user management]]


$analysisType = 0
=== Examples ===
$processAnalysisType = 4
$minTransitionPercentage = 0.0


$png=  $paService.GetAnalysisImageAsByteArray($token, $ids,  $analysisType,1,  $processAnalysisType,1 , $minTransitionPercentage,1)
[[Move Data from QPR ProcessAnalyzer to Database using PowerShell]]
[IO.File]::WriteAllBytes('c:\tmp\image.png', $png)
</pre>


__NOTOC__
__NOTOC__


[[Category: QPR ProcessAnalyzer]]
[[Category: QPR ProcessAnalyzer]]

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