Change Management
Change Management extension is used to expand the functionality of long transactions. It encapsulates pure long transactions functionality and adds following possibilities:
-
Definition of project specific long transactions states – workflow
-
Definition of access rights using user groups in LIDS Security
-
Assignment of individual users to individual long transactions
-
Define spatial restriction for editable data
-
Define type restriction for editable data
-
Optimize client user interface by automating some steps
Main configuration is stored in change-management.xml which is stored in extensions folder.
If change-management.xml extension is defined on a project, the pure functionality of long transactions is not available to the end user and is completely replaced by the interface of change management. User is working with change managements instead of long transactions.
The extension defines one or more feature types. Features of these types are related to system long transaction in 1:1 cardinality. The features expand properties of long transactions by project specific attributes.
Example of change-management.xml:
<?xml version="1.0" encoding="UTF-8"?>
<ber:changeManagement xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" xmlns:ber="http://www.berit.com/ber">
<ber:version>
<ber:metadata>1</ber:metadata>
<ber:minClient>8888</ber:minClient>
<ber:minAS>12517</ber:minAS>
</ber:version>
<ber:parametersArray>
<ber:parameter name="useSystemToolbar" value="false"/>
<ber:parameter name="allowLoadDataOption" value="false"/>
<ber:parameter name="allowSituationSave" value="true"/>
</ber:parametersArray>
<ber:changeManagementTypeArray>
<ber:changeManagementType>
<ber:featureType xlink:href="model.xml#ft_change_management_simple"/>
<ber:attributeArray>
<ber:attribute id="transactionId" xlink:href="model.xml#at_lt_id"/>
</ber:attributeArray>
<ber:settingArray>
<ber:setting id="initialTemplate" settingId="id_1"/>
</ber:settingArray>
</ber:changeManagementType>
<ber:changeManagementType>
<ber:featureType xlink:href="model.xml#ft_change_management_complex"/>
<ber:attributeArray>
<ber:attribute id="transactionId" xlink:href="model.xml#at_lt_id"/>
<ber:attribute id="lockedById" xlink:href="model.xml#at_locked_by"/>
<ber:attribute id="name" xlink:href="model.xml#at_name"/>
<ber:attribute id="spatialExtent" xlink:href="model.xml#at_master_feature"/>
<ber:attribute id="layerMagicTool" xlink:href="tool.xml#ti_1"/>
</ber:attributeArray>
<ber:userRestriction>
<ber:relationAssoc xlink:href="model.xml#as_changemngmc_changemngmu"/>
<ber:attributeArray>
<ber:attribute id="userId" xlink:href="model.xml#at_user"/>
<ber:attribute id="writeableId" xlink:href="model.xml#at_writable">
<ber:values false="2" true="1"/>
</ber:attribute>
</ber:attributeArray>
</ber:userRestriction>
<ber:spatialRestriction templateBuffer="1000">
<ber:excludedTemplates>id_1,id_2,id_3</ber:excludedTemplates>
</ber:spatialRestriction>
<ber:settingArray>
<ber:setting id="typeRestriction" settingId="id_2"/>
<ber:setting id="visualizationModel" settingId="id_3"/>
</ber:settingArray>
</ber:changeManagementType>
</ber:changeManagementTypeArray>
</ber:changeManagement>
Following parameters are common for whole project:
-
useSystemToolbar – true / false parameter; default is true. If set to false, the system toolbar Change Management is disabled & hidden in the client GUI. It’s useful, if the toolbar functions are replaced by the project tools
-
allowLoadDataOption – true / false parameter; default is true. If set to false, the checkbox Load data when logging in is disabled & hidden in in the client GUI
-
allowSituationSave – true / false parameter; default is false. If set to true, a situation is saved every time user closes C hange M anagement window in the client. The situation is saved under root folder in settings for every user and every change management feature.
-
If the situation for the user & change management exists, it's overwritten
-
The short value includes the necessary identifiers
-
The situations are never deleted automatically
-
The situation is loaded automatically when the user opens the Change Management window again
-
It means the list of layers, which layers are displayed and the position of graphical views
-
In this case thevisualisationModelfromchange-management.xmlis not applied
-
Following definitions are independent for individual change management feature types:
-
featureType – feature type representing change management / long transaction
-
transactionId – feature attribute for storing id of long transaction – link to LIDS_LONG_TRANS table
-
lockedById – feature attribute used to store information about user who has the change management opened in read write mode. If such change management is opened by another user, client displays info and asks if to open the change management in read only mode. The attribute has to be filled by project specific script. This configuration makes sense only when more read / write sessions in one long transaction are not allowed -lids.longTransaction.allowMultipleWritableSessionsproperty
-
name – feature attribute. The value from this attribute is used on two places in client:
-
Replaces %%name%% variable in attribute condition
-
Is used as prefix for template names ifvisualizationModelorinitialTemplateare used
-
-
spatialExtent – featureRef attribute to the master feature with geometry. The geometry is then used forspatialRestriction**. The master feature can’t use shared semantics!
-
layerMagicTool – link to tool.xml to a layerMagic tool which is activated when opening change management
-
initialTemplate – link to a template setting, which is automatically added to data management when opening change management
-
visualizationModel – link to a display model setting, which is automatically activated when opening change management
-
userRestriction – section which defines assignment of individual users to individual change management
-
relationAssoc – featureRef relation between the change management feature (master) and binding feature between users and change management (child)
-
userId – attribute of the binding feature for storing user id
-
writeableId – attribute of the binding feature storing the information about read only access (false) and read / write access (true). If this element is not defined, the assigned users are considered to have read / write access and it’s not possible to define read only access for particular user
-
-
typeRestriction – limits feature types editable in change management. Link to a featuretypefiltercollection setting. Without this definition, it's possible to edit any data after opening a change management. The non-versioned data will be visible to everybody immediately after committing the short transaction
-
spatialRestriction – this element activates spatial restriction handling.
-
If the related feature loaded using spatialExtent has geometry – the geometry of related feature is used for spatial restriction, optionally expanded by templateBuffer attribute
-
If the change management feature has geometry – the geometry is used for spatial restriction. If the gometry type is not polygon, MBR is calculated. templateBuffer attribute is not applied if the change management has its own geometry
-
The spatial restriction is applied as spatial condition to all templates automatically loaded when opening change management. Templates specified by optional excludedTemplates element are excluded
-
The spatial restriction is used to fit all opened graphical views when opening change management if visualizationModel or initialTemplate are used. If a situation is already saved for the change management, the position of graphical views is loaded from the situation
-
Workflow – states
If change-management.xml extension is defined on a project, it’s possible to define project specific workflow of handling long transactions, define specific states and conditions, when and how the states can be changed. But this brings also limitations – the states manipulation has to be implemented by the project scripts, including creating and committing long transactions. Only the standard functions for rolling back and deleting long transactions are available.