Absent Member.
Absent Member.
5748 views

SCTM Report All Requirements

Hi

I want to adapt Silk Central Testmanager's "All Requirements" Report. Therefore, I exported the file "All Requirements.rptdesign" to BIRT report designer and adjusted the report parameters to reflect our SCTM environment (we use Oracle DB):

sourceDriver:  oracle.jdbc.OracleDriver

sourceURL: jdbc:oracle:thin:@HOST:1234:SCTMSID

sourceUser: SCTM_ORACLE_USER

sourcePassword: ORACLE_USER_CREDENTIALS

I did not change any further parameters, since I found no explanation for them.

After configuring the parameters, I tried to preview the report in BIRT report designer, but got the following errors:

The following items have errors:

ReportDesign (id = 1):
+ There are errors evaluating script "reportDataProvider = new Packages.com.segue.scc.reportserver.BirtDataProvider();

Priority_Risk= new Array();
Priority_Risk["Low"] = reportContext.getMessage("allRequ.Priority_Risk.Low",reportContext.getLocale());
Priority_Risk["Medium"] = reportContext.getMessage("allRequ.Priority_Risk.Medium",reportContext.getLocale());
Priority_Risk["High"] = reportContext.getMessage("allRequ.Priority_Risk.High",reportContext.getLocale());
Priority_Risk["Critical"] = reportContext.getMessage("allRequ.Priority_Risk.Critical",reportContext.getLocale());

url = params["currFrontendURL"];
reportId = params["currReportFilterID"];
sessionId = params["currSessionID"];
handlerId = params["currHandlerID"];

/*
var url = "http://localhost:19120/DEF/silk";
var reportId = "16";
var sessionId = "6818937710862323034";
*/

reportDataProvider.prepareData(url,handlerId,sessionId,reportId);
repInfo = reportDataProvider.getReportInfo();
repData = reportDataProvider.getReportData();

function getReportInfo() {
  return repInfo;
}

function getReportData() {
  return repData;
}":
Report parameter "currHandlerID" does not exist

ReportDesign (id = 1):
+ There are errors evaluating script "reportInfo = getReportInfo();
reportData = getReportData();
currentRow = 0;
totalRows = reportData.size();":
{1}.
+ There are errors evaluating script "if (currentRow < totalRows) {
  if (currentRow == 0) {
   [...]
  }
  var dataRow = reportData.get(currentRow);
  row ["reqName"]           = dataRow[0];
  [...] 
  row ["PositionNumber"]    = dataRow[10];  
  
  currentRow++;
  return true;
}
else {
  return false;
}":
{1}.
+ data.engine.BadFetchScriptReturnType

Does anyone succed in getting a preview of this particular report in BIRT report designer? Does anyone know the meaning of the remaining report parameter?

I would appreciate any help!

With best regards,

Bernd

0 Likes
7 Replies
Cadet 2nd Class Cadet 2nd Class
Cadet 2nd Class

Hi,

As many other reports, this template retrieves data from the Silk Central Frontend Server via web services, and also runs an additional query to the database from within BIRT.

To run this report in BIRT Designer, please do the following:

To add the missing parameter right click the "Report Parameters" entry in the Outline window, choose "New Parameter", name it "currHandlerID" and set the default value to "reportData".

In the "Enter Parameters" window that opens when previewing, make sure to fill out the other parameters as well. You can leave the date formatter and generation date as it is, but provide a valid session id and the report id of the Silk Central report.

To obtain a session ID, access Silk Central via the following URL:

http://<hostname>:19120/services/sccsystem?method=logonUser&username=<username>&password=<password>

Also make sure to place the report template in an appropriate BIRT working folder, that contains the conf/BIRT subfolder with the Silk Central report library file. You can e.g. use the workspace folder that is contained in the BIRT download package from the Help/Tools section.

Regards,

Roland

0 Likes
Absent Member.
Absent Member.

Hi Roland

Thank you very much for your advice. Now, the error messages have disappeared, but the report is still empty. I argue, that there is still one wrong report parameter.

Could you please explain the meaning of CurrReportFilterID and currFrontendURL?

With best regards,

Bernd

0 Likes
Cadet 2nd Class Cadet 2nd Class
Cadet 2nd Class

Hi,

this BIRT report retrieves data from a corresponding Silk Central report via Webservices. In this case, most of the data is actually queried in Silk Central by the Advanced Query of the report "Requirements -> Document Reports -> All Requirements". So the ID of this report (or of a copy with the same advanced query) has to be provided, which can be seen in the Properties tab of the report in Silk Central.

currFrontendUrl is the URL of the Silk Central frontend server, e.g. http://localhost:19120

Please also note that the session ID is invalidated after 10 minutes if it is not used, also resulting in an empty report. You have to retrieve a new one then.

Regards,

Roland

0 Likes
Cadet 2nd Class Cadet 2nd Class
Cadet 2nd Class

Hi Bernd,

did the last answer help? Report parameters are not too difficult to explain, but it can be tricky when I don't know which information is missing exactly. There is a document on getting started with BIRT (and passing parameters to reports) that was intended to be given to customers as well. I will check next week if I can post it here.

Regards,

Roland

0 Likes
Absent Member.
Absent Member.

Hi Roland,

thank you again for your assistance. I am answering late, since I have been out of office the last few days.

Unfortunately, I still have some problems. Know I get the following  exception:

org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report

Stack Trace:

