JSP レポート・ビューアー・ロジックの作成

JSP レポート・ビューアーのロジックは、データ管理ポータルによって呼び出される JSP に含まれています。 JSP レポートの標準的な実装では、 TMSDataHelper という Java™ ヘルパー・クラスを使用して TADDM API を照会します。 照会の結果は、Java メソッドを使用して操作できるオブジェクトです。 TADDM API およびモデルについて詳しくは、$COLLATION_HOME/sdk/doc にある SDK の資料を調べてください。

以下の例は、JSP レポート・ビューアーの単純なインプリメンテーションを示しています。 以下の内容を新規ファイル $COLLATION_HOME/deploy-tomcat/reports.war/WEB-INF/view/custom.jsp (TADDM 7.3.0 を使用する場合) または $COLLATION_HOME/apps/reports.war/WEB-INF/view/custom.jsp (TADDM 7.3.0.1 以降を使用する場合) にコピーし、TADDM サーバーを実行するユーザーがそのファイルを 読み取ったり、実行したりできるようにします。

以下の例は、シェル・スクリプトによって生成された appServers.xml ファイルを変換するために使用される appServers.xsl スタイル・シートを示しています。 レポートにはアプリケーション・サーバー名とその製品バージョンが表示されています。 この内容を新規のファイル $COLLATION_HOME/sdk/bin/appServers.xsl にコピーし、TADDM サーバーを実行しているユーザーがそのファイルを読み取ることができるようにします。
<%@ page language="java" %>
<%@ page import="com.collation.cdm.common.util.TMSDataHelper" %>
<%@ page import="java.lang.StringBuffer" %>
<%@ page import="com.collation.cdm.reports.util.ReportsParser" %>
<%@ page import="com.collation.cdm.common.util.TMSReportingTransformer" %>
<%@ page import="com.collation.platform.model.AttributeNotSetException" %>
<%@ page import="com.collation.platform.model.ModelObject" %>
<%@ page import="com.collation.platform.model.topology.sys.ComputerSystem" %>
<%@ page import="com.collation.platform.model.topology.process.BusinessProcess" %>
<%@ page import="com.collation.platform.model.topology.process.Activity" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jstl/xml" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="com.collation.platform.util.Props" %>
<%@ page import="java.util.ArrayList"%>
<%@ page import="com.collation.cdm.common.messages.CdmLocalizedMessages"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%
java.util.Locale locale = 
com.collation.cdm.common.util.CDMUtil.checkLocale(request.getLocale());
    if (null == session.getAttribute(org.apache.struts.Globals.LOCALE_KEY)) {
session.setAttribute(org.apache.struts.Globals.LOCALE_KEY, locale);
    }
%>
<%
//TMSDataHelper is a utility class for running MQL queries against the DB
TMSDataHelper tms = new TMSDataHelper(locale);

//Perform a query for all ComputerSystems
ModelObject dataIn[] = tms.doModelObjectQuery("SELECT * FROM ComputerSystem",null);

  //Build an HTML report based on the API output
  StringBuffer output = new StringBuffer();
  output.append("<p>");
  output.append("<table border=\"1\">");
                int c = 0;
                int s = dataIn.length;
                while (cs) {
                        ComputerSystem tmo = (ComputerSystem)dataIn[c];
                        String csName = null;
                        String csLabel = null;
                        if (tmo.hasName()) {
                                try {
                                        csName = tmo.getName();
                                } catch (AttributeNotSetException e) {
                                        csName = "unknown";
                                }
                        }
                        if (tmo.hasSignature()) {
                                try {
                                        csLabel = tmo.getSignature();
                                } catch (AttributeNotSetException e) {
                                        csLabel = "";
                                }
                        }
                        output.append("<tr><td colspan=\"2\" bgcolor=\"#9999FF\">");
                        output.append("ComputerSystem" + "<br>");
                        output.append(" Name: " + csName + "<br>");
                        output.append("</td><td>");
                        output.append("Signature: " + csLabel);
                        output.append("</td></tr>");
                        c++;
                }
output.append("</table>");
String bpstring = output.toString();
%>
<html>
<body>
<h1>Sample JSP Report/h1>
<%=bpstring%>
</body>
</html>