Translations of this page:

BAB Documentation

Web Service Environment Setup

Service Gateway

Development environment

  1. PHP Runtime : PHP 5.2.12
  2. PHP Framework : Yii 1.1.15
  3. PHP IDE : Notepad++ 6.6.3

Production environment

  1. Operating System : Windows Server 2008 R2
  2. HTTP Web Server : IIS 7

Job Executor

Development environment

  1. Java Runtime : JDK 1.7.0_55
  2. Java to JSON Library : Google GSON 2.2.4
  3. Java IDE : Eclipse JDT Helios SR2 (3.6.1)

Production environment

  1. Operating System : CentOS 6.5
  2. Big Data Platform : Cloudera CDH 5.0.2
  • Distributed File System : Hadoop 2.5.0
  • Cluster Computing : Spark 1.2

Web Service API

Repository API

1. Workspace Creation

Create new workspace for event repository storage

a. Description

Workspace should be created before storing event log with same data mapping structure and format This API require two request part :

  1. Upload sample event log
  2. Register data mapping scheme

b. Reference

  • -

c. Request & Response

c.1. Upload sample event log
POST /api/repository/workspace 
{
	"file": "[@SampleEventLogFile]"
}
Name Type Description Required
File File Sample event log for event repository data mapping format. Other event log stored in the same workspace should contain the same data mapping scheme or it will be rejected by systems Yes

This part will return candidate workspace Id for data mapping scheme as follows :

{ 
	"workspaceId": "[workspaceId]",
	"fields": {
		"[fieldName]":"[mappingRecommendation]"
	}
}
Name Type Description Required
workspaceId string New candidate workspace Id for data mapping scheme Yes
fields String[string] List of field name and mapping recommendation for event log : - Key : Field Name - Value : Mapping Scheme - event.caseId - event.activity - event.type - event.timestamp.start:[format] - event.timestamp.complete:[format] - event.originator - event.resource Yes
c.2. Register data mapping scheme
POST /api/repository/workspace/map/[workspaceId]
{
	"name": "[Workspace Name]",
	"description": "[Workspace Description]",
	"map": {
		"ProcessInstance.Id": "event.caseId",
		"AuditTrailEntry.WorkflowModelElement": "event.activity",
		"AuditTrailEntry.Type": "event.type",
		"AuditTrailEntry.Timestamp": "event.timestamp.complete:YYYY-MM-DD",
		"AuditTrailEntry.Originator": "event.originator",
		"AuditTrailEntry.Resource": "event.resource"
	},
}
Name Type Description Required
name String Workspace name Yes
description String Workspace description Optional
map String[string] Field mapping for event log : * Key : Field Name * Value : Mapping Scheme : - event.caseId - event.activity - event.type - event.timestamp.start:[format] - event.timestamp.complete:[format] - event.originator - event.resource Yes

This part will return fixed workspace id and it's properties :

{ 
	"workspaceId": "[workspaceId]",
	"name": "[name]",
	"description: "[description]",
	"fields": {
		"[fieldName]":"[mappingScheme]"
	}
}
Name Type Description Required
workspaceId String New candidate workspace Id for data mapping scheme Yes
name String Workspace name Yes
description String Workspace description Optional
fields String[string] List of field name and mapping recommendation for event log : * Key : Field Name * Value : Mapping Scheme : - event.caseId - event.activity - event.type - event.timestamp.start:[format] - event.timestamp.complete:[format] - event.originator - event.resource Yes

d. Exception

Name Type
UnsupportedFileFormatFile format is not supported. Supported file format : .MXML, .MXML.GZ, .CSV, .XLS, .XLSX, .XES

2. Workspace Lists

a. Description

Get workspace list for selected users

b. Reference

  • -

c. Request

GET /api/repository/workspace/[userId]
Name Type Description Required
userId String User id Yes

d. Response

