Link Directly to an Object in 3DDashboard

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 ​​​​​​​