License Requirement All employees must have a collaboration license (enterprise-wide) to use the RESTful API.
Contact your QualiWare representative or email us at support@qualiware.com for more information.
Happy
Impatient
Angry

REST-ful WebService

Complete options list

{wsUrl}/help
Examples in this page are built using jQuery v1.11-3.

Login and retrieve Session ID

{wsUrl}/{dataType}/login
POST method
Parameters:
  • Login (User login, domain user or local QEF user)
  • Password, (user password)
  • AuthorityKind, ("Domain" | "Local" | "Any")
  • Authority, (Domain name if AuthorityKind="Domain" otherwise empty)
Ex1: Get Session ID:
$.ajax({
	type: "POST",
	contentType: "application/json; charset=utf-8",
	dataType: "{dataType}",
	url: "{wsUrl}/login",
	data: JSON.stringify({
		authority: "", 
		authorityKind: "Local", 
		login: "{userid}", 
		password: "{password}"
	})
})
.done(function(data){
	// data handling
});

Check if a session is valid

{wsUrl}/{dataType}/isloggedin/{sessionId}
Ex1a: Validate Session ID:
$.ajax({
	type: "GET",
	contentType: "application/json; charset=utf-8",
	dataType: "{dataType}",
	url: "{wsUrl}/{dataType}/isloggedin/{sessionId}"
})
.done(function(data){
	// data handling
});

End session

{wsUrl}/{dataType}/logout/{sessionId}
Ex1b: Logout Session ID
$.ajax({
	type: "GET",
	contentType: "application/json; charset=utf-8",
	dataType: "{dataType}",
	url: "{wsUrl}/{dataType}/logout/{sessionId}"
})
.done(function(data){
	// data handling
});

Repository

{wsUrl}/{dataType}/QIS/{sessionId}/rep/{repositoryId}/data
Ex2: Get repository data
$.ajax({
	type: "GET",
	contentType: "application/json; charset=utf-8",
	dataType: "{dataType}",
	url: "{wsUrl}/{dataType}/QIS/{sessionId}/rep/{repositoryId}/data"
})
.done(function(data){
	// data handling
});

Configuration

{wsUrl}/{dataType}/QIS/{sessionId}/rep/{repositoryId}/conf/{configurationId}
Ex2a: Get configuration data
$.ajax({
	type: "GET",
	contentType: "application/json; charset=utf-8",
	dataType: "{dataType}",
	url: "{wsUrl}/{dataType}/QIS/{sessionId}/rep/{repositoryId}/conf/{configurationId}"
})
.done(function(data){
	// data handling
});

Find objects by template

{wsUrl}/{dataType}/qis/{sessionId}/rep/{repositoryId}/conf/{configurationId}/findobjects
POST method
Parameters:
Ex3: Find all workflows sorted alphabetically
$.ajax({
	type: "POST",
	contentType: "application/json; charset=utf-8",
	dataType: "{dataType}",	
	url: "{wsUrl}/qis/{sessionId}/rep/{repositoryId}/conf/{configurationId}/findobjects",
	data: JSON.stringify({
		templates : ["BusinessProcessDiagrams"],
		filter: [],
		filterType: "And",
		detectMetamodelFormat: false,
		order: [{
			key: "Name", 
			value: "asc"
		}],
		top: 0,
		skip: 0
	})
})
.done(function(data){
	// data handling
});
Ex3a: Find management processes sorted by modification date
$.ajax({
	type: "POST",
	contentType: "application/json; charset=utf-8",
	dataType: "{dataType}",
	url: "{wsUrl}/qis/{sessionId}/rep/{repositoryId}/conf/{configurationId}/findobjects",
	data: JSON.stringify({
		templates : ["BusinessProcessNetwork", "BusinessProcessDiagram", "WorkFlowDiagram"],
		filter: [{
			key: "Name",
			value: "Manage"
		}],
		filterType: "And",
		detectMetamodelFormat: false,
		order: [{
			key: "AuditMD", 
			value: "desc"
		}],
		top: 25,
		skip: 0
	})
})
.done(function(data){
	// data handling
});

Read object data

{wsUrl}/{dataType}/qis/{sessionId}/rep/{repositoryId}/conf/{configurationId}/object/{objectId}
Ex4: Get all attributes of BusinessProcessNetwork "Chixi Car Rental Processes" in repository
$.ajax({
	type: "GET",
	dataType: "{dataType}",	
	url: "{wsUrl}/qis/{sessionId}/rep/{repositoryId}/conf/{configurationId}/object/{objectId}"
})
.done(function(data){
	// data handling
});

Get diagram