{ 
	"userId": "[userId]",
	"workspaces": {
		"[workspaceId]": {
			"workspaceId": "[workspaceId]",
			"name": "[name]",
			"description: "[description]",
			"fields": {
				"[fieldName]":"[mappingScheme]"
			},
			"noOfRepositories": [repositoryCount]
		}
	}
}
Name Type Description Required
userId String User id Yes
workspaces String List of workspace for selected user Yes
workspaceId String New candidate workspace Id for data mapping scheme Yes
name String Workspace name Yes
description String Workspace description Optional
fields String[String] List of field name and mapping recommendation for event log : * Key : Field Name * Value : Mapping Scheme : - event.caseId - event.activity - event.type - event.timestamp.start:[format] - event.timestamp.complete:[format] - event.originator - event.resource Yes

e. Exception

Exception Description

3. Event Repository Import

a. Description

Import new event log into user workspace, new event log should have same mapping scheme with workspace

b. Reference

  • -

c. Request

POST /api/repository/workspace/import/[workspaceId]
{
	"file": "[@SampleEventLogFile]"
}
Name Type Description Required
file File Sample event log for event repository data mapping format. Other event log stored in same workspace should contains same data mapping scheme or it will be rejected by system Yes

d. Response

{ 
	
}
Name Type Description Required

e. Exception

Exception Description
UnsupportedFileFormat File format is not supported. Supported file format : .MXML, .MXML.GZ, .CSV, .XLS, .XLSX, .XES

4. Repository Lists

a. Description

Get event repository list for selected workspace

b. Reference

  • -

c. Request

 GET /api/repository/workspace/[workspaceId]
Name Type Description Required
userId String User id Yes

d. Response

{ 
	"workspaceId": "[workspaceId]",
	"repositories": {
		"[repositoryId]": {
			"repositoryId": "[repositoryId]",
		}
	}
}
Name Type Description Required
workspaceId String Workspace id Yes
repositoryId String Repository id Yes

e. Exception

Exception Description

5. Repository Statistics

a. Description

Get event repository simple data statistics

b. Reference

  • -

c. Request

POST /api/repository/view/[repositoryId]
{
	"file": "[@SampleEventLogFile]"
}
Name Type Description Required
repositoryId String Repository Id Yes

d. Response

{ 
	"id": "[repositoryId]",
	"originalName": "[originalName]",
	"createdDate": [createdDate],
	"noOfCases": [noOfCases],
	"noOfEvents": [noOfEvents],
	"noOfActivities": [noOfActivities],
	"noOfActivityTypes": [noOfActivityTypes],
	"noOfOriginators": [noOfOriginators],
	"noOfAttributes": [noOfAttributes],
	"cases": {
		"[caseId]": [noOfEvents]
	}
	"activities": {
		"[activity]": [noOfOccurrences]
	},
	"activityTypes": {
		"[activityType]": [noOfOccurrences]
	},
	"originators": {
		"[originator]": [noOfOccurrences]
	},
	"attributes": [
		"[attribute]": [noOfStates]
	]
}
Name Type Description Required
id String Repository Id Yes
originalName String Repository original file name and upload time Yes
createdDate String Created data or processing date on system Yes
noOfCases String No of cases Yes
noOfEvents String No of events Yes
noOfActivities String No of activity label Yes
noOfActivityTypes String No of activity type labels Yes
noOfOriginators String No of originator labels Yes
noOfAttributes String No of attributes label Yes
caseId String Case Id Yes
noOfEvents String No of events on case Yes
activity String Activity label Yes
activityType String Activity type label Yes
originator String Originator type label Yes
attribute String Other event attribute label Optional
noOfOccurrences String No of occurrences for corresponding label Yes
noOfStates String No of distinct values for corresponding label Yes

e. Exception

Exception Description
UnsupportedFileFormat File format is not supported. Supported file format : .MXML, .MXML.GZ, .CSV, .XLS, .XLSX, .XES

6. Repository Summary

a. Description

Import new event log into user workspace, new event log should have same mapping scheme with workspace

b. Reference

  • -

c. Request

POST /api/repository/workspace/import/[workspaceId]
{
	"file": "[@SampleEventLogFile]"
}
Name Type Description Required
file File Repository Id Yes

d. Response

 
Name Type Description Required

e. Exception

Exception Description

Modeling API

1. Heuristic Model

a. Description

