QPR ProcessAnalyzer API: Difference between revisions

From QPR ProcessAnalyzer Wiki
Jump to navigation Jump to search
Line 11: Line 11:
* [[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: ValidateModel|ValidateModel]] can be used to perform all the pending tasks stored in the work queue of the given model.
* [[QPR ProcessAnalyzer API: RunScript|RunScript]] can be used to execute given PA script using given parameters.
* [[QPR ProcessAnalyzer API: RunScript|RunScript]] can be used to execute given PA script using given parameters.
* [[QPR ProcessAnalyzer API: GetStream|GetStream]] can be used to query model information.
* [[QPR ProcessAnalyzer API: GetStream|GetStream]] can be used to query contents of a stream bound to the given session identified by given stream id.


== Common Properties for all Object Types ==
== Common Properties for all Object Types ==

Revision as of 07:42, 24 October 2018

QPR ProcessAnalyzer Web Service API (Application Programming Interface) can be used to automate operations and to create integration with other applications. All Web Service operations only accept HTTP POST method (HTTP GET is not allowed).

Functions in the Web Service API

The following functions are available:

  • Authenticate: Tries to authenticate given user with given password and authentication parameters.
  • GetModels: Can be used to query QPR ProcessAnalyzer model related information.
  • GetAnalysisImageAsByteArray: Get Flowchart Analysis as image.
  • QueryObjectProperties returns all the listed properties queried for all the listed objects identified by unique identifiers.
  • ResetModelCache: Can be used to clear all cached model information of the given model.
  • SetModel: Can be used to set model related information.
  • ValidateModel can be used to perform all the pending tasks stored in the work queue of the given model.
  • RunScript can be used to execute given PA script using given parameters.
  • GetStream can be used to query contents of a stream bound to the given session identified by given stream id.

Common Properties for all Object Types

The following properties are supported by all ProcessAnalyzer object types. These properties are used in the properties parameter of the QueryObjectProperties function:

  • typename: Name of the type of the object.
  • name: Name of the given object.
  • properties: List of all the supported properties for given object.
  • relatedcount: Integer number of how many child nodes there are in the next level of given hierarchy. This is 0 if the element doesn't support the relation or there are no child objects for the given object in given hierarchy. Requires hierarchy-parameter to be defined.

Object Types

DataTable

The following properties are supported by the DataTable object type:

  • typename: "DataTable"
  • <column identifier>: A Data Table column name converted to script name and also prefixed with"custom_" when used as an object property name in QueryObjectProperties. For example: when the Data Table column name is "Actual", the column identifier is "custom_actual".
  • All common properties

Product

Properties of Product object type:

  • typename: "product"
  • name: Name of the product (QPR ProcessAnalyzer)
  • version: Dll version of the Qpr.ProcessAnalyzer.Core.dll
  • All common properties

Relations of Product object type:

  • related: Returns the related objects. Supported relation hierarchies is datatable which returns all the projects available for the user.

Project

Properties of the Project object type:

Relations of the Project object type:

  • related: Returns the related objects. Supported relation hierarchies: datatable which returns all the data tables in given project available for the user.

Identifying QPR ProcessAnalyzer Objects

QPR ProcessAnalyzer unique identifiers are used to uniquely identify any object in QPR ProcessAnalyzer. The format of a unique identifier is:

PA.<type>.<object>

In the format, <type> can be any of the following:

  • 0: undefined (reserved, do not use)
  • 1: project
  • 2: data table
  • 3: model
  • 4: filter
  • 5: bookmark

Example Usage

//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': ''
  })
});                       

//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": "547c1aa5-e85b-4642-bbb1-8cb656015002",
    "user": {"Name": "user", "FullName": "first last" },
    "parameters": [{"Key": "Password", "Value": "demo"}]
  })
});

//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": "749dcbdb-e57b-434b-a739-1f4ddc7ebc30",
    "parameters": [{"Key": "AddGroups", "Value": "8:12:0"}]
  })
});

//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":"75aa3d08-5ad9-4b0b-8981-7daca98348cd"
  })
});

PowerShell example of listing users

$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"}

PowerShell example update model configuration

$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)


PowerShell example get flowchart image

$paService=New-WebServiceProxy –Uri "http://localhost/qprpa/MainService.svc"
$connection=$paService.Authenticate("username", "password", @())
$token=$connection.GetValue(0).Value

$filterId = 13
$analysisType = 0
$processAnalysisType = 4
$minTransitionPercentage = 0.0

$png=  $paService.GetAnalysisImageAsByteArray($token,$filterId,1,  $analysisType,1,  $processAnalysisType,1 , $minTransitionPercentage,1)
[IO.File]::WriteAllBytes('c:\tmp\image.png', $png)