QPR ProcessAnalyzer API: Difference between revisions

From QPR ProcessAnalyzer Wiki
Jump to navigation Jump to search
 
(41 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 REST-based Web API.
QPR ProcessAnalyzer API can be used to build integrations with other applications and automate operations in the process mining system.


== Web API ==
QPR ProcessAnalyzer API is a JSON based API following the REST design principles. All methods (except the [[Web_API:_Token|token]] and [[Web_API:_Serverinfo|serverinfo]]) require a prior login to establish a session. The session is initialized with the [[Web_API:_Token|token]] call with username and password, and the access token is returned as a response for a successful login. The methods requiring prior authenticated session, need to have a HTTP request header ''Authorization'' with value ''Bearer <access token>'' to identify the session.
The API is a JSON based API using the REST design principle. All operations require a prior login which is done with the ''Token'' operation with username and password (the access token is returned as a response for a successful login). 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):
Url for calling the API has the following form (replace the server hostname with a correct one):
<pre>
<pre>
https://customer.onqpr.com/qprpa/api/<operationName>
https://customer.onqpr.com/qprpa/api/<methodName>
</pre>
</pre>


Following operations are available:
Following methods are available:
* [[Web_API:_Token|token]]: Login user using username and password, and get a session token as a response.
{| class="wikitable"
* [[Web_API:_Signout|signout]]: Logs out a session.
!'''Method'''
* [[Web_API:_Expression/query|expression/query]]: Runs query written using the expression language and returns results as a response.
! '''Description'''
* [[Web_API:_Cancel|cancel]]: Cancels currently running operation.
|-
* [[Web_API:_Filters|filters]]: Get all filters in system or filters in a model.
||[[Web_API:_Token|token]]
* [[Web_API:_Serverinfo|serverinfo]]: Gets the default UI language in whether SSO has been configured.
||Login user using username and password and get a session token as a response.
* [[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.
||[[Web_API:_Signout|api/signout]]
* [[Web_API:_Operations/terminate|operations/terminate]]: Terminates selected operations (i.e. end tasks).
||Logs out a user session.
|-
||[[Web_API:_Expression|api/expression]]
||Runs an expression.
|-
||[[Web_API:_Expression/query|api/expression/query]]
||Runs query written using the expression language and returns result data as response.
|-
||[[Web_API:_Filters|api/filters]]
||Get filters for all models or filters for a single model.
|-
||[[Web_API:_Serverinfo|api/serverinfo]]
||Returns common system information needed by UI, such as the default UI language and in whether SSO has been configured.
|-
||[[Web_API:_Importfile|api/importfile]]
||Import data into datatable from .csv, .xes or .pacm file.
|-
||[[Web_API:_Usersettings|api/usersettings]]
||Save user specific settings to the server.
|-
||[[Web_API:_Operations/terminate|api/operations/terminate]]
||Stops the defined tasks (by the task id) to save computing resources.
|-
||[[Web_API:_Cancel|api/analysis/cancel]]
||Stops currently running tasks (by the task identifier) to save computing resources.
|-
||[[Web_API:_saml2/acs|api/saml2/acs]]
||Identity provider (IdP) will send the SAML 2.0 assertion to this endpoint, which responses with 302 to redirect to QPR ProcessAnalyzer UI.
|-
||[[Web_API:_saml2|api/saml2]]
||Returns the SAML 2.0 service provider (SP) metadata, if SAML 2.0 authentication has been configured.
|}


In addition, there are Web API operations for
In addition, there are methods for
*[[Web API for Workspace Elements|workspace elements]]
* [[Web API for Workspace Elements|moving and deleting workspace elements]]
* [[Web_API_for_Projects|projects]]
* [[Web_API_for_Dashboards|dashboards]]
* [[Web_API_for_Models|models]]
* [[Web_API_for_Datatables|datatables]]
* [[Web_API_for_Datatables|datatables]]
* [[Web_API_for_Models|models]]
* [[Web_API_for_Scripts|scripts]]
* [[Web_API_for_User_Management|user management]]
* [[Web_API_for_User_Management|users, groups and roles]]
 
== Examples ==
Following function written in Python starts a script in QPR ProcessAnalyzer by calling the REST API. The function does following: (1) login to QPR ProcessAnalyzer, (2) start the script, and (3) log out. The call just starts the script without waiting for it to complete (asynchronous behavior).


== WCF API Usage Examples ==
<syntaxhighlight lang="python" line>
=== JavaScript Examples ===
def startQprProcessAnalyzerScript(serverUrl: str, username: str, password: str, scriptId: int):
<pre>
  loginData = {
//login               
      "grant_type": "password",
$.ajax({
      "username": username,
  "method": "POST",
      "password": password
  "url": "http://localhost/qprpa/Mainservice.svc/webHttp/Authenticate",
  }
  "dataType": "json", "contentType": "application/json; charset=utf-8",
  loginResponse = requests.post(
  "data": JSON.stringify({
    url = serverUrl + "/token",
     'logOnName': '<username>',
    data = loginData
    'password': '<password>',
  )
    'parameters': ''
  loginResponse.raise_for_status()
   })
  sessionToken = loginResponse.json().get("access_token")
});                     
 
</pre>
  startScriptResponse = requests.post(
    url = serverUrl + "/api/scripts/run/" + str(scriptId),
    headers = {
      "Authorization": "Bearer " + sessionToken,
      "Content-type": "application/json"
     }
   )
  startScriptResponse.raise_for_status()


<pre>
  logOutResponse = requests.post(
//log off
      url = serverUrl + "/api/signout",
$.ajax({
      headers = {
  "method": "POST",
        "Authorization": "Bearer " + sessionToken,
  "url": "http://localhost/qprpa/Mainservice.svc/webHttp/LogOff",
        "Content-type": "application/json"
  "dataType": "json", "contentType": "application/json; charset=utf-8",
      }
  "data": JSON.stringify({
     )
     "sessionId": sessionId
   logOutResponse.raise_for_status()
   })
</syntaxhighlight>
});
</pre>


=== PowerShell Example: [[Move Data from QPR ProcessAnalyzer to Database using PowerShell]] ===
The function can be called as follows:
<syntaxhighlight lang="python" line>
startQprProcessAnalyzerScript(
  serverUrl = "https://server.onqpr.com/qprpa",
  username = "qpr",
  password = "demo",
  scriptId = 1
)
</syntaxhighlight>
The script id can be found in the scripts list in the Workspace.


__NOTOC__
__NOTOC__


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

Latest revision as of 20:06, 14 December 2023

QPR ProcessAnalyzer API can be used to build integrations with other applications and automate operations in the process mining system.

QPR ProcessAnalyzer API is a JSON based API following the REST design principles. All methods (except the token and serverinfo) require a prior login to establish a session. The session is initialized with the token call with username and password, and the access token is returned as a response for a successful login. The methods requiring prior authenticated session, need to have a HTTP request header Authorization with value Bearer <access token> to identify the session.

Url for calling the API has the following form (replace the server hostname with a correct one):

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

Following methods are available:

Method Description
token Login user using username and password and get a session token as a response.
api/signout Logs out a user session.
api/expression Runs an expression.
api/expression/query Runs query written using the expression language and returns result data as response.
api/filters Get filters for all models or filters for a single model.
api/serverinfo Returns common system information needed by UI, such as the default UI language and in whether SSO has been configured.
api/importfile Import data into datatable from .csv, .xes or .pacm file.
api/usersettings Save user specific settings to the server.
api/operations/terminate Stops the defined tasks (by the task id) to save computing resources.
api/analysis/cancel Stops currently running tasks (by the task identifier) to save computing resources.
api/saml2/acs Identity provider (IdP) will send the SAML 2.0 assertion to this endpoint, which responses with 302 to redirect to QPR ProcessAnalyzer UI.
api/saml2 Returns the SAML 2.0 service provider (SP) metadata, if SAML 2.0 authentication has been configured.

In addition, there are methods for

Examples

Following function written in Python starts a script in QPR ProcessAnalyzer by calling the REST API. The function does following: (1) login to QPR ProcessAnalyzer, (2) start the script, and (3) log out. The call just starts the script without waiting for it to complete (asynchronous behavior).

def startQprProcessAnalyzerScript(serverUrl: str, username: str, password: str, scriptId: int):
  loginData = {
      "grant_type": "password",
      "username": username,
      "password": password
  }
  loginResponse = requests.post(
    url = serverUrl + "/token",
    data = loginData
  )
  loginResponse.raise_for_status()
  sessionToken = loginResponse.json().get("access_token")
  
  startScriptResponse = requests.post(
    url = serverUrl + "/api/scripts/run/" + str(scriptId),
    headers = {
      "Authorization": "Bearer " + sessionToken,
      "Content-type": "application/json"
    }
  )
  startScriptResponse.raise_for_status()

  logOutResponse = requests.post(
      url = serverUrl + "/api/signout",
       headers = {
         "Authorization": "Bearer " + sessionToken,
         "Content-type": "application/json"
       }
    )
  logOutResponse.raise_for_status()

The function can be called as follows:

startQprProcessAnalyzerScript(
  serverUrl = "https://server.onqpr.com/qprpa",
  username = "qpr",
  password = "demo",
  scriptId = 1
)

The script id can be found in the scripts list in the Workspace.