Heuristics Miner is a process model discovery algorithm which depends on frequency and dependency score of events

b. Reference

c. Request

 POST /api/model/heuristic/[repository.id] {
	"threshold": {
		"relativeToBest": 0.05,
		"l1Loop": 0.9,
		"l2Loop": 0.9,
		"longDistance": 0.9,
		"and": 0.1,
	},
	"positiveObservation": 10,
	"dependencyDivisor": 1,
	"option": {
		"extra": false,
		"allConnected": false,
		"longDistance": false,
	}
}
Name Type Description Required
threshold[relativeToBest] Double Heuristics thresholds Yes
threshold[l1Loop] Double Heuristics thresholds Yes
threshold[l2Loop] Double Heuristics thresholds Yes
threshold[longDistance] Double Heuristics thresholds Yes
threshold[and] Double Heuristics thresholds Yes
positiveObservation Double Positive observation of event or relations, event that occur below this threshold will be removed Yes
dependencyDivisor String Dependency divisor for dependency matrix Yes
option[allConnected] String Use all connected heuristics Yes
option[longDistance] String Use long distance heuristics Yes

d. Response

{
	"arcs": [
		"ActA|ActB": {
			"source": "ActA",
			"target": "ActB";
                        "duration": {
				"total": 10000000,
				"min": 1000,
				"max": 100000,
				"mean": 1000,
				"median": 1000
			},			
                        "frequency": {
				"absolute": 10,
				"relative": 0.1,
				"cases": 5,
				"maxRepetition": 2
			}			
		}
	],
         "nodes": [
		"ActA": {
			"label": "ActA",
			"duration": {
				"total": 10000000,
				"min": 1000,
				"max": 100000,
				"mean": 1000,
				"median": 1000
			},			
			"frequency": {
				"absolute": 10,
				"relative": 0.1,
				"cases": {
					"include": 10,
					"asStartEvent": 2,
					"asEndEvent": 0,
				},
				"maxRepetition": 2
			}			
		}
	]	
}
Name Type Description Required
arcs[ActA|ActB][source] String Label of source node Yes
arcs[ActA|ActB][target] String Label of target node Yes
arcs[ActA|ActB][dependency] Double Dependency value for this arc Yes
arcs[ActA|ActB][duration] Double Contains several time related properties of arc: * total * min * max * mean * median Yes
arcs[ActA|ActB][frequency] Double Contains several properties of node's frequency: * absolute : absolute frequency * relative : relative frequency * cases : contains number of cases (cases[include]), the number which this node is the start event (cases[asStartEvent]) and end event (cases[asEndEvent]) </li> <li>maxRepetition : maximum repetition frequency Yes
nodes[ActA][label] String node's name Yes
nodes[ActA][duration] Integer Contains several time related properties of node: * total * min * max * mean * median Yes
nodes[ActA][frequency] Double Contains several properties of node's frequency: * absolute : absolute frequency * relative : relative frequency * cases : contains number of cases (cases[include]), the number which this node is the start event (cases[asStartEvent]) and end event (cases[asEndEvent]) </li> <li>maxRepetition : maximum repetition frequency Yes

e. Exception

Exception Description

2. Fuzzy Model

a. Description

Fuzzy Miner is a process model discovery algorithms which depends on nodes and arcs significance to discover the process model

b. Request

POST /api/model/fuzzy/[repository.id] {
	"edge": {
		"cutoff": 0.5,
		"utility": 0.5,
		"transformer": ,
		"ignoreSelfLoop": false,
		"inAbsolute": false

	},
	"node": {
		"cutoff": 0.5
	},
	"concurrency": {
		"perserve": 0.5,
		"ratio": 0.5
	}

}
Name Type Description Required
edge[cutoff] Double Edge (arc) cut-offs threshold Yes
edge[utility] Double Heuristics thresholds Yes
edge[transformer] String Heuristics thresholds Yes
edge[ignoreSelfLoop] Boolean Heuristics thresholds Yes
edge[inAbsolute] Boolean Heuristics thresholds Yes
node[cutoff] Double Positive observation of event or relations, event that occur below this threshold will be removed Yes
concurrency[perserve] String Dependency divisor for dependency matrix Yes
concurrency[ratio] String Use all connected heuristics Yes

