When designing a Report Services document in Strategy Web, text fields can contain normal static text or they can be converted into a hyperlink via Edit Links.


The Edit Links value is saved as the following properties in the definition of the Report Services document:
Category: FormattingNavigation
Name: Hyperlinks
It is possible to programmatically retrieve these navigation properties using the Strategy Java Web SDK 9.4.1. To accomplish this, use the code below:
package com.Strategy.sdk.standalone;
import com.Strategy.web.beans.FolderBean;
import com.Strategy.web.beans.RWBean;
import com.Strategy.web.beans.WebBeanException;
import com.Strategy.web.beans.WebBeanFactory;
import com.Strategy.web.objects.WebFolder;
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.rw.EnumRWUnitTypes;
import com.Strategy.web.objects.rw.RWDefinition;
import com.Strategy.web.objects.rw.RWInstance;
import com.Strategy.web.objects.rw.RWTextDef;
import com.Strategy.web.objects.rw.RWUnitDef;
import com.Strategy.webapi.EnumDSSXMLApplicationType;
import com.Strategy.webapi.EnumDSSXMLObjectFlags;
public class test {
public static void main(String arg[]) throws WebObjectsException, WebBeanException{
/** Create I-Server Session **/
WebObjectsFactory factory = WebObjectsFactory.getInstance();
WebIServerSession serverSession = factory.getIServerSession();
serverSession.setServerName("localhost");
serverSession.setServerPort(0);
serverSession.setProjectName("Strategy Tutorial");
serverSession.setLogin("administrator");
serverSession.setPassword("");
serverSession.setApplicationType(EnumDSSXMLApplicationType.DssXmlApplicationCustomApp);
WebObjectSource wos = factory.getObjectSource();
wos.setFlags(wos.getFlags()|EnumDSSXMLObjectFlags.DssXmlObjectProperties);
String docID = "DFFA47764D56D66F6F2106A2906CE2DA";
WebBeanFactory bfactory = WebBeanFactory.getInstance();
RWBean rwb = (RWBean) bfactory.newBean("RWBean");
rwb.setSessionInfo(serverSession);
rwb.setObjectID(docID);
//rwb. collectData();
RWInstance rwi = rwb.getRWInstance();
// Getting parent folder to use when saving later
FolderBean fb = rwb.getParentFolderBean("fb");
WebFolder parentFolder = fb.getFolderObject();
System.out.println("Parent Folder: "+ parentFolder.getName());
String docName = rwb.getDisplayName();
out("Document Name: " + docName);
RWDefinition rwdef = rwi.getDefinition();
RWUnitDef[] rwUnits = rwdef.findUnitsByType(EnumRWUnitTypes.RWUNIT_TEXT);
RWUnitDef rwUnit;
System.out.println("Number of text fields: "+ rwUnits.length);
String textFieldKey = null;
for (int i=0;i<rwUnits.length;i++){
rwUnit = rwUnits[i];
RWTextDef txtdef = (RWTextDef)rwUnit;
textFieldKey = txtdef.getKey();
String editlink = rwi.getDefinition().findUnit(textFieldKey).getFormat().getValue("FormattingNavigation", "Hyperlinks");
out(editlink);
}
/** Close I-Server Session **/
serverSession.closeSession();
}
public static void out(String s){
System.out.println(s);
}
}