The management service is a SOAP service that allows you to access and edit your studio repository without the use of studio. Everything that the studio does graphically can be done via methods in the management service. You could theoretically build your own studio that connects to the management service. This article describes the different methods of the management service.
We distinguish different categories of methods:
Dependencies GetUsedByElementsForGlobalElement Parameters
Example Messages
Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.everest.nl/aquima/studio/ManagementService/1.0">
<soapenv:Header/>
<soapenv:Body>
<ns:GetUsedByElementsForGlobalElement>
<ns:repository>TestRepository</ns:repository>
<ns:branch>Trunk</ns:branch>
<ns:project>TestProject</ns:project>
<ns:globalElement Name="color1" GlobalElementType="PresentationStyle"/>
</ns:GetUsedByElementsForGlobalElement>
</soapenv:Body>
</soapenv:Envelope>
Response
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetUsedByElementsForGlobalElementResponse xmlns="http://www.everest.nl/aquima/studio/ManagementService/1.0">
<GetUsedByElementsForGlobalElementResult>
<Dependency>
<ReferenceType>Usage</ReferenceType>
<From>
<ModuleElement>
<Project Name="TestProject"/>
<Module Name="main" ModuleType="Interaction"/>
<Key Name="testpage" ModuleElementType="Page"/>
</ModuleElement>
</From>
<To>
<Global>
<Project Name="Dashboard"/>
<Key Name="color1" GlobalElementType="PresentationStyle"/>
</Global>
</To>
</Dependency>
<Dependency>
<ReferenceType>Usage</ReferenceType>
<From>
<ModuleElement>
<Project Name="TestProject"/>
<Module Name="main" ModuleType="Interaction"/>
<Key Name="testcontainer" ModuleElementType="Container"/>
</ModuleElement>
</From>
<To>
<Global>
<Project Name="Dashboard"/>
<Key Name="color1" GlobalElementType="PresentationStyle"/>
</Global>
</To>
</Dependency>
</GetUsedByElementsForGlobalElementResult>
</GetUsedByElementsForGlobalElementResponse>
</s:Body>
</s:Envelope>
repository: the repository to search in, required branch: the branch to search in, required project: the project in which the element is defined, required module: the module in which the element is defined, required moduleElement: the element key of the element, required The server will return a dependency for each element that uses the specified element. It will search through all projects and modules that are in scope for the specified element in the specified branch.
Example Messages
Request
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetUsedByElementsForModuleElement xmlns="http://www.everest.nl/aquima/studio/ManagementService/1.0">
<repository>TestRepository</repository>
<branch>Trunk</branch>
<project>TestProject</project>
<module Name="main" ModuleType="Interaction"/>
<moduleElement xsi:type="AttributeKey" Name="test" ModuleElementType="Attribute">
<Entity xmlns="">test</Entity>
</moduleElement>
</GetUsedByElementsForModuleElement>
</s:Body>
</s:Envelope>
Response
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetUsedByElementsForModuleElementResponse xmlns="http://www.everest.nl/aquima/studio/ManagementService/1.0">
<GetUsedByElementsForModuleElementResult>
<Dependency>
<ReferenceType>Usage</ReferenceType>
<From>
<ModuleElement>
<Project Name="TestProject"/>
<Module Name="main" ModuleType="Interaction"/>
<Key Name="testpage" ModuleElementType="Page"/>
</ModuleElement>
</From>
<To>
<ModuleElement>
<Project Name="TestProject"/>
<Module Name="main" ModuleType="Interaction"/>
<Key xsi:type="AttributeKey" Name="test" ModuleElementType="Attribute">
<Entity xmlns="">test</Entity>
</Key>
</ModuleElement>
</To>
</Dependency>
<Dependency>
<ReferenceType>Usage</ReferenceType>
<From>
<ModuleElement>
<Project Name="TestProject"/>
<Module Name="main" ModuleType="Interaction"/>
<Key Name="testcontainer" ModuleElementType="Container"/>
</ModuleElement>
</From>
<To>
<ModuleElement>
<Project Name="TestProject"/>
<Module Name="main" ModuleType="Interaction"/>
<Key xsi:type="AttributeKey" Name="test" ModuleElementType="Attribute">
<Entity xmlns="">test</Entity>
</Key>
</ModuleElement>
</To>
</Dependency>
</GetUsedByElementsForModuleElementResult>
</GetUsedByElementsForModuleElementResponse>
</s:Body>
</s:Envelope>
Response:
Something to consider If you use inheritance between modules, and specialization of elements, elements and dependencies you are looking for may react differently than expected.
Consider the following example for a module element: For a repository named ExampleRepository
with a branch named ExampleBranch
, with in the branch the following project structure:
project SpecificProject
references GenericProject
GenericProject
contains module GenericModule
GenericModule
contains entity and attribute Person.Name
SpecificProject
contains module SpecificModule
, which includes GenericModule
SpecificModule
contains container PersonView
which displays Person.Name
SpecificModule
contains page Overview
which contains PersonView
project UnrelatedProject
references noneUnrelatedProject
contains module UnrelatedModule
UnrelatedModule
contains entity and attribute Person.Name
UnrelatedModule
contains container PersonView
which displays Person.Name
If we use the GetUsedByElementsForModuleElement
method with parameters: repository = ExampleRepository
branch = ExampleBranch
project = GenericProject
module = GenericModule
element key = Attribute, Person.Name
It will return a dependency for
PersonView
in SpecificModule
becauseSpecificModule
includes GenericModule
PersonView
has a direct reference to Person.Name
But not for
Overview
in SpecificModule
becauseOverview
does not directly reference Person.Name
PersonView
in UnrelatedModule
becausethere is no include between UnrelatedModule
and GenericModule
The returned dependency will contain:
ReferenceType: Usage
From: ElementKeyReference
property ModuleElement
will be a reference to PersonView
in SpecificModule
all other properties will be null To: ElementKeyReference
property ModuleElement
will be reference Person.Name
in GenericModule
all other properties will be null Note that if Person.Name
is also specialized in SpecificModule
, then the dependency from PersonView
in SpecificModule
will refer to Person.Name
in SpecificModule
instead. This means the search with the given parameters will give no results: the search should also be executed for Person.Name
in SpecificModule
.
Exports ExportBranch
ExportLibrary
ExportPackage
ExportProject Exports the working revision of a project.
Parameters:
repository: the repository in which the project to be exported is located, required branch: the branch in which the project to be exported is located, required project: the project to be exported, required encrypt: a boolean flag indicating whether the export should be encrypted, required The server will return the bytes of a ZIP file containing the project export.
Example Messages
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.everest.nl/aquima/studio/ManagementService/1.0">
<soapenv:Header/>
<soapenv:Body>
<ns:ExportProject>
<ns:repository>TestRepository</ns:repository>
<ns:branch>Trunk</ns:branch>
<ns:project>TestProject</ns:project>
<ns:encrypt>false</ns:encrypt>
</ns:ExportProject>
</soapenv:Body>
</soapenv:Envelope>
Response:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ExportProjectResponse xmlns="http://www.everest.nl/aquima/studio/ManagementService/1.0">
<ExportProjectResult ContentType="application/zip">
<Content>UEsDBBQACAA ... CxJwAAAAA=</Content>
</ExportProjectResult>
</ExportProjectResponse>
</s:Body>
</s:Envelope>
ExportProjectRevision Exports a project at a specific revision
Parameters:
repository: the repository in which the project to be exported is located, required branch: the branch in which the project to be exported is located, required revisionId: the revision to be exported, required project: the project to be exported, required encrypt: a boolean flag indicating whether the export should be encrypted, required The server will return the bytes of a ZIP file containing the project export.
Example Messages
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.everest.nl/aquima/studio/ManagementService/1.0">
<soapenv:Header/>
<soapenv:Body>
<ns:ExportProjectRevision>
<ns:repository>TestRepository</ns:repository>
<ns:branch>Trunk</ns:branch>
<ns:revisionId>b1372603-4705-4728-8ef4-198477f97e6e</ns:revisionId>
<ns:project>TestProject</ns:project>
<ns:encrypt>false</ns:encrypt>
</ns:ExportProjectRevision>
</soapenv:Body>
</soapenv:Envelope>
Response:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ExportProjectRevisionResponse xmlns="http://www.everest.nl/aquima/studio/ManagementService/1.0">
<ExportProjectRevisionResult ContentType="application/zip">
<Content>UEsDBBQ ... CeIQAAAAA=</Content>
</ExportProjectRevisionResult>
</ExportProjectRevisionResponse>
</s:Body>
</s:Envelope>
Elements FindGlobalElementProject
FindglobalElements
FindModuleElement
GetAllGlobalElements
GetAllModuleElements
GetGlobalElement
GetGlobalElements
GetModuleElement
GetModuleElements
GetMostSpecificModuleElement
Search This method searches for an element in a given branch, project or module. It is equivalent to the search functionality present in studio.
Parameters:
SearchType
: In what scope you would like to search. Values: Branch
, ProjectStructure
, SingleProject
, ModuleScope
Repository
: the repository in which the search is performedBranch
: the branch in which the search is performedProject
: Optional, the projectin which the search is performedModule
: Optional, the modulein which the search is performedSearchString
: the string to be searched forSearchInNames
: a boolean indicating whether to search in names of elementsSearchInDependencies
: a boolean indicating whether to search in the dependencies of an elementIncludeGlobalElements
: a boolean indicating whether to search in global elements
IncludeModuleElements
: a boolean indicating whether to search in global elementsFullText
: a boolean indicating if a full text search should be performedCaseSensitive
: a boolean indicating that the search should be performed in a case-sensitive mannerTo make this method useful, the caller should make sure that:
at least one of IncludeGlobalElements
or IncludeModuleElements
should be true
at least one of
SearchInNames
, SearchInDependencies
or FullText
should be true
Example Messages
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.everest.nl/aquima/studio/ManagementService/1.0">
<soapenv:Header/>
<soapenv:Body>
<ns:Search>
<ns:parameters>
<ns:SearchType>ModuleScope</ns:SearchType>
<ns:Repository>HospitalDCM</ns:Repository>
<ns:Branch>Trunk</ns:Branch>
<ns:Project>HospitalDCM</ns:Project>
<ns:Module Name="Dashboard" ModuleType="Interaction"/>
<ns:SearchString>Menu</ns:SearchString>
<ns:SearchInNames>1</ns:SearchInNames>
<ns:SearchInDependencies>0</ns:SearchInDependencies>
<ns:IncludeGlobalElements>0</ns:IncludeGlobalElements>
<ns:IncludeModuleElements>1</ns:IncludeModuleElements>
<ns:FullText>0</ns:FullText>
<ns:CaseSensitive>0</ns:CaseSensitive>
</ns:parameters>
</ns:Search>
</soapenv:Body>
</soapenv:Envelope>
Response:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SearchResponse xmlns="http://www.everest.nl/aquima/studio/ManagementService/1.0">
<SearchResult>
<SearchResultItem xsi:type="ElementSearchResultItem">
<Element>
<ModuleElement>
<Project Name="HospitalDCM"/>
<Module Name="Dashboard" ModuleType="Interaction"/>
<Key Name="MenuBar" ModuleElementType="Container"/>
</ModuleElement>
</Element>
</SearchResultItem>
<SearchResultItem xsi:type="ElementSearchResultItem">
<Element>
<ModuleElement>
<Project Name="HospitalDCM"/>
<Module Name="Dashboard" ModuleType="Interaction"/>
<Key Name="Dashboard_Menu" ModuleElementType="Container"/>
</ModuleElement>
</Element>
</SearchResultItem>
<SearchResultItem xsi:type="ElementSearchResultItem">
<Element>
<ModuleElement>
<Project Name="HospitalDCM"/>
<Module Name="Dashboard" ModuleType="Interaction"/>
<Key Name="DashboardMenu" ModuleElementType="FlowEvent"/>
</ModuleElement>
</Element>
</SearchResultItem>
</SearchResult>
</SearchResponse>
</s:Body>
</s:Envelope>
Imports ImportBranch
ImportLibrary
ImportSpecification
Project Structure GetModule
GetModules
GetPackage
GetPackages
GetProject
GetProjects
ReadLibraryMetadata
UnitTests ExecuteAllUnitTests
ExecuteUnitTests
Version Management Commit
CreateBranch
CreateBranchType
CreateFeatureBranch
CreateFeatureBranchOnRevision
DeleteRepository
DeleteBranch
DeleteBranchType
GetRepository
GetRepositories
GetBranch
GetBranches
GetBranchType
GetBranchTypes
GetProjectsForRevision
GetRevision
GetRevisionChanges Returns the changes in a specific revision.
Parameters:
repository: the repository to search in, required. branch: the branch to search in, required. revision: the revision whose changes are to be retrieved, required Example Messages
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.everest.nl/aquima/studio/ManagementService/1.0">
<soapenv:Header/>
<soapenv:Body>
<ns:GetRevisionChanges>
<!--Optional:-->
<ns:repository>TestRepository</ns:repository>
<!--Optional:-->
<ns:branch>Trunk</ns:branch>
<!--Optional:-->
<ns:revision>eadcb8e1-c306-4ea0-a983-162afa863473</ns:revision>
</ns:GetRevisionChanges>
</soapenv:Body>
</soapenv:Envelope>
Response:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetRevisionChangesResponse xmlns="http://www.everest.nl/aquima/studio/ManagementService/1.0">
<GetRevisionChangesResult>
<ElementChange>
<Type>Create</Type>
<CurrentKey>
<ModuleElement>
<Project Name="TestProject"/>
<Module Name="TestModule" ModuleType="Interaction"/>
<Key Name="Address" ModuleElementType="Entity"/>
</ModuleElement>
</CurrentKey>
</ElementChange>
<ElementChange>
<Type>Create</Type>
<CurrentKey>
<ModuleElement>
<Project Name="TestProject"/>
<Module Name="TestModule" ModuleType="Interaction"/>
<Key xsi:type="AttributeKey" Name="Street" ModuleElementType="Attribute">
<Entity xmlns="">Address</Entity>
</Key>
</ModuleElement>
</CurrentKey>
</ElementChange>
<ElementChange>
<Type>Create</Type>
<CurrentKey>
<ModuleElement>
<Project Name="TestProject"/>
<Module Name="TestModule" ModuleType="Interaction"/>
<Key xsi:type="RelationKey" Name="hasAddress" ModuleElementType="Relation">
<Entity xmlns="">Person</Entity>
</Key>
</ModuleElement>
</CurrentKey>
</ElementChange>
</GetRevisionChangesResult>
</GetRevisionChangesResponse>
</s:Body>
</s:Envelope>
GetRevisionDescriptor
GetRevisions Returns a list of revisions in a specified repository and branch.
Parameters:
repository: the repository to search in, required branch: the branch to search in, required startIndex: the index of the first included revision, required amount: the number of revisions to include, required; a negative amount includes all revisions. taggedOnly: boolean flag indicating whether to include only tagged revisions, required. includeMergeRevisions: boolean flag indicating whether to include merge revisions, required. Example Messages
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.everest.nl/aquima/studio/ManagementService/1.0">
<soapenv:Header/>
<soapenv:Body>
<ns:GetRevisions>
<ns:repository>TestRepository</ns:repository>
<ns:branch>Trunk</ns:branch>
<ns:startIndex>0</ns:startIndex>
<ns:amount>-1</ns:amount>
<ns:taggedOnly>false</ns:taggedOnly>
<ns:includeMergeRevisions>true</ns:includeMergeRevisions>
</ns:GetRevisions>
</soapenv:Body>
</soapenv:Envelope>
Response:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetRevisionsResponse xmlns="http://www.everest.nl/aquima/studio/ManagementService/1.0">
<GetRevisionsResult>
<Revision>
<CommitTime>2015-02-21T22:07:36.857</CommitTime>
<RevisionId>147513d0-558e-4562-8281-595a6471d1aa</RevisionId>
<Message>created new entity</Message>
<Committer>admin</Committer>
<Branch>Trunk</Branch>
<ParentRevisionIds>b1372603-4705-4728-8ef4-198477f97e6e</ParentRevisionIds>
<Tags>tag1</Tags>
</Revision>
<Revision>
<CommitTime>2015-02-17T15:05:14.213</CommitTime>
<RevisionId>b1372603-4705-4728-8ef4-198477f97e6e</RevisionId>
<Message>initial commit in Trunk</Message>
<Committer>admin</Committer>
<Branch>Trunk</Branch>
<ParentRevisionIds>7371efb5-be0d-43fb-ba54-287836daedd6</ParentRevisionIds>
</Revision>
<Revision>
<CommitTime>2015-02-13T13:14:39.353</CommitTime>
<RevisionId>7371efb5-be0d-43fb-ba54-287836daedd6</RevisionId>
<Message>Branch created</Message>
<Committer>admin</Committer>
<Branch>Trunk</Branch>
</Revision>
</GetRevisionsResult>
</GetRevisionsResponse>
</s:Body>
</s:Envelope>
MergeBranch
MergeRevision
SetTags
UpdateRepository
UpdateBranch
UpdateBranchType
Other Methods ApplyOperation
EvaluateExpression
GetCurrentIdentity
GetDataSource
GetLicenseData
GetStatus
HasModuleWriteAccess
IsInRole
Logout
RetrieveLog
RetrieveServerInformation
RetrieveSubscriptionStatus
SendMessage
SetDataSource
ValidateProject