c. Response

{
	"arcs": [
		"ActA|ActB": {
			"source": "ActA",
			"target": "ActB",
			"significance": 0.05,
                        "duration": {
				"total": 10000000,
				"min": 1000,
				"max": 100000,
				"mean": 1000,
				"median": 1000
			},			
                        "frequency": {
				"absolute": 10,
				"relative": 0.1,
				"cases": 5,
				"maxRepetition": 2
			}			
		}
	],
         "nodes": [
		"ActA": {
			"label": "ActA",
			"significance": 0.05,
			"duration": {
				"total": 10000000,
				"min": 1000,
				"max": 100000,
				"mean": 1000,
				"median": 1000
			},			
			"frequency": {
				"absolute": 10,
				"relative": 0.1,
				"cases": {
					"include": 10,
					"asStartEvent": 2,
					"asEndEvent": 0,
				},
				"maxRepetition": 2
			}			
		}
	]	
}
Name Type Description Required
arcs[ActA|ActB][source] String Label of source node Yes
arcs[ActA|ActB][target] String Label of target node Yes
arcs[ActA|ActB][significance] Double Significance value for this arc Yes
arcs[ActA|ActB][duration] Double Contains several time related properties of arc: * total * min * max * mean * median Yes
arcs[ActA|ActB][frequency] Double Contains several properties of node's frequency: * absolute : absolute frequency * relative : relative frequency * cases : contains number of cases (cases[include]), the number which this node is the start event (cases[asStartEvent]) and end event (cases[asEndEvent]) * maxRepetition : maximum repetition frequency Yes
nodes[ActA][label] String node's name Yes
nodes[ActA][duration] Integer Contains several time related properties of node: * total * min * max * mean * median Yes
nodes[ActA][frequency] Double Contains several properties of node's frequency: * absolute : absolute frequency * relative : relative frequency * cases : contains number of cases (cases[include]), the number which this node is the start event (cases[asStartEvent]) and end event (cases[asEndEvent]) * maxRepetition : maximum repetition frequency Yes

d. Exception

Exception Description

3. Proximity Model

a. Description

A process model discovery algorithm which depends on proximity score maximization to discover the process model

b. Request

 
Name Type Description Required

c. Response

 
Name Type Description Required

d. Exception

Exception Description

4. Log Replay

a. Description

Log reply visualizes the flow of instance execution on the process model

b. Request

POST /api/model/logreplay/[repository.id] {
	"limit": 1000
}
Name Type Description Required
limit Integer Process instances limit size for each partition Yes

c. Response

{
	"casesNumber": 1000,
	"eventsNumber": 1000,
	"offset": 1000,
	"startTime": 1427714674884,
	"endTime": 1427714691918,
	"duration": 17034,
	"eventPartitions": [
		"partition1":{
			"part": 1,
			"url": "@path",
			"start": 1427714674884,
			"complete":  1427714691918,
		}
	],	
	"eventCount": {
		"[Tick]": "[numberOfCases]"
	}
}
Name Type Description Required
casesNumber Integer Number of process instances in this repository Yes
eventsNumber Integer Number of events in this event repository Yes
offset Integer - Yes
startTime Long Starting time of event repositories Yes
endTime Long Completion time of event repositories Yes
duration Long Total duration of event repositories Yes
eventPartitions[partition1][part] Integer Part number / partition number Yes
eventPartitions[partition1][url] String URL of this partition Yes
eventPartitions[partition1][start] Long Starting time of this partition Yes
eventPartitions[partition1][complete] Long Completion time of this partition Yes
eventCount Integer List of event counts for each tick : - Key : tick point - Value : number of cases at tick point Yes

d. Exception

Exception Description

5. k-Means

a. Description

k-means cluster instances into k-cluster based on the predefined distance metric.

b. Request

