Often there is a need to provide a link directly to an object within the 3DEXPERIENCE platform. This was commonly done in 3DSpace applications - to provide links via email notifications or for various other use cases where a link external to the platform was required. The link was fairly straightforward with a known URL and then passing the PHYSICALID of an object as a parameter.
https://host/3DSpace/common/emxNavigator.jsp?objectId=PHYSICALID
The 3DDashboard presents more of a challenge because each object must now be opened in the context of a widget designed to handle that object type. A mechanism to support this has been been developed for some widgets, but it now requires more information than just the PHYSICALID. It consists of an app id and an encoded string containing additional parameters.
Here is an example of how to generate a URL to open an object in the Product Structure Editor widget:
https://host/3DDashboard/#dashboard/app:ENOPSTR_AP/content:X3DContentId=URI_ENCODED_STR URI_ENCODED_STR Ex. Before Encoding {"data":{"items":[{"envId":"OnPremise","objectId":"PHYSICALID","objectType":"VPMReference"}]}} PHYSICALID = physical id of VPMReference you wish to load Ex. After Encoding %7B%22data%22%3A%7B%22items%22%3A%5B%7B%22envId%22%3A%22OnPremise%22%2C%22objectId%22%3A%22PHYSICALID%22%2C%22objectType%22%3A%22VPMReference%22%7D%5D%7D%7D Final URL with PHSYICALID and URI_ENCODING https://host/3DDashboard/#dashboard/app:ENOPSTR_AP/content:X3DContentId=%7B%22data%22%3A%7B%22items%22%3A%5B%7B%22envId%22%3A%22OnPremise%22%2C%22objectId%22%3A%22786AA75613960000605A0640001DC127%22%2C%22objectType%22%3A%22VPMReference%22%7D%5D%7D%7D
The app ids that are known to work with this methodology are:
Product Structure Editor: ENOPSTR_AP Engineering Release: ENXENG_AP Change Action: ENOWCHA_AP
To URI encode the string passed to the URL, you can select one of several programming language dependent APIs that support this operation. Below is a JavaScript API to perform this encoding along with its details:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
Additional Notes
Ensure there is no whitespace or newline characters in the payload string that will be URI encoded
For the Change Action widget the payload objectType needs to be changed to "Change Action"
The envId for on-premise environments is "OnPremise" and for cloud environments it is the tenant ID ensuring a capital 'R' is used (ex. R1132100503XXX)
The URL to support a direct link to cloud environments is: https://eu1-ifwe.3dexperience.3ds.com/#dashboard/app:APP_ID/content:X3DContentId=ENCODED_STR
** The methodology to determine the payload and URL is subject to change **
Tips_and_Tricks Platform R2021x
