Zu 1.)
Wenn die Daten Cachbar sind, dann würde ich dir empfehlen, den bestehenden Agenten dazu zu bringen, Userdokumente anzulegen und dort die Kategorien abzulegen
Zu 2.)
Ja, würde sie. Bzw. die Daten vorhalten. Das geht aber auch per SSJS, hier ein Beispiel:
/***
* Global function to get a CurrentUser object from sessionScope.
* Creates a new CurrentUser object if there is none in the scope.
*
* @author Sven Hasselbach
* @return a CurrentUser object
*/
function getCurrentUserObjFromScope() {
var cUser;
if (!sessionScope.containsKey("user")) {
synchronized(sessionScope) {
cUser = new CurrentUser();
sessionScope.put("user", cUser);
}
}
cUser = sessionScope.get("user");
return cUser;
}
/***
* User Object
*
* @author Sven Hasselbach
*/
function CurrentUser(){
var _navigatiorObj = null;
/**
* @return Navigator object
*/
this.getNavigator = function(){
if( typeof this._navigatorObj === 'undefined' )
this.setNavigator( loadNavigator() );
return this._navigatorObj;
}
/**
* @param Navigator object
*/
this.setNavigator = function( navObj){
this._navigatorObj = navObj;
}
/**
* load Navigator
* @return navigation object
*/
function loadNavigator(){
// do lookup or whatever
var v = new java.util.Vector();
v.add("1");
v.add("2");
v.add("3");
return v;
}
}
Als SSJS library kann der Code in der XPage dann mit
getCurrentUserObjFromScope().getNavigator();
ausgelesen werden.
Zu 3.)
Dann solltest Du den ExtLib Navigator verwenden. Dort gibt es die
repeatTreeNode, die kann dafür wunderbar verwendet werden. Dafür könntest Du dann noch ein SSJS Objekt im Userscope ablegen, das die nötigen Eigenschaften hat.