POST /api/model/kmeans/[repository.id] {
	"profiles": {
		"[profileKey]": "[profileValue]"
	},
	"distance": "euclidean",
	"preprocessing": {
		"tfidf": false,
		"algorithm": "kmeans",
		"dim": 0
	},
	"kmeans": {
		"noOfClusters": 3,
		"noOfRuns": 10,
		"randomSeed": 1000,
	}

}
Name Type Description Required
profilesString[String]List of profiles setting : - Key : Profile key - Value : Profile value Yes
distanceStringDistance metricYes
preprocessing[tfidf]BooleanTerm frequency–inverse document frequency (tf-idf) enableYes
preprocessing[algorithm]StringAlgorithms used to cluster process instancesYes
preprocessing[dim]Integer-Yes
kmeans[noOfClusters]IntegerCluster sizeYes
kmeans[noOfRuns]IntegerNumber of iterationsYes
kmeans[randomSeed]Integer-Yes

c. Response

{
	"clusters": [
		"Clusters1": {
			"cases": ["case1"],
			"center": "case1"
		}
	]	
}
Name Type Description Required
clusters[“Clusters1”][cases]StringList of cases in this clusterYes
clusters[“Clusters1”][center]StringCenter of the clusterYes

d. Exception

Exception Description

Analysis API

1. Association Rule

a. Description

Association Rule discovers a set of rules based on the frequent pattern of transition on process instances

b. Request

POST /api/analysis/associationrule/[repository.id] {
	"algorithm": "apriori",
	"profiles": {
		"[profile]"
	},
	"noOfRules": 10,
	"threshold": {
		"support": {
			"min": 0.1;
			"max": 1.0;
		},
		"confidence": {
			"min": 0.1;
			"max": 1.0;
		}
	}

}
Name Type Description Required
algorithmStringType of algorithms to generate association rulesYes
profiles[String]A list of profilesYes
noOfRulesIntegerNumber of rulesYes
threshold[support][max]DoubleMaximum support value threshold Yes
threshold[support][min]DoubleMinimum support value threshold Yes
threshold[confidence][max]DoubleMaximum confidence value threshold Yes
threshold[confidence][min]DoubleMinimum confidence value threshold Yes

c. Response

{
	"associationRules":{
		"[rule]":"[confidence]"
	}
}
Name Type Description Required
associationRulesString[Double]List of rules and its confidence value : * Key : rule * Value : confidence value Yes

d. Exception

Exception Description

2. Bayesian Network Model

a. Description

Generate the Bayesian network from decomposition of dependency graph and use it to infer given condition

b. Request

POST /api/analysis/bayesian/[repository.id] {
	"events": {
		"[nodename]":{
			"[stateKey]":"[stateValue]"
		}
	},
	"selectedEvents": {
		"[nodename]":{
			"[stateKey]":"[stateValue]"
		}
	},
	"observedNodes":{
		"[nodename]":"[stateValue]"
	},
	"inferredNodes":{
		"[nodename]":"[stateValue]"
	},
	"nodes":[
		"nodeA":{
			"label":"nodeA",
			"[posteriorProbability]": "[probability]"
		}
	],
	"arcs":[
		"nodeA|nodeB":{
			"source":"nodeA",
			"target":"nodeB"
		}
	],
	"confidence": 0.9,
	"threshold": 1
}
Name Type Description Required
events String[String][String] List of events and its state keys and state values: * stateKey: dimension key *stateValue: dimension value Yes
selectedEvents String[String][String] List of events and its state keys and state values: * stateKey: dimension key *stateValue: dimension value Optional
observedNodes String[String] List of events and its state values as the observed nodes: * nodename: node label *stateValue: dimension value Optional
inferredNodes String[String] List of events and its state values as the observed nodes: * nodename: node label *stateValue: dimension value Optional
nodes[nodeA][label] String Node label Optional
nodes[nodeA][posteriorProbability] String[String] List of events and its posterior probability: * posteriorProbability: dimension value *probability: probability value Optional
arcs[nodeA|nodeB][source] String Source node label Optional
arcs[nodeA|nodeB][target] String Target node label Optional
confidence String Confidence threshold value Yes
threshold String Minimum lateness threshold value Yes

c. Response