org.eclipse.birt.report.service.api.ReportServiceException: Error happened while running the report

  at org.eclipse.birt.report.service.ReportEngineService.throwDummyException(ReportEngineService.java:1065)

  at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:888)

  at org.eclipse.birt.report.service.BirtViewerReportService.runAndRenderReport(BirtViewerReportService.java:973)

  at org.eclipse.birt.report.service.actionhandler.BirtGetPageAllActionHandler.__execute(BirtGetPageAllActionHandler.java:131)

  at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90)

  at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47)

  at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143)

  at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPageAll(BirtDocumentProcessor.java:183)

  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

  at java.lang.reflect.Method.invoke(Unknown Source)

  at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112)

  at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66)

  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

  at java.lang.reflect.Method.invoke(Unknown Source)

  at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)

  at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)

  at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)

  at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)

  at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)

  at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)

  at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)

  at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)

  at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)

  at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:265)

  at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)

  at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)

  at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

  at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)

  at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)

  at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)

  at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)

  at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:59)

  at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

  at org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:318)

  at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)

  at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:380)

  at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

  at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)

  at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

  at org.mortbay.jetty.Server.handle(Server.java:324)

  at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)

  at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:880)

  at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:748)

  at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213)

  at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)

  at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)

  at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)

Caused by: org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report

  at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:196)

  at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.run(RunAndRenderTask.java:75)

  at org.eclipse.birt.report.service.ReportEngineService.runAndRenderReport(ReportEngineService.java:882)

... 49 more

Caused by: java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleResultSet

  at oracle.jdbc.driver.T4CDriverExtension.allocatePreparedStatement(T4CDriverExtension.java:70)

  at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:881)

  at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:787)

  at org.eclipse.birt.report.data.oda.jdbc.Statement.prepare(Statement.java:142)

  at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.doPrepare(OdaQuery.java:229)

  at org.eclipse.datatools.connectivity.oda.consumer.helper.OdaQuery.prepare(OdaQuery.java:186)

  at org.eclipse.birt.data.engine.odaconsumer.Connection.prepareOdaQuery(Connection.java:281)

  at org.eclipse.birt.data.engine.odaconsumer.Connection.prepareStatement(Connection.java:181)

  at org.eclipse.birt.data.engine.executor.DataSource.prepareStatement(DataSource.java:268)

  at org.eclipse.birt.data.engine.executor.DataSourceQuery.prepare(DataSourceQuery.java:266)

  at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery$OdaDSQueryExecutor.prepareOdiQuery(PreparedOdaDSQuery.java:345)

  at org.eclipse.birt.data.engine.impl.QueryExecutor.prepareExecution(QueryExecutor.java:331)

  at org.eclipse.birt.data.engine.impl.PreparedQuery.doPrepare(PreparedQuery.java:437)

  at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.produceQueryResults(PreparedDataSourceQuery.java:189)

  at org.eclipse.birt.data.engine.impl.PreparedDataSourceQuery.execute(PreparedDataSourceQuery.java:177)

  at org.eclipse.birt.data.engine.impl.PreparedOdaDSQuery.execute(PreparedOdaDSQuery.java:143)

  at org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.execute(DataRequestSessionImpl.java:476)

  at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:123)

  at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:253)

  at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1825)

  at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:80)

  at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62)

  at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:43)

  at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:46)

  at org.eclipse.birt.report.engine.internal.executor.l18n.LocalizedReportItemExecutor.execute(LocalizedReportItemExecutor.java:34)

  at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:64)

  at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)

  at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:135)

  at org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.resumeLayout(HTMLInlineStackingLM.java:106)

  at org.eclipse.birt.report.engine.layout.html.HTMLInlineStackingLM.layoutNodes(HTMLInlineStackingLM.java:155)

  at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)

  at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:135)

  at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:69)

  at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)

  at org.eclipse.birt.report.engine.layout.html.HTMLTableBandLM.layoutChildren(HTMLTableBandLM.java:67)

  at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:135)

  at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:69)

  at org.eclipse.birt.report.engine.layout.html.HTMLStackingLM.layoutChildren(HTMLStackingLM.java:26)

  at org.eclipse.birt.report.engine.layout.html.HTMLTableLM.layoutChildren(HTMLTableLM.java:112)

  at org.eclipse.birt.report.engine.layout.html.HTMLAbstractLM.layout(HTMLAbstractLM.java:135)

  at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:69)

  at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90)

  at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:99)

  at org.eclipse.birt.report.engine.api.impl.RunAndRenderTask.doRun(RunAndRenderTask.java:167)

... 51 more

Caused by: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleResultSet

  at org.eclipse.birt.core.framework.URLClassLoader.findClass1(URLClassLoader.java:168)

  at org.eclipse.birt.core.framework.URLClassLoader$1.run(URLClassLoader.java:154)

  at org.eclipse.birt.core.framework.URLClassLoader$1.run(URLClassLoader.java:1)

  at java.security.AccessController.doPrivileged(Native Method)

  at org.eclipse.birt.core.framework.URLClassLoader.findClass(URLClassLoader.java:149)

  at java.lang.ClassLoader.loadClass(Unknown Source)

  at java.lang.ClassLoader.loadClass(Unknown Source)

... 95 more

Do you have any further ideas?

With best regards,

Berndjavascript:void(0);

0 Likes
Absent Member.
Absent Member.

Hi Roland,

I got it! I configured a wrong path to the oracle jdbc driver. After correcting my mistake everything worked fine.

Thank you very much, again.

With best regards,

Bernd

0 Likes
Cadet 2nd Class Cadet 2nd Class
Cadet 2nd Class

Hi,

great to hear that it works now.

In the next version of Silk Central, the BIRT package in Help/Tools is preconfigured correctly with Oracle and JTDS drivers.

Regards,

Roland Kern

0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.