http://{serverName}/{repositoryId}/{ConfigurationName}/{RevisionId}-{Language}.svg
Ex5: Get diagram of BusinessProcessNetwork "Chixi Car Rental Processes"
$.ajax({
	type: "GET",
	dataType: "{dataType}",
	url: "{wsUrl}/qis/{sessionId}/rep/{repositoryId}/conf/{configurationId}/object/{objectId}"
})
.done(function(data){
	var objectData = $.parseJSON(data);
	var diagramSrc = "http://{serverName}/{repositoryId}/Base Configuration/Diagrams/" 
		+ objectData.RevisionId + "-" + objectData.Language + ".svg";
	
	$.ajax({
		type: "GET",
		dataType: "html",
		url: diagramSrc
	})
	.done(function(data){
		// data handling
	})
	.fail(function(){
		// diagram is not published
	});
});

Run QSQL

{wsUrl}/{dataType}/qis/{sessionId}/rep/{repositoryId}/conf/{configurationId}/RunQsqlExpression
Ex6: Run QSQL query
Query:	

$.ajax({
	type: "POST",
	dataType: "{dataType}",
	url: "{wsUrl}/qis/{sessionId}/rep/{repositoryId}/conf/{configurationId}/RunQsqlExpression",
	data:   window.JSON.stringify({
		query: "{query}",
		queryOptions: {
			AutoResolve: true,
			Comparison: "DefaultCaseInsensitive",
			IncludeDeleted: false,
			IncludeRemote: false,
			Language: "{languageCode}",
			Scope: 0
		}
	})
})
.done(function(data){
	// data handling
}
.fail(function(){
	// invalid qsql query
});

Run QSQL - TableValued

{wsUrl}/{dataType}/qis/{sessionId}/rep/{repositoryId}/conf/{configurationId}/RunTableValuedQsqlExpression
Ex7: Run QSQL query
Query:

$.ajax({
	type: "POST",
	dataType: "{dataType}",
	url: "{wsUrl}/qis/{sessionId}/rep/{repositoryId}/conf/{configurationId}/RunTableValuedQsqlExpression",
	data: window.JSON.stringify({
		query: "{query}",
		queryOptions: {
			AutoResolve: true,
			Comparison: "DefaultCaseInsensitive",
			IncludeDeleted: false,
			IncludeRemote: false,
			Language: "{languageCode}",
			Scope: 0
		}
	})
})
.done(function(data){
	// data handling
}
.fail(function(){
	// invalid qsql query
});

Find all policies

Ex8: Run policy query
Retriev all policies:

$.ajax({
	type: "POST",
	dataType: "{dataType}",
	url: "{wsUrl}/qis/{sessionId}/rep/{repositoryId}/conf/{configurationId}/RunTableValuedQsqlExpression",
	data: window.JSON.stringify({
		query: "{query}",
		queryOptions: {
			AutoResolve: true,
			Comparison: "DefaultCaseInsensitive",
			IncludeDeleted: false,
			IncludeRemote: false,
			Language: "{languageCode}",
			Scope: 0
		}
	})
})
.done(function(data){
	// data handling
}
.fail(function(){
	// invalid qsql query
});

Execute Generic Query

Ex9: Execute predefined query
Select query:

$.ajax({
	type: "POST",
	dataType: "{dataType}",
	url: "{wsUrl}/qis/{sessionId}/rep/{repositoryId}/conf/{configurationId}/CSharpMethod/GWE_ServiceHandlers.GetGenericQueryFull",
	data: window.JSON.stringify({
		objectAttributes: [
			{
				Name: "GenericQuery", 	// QualiWare template for queries
				Format: "PlainText", 	// default text format in request
				Value: "{query}" 	// query id
			}
		]
	})
})
.done(function(data){
	// data handling
}
.fail(function(){
	// invalid qsql query
});

Update Data

Ex10: Update Policy Responsible
Select policy:

Select Responsible:

$.ajax({
	type: "POST",
	dataType: "{dataType}",
	url: "{wsUrl}/qis/{sessionId}/rep/{repositoryId}/conf/{configurationId}/object/{policy}/Update",
	data: window.JSON.stringify({
		objectAttributes: [
			{
				Name: "HasResponsible", // metamodel attribute to be updated
				Format: "SingleLink", 	// metamodel format
				Value: "{responsible}"  // responsible persons
			}
		]
	})
})
.done(function(data){
	// data handling
}
.fail(function(){
	// invalid qsql query
});

Javascript console

Javascript / Jquery
var obj = new RepositoryObject("{objectId}");
$(this).html(obj.attr("CurrInst->Name"));