{
	"events": {
		"[nodename]":{
			"[stateKey]":"[stateValue]"
		}
	},
	"selectedEvents": {
		"[nodename]":{
			"[stateKey]":"[stateValue]"
		}
	},
	"observedNodes":{
		"[nodename]":"[stateValue]"
	},
	"inferredNodes":{
		"[nodename]":"[stateValue]"
	},
	"nodes":[
		"nodeA":{
			"label":"nodeA",
			"[posteriorProbability]": "[probability]"
		}
	],
	"arcs":[
		"nodeA|nodeB":{
			"source":"nodeA",
			"target":"nodeB"
		}
	],
	"confidence": 0.9,
	"threshold": 1
}
Name Type Description Required
events String[String][String] List of events and its state keys and state values: * stateKey: dimension key *stateValue: dimension value Yes
selectedEvents String[String][String] List of events and its state keys and state values: * stateKey: dimension key *stateValue: dimension value Optional
observedNodes String[String] List of events and its state values as the observed nodes: * nodename: node label *stateValue: dimension value Optional
inferredNodes String[String] List of events and its state values as the observed nodes: * nodename: node label *stateValue: dimension value Optional
nodes[nodeA][label] String Node label Yes
nodes[nodeA][posteriorProbability] String[String] List of events and its posterior probability: * posteriorProbability: dimension value *probability: probability value Yes
arcs[nodeA|nodeB][source] String Source node label Yes
arcs[nodeA|nodeB][target] String Target node label Yes
confidence String Confidence threshold value Yes
threshold String Minimum lateness threshold value Yes

d. Exception

Exception Description

3. Social Network Model

a. Description

Social network graph visualizes the social connections between dimensions to find the critical dimension value

b. Request

