/******************************************************************** * ARIS Report * Display all ARIS documents with name and last change * Befor testing add SERVER, TENANT, TIMEZONE, DATABSE * ********************************************************************/ var SERVER = ""; var TENANT = ""; var TIMEZONE = ""; var DATABASE = ""; function enc(s) { return encodeURIComponent(String(s)); } function getAdditionalInfo(result, keyName) { if (!result || !result.additionalInfos) return ""; for (var i = 0; i < result.additionalInfos.length; i++) { var info = result.additionalInfos[i]; if (String(info.key) == keyName) return String(info.value); } return ""; } function executeSearch(connectionService, headers, offset, size) { var pluginConfiguration = { priority: 3, id: "ads_admin", label: "base.globalSearch.plugin.adsadmin.DBI" }; var searchId = SERVER + "/" + new Date().getTime() + "search-extendedGlobalSearch1"; var url = SERVER + "/documents/rest/searchProcessor/executeSearch" + "?locale=de-DE" + "&selectedDB=" + enc(DATABASE) + "&tenantId=" + enc(TENANT) + "&timezone=" + enc(TIMEZONE) + "&query=" + "&searchId=" + enc(searchId) + "&offset=" + offset + "&size=" + size + "&sequence=1" + "&pluginConfiguration=" + enc(JSON.stringify(pluginConfiguration)) + "&itemFavoritesSearch=false" + "&itemFavoritesFromAllDBSSearch=false" + "&image=false" + "&editEnabled=false" + "&filterSelectionEnabled=false"; var response = connectionService.get(url, headers); if (response == null) throw "No response from ADS REST Service."; if (response.getStatusCode() != 200) throw "HTTP Status " + response.getStatusCode() + "\n" + String(response.getBody()); return JSON.parse(String(response.getBody())); } /******************************************************************** * MAIN ********************************************************************/ var connectionService = Utilities.getNetUtils().getConnectionService(); var headers = connectionService.getARISAuthorizationHeader(ArisData); var offset = 0; var size = 500; var count = 0; var output = ""; while (true) { var result = executeSearch( connectionService, headers, offset, size ); var hits = (result && result.results) ? result.results : []; if (hits.length == 0) break; for (var i = 0; i < hits.length; i++) { var hit = hits[i]; var name = hit.name ? String(hit.name) : ""; var lastChange = getAdditionalInfo(hit, "Last change"); output += name + " | " + lastChange + "\n"; count++; } if (hits.length < size) break; offset += size; } Dialogs.MsgBox( "ADS-Documents: " + count + "\n\n" + output );