Document toolboxDocument toolbox

MasterGUID / FMGUID

SINCE 4.9

MasterGUID (FMGUID) Handling

MasterGUID (FMGUID) serves as a unique identifier for an object. In a typical scenario, it should never be changed and must remain consistent across all integrated systems.

Previously, there were limitations with this property since 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 along with 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: If the query string is a valid GUID, a search by MasterGUID will be conducted.

It's important to note that partial match is not supported in this type of search.

Enhanced Support in Advanced Search

The advanced search functionality has been enhanced to allow users to locate specific objects using their GUIDs.

A new system field named MasterGUID has been added to every object class, making it 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.

To perform this action:

  1. Select the edit button located next to the GUID field.

    Note: 

    • The 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

Many API calls now allow the direct use of MasterGUID instead of ObjectClass and ObjectId.

If an integrated system has access to MasterGUID, there is no need to undergo the object translation process to obtain the internal ID. This simplifies and streamlines API interactions.

HOPA Calls

A MasterGUID can be used to identify an object, eliminating the need for ObjectId and ClassId in that case.

Sample call: http://localhost:8080/HopaGetView4Object?guid=2a58a5bc-0b46-4ae1-8f4f-85492d3d984d&DocumentForSpot=1&Width=600&Height=801&SpotMarginPercent=122&psetId=17

 

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: 

 

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}