POST /api/analysis/socialnetwork/[repository.id] {
	"dimension": "dimensionValue",
	"states": {
		"[stateKey]":"[stateValue]"
	},
	"method": {
		"algorithm": "workingTogether",
		"casuality": true,
		"distance": "euclidean",
		"multipleTransfer": true,
		"workingTogether": "simultaneousRatio",
		"DirectSubContract": {
				"beta": 0.05,
				"depth": 0
	}
}
Name Type Description Required
dimension String Input dimension, i.e. attribute or originator Yes
states String[String] List of selected states: * stateKey: dimension key *stateValue: dimension value Yes
method[algorithm] String Algorithm used to generate social network, i.e. subcontracting, hand over of work, working together, similar task and reassignment Yes
method[casuality] Boolean - Yes
method[distance] String Distance measure Yes
method[multipleTransfer] String - Yes
method[workingTogether] String - Yes
method[DirectSubContract][beta] Double - Yes
method[DirectSubContract][depth] Integer - Yes

c. Response

{
	"arcs": [
		"stateA->stateB": {
			"source": "stateA",
			"target": "stateB",					
                        "frequency": {
				"absolute": 10,
				"relative": 0.1,
				"cases": 5,
				"maxRepetition": 2
			}			
		}
	],
         "nodes": [
		"stateA": {
			"label": "stateA",						
			"frequency": {
				"absolute": 10,
				"relative": 0.1,
				"cases": 5,
				"maxRepetition": 2
			}			
		}
	],
         "stateKey": ["states"]
}
Name Type Description Required
arcs[stateA→stateB][source] String Label of source arc Yes
arcs[stateA→stateB][target] String Label of target arc Yes
arcs[stateA→stateB][frequency] Double Contains several properties of node's frequency: * absolute : absolute frequency * relative : relative frequency * cases : contains number of cases * maxRepetition : maximum repetition frequency Yes
states String[String] List of selected states: * stateKey: dimension key *stateValue: dimension value Yes
node[label] String Node label Yes
node[frequency] Double Contains several properties of node's frequency: * absolute : absolute frequency * relative : relative frequency * cases : contains number of cases * maxRepetition : maximum repetition frequency Yes

d. Exception

Exception Description

4. Task Matrix

a. Description

Task matrix visualizes the entities in repository (e.g. activities, dimensions, etc) to form a cross-value-like table

b. Request

POST /api/analysis/taskmatrix/[repository.id] {
	"row": "dimension",
	"column": "dimension",
	"unit": "frequency"
}
Name Type Description Required
row String x-axis dimension value Yes
column String y-axis dimension value Yes
unit String Unit calculation of cross value from x- and y-axis Yes

c. Response

{
	"minFreq": "0",
	"maxFreq": "2",
	"avgFreq": "0.5",
	"nodes": {
		"1":[
			"name": "dimensionA",
			"group": 1
		]
	},
	"links": {
		"1|2":[
			"source": "1",
			"target": "2",
			"empty": false,
			"value": 0
		]
	}
}
Name Type Description Required
minFreq String Minimum frequency Yes
maxFreq String Maximum frequency Yes
avgFreq Double Average frequency Yes
nodes[1][name] String Node name Yes
nodes[1][group] Integer Node group Yes
links[1|2][source] String Link's source node Yes
links[1|2][target] String Link's target node Yes
links[1|2][empty] Boolean Empty flag if the value is empty Yes
links[1|2][value] Long Value of the link Yes

d. Exception

Exception Description

5. Dotted Chart

a. Description

Dotted chart visualizes event as the dot to analyze the execution of instances on the Gantt-chart. User can easily change the y-axis as other entities (e.g. activity, originator, etc)

POST /api/analysis/dottedchart/[repository.id] {
	"dimension": {
		"component": "case"
	}
	"setting": {
		"eventTypeSet" : {
			"[eventType]"
		},
		"instanceSet" : {
			"[instance]"
		},
		"line": {
			"[string]":"[string]"
		}			
	}
}
Name Type Description Required
dimension[component] String - Yes
setting[eventTypeSet] [String] A set of event types Yes
setting[instanceSet] [String] A set of instances Yes
line String[String] List of line : * Key : String * Value : String Yes

c. Response

{
	"componentAnalysisMap": {
		"[dimension]":"[component]"
	}
}
Name Type Description Required
minFreq String Minimum frequency Yes
maxFreq String Maximum frequency Yes
avgFreq Double Average frequency Yes
nodes[1][name] String Node name Yes
nodes[1][group] Integer Node group Yes
links[1|2][source] String Link's source node Yes
links[1|2][target] String Link's target node Yes
links[1|2][empty] Boolean Empty flag if the value is empty Yes
links[1|2][value] Long Value of the link Yes

d. Exception

Exception Description

6. Performance Chart

a. Description

Performance chart dynamically visualizes the performance of selected dimension on 2D charts

b. Request

POST /api/analysis/dottedchart/[repository.id] {
	"series": "Task",
	"y": "Sum",
	"z": "Weekly",
	"unit": "seconds",
	"calculation": "Working Time"
}
Name Type Description Required
series String Series value (“Task”, “Originator”) Yes
y String y-axis value (“Minimum”, “Average”, “Maximum”, “Sum”, “Std.Deviation”) Yes
z String z-axis value () Optional
unit String Unit value (“seconds”, “minutes”, “hours”, “days”, “weeks”, “months”, “years”) Yes
calculation String Type of calculation (“Working Time”) Yes

c. Response

{
	"matrix": {
		 1:[
			"label": "Task",
			"x": "Sum",
			"y": "Sum",
			"z": "Weekly",
			"pass": "seconds"
		]
	},
	"labels": {
		"[label]"
	}
}
Name Type Description Required
matrix[1][label] String Event label Yes
matrix[1][x] String x-axis value Yes
matrix[1][y] Double y-axis value Yes
matrix[1][z] String z-axis value Optional
matrix[1][pass] String - Yes
labels [String] A list of labels Yes

d. Exception

Exception Description

Web Service Extensions

Service Gateway

Procedure to register new plug-in in service gateway:

  • Create model class inherit IdServiceGatewayModel
    • Create request validation function
    • Configure to job executor from the model
  • Create controller class inherit IdServiceGatewayController
  • Create action function
    • Create model
    • Call job executor

Job Executor

Procedure to create job executor plug-in:

  • Create model class as POJO so that it can be easily encoded to JSON using GSON
  • Implement your algorithm with output in form of model class
  • Create class implements IdJobExecutor
  • Build jar file