How to create a list of users with a current role
How to create a list of users with a current role To get a list of the users with their roles you can use table usage. Get the next fields from it - email and userRole. In this table, you can find all the roles that these users had previously [ALT Text: A table displaying two columns: "email" and "userRole." The "email" column contains redacted email addresses, while the "userRole" column lists different roles such as "Viewer," "Data Designer," "datadesigner," and "Designer." Some users appear multiple times with different roles.] To avoid this, lets go to the elasticube, open table usage. Create a Custom Column [ALT Text: A screenshot of the Sisense Elasticube interface showing the usage table with multiple fields, including trackingId, timeStamp, userId, userRole, and more. An arrow points to the three-dot menu next to the usage table, where a dropdown menu is open. The "Add Custom Column" option is highlighted in red, indicating the selection for creating a new custom column.] Name it - rank_date_ids We will use the function RankCompetitionDesc (https://docs.sisense.com/main/SisenseLinux/mathematical-functions.htm) Our query will look like this: RankCompetitionDesc( email, [timeStamp] ) Press the Save button and Build the Elasticube [ALT Text: A screenshot of the Sisense Elasticube interface showing the creation of a custom column named rank_date_ids in the usage table. The formula RankCompetitionDesc(email, [timeStamp]) is entered in the editor. An arrow points to the "Save" button, indicating the action to save the custom column. The status message at the bottom confirms that the formula has been parsed successfully.] Go to the dashboard and edit our widget. Add a filter for a column rank_date_ids = 1 [ALT Text: Dropdown menu interface with multiple selectable options. Check the box next to each option. "Add Filter" and "Usage Analytics Model" are visible. One item is selected and highlighted.] As the result, we will get the current user roles for every user. [ALT Text: Table showing an email column with text obscured in red and a user-role column listing "Viewer" and "Data Designer".]242Views1like0CommentsAuto zoom Area Map widget to a specific country on load (Linux)
Auto zoom Area Map widget to a specific country on load To test this solution, you must create a dashboard based on Sample ECommerce and an Area Map widget based on a Country column. Once it is done - please go to the widget editor, click three dots select Edit Script, then paste the following script there: As a result, we have our Area Map widget zoomed to Germany on the initial load: const countryName = 'Germany' widget.on('processresult', (scope, args)=>{ saveMapObj() }) widget.on('domready', (scope, args)=>{ zoomToCountry(L.geoJson(widget.queryResult.geoJson), window.currentMap, countryName); }) function zoomToCountry(geoData, map, countryName) { // Create a new empty GeoJSON object to store only the selected country's feature(s) geoData.eachLayer(function (layer) { if (layer.feature.properties.name === countryName) { map.fitBounds(layer.getBounds()); // Zoom to country bounds } }) } function saveMapObj() { let leafletHookStatus = $$get(prism, 'autoZoomAreaMap.leaflet.initHookAdded') if(!leafletHookStatus) { L.Map.addInitHook(function () { window.currentMap = this }) $$set(prism, 'autoZoomAreaMap.leaflet.initHookAdded', true); } } [ALT Text: A map of Europe with colored regions indicating specific areas. Central Europe is highlighted in teal, while other areas appear in gray. The United Kingdom is visible to the northwest. The date displayed at the top indicates June 10, 2025.] DO NOT CHANGE!!! Disclaimer: This post outlines a potential custom workaround for a specific use case or provides instructions regarding a specific task. The solution may not work in all scenarios or Sisense versions, so we strongly recommend testing it in your environment before deployment. If you need further assistance with this please let us know.617Views1like0CommentsHide vertical lines on the Pivot widget (Linux)
Hide vertical lines on the Pivot widget To test this solution, you must create a dashboard based on any cube and create any Pivot widget. Once it is done - please go to the widget editor, click three dots select Edit Script, then paste the following script there: const howManyRowsToIgnore = 2; widget.on('ready', () => { const cells = element[0].querySelectorAll('.table-grid__cell'); let maxColIndex = 0; cells.forEach(cell => { const match = cell.className.match(/table-grid__cell--col-(\d+)/); if (match) { const colIndex = parseInt(match[1], 10); if (colIndex > maxColIndex) { maxColIndex = colIndex; } } }); cells.forEach(cell => { const colMatch = cell.className.match(/table-grid__cell--col-(\d+)/); const rowMatch = cell.className.match(/table-grid__cell--row-(\d+)/); if (colMatch && rowMatch) { const colIndex = parseInt(colMatch[1], 10); const rowIndex = parseInt(rowMatch[1], 10); if (rowIndex >= howManyRowsToIgnore) { if (colIndex !== 0) { cell.style.borderLeft = 'none'; } if (colIndex !== maxColIndex) { cell.style.borderRight = 'none'; } } } }); }); Please note there is a howManyRowsToIgnore parameter that specifies how many first rows to ignore. It is done to have the possibility to leave vertical lines for header values if needed. If you need to hide all vertical lines including header-related lines as well - just set this value to 0. As a result, we have a Pivot widget with hidden vertical lines: [ALT Text: A table titled "Budget" displaying a list of brands along with their corresponding total costs. The first entry, "ABC," shows a total cost of $3,564,045.86. The subsequent entries include brands such as "Addimax," "Adderax," and "Addulator Inc," along with their respective total costs, ranging from around $100 to several million. The table spans multiple rows and includes a total of 2094 entries. The header indicates columns for "Brand" and "Total Cost."] Disclaimer: This post outlines a potential custom workaround for a specific use case or provides instructions regarding a specific task. The solution may not work in all scenarios or Sisense versions, so we strongly recommend testing it in your environment before deployment. If you need further assistance with this please let us know.317Views1like0CommentsHow to record a .har file and identify if specific requests are present in logs
To record a .har file in Chrome, open Developer Tools > Network tab, enable recording, clear logs, and reproduce the issue before exporting the file. To check for jaql requests, filter by "jaql" in the Network tab and inspect the request status and X-Request-ID. For on-premise Sisense, use cat /var/log/sisense/sisense/<log_file_name> | grep <X-Request-ID> (single-node) or kubectl exec (multi-node) to search logs for the request.1.6KViews1like0CommentsHow to check specific pods CPU/memory consumption in Grafana
To check pod CPU and memory usage in Grafana, go to Dashboards > All Pods per Namespace, select sisense, adjust the time frame, and filter by pod name. Ensure CPU and memory graphs are visible in screenshots, taking separate ones for different pod types.1.6KViews2likes0Comments