QPR ProcessAnalyzer API: Difference between revisions
Line 69: | Line 69: | ||
"password": password | "password": password | ||
} | } | ||
loginResponse = requests.post(url = serverUrl + "/token", data = loginData) | loginResponse = requests.post( | ||
url = serverUrl + "/token", | |||
data = loginData | |||
) | |||
loginResponse.raise_for_status() | loginResponse.raise_for_status() | ||
sessionToken = loginResponse.json().get("access_token") | sessionToken = loginResponse.json().get("access_token") |
Revision as of 20:05, 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
- moving and deleting workspace elements
- projects
- dashboards
- models
- datatables
- scripts
- 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 with 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.