|
|
(40 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> | | <pre> |
| https://customer.onqpr.com/qprpa/api/<operationName> | | https://customer.onqpr.com/qprpa/api/<methodName> |
| </pre> | | </pre> |
|
| |
|
| Following operations is available: | | Following methods are available: |
| * [[Web_API:_Token|Token]]: Login user using username and password, and get a session token as a response. | | * [[Web_API:_Token|token]]: Login user using username and password and get a session token as a response. |
| * [[Web_API:_Signout|Sign out]]: Logs out a session. | | * [[Web_API:_Signout|signout]]: Logs out a user session. |
| * [[Web_API:_Analysis|Analysis]]: Run query in the server and returns results as a response. | | * [[Web_API:_Expression/query|expression/query]]: Runs query written using the expression language and returns result data as response. |
| * [[Web_API:_Cancel|Cancel]]: Cancels currently running operation.
| | * [[Web_API:_Filters|filters]]: Get filters for all models or filters for a single model. |
| * [[Web_API:_Filters|Filters]]: Get all filters in system or filters in a 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:_Serverinfo|Serverinfo]]: Gets the default UI language in whether SSO has been configured. | | * [[Web_API:_Importfile|importfile]]: Import data into datatable from .csv, .xes or .pacm file. |
| * [[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:_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__
| |