====== 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)]]