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:
Ex1: Get Session ID:
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)
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "{dataType}",
url: "{wsUrl}/login",
data: JSON.stringify({
authority: "",
authorityKind: "Any",
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 methodParameters:
- templates (Array of <string> containing template names)
- filter (Array of <string,string> containing attribute and value)
- filterType (Handling of multiple filters, "And" | "Or")
- detectMetamodelFormat (set to false in order to skip metamodel detection)
- order (Array of <string,string> containing attribute name and sorting order)
- top (Max number of object to collect, 0 for no limit)
- skip (Number of objects to skip before object collection is started)
$.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
https://{serverName}/{sitename}/{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 = "https://{serverName}/{sitename}/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 queryQuery:
$.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 queryQuery:
$.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 queryRetriev 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
// Insert some code here...