New features, improvements and bug fixes done for version 4.9.0Table of Contents
User related changes
New Functionality
Issue [HDC-XXXX]
Indicate in object metadata which fields are editable
Issue [HDC-4556]
A new system option is available to indicate if a field is read-only in the Object Properties view and in the column headers of the Grid List.
When a user has editing permissions for an object, a padlock icon will be displayed next to any field that is not available for editing (i.e., set to read-only for that user).
If the entire object is not available for editing by the user, the padlock icons will not be displayed.
Here is an example of read-only fields in the Object Properties view:
Example in the GridView:
The read only fields are now also shown in the Object Edit Form as read only / disabled fields:
You can enable or disable this option in the System Settings by navigating to System Settings → General Settings → User Interface: Indicate read-only fields
Option to display all tabs in Grid view
Issue [HDC-4548]
New System and User setting to control visibility of object/document tabs in Grid View.
New option Grid View - Show All Tabs is placed in User Profile window.
When this option is enabled, Grid View will include all allowed tabs (even if the count is 0). If it's disabled, only tabs with content will be shown.
Display geolocation information for objects (NOT DONE YET)
Issue [HDC-4495]
By using the Object Information panel, users can now check if there is a geolocation stored for that object.
Data displayed is specific to a selected system version. Data can be displayed in native format or in WGS84 reference system.
Verify spots option
Issue [HDC-4419]
It sometime happens that some spots after import to FM Access gets into wrong place (due to units or insertations points mismatch).
This will couse an effect in viewer that nothing is shown at first glance.
But the groups of spots can be placed in opposite corners of a drawing (so the initial zoom tries to show whole extents).
If this happens you can activate Verify Spots option.
When checked, enter Edit mode and then use the Reload button from the toolbar.
If the Verify function enctoures seperated groups of spots then this window will appear:
Click Yes if you want to check those groups of spots. You will be zoomed in to first group of spots.
Click "Yes" to delete those spots if they are incorrect or unnecessary, or click "No" to leave them and zoom in to the next group of spots.
After removing problematic spots, the drawing should display correctly.
Change Requests related changes
New Functionality
Issue [HDC-XXXX]
Data Exchange changes
New Functionality
Issue [HDC-XXXX]
System Administration changes
Allow to change Internal group name in FM Access
Issue [HDC-4433]
Changing group name in Groups panel from FM Access is now possible.
Panel listing groups now also includes information about Group Category
System Group - built in system group (name can be changed, but function of the group will be dictated by its Type)
User Group - user defined group
Group Types:
System users - always includes all system users
Standard - members are controlled by a system administrator.
Changed name will also be reflected in the security administration panel:
Warning: make sure your group mappings reflect the new group names. (Identity Providers - Mappings)
Improved MasterGUID (FMGUID) Handling
MasterGUID (FMGUID) is a unique identifier for an object. In a typical scenario, it should never be changed and must remain consistent across all integrated systems.
There were several limitations with this property, as it was not stored as part of the object's metadata, and the identifier was maintained as unique across versions and drafts.
This release introduces several improvements to how we handle this identifier and expands the user's capabilities regarding it.
Support in Quick Search
Now, any object can be found using QuickSearch and its associated MasterGUID.
QuickSearch will automatically check if a query is a GUID and, if so, return any matching results from the MasterGUID registry.
Note: A search by MasterGUID will be performed if the query string is a valid GUID.
Partial match is not supported in this type of search.
Support in Advanced Search
Advanced search functionality now enables users to search for specific objects using their GUIDs.
Every object class now includes a new system field called MasterGUID, which is searchable.
Note: When a GUID field is selected, a query string must be a valid GUID.
Edit MasterGUID
In rare cases where objects are registered with an incorrect MasterGUID, you can update the MasterGUID from the object edit form.
Please note that this operation will update the master object registry, resulting in the selected object having a new GUID registered across the system,
affecting all versions and drafts. Exercise caution when performing this operation.
Select edit button located next to a GUID field:
Note:
GUID field cannot be updated together with other metadata
In addition to edit permissions for the object, an Administrator role is required. (Access Basic Admin Operations)
Change the GUID and save.
MasterGUID in API Calls
Several API calls now support the direct use of MasterGUID instead of ObjectClass and ObjectId.
If an integrated system has access to MasterGUID, there is no need to go through the object translation process to obtain the internal ID. This simplifies and streamlines API interactions.
HOPA Calls
A MasterGUID can be used to identify object. ObjectId and ClassId are not needed in that case.
Samples
Update object metadata by GUID:
PUT /object/byguid/json
{ "metadata": { "space_descr": "KORRIDOR 22", "space_bra": 25.79, "space_nta": 22.04, "space_bta": 25.3 }, "systemGuid": "e5668597-eceb-4e11-8b38-483f56350bfe" }
Check if object(s) exists by GUIDs
POST http://localhost:8080/api/object/byguids
Payload
{ "list": [ { "systemGuid": "a026793b-fac4-4599-a52f-be81fe9971f3" }, { "systemGuid": "ab91b37c-7cc4-4a5a-861e-9d3aa8aff9f8" }, { "systemGuid": "a8c47e9b-63a8-456e-a1a6-9b330e669961" }, { "systemGuid": "1b121e84-8c73-4072-8328-df07e5675231" }, { "systemGuid": "d159e390-b0d2-4247-81af-2e056d258474" } ] }
Response
{ "list": [ { "classId": 134, "objectId": 5420, "systemGuid": "d159e390-b0d2-4247-81af-2e056d258474" }, { "classId": 134, "objectId": 5416, "systemGuid": "a026793b-fac4-4599-a52f-be81fe9971f3" }, { "classId": 134, "objectId": 5418, "systemGuid": "1b121e84-8c73-4072-8328-df07e5675231" }, { "classId": 134, "objectId": 5425, "systemGuid": "a8c47e9b-63a8-456e-a1a6-9b330e669961" }, { "classId": 134, "objectId": 5415, "systemGuid": "ab91b37c-7cc4-4a5a-861e-9d3aa8aff9f8" } ] }
Fetch Metadata for object by GUID
GET http://localhost:8080/api/object/byguid/json/e5668597-eceb-4e11-8b38-483f56350bfe
Response:
{ "metadata": { "hdid": 3989, "space_id": "101", "space_name": "101", "space_descr": "KORRIDOR 22", "space_bra": 25.79, "space_nta": 22.04, "space_bta": 25.3, "space_guid": "8a71f4f5-0548-4670-8f56-24ef3cbc016a", "space_ru_nr": "403-13-2063" }, "contentType": 0, "contentId": 0, "securityMask": 71, "ssid": 1, "classId": 135, "objectId": 3989, "objectName": "101", "systemGuid": "e5668597-eceb-4e11-8b38-483f56350bfe" }
A list of services supporting GUID as an object identifier can be found in API Docs by query "byguid".
Object API
/object/byguid/eraseproperty
/object/byguid/json
/object/byguid/linkedspots
/object/byguid/erase/{guid}
/object/byguid/group/json
/object/byguid/json/{guid}
/object/byguid/link/{srcGuid}
/object/byguid/linkedspots/{guid}
/object/byguid/links/{guid}
/object/byguid/path/{guid}
/object/byguid/undelete/{guid}
/object/byguid/unlink/{srcGuid}
/object/byguid/default/{guid}/{perspectiveSetId}
/object/byguid/defaulthyperlink/{guid}/{entityId}
/object/byguid/group/properties/json
/object/byguid/hyperlink/{srcObjectId}/{dstGuid}
/object/byguid/link/{dstGuid}/{srcGuid}
/object/byguid/list/json/{guid}
/object/byguid/versions/json/{guid}
/object/byguid/link/default/{guid}/{perspectiveSetId}
/object/byguid/link/default/{dstClassId}/{dstObjectId}/{srcClassId}/{srcObjectId}/{perspectiveSetId}
Perspective API
/perspective/byguid/entityarea/xls
/perspective/byguid/json/{perspectiveId}/{contextGuid}
/perspective/byguid/metadata/json/{perspectiveId}
/perspective/byguid/metadata/xls/{perspectiveId}
/perspective/byguid/metadata/json/{perspectiveId}/{contextGuid}
/perspective/byguid/metadata/json/{perspectiveId}/{requiredObjectId}
/perspective/byguid/metadata/selected/{outputType}/{perspectiveId}
/perspective/byguid/parent/json/{perspId}/{contextGuid}
/perspective/byguid/subtree/json/{perspId}/{contextGuid}
/perspective/byguid/tree/json/{perspId}/{contextGuid}
/perspective/byguid/metadata/json/{perspectiveId}/{contextGuid}/{requiredObjectId}
Presentation API
/presentation/byguid/json/{drawingId}/{presentationId}
/presentation/byguid/filters/json/{drawingId}/{presentationId}
Search API
/search/byguid/advanced/objects/{childClassId}
Bug fixes and other improvements
paste link here
API Changes
(check /apidocs for more details about new/changed webservices)
Issue [HDC-XXXX] - Issue name
Old Webservice:
METHOD /PATH
New Webservice:
METHOD /PATH