====== Exalead / Publish & Subscribe & D&D ====== ===== Available Documents ===== * [[https://pingoo.paris.exalead.com/~sbrossol/confluence/PA/Select-API_38711079.html|Select API]] * [[https://pingoo.paris.exalead.com/~sbrossol/confluence/PA/Configure-the-Select-API_44077624.html|Configure the Select API]] ===== Settings Publish ===== Au niveau de l'utilisateur dans l'appli, ne pas oublier de sélectionner les settings Publish/Subscribe dans les préférences utilisateur. ===== Channels Configuration - Example ===== Topic : DS/PADUtils/PADCommandProxy/select Data : { '${entry.metas['url']}': { physicalId: '${entry.metas['physicalid']}', path: [ ${foreach entry.metas['physicalproductpath']} '${str:replace(str:split("#", loop.element)[0], ".*/", "")}', ${/foreach} ] } } Normalizer : function (selectedHits, data) { var infos = window.dashboardController.widgetInfos; return { metadata: { uid: window.SelectAPI.utils.getRandomString(4), originUid: infos.widgetId, timestamp: (new Date()).getTime(), appid: infos.appId, originWidgetId: infos.widgetId }, data: { paths: selectedHits.map(function (hit) { return [data[hit].physicalId]; }), tenant: infos.tenantId, version: '1.1' } }; } Denormalizer: function (message, data) { var infos = window.dashboardController.widgetInfos; if (message.metadata.originUid === infos.widgetId || message.metadata.appid === infos.appId) { return null; } return message.data.paths.map(function (path) { return _.findKey(data, {physicalId: path[0]}); }); } ===== Debug Push ===== Dans la console du navigateur, copier les lignes suivantes: require('DS/PlatformAPI/PlatformAPI', function (PlatformAPI) { PlatformAPI.subscribe('DS/PADUtils/PADCommandProxy/select', console.log); }) ===== Identify Publish Event ===== Use the browser dev tool and search for the PlatformAPI.js and add a break point for Publish {{:exalead:3ddashboard_publish.png?600|}} ===== D&D 3DXContext ===== * [[https://dsdoc.dsone.3ds.com/devdoc/3DEXPERIENCER2022x/en/DSInternalDoc.htm?show=CAAWebAppsJSDragDropPro/CAAWebAppsQr3DXContent.htm| 3DXContent (Internal DS)]]