You can use the OBN Analyzer to select portal content and check what iViews are valid implementations for the current user, and then find out the business objects and operations that implement these iViews.
You can specify portal content by supplying a set of folders or roles.
For example, you can specify a role and find out all the valid OBN links to content in that role for the current user.
To perform a query, you specify the following:
● Scope: Specifies the roles or folders in which to search for valid OBN implementations.
● Filter: Specifies a query filter. For example, you can specify that you only want the query to return context business objects, or only system business objects based on a specific system alias, or only operations with a specific name.
● User: Only implementations to which the specified user has access are used to create the list of valid business objects and operations.
The code below gets business objects with valid implementations for the current user.
Only the content in roles for the current user are checked, and only iViews that are implementations for one of the following:
● An operation called operation_1 or operation_2
● An operation for a system business object based on system alias systemAlias_1 or systemAlias_2
● An operation for a context business object whose namespace is namespace_1
// Get Analyzer handler for creating needed objects
IOBNService obnSrv = (IOBNService)PortalRuntime
.getRuntimeResources().getService(IOBNService.KEY);
IOBNAnalyzingHandler obnAnalyzingHandler = obnSrv.getOBNAnalyzingHandler();
try {
// Set query filters
IOBNAnalyzingBOFilter
boFilter = obnAnalyzingHandler
.createOBNAnalyzingBOFilter();
boFilter.anyTypeBO().operations().add("operation_1");
boFilter.anyTypeBO().operations().add("operation_2");
boFilter.systemBO().system().add("systemAlias_1");
boFilter.systemBO().system().add("systemAlias_2");
boFilter.contextBO().namespace().add("namespace_1");
// Set query scope
IOBNAnalyzingScope
scope = obnAnalyzingHandler
.createOBNAnalysingScope();
scope.addDirContextsOfUserRoles(user);
// Perform query
IOBNAnalyzingContainer cont = obnAnalyzingHandler
.getAnalyzingContainer(scope, boFilter, user);
// Gets the results
List<IOBNResolvingContainer> resolvingContainers =
cont.getOBNResolvingContainers();
}
catch(OBNException e) {}
The result is a list of IOBNResolvingContainer objects, each of which represents a business object with at least one valid implementation for the current user.