The below sample will retrieve the hierarchy elements displayed in a drill path of a grid on a document as shown in the image below.
The example provided in this document is provided “as-is” to the user and assumes that the user:
PREREQUISITES:
For the sample to work, the Strategy Web JAR files must be accessible by the Java Runtime
Environment. The Strategy Web JAR files can be found under:
Note:
More elaborate programs will require additional library files and are out of the scope of this document.

package com.Strategy.sdk.standalone;
import com.Strategy.web.beans.RWBean;
import com.Strategy.web.beans.ViewBean;
import com.Strategy.web.beans.WebBeanFactory;
import com.Strategy.web.objects.WebDrillMap;
import com.Strategy.web.objects.WebGridData;
import com.Strategy.web.objects.WebGridTitles;
import com.Strategy.web.objects.WebIServerSession;
import com.Strategy.web.objects.WebObjectSource;
import com.Strategy.web.objects.WebObjectsException;
import com.Strategy.web.objects.WebObjectsFactory;
import com.Strategy.web.objects.WebReportGrid;
import com.Strategy.web.objects.WebTitle;
import com.Strategy.web.objects.WebViewInstance;
import com.Strategy.web.objects.admin.users.WebUser;
import com.Strategy.web.objects.rw.RWGridGraphSettings;
import com.Strategy.web.objects.rw.RWInstance;
import com.Strategy.webapi.EnumDSSXMLObjectTypes;
import com.Strategy.webapi.EnumDSSXMLResultFlags;
public class test {
public static void main(String[] args) throws IllegalArgumentException, WebObjectsException{
getDrillHierarchy();
}
public static void getDrillHierarchy() throws IllegalArgumentException, WebObjectsException{
try{
WebBeanFactory beanfactory = WebBeanFactory.getInstance();
RWBean rwb = (RWBean) beanfactory.newBean("RWBean");
rwb.setSessionInfo(serverSession);
rwb.setObjectID("docID");
rwb.getRWInstance().setAsync(false);
rwb.collectData();
RWInstance rwi = rwb.getRWInstance();
RWGridGraphSettings settings = rwi.getDefaultGridGraphSettings();
settings.setEnabled(true);
settings.setResultFlags(EnumDSSXMLResultFlags.DssXmlResultGrid|EnumDSSXMLResultFlags.DssXmlResultRawData|EnumDSSXMLResultFlags.DssXmlResultDrillLow);
rwi.setAsync(false);
rwb.collectData();
String gridKey = "W88"; //key for specific grid on document
ViewBean vb = (ViewBean) rwb.getDataWebBeans(gridKey).get(0);
WebViewInstance wvi = vb.getViewInstance(); //RWViewInstance object
WebGridData wgd = wvi.getGridData();
WebReportGrid wrg = wgd.getWebReportGrid();
WebGridTitles rowTitles = wrg.getRowTitles();
if (!rowTitles.isEmpty()) {
for (int k = 0; k < rowTitles.size(); k++) {
WebTitle wt =rowTitles.get(k);
WebDrillMap drillMap = wt.getDrillMap();
String hierarchyElements[] = drillMap.getSetNames();
for(int j=0; j<hierarchyElements.length; j++) {
System.out.println(hierarchyElements);
}
}
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}