Home / Business Intelligence / Customizing InfoView – Part 2: Log On Instructions and Dynamic Pizzazz

Customizing InfoView – Part 2: Log On Instructions and Dynamic Pizzazz

If you haven’t already, you will want to read Part 1 of this series, where I listed some of my best practices that should be done before customizing InfoView and then covered how to add a custom logo and custom title and greeting to the log on page.  In part 2, I will show you how to change the log on page instructions and I will also cover a more advanced customization that can help you make the log on page more dynamic.

Changing the Log On Page Instructions

The InfoView log on page also comes with generic instructions telling the user to enter her credentials and contact the system administrator if a problem occurs. These instructions can be changed so that the message more closely aligns with the business processes at your organization.

changing-log-on-img-1

The instructions can be tailored by modifying the PlatformResources_en.properties file within the PlatformServices_en.jar file under the webapps\PlatformServices\WEB-INF\lib directory.

Navigate to the webapps\PlatformServices\WEB-INF\lib directory and open PlatformServices_en.jar using 7-Zip, WinRAR, or any other decompression utility that works with .JAR files. Find the PlatformResources_en.properties file and open it. Scroll through the file to find the logon.firstInstruction and logon.secondInstruction parameters and modify them as needed. You may choose to modify one or both of the parameters. You may use plain text or, as shown in the example below, you may use a combination of plain text and HTML.

log-on-instructions-img-2

In the example above, only the second instruction was changed by replacing the default text with a new custom value:

logon.secondInstruction=For questions regarding account information, contact Adam Lange at x756 or <a href=”mailto:lange@ltcc.edu” class=”homepage”>lange@ltcc.edu</a>.<br><a href=”https://portal.ltcc.edu/facstaffresources/technology/Lists/Report%20Requests/NewForm.aspx” class=”homepage” target=”_blank”>Click here</a> to request a new report.

Save and close PlatformResources_en.properties and PlatformServices_en.jar and then restart Tomcat. The new instructions should now be visible on the log on page.

log-on-instructions-img-3

Adding Dynamic Text to Log On Page

My employer uses a reporting database which is updated daily from an ERP system. The refresh typically occurs at 1:30AM every morning. In the future, we may establish a second mid-day refresh around noon, but for now the reporting database is updated only once daily.

It is sometimes a struggle for users to remember that their reports do not contain real time information. Furthermore, there is sometimes confusion over exactly when the reporting database was last updated. To address these issues, I added a dynamic message to the InfoView log on page to display the date and time when the reporting database was last refreshed. This is a simple and intuitive message which gets all users on the same page in terms of the timeliness of the reporting database and the BusinessObjects reports.

dynamix-text-img-1

The message is updated automatically each day by a sequence of three steps:

1) The daily refresh of the reporting database completes at 1:30AM which then triggers the automatic execution of a SQL stored procedure.

2) The stored procedure writes the timestamp of when the refresh completed to a text file under the webapps\InfoViewApp\WEB-INF directory.

3) A custom Java code snippet in webapps\InfoViewApp\logon.jsp picks up the timestamp and displays it in bold red text on the InfoView log on page.

 

Here is the SQL stored procedure referenced in Steps 1 and 2:

CREATE PROCEDURE [dbo].[L56_WRITE_ODS_REFRESH_STATUS]

AS BEGIN

      — =============================================

      — Author:        Adam Lange

      — Create date:   3/20/2013

      — Description:   Writes to refresh data to ODSREFRESH.txt file on LTCC-BOAPP

      — =============================================

 

      — SET NOCOUNT ON added to prevent extra result sets from

      — interfering with SELECT statements.

      SET NOCOUNT ON;

 

      DECLARE @cmd VARCHAR(256)

      DECLARE @result VARCHAR(100)

      SET @result = ‘ODS reporting database last updated ‘ + (SELECT       LTRIM(RTRIM(REPLACE(CONVERT(VARCHAR(30), GETDATE()), ‘  ‘, ‘ ‘))))

      SET @cmd= ‘echo>\\LTCC-BOAPP\WEB-INF\ODSREFRESH.txt ‘ + @result

      EXEC master..xp_cmdshell @cmd, no_output

END

 

Here is the Java code snippet added to the logon.jsp page as mentioned in Step 3:

<%

String fileName = “/WEB-INF/ODSREFRESH.txt”;

InputStream ins = application.getResourceAsStream(fileName);

try

{

      if(ins == null)

      {

      response.setStatus(response.SC_NOT_FOUND);

      }

      else

      {

      BufferedReader br = new BufferedReader((new InputStreamReader(ins)));

      String data;

      while((data= br.readLine())!= null)

      {out.println(data+”<br>”);}

      }

}

catch(IOException e)

{out.println(e.getMessage());}

%>

Customizing Launch Pad in 4.0

Again, all information discussed in this article is relevant only to SAP BusinessObjects XI 3.1. You can perform many of the same customizations in SAP BusinessObjects 4.0, but the procedures are often quite different. For information on customizing Launch Pad in 4.0, I recommend consulting these resources:

Business Intelligence Platform Administrator Guide
http://help.sap.com/businessobject/product_guides/boexir4/en/xi4_bip_admin_en.pdf

SAP BusinessObjects OEM Customization Guide
http://help.sap.com/businessobject/product_guides/boexir4/en/xi4_oem_customization_en.pdf

Customizing SAP BusinessObjects BI 4.0
www.dallasmarks.org/blog/2011/09/customizing-sap-businessobjects-bi-4-0

About Adam

Adam Lange is a reporting and analytics specialist with a passion for data. He has worked mostly in higher education where he has developed countless reporting solutions. Adam lives in Phoenix, Arizona with his wife and more cats than he cares to admit.

Check Also

InfoSol Blog Tech Tip

Tech Tip: Alternate Break Value Highlighting

While the built in alternate row shading is nice to shade every other row or ...