+ All Categories
Home > Documents > One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner...

One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner...

Date post: 04-Jul-2020
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
33
One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level, which works great if different departments are building their own dashboards. However, if a dashboard is built centrally, with the only difference between different departments being a page or two, you have to make a copy and then add or remove pages. This is not such a big deal in the beginning, but when you want to make changes, you need to update all of the Dashboards. The new Business Intelligence Portal allows for security at both the portal and page levels. So whether you are in a situation with different departments needing slight variations or different users within a department needing variations, the following will explain how you can build one portal to serve them all. It should also be noted that you can add or remove content from a portal without users losing their customizations. This article assumes that you are following Information Builders best practices for security and is based on using the Domain with the Group Administrator resource template for setting up the security infrastructure. For more information on Resource Templates, go to https://techsupport.informationbuilders.com/tech/wbf/v8templates/wbf_8_resource_templat es.html To start, you have to create a new portal. The system administrator can do this either manually or as an automated step when running the Resource Template (WebFOCUS 8 Service Pack 1). The system administrator is the only one who can set up security on the portal level, and defines which groups have what level of access. The group administrator sets up who is in each group and can set security on pages. The developer can build pages, but does not have access to page level security. Once the page that is not for the entire portal audience is created, the group administrator (or system administrator) can sign in and configure security at the page level. Once signed in, locate the page you wish to secure and follow the steps I am going to describe, and which are part of a lab presentation I gave at Summit 2012. The presentation focused on building a Business Intelligence Portal and will be part of an upcoming tutorial. In the tutorial, we build a page called Crazy that did some crazy page styling. We then hide the page from Advanced and Basic users as follows:
Transcript
Page 1: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

One Portal to Rule Them All By Matthew Lerner

In the Business Intelligence Dashboard, security is applied at the dashboard level, which works great if different departments are building their own dashboards. However, if a dashboard is built centrally, with the only difference between different departments being a page or two, you have to make a copy and then add or remove pages. This is not such a big deal in the beginning, but when you want to make changes, you need to update all of the Dashboards.

The new Business Intelligence Portal allows for security at both the portal and page levels. So whether you are in a situation with different departments needing slight variations or different users within a department needing variations, the following will explain how you can build one portal to serve them all. It should also be noted that you can add or remove content from a portal without users losing their customizations.

This article assumes that you are following Information Builders best practices for security and is based on using the Domain with the Group Administrator resource template for setting up the security infrastructure. For more information on Resource Templates, go to

https://techsupport.informationbuilders.com/tech/wbf/v8templates/wbf_8_resource_templates.html

To start, you have to create a new portal. The system administrator can do this either manually or as an automated step when running the Resource Template (WebFOCUS 8 Service Pack 1). The system administrator is the only one who can set up security on the portal level, and defines which groups have what level of access. The group administrator sets up who is in each group and can set security on pages. The developer can build pages, but does not have access to page level security.

Once the page that is not for the entire portal audience is created, the group administrator (or system administrator) can sign in and configure security at the page level. Once signed in, locate the page you wish to secure and follow the steps I am going to describe, and which are part of a lab presentation I gave at Summit 2012. The presentation focused on building a Business Intelligence Portal and will be part of an upcoming tutorial. In the tutorial, we build a page called Crazy that did some crazy page styling. We then hide the page from Advanced and Basic users as follows:

Page 2: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

1. In the Resources Tree, expand the Retail2 portal (See Screen 1).

2. Right-click on the Crazy page.

3. Choose Security > Rules.

Screen 1

4. Expand the Retail Group.

5. Select AdvancedUsers.

6. On the bottom, find DomainAdvancedUserRole.

7. Set Access to Clear Inheritance.

Page 3: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Screen 2

Repeat steps 3 to 5 with the following group and permission set:

Group Permission Set

Retail > BasicUsers DomainBasicUserRole

Note: The complete lab presentation is available online at the Information Builders Summit Web site http://www.informationbuilders.com/summit .

Page 4: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Time Series Analysis Using WebFOCUS and R by Sergei Dumnov In this article, I will share the steps I took to overcome current RStat limitations related to the number of algorithms available in RStat as well as the memory restrictions of 4GB of RAM in 32-bit RStat/R editions. The RAM restrictions could be a problem for large datasets since all calculations are done in RAM. My first obvious choice was to replace RStat/R with the 64-bit edition of R (go to http://www.r-project.org/ to download R and then to integrate it directly with WebFOCUS. To illustrate how to do this integration, let's begin with a simple case of time-series (TS) analysis, which is one of the most common business analytics tasks. According to Wikipedia, “a time series is a sequence of data points, measured typically at successive time instants spaced at uniform time intervals.” The TS I use here is a monthly store sales volume (of electronics) of a fictitious retail company named Contoso (http://en.wikipedia.org/wiki/Contoso) between Jan. 1, 2007 and Dec. 31, 2009. You can download the Contoso Retail data warehouse (MS SQL Server database) at http://alturl.com/bkxqv to follow along. Screen 1 shows the database tables and WebFOCUS procedure that delivers the TS to R for the analysis. For this demo, we need only one column, SALESQUANTITY, which has a Qty alias in the corresponding WebFOCUS synonym.

Screen 1 – Tables used and WF procedure

Page 5: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

If you run the above procedure in Developer Studio, you should see the following table:

Time-Series Analysis What do I mean by TS analysis? To start with, I am referring to the TS decomposition into trend, seasonal, and irregular (random) components. This is an important part of the TS analysis, especially if one wants to remove the seasonal component in order to estimate the non-seasonal sales trend, for instance. These components are also used to construct the sales forecast and its error rate estimation. The final result looks as follows (Screen 2):

Screen 2 – Contoso Sales Volume TS decomposition

Page 6: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

The R code Now I will share with you the step-by-step process of how to get the result displayed on Screen 2. Note: R commands are preceded by the > sign as you would see it in the R console. Step 1 > require('XML') This loads the XML package that we need to receive data from WebFOCUS procedures. Step 2 > sales.monthly <- readHTMLTable("http://magpie:8080/ibi_apps/WFServlet?IBIF_ex=002_get_Sales_Ts&IBIApp_app=contoso&IBIF_wfdescribe=OFF",header=TRUE)[[1]] This command reads an output from the WebFOCUS procedure 002_get_Sales_Ts.fex shown on Screen 1 into the R variable sales.monthly. If you are curious about its content or/and structure, type the variable name. This is what you should see:

The total number of rows is 36, of course. Nothing gets decomposed yet. The [[1]] refers to the index of the HTML table on the page and, of course, we have only one table. Step 3 > qty <-as.numeric(as.vector(sales.monthly[,3])) This takes the third column of the sales.monthly matrix and saves it as a numeric vector into the qty variable. To prove it, type qty after the R prompt (see below).

Page 7: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

The number in square brackets indicates the number of the first element in the row. Step 4 > qty.ts <- ts(qty,start=c(2007,1),frequency=12) This command uses the ts function (actually, it is a default constructor of the ts class) to create an instance of that class from the qty variable; the start parameter defines the time of the first observation and frequency – the number of observations per unit of time, which is 12 in this case. Type help(ts) if you like to learn more about the ts class. Step 5 qty.dc <- decompose(qty.ts) This step decomposes the qty.ts. To view the structure of the created object, type summary(qty.dc) as shown here:

The first four rows of the table display attributes of the ts class. These attributes can be examined by typing commands like the following one:

Page 8: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Step 6 This step contains five R commands: > setwd("C:/ibi/apps/contoso/") > if (file.exists("qtydc.png")) {file.remove("qtydc.png")==TRUE} > png("qtydc.png",width=800,height=600) > plot(qty.dc,yax.flip=TRUE,type="b",col="red",cex=.8) > dev.off() They 1) setup a working directory; 2) remove the qtydc.png file from the directory if it exits; 3) open a view port to write a new qtydc.png image; 4) create that image; and finally 5) close the view port. Step 7 > shell.exec("http://magpie:8080/approot/contoso/ts.htm") This opens the WebFOCUS HTML page ts.htm (assuming that you've created one in Developer Studio) that hosts the qtydc.png image.

Page 9: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Screen 3 Here are the 12 R commands that we used to generate the WebFOCUS report shown above: require('XML') sales.monthly <- readHTMLTable("http://magpie:8080/ibi_apps/WFServlet?IBIF_ex=002_get_Sales_Ts&IBIApp_app=contoso&IBIF_wfdescribe=OFF",header=TRUE)[[1]] qty <- as.numeric(as.vector(sales.monthly[,3])) qty.ts <- ts(qty,start=c(2007,1),frequency=12) qty.dc <- decompose(qty.ts) setwd("C:/ibi/apps/contoso/") if (file.exists("qtydc.png")) {file.remove("qtydc.png")==TRUE} png("qtydc.png",width=800,height=600) plot(qty.dc,yax.flip=TRUE,type="b",col="red",cex=.8) dev.off() shell.exec("http://magpie:8080/approot/contoso/ts.htm") If we had the above 11 lines (without the last one) saved in an R batch file – let's say TS.R, then we could execute it from the following FEX procedure:

Page 10: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

The result of the execution is shown on the Screen 4. Conclusion There is a significant opportunity for enhancing WebFOCUS predictive capabilities through the integration with R that offers thousands of readily available statistical and machine learning algorithms. Of course, what I demonstrated in this article is a very basic example, and in future articles I will try to address such important aspects as passing user parameters from FEX procedures to R using more sophisticated algorithms and models. (It would be logical to start with some forecasting models such as ARIMA to extend the above example.) I'd like to thank my colleagues who read this draft for their valuable suggestions and help.

Page 11: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Screen 4 – Result of the execution of the R code from a FEX procedure How to Use WebFOCUS Graph Assistant to Graph Results of R Calculations

By Sergei Dumnov Now that I’ve gone over the basics of time-series decomposition using WebFOCUS and R (See “Time Series Analysis Using WebFOCUS and R”), I will show you how to improve visualization quality using WebFOCUS Advanced Graph Assistant instead of the R charts. When using time series analysis, data is retrieved from the database and the R code processes it and plots the results to pass it back to WebFOCUS for rendering. The list of R commands to accomplish that is: > require('XML') > sales <- readHTMLTable("http://magpie:8080/ibi_apps/WFServlet?IBIF_ex=002_get_Sales_Ts&IBIApp_app=contoso&IBIF_wfdescribe=OFF",header=TRUE)[[1]] > qty <- ts(sales$QUANTITY, start=c(2007,1), end=c(2009,12), frequency=12) > qty.dc <- decompose(qty)

Page 12: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Before I show you how to use the Advanced Graph Assistant to improve visualization quality, I recommend changing some properties of the R Startup Menu as shown on Screen 1.

Screen 1 These changes remove the need to set up the project’s working directory to C:/ibi/apps/contoso every time you open R. Data Preparation for WebFOCUS Graph Assistant Let’s go over the steps to prepare the data for Graph Assistant: Step 1 > sales <- cbind(sales,as.vector(qty.dc$seasonal)) > sales <- cbind(sales,as.vector(qty.dc$trend)) > sales <- cbind(sales,as.vector(qty.dc$random)) > colnames(sales) <- c("MonthStart","Amount","Qantity","SeasQty","TrendQty","RndQty") > write.csv(sales,file="monthly_sales.csv",na="",row.names=FALSE) The first three R commands above append all attributes of the decomposed times series that are coerced into vectors using the as.vector function – qty.dc$seasonal,

Page 13: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

qty.dc$trend, and qty.dc$random – to the input data frame sales using the cbind function. Note: The rbind function would append vectors as rows; use the help(functionname) command to learn more about each function. The next command, colnames(), renames every column of the sales data frame, and the last command writes the sales data frame to the disk as a comma-delimited file named monthly_sales.csv.

The list.files() command confirms that the file is written to the disk and now we can use it to create the corresponding WebFOCUS synonym. > fix(sales)

This useful R command invokes the Data Editor (Screen 2) on sales (or other data frame) and then assigns the new (edited) version of it in the user's workspace.

Screen 2 Step 2 Having the sales data frame written down to the disk enables us to create the WebFOCUS synonym. The Access and Master File follow:

Page 14: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Access SEGNAME=TS_DECOMP_R, DELIMITER=',', ENCLOSURE=", HEADER=YES, $

Master File FILENAME=ts_decomp_r, SUFFIX=DFI, DATASET=contoso/monthly_sales.csv, $ SEGMENT=TS_DECOMP_R, SEGTYPE=S0, $ FIELDNAME=MONTHSTART, ALIAS=MonthStart, USAGE=YYMD, ACTUAL=A10, $ FIELDNAME=AMOUNT, ALIAS=Amount, USAGE=P14.4, ACTUAL=A14, $ FIELDNAME=QUANTITY, ALIAS=Quantity, USAGE=I7, ACTUAL=A7, $ FIELDNAME=SEASQTY, ALIAS=SeasQty, USAGE=P12.2, ACTUAL=A18V, $ FIELDNAME=TRENDQTY, ALIAS=TrendQty, USAGE=P12.2, ACTUAL=A16V, MISSING=ON, $ FIELDNAME=RNDQTY, ALIAS=RndQty, USAGE=P12.2, ACTUAL=A19V, MISSING=ON, $

At this point, all that is left to do is open the WebFOCUS Advanced Graph Assistant and create the following report. Note that the top graph displays the de-seasonalized quantity time series labelled DESEASQTY (blue line) defined as a COMPUTE field. (See the WebFOCUS procedure below.)

Screen 3 – Displaying of R results using WF Graph Assistant Step 3 Now let's save the R commands: require('XML') sales <- readHTMLTable("http://magpie:8080/ibi_apps/WFServlet?IBIF_ex=002_get_Sales_Ts&IBIApp_app=contoso&IBIF_wfdescribe=OFF",header=TRUE)[[1]] qty <- ts(sales$QUANTITY, start=c(2007,1), end=c(2009,12), frequency=12)

Page 15: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

qty.dc <- decompose(qty) sales <- cbind(sales,as.vector(qty.dc$seasonal)) sales <- cbind(sales,as.vector(qty.dc$trend)) sales <- cbind(sales,as.vector(qty.dc$random)) colnames(sales) <- c("MonthStart","Amount","Qantity","SeasQty","TrendQty","RndQty") if (file.exists("monthly_sales.csv")) { file.remove("monthly_sales.csv") } write.csv(sales,file="monthly_sales.csv",na="",row.names=FALSE) as TS2.R file.

The final WebFOCUS procedure executes the above R code and plots the results shown on Screen 1. APP HOLD contoso; -SET &RSTRING = 'C:/ibi/RStat1.3/R-2.12.1/bin/i386/Rscript HOME=C:/ibi/apps/contoso --no-save < C:/ibi/apps/contoso/TS2.R'; -SET &r = &RSTRING ; -RUN -SET &RETCODE = SYSTEM(&r.LENGTH,&r,'D4'); -IF &RETCODE NE 0 THEN GOTO :err1; -TYPE &r -RUN -*Do not delete or modify the comments below *-INTERNAL_COMMENT LINE#......this line was shortened!..... -*Do not delete or modify the comments above GRAPH FILE TS_DECOMP_R -* Created by Advanced Graph Assistant SUM TS_DECOMP_R.TS_DECOMP_R.TRENDQTY TS_DECOMP_R.TS_DECOMP_R.RNDQTY TS_DECOMP_R.TS_DECOMP_R.QUANTITY TS_DECOMP_R.TS_DECOMP_R.SEASQTY COMPUTE DESEASQTY/D12.2=TS_DECOMP_R.TS_DECOMP_R.QUANTITY - TS_DECOMP_R.TS_DECOMP_R.SEASQTY ; BY TS_DECOMP_R.TS_DECOMP_R.MONTHSTART ON GRAPH PCHOLD FORMAT PNG ON GRAPH SET HTMLENCODE ON ON GRAPH SET GRAPHDEFAULT OFF ON GRAPH SET VZERO OFF ON GRAPH SET HAXIS 800 ON GRAPH SET VAXIS 600 ON GRAPH SET UNITS PIXELS ON GRAPH SET LOOKGRAPH MULTI5Y ON GRAPH SET GRMERGE ADVANCED ON GRAPH SET GRMULTIGRAPH 0 ON GRAPH SET GRLEGEND 0 ON GRAPH SET GRXAXIS 1 ON GRAPH SET GRAPHSTYLE * setTemplateFile("/images/tdg/template/IBIRIACarbonRounded.txt"); -* STYLESHEET LINES WERE REMOVED ENDSTYLE END -GOTO ENDPOINT -:err1 -TYPE error -ENDPOINT

Page 16: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Conclusion and the Next Step I’ve now shown you two straightforward ways of integrating WebFOCUS and R, but there are some other options available. I encourage you to explore the RODBC R library in conjunction with the browseURL()R function. Although it is relatively easy to integrate WebFOCUS and R, the above mentioned scenarios are far from being practical and just illustrate how two technologies can be used to enhance one another. WebFOCUS has several forecasting routines such as moving averages, exponential smoothing, etc. These algorithms do not make any assumptions about successive values of the time series; in some practical cases it would be better to take such correlations into account. Autoregressive Integrated Moving Average (ARIMA) models allow for taking into account autocorrelation in the irregular components. In a future article, I will demonstrate how to make use of ARIMA for sales forecasts and also how to pass parameter values from the WebFOCUS user interface to R to produce such forecasts for specific sales locations, categories or products as well as various time aggregations.

Address Cleansing With AddressDoctor by Clif Kranish It’s a common problem. You send a mailing to your customers and vendors, and some of it comes back as undeliverable or takes too long to reach its destination. The culprit: inaccuracies in the database that contains those recipients’ postal address information. You start looking for a way to cleanse the data. To help you with that, Information Builders has partnered with AddressDoctor, a leading software company that provides data quality tools to clean up postal addresses in databases. AddressDoctor specializes in international addresses covering more than 240 countries and territories. The company’s product line includes a Software Library and Reference Data. The Information Builders Adapter for AddressDoctor provides an interface for DataMigrator to allow use of AddressDoctor functions without the need for programming in languages like C++ or Java, or licensing additional development software. The Graphical User Interface of the Data Management Console can be used to build a data flow to easily call AddressDoctor.

Page 17: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

The AddressDoctor engine is available from Information Builders. While it is available in 32- and 64-bit versions, and you should use the version that corresponds to your version of Windows, for best performance AddressDoctor recommends using the 64-bit version. AddressDoctor is also available for the major Unix platforms. AddressDoctor databases are also available from Information Builders for countries and regions as needed. Adding an adapter for AddressDoctor is similar to other adapters; however, you must supply two additional parameters, as seen on Screen 1.

Screen 1 Configuration File – the location of an XML document where you specify the Unlock Codes for the databases you have licensed, their location and other AddressDoctor parameters. Application – the name of the application directory where the special AddressDoctor synonym should be created. The synonym is generated with the name “addr,” and it is used for invoking the AddressDoctor engine and passing parameters to it. Although represented by a synonym, it’s important to note that the AddressDoctor synonym doesn’t refer to a table or file, but to a program -- one that takes input parameters and returns output parameters. This is similar to synonyms created for database-stored procedures, Web services and IWAF (iWay Adapter Framework) enabled adapters. The synonym represents the parameters as a hierarchy, as shown here:

Page 18: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Screen 2 The INPUT segment represents the input parameters to AddressDoctor. Input parameters are specified in a Data Flow with either a WHERE condition for single values or a JOIN for multiple values. The RESULTDATA segments represent the output parameters. The RESULTDATA segment itself contains status codes such as PROCESSTATUS that indicates what operation was performed on each address. The segments below contain the elements of the cleanse address. These fields have matching field names to the input parameters. Screen 3 shows an example using a WHERE condition to pass parameters to AddressDoctor for one address, which lets you see the actual values passed.

Screen 3

Page 19: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Note that since AddressDoctor is used internationally, it uses generic names that don’t always correspond to American usage, so for example LOCALITY refers to a city and PROVINCE a state. AddressDoctor can also be used with input data that isn’t broken up into fields, as shown on Screen 4, and it will separate out the components.

Screen 4 Screen 5 shows the result, and you can see that each field has one address component in a standard format.

Screen 5 However, in actual use it’s more common to clean multiple addresses at once. This can be done using a JOIN.

Page 20: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Screen 6 As input, the sample persinfo distributed with the server is used.

Page 21: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Screen 7 The resulting table created shows the cleansed addresses, at least for those that were valid. The PROCCESSSTATUS value shows a C4 for those it corrected, and I1 to I4 for those that were invalid.

Page 22: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Screen 8

Developer Studio Release 8: InfoAssist Graph Tool Replaces All Other Graph Tools By Maria Volant In prior releases of Developer Studio, Information Builders has provided different graph tools that are usable depending on the area of Developer Studio with which you are working. In Release 8 of Developer Studio, we officially introduce InfoAssist as the only graph tool available to customers in all areas of Developer Studio where they are able to build a graph. This change simplifies the process and makes it easier to create graphs. When creating graphs from Developer Studio, WebFOCUS InfoAssist opens in graph mode and replaces the different graph tools available in earlier releases – the Graph Assistant tool based on Windows C++ and the Advanced Graph Assistant tool that were available while creating graphs in the Projects and the WebFOCUS Environments areas. InfoAssist also replaces the HTML Graph Assistant tool that was accessible while creating Reporting Objects in the Managed Reporting area.

Page 23: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

WebFOCUS InfoAssist is a Web-based Rich Internet Application that uses a familiar Microsoft Office-like ribbon interface and provides advanced and intuitive features that allow users to easily and quickly build reports. Below are some detailed instances of the different places InfoAssist can be accessed to create a graph in WebFOCUS Developer Studio Release 8. New Procedure Dialog: When selecting to create a new procedure from the Procedures folder context menu under an application in the Projects or Data Servers area, or from a folder context menu in the Repository area while working against a remote WebFOCUS environment, the New Procedure dialog opens up and presents the user with the Graph option. The Graph Assistant and the Advanced Graph Assistant options are no longer available in the New Procedure dialog. When the Graph option is selected, and upon selecting a Master File, InfoAssist opens up in chart mode. See Screens 1 and 2. Note: To use the WebFOCUS InfoAssist tool while working in the Repository, a developer needs to have the “Desktop Chart” operation. This operation is applied by default to users that belong to the group WF_Global_Roles/Developers.

Screen 1

Page 24: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Screen 2 Procedure Viewer: When selecting to create a procedure using the Developer Studio Procedure Viewer, which is accessible from the Projects, Data Servers, and the Repository areas, the Graph icon in the Procedure Viewer toolbar, and the Graph option from the diamond button context menu (Screen 3) will open the InfoAssist graph tool upon selecting a Master File. The Advanced Graph Assistant option, as you can see in Screen 3, is no longer available as of Release 8.

Page 25: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Screen 3 QuickLinks: Selecting the link Create a new graph in the Developer Studio QuickLinks window (Screen 4) will bring up the InfoAssist tool once a Master File has been selected. It will no longer bring up the C++-based Graph Assistant tool.

Page 26: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Screen 4 SQL Report Wizard: The InfoAssist graph tool also is available through the SQL Report Wizard tool in Developer Studio. Selecting the option Create Graph in the SQL Report Wizard - Summary of SQL options screen (Screen 5) will open InfoAssist in chart mode using the generated SQLOUT hold file. It no longer will open the C++-based Graph Assistant tool.

Page 27: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Screen 5 Reporting Objects: While developing under remote WebFOCUS Environments, in the Repository area, opening the Graph object in a Reporting Object (Screen 6) will open the InfoAssist tool. It will no longer open the HMTL Graph Assistant tool. Note: The developer needs to have the operation to use “InfoAssist via Reporting Object.” By default this operation is applied to users that belong in the group WF_Global_Roles/Developers.

Page 28: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Screen 6 In summary, the InfoAssist Graph tool consolidates all of the preexisting Graph tools. In Developer Studio Release 8, customers have access to the same functionality that all the other tools had to offer, and more, in a thin-client Web-based tool that makes creating graphs easier and more fun, with a lot of extra features. For more information on InfoAssist, as well as the different development tools referenced in this article, see the WebFOCUS InfoAssist chapter in our online documentation, and the Development Tools topic in our Online Help. How to Set Detailed Styles to Active Technologies Reports and Dashboards Using ARSTYLESET By Yoshiko Akai Starting with WebFOCUS Reporting Server 7.7.04, all elements in Active Technologies reports and dashboards, including certain elements that can be controlled by WebFOCUS style sheets, are styled using CSS (Cascading Style Sheets) selectors. You can specify a particular style for each class as you need by defining the style section in the irpcfgu.js file.

Page 29: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

These class selectors use the standard HTML class attribute, and are defined with a "." in the original irpcfg.js file, which is located in the \ibi\srv77\home\etc\ folder. You can create the irpcfgu.js file in your app folder, copy the entire style section contents from the file, rename the style section and customize it as needed. Once the custom style section in the irpcfgu.js file is completed, you can call this section from your procedure using the ARSTYLESET property in the WebFOCUS style sheet section: TYPE=REPORT, ARSTYLESET=your_custom_style_name_from_irpcfgu_file,$

To start, find the “styles” section in the original irpcfg.js file. In the “styles” section, the “default” section defines the default active report and active dashboard styles when there is no style sheet defined in the report or dashboard procedure. In the “default” section, the “flex” section defines the default styles for the Active Technologies report and dashboard for Flash Player and for PDF. In the “default” section, the “html” section defines the default styles for Active Technologies report and dashboard for HTML. { "styles": { "default": { "flex": { … }, "html": { … } } } }

Copy the entire default section underneath. I want to stress that you need the entire session because if you copy only part of the style section or individual class, the default style already defined will be lost and the undefined class will be replaced by a plain HTML style. Instead of “default”, name it “mystyle”. Change the styles for each class as needed. For example, in order to change the dashboard bar color for Active Dashboard in HTML, you can modify the background color and gradient background color defined for the .arDashboardBar class, which defines the overall style of the dashboard bar on top of Active Dashboard. There is no equivalent option in the WebFOCUS stylesheet to change or overwrite this.

Page 30: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

Screen 1: The default dashboard bar is in blue gradient in WebFOCUS Reporting Server 7.7.04 Change the dark gradient color (#2d66b6 dark blue in the default section) to dark red (#ba2737), and light gradient color (#C5CFDD light blue in the default section) to light red (#efc5ca). Because Internet Explorer generates gradients differently from the other WebKit-based browsers, I have a different shade of light red (#f18e99) defined for filter and –ms-filter properties in this example. ".arDashboardBar":[ "font-family:Arial,tahoma,verdana;", "font-size:12px;", "font-weight: bold;", "background: -webkit-gradient(linear, left top, left bottom, from(#efc5ca), color-stop(45%, #ba2737));", "background: -webkit-linear-gradient(top, #efc5ca, #ba2737 45%);", "background: -moz-linear-gradient(top, #efc5ca, #ba2737 45%);",

Page 31: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

"filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f18e99', endColorstr='#ba2737', GradientType=0);", "-ms-filter: \"progid:DXImageTransform.Microsoft.gradient(startColorstr='#f18e99', endColorstr='#ba2737')\";", "background: -ms-linear-gradient(top, #efc5ca, #ba2737 45%);", "background: -o-linear-gradient(top, #efc5ca, #ba2737 45%);", "background: linear-gradient(top, #efc5ca, #ba2737 45%);", "background-color:#ba2737;", "color:white;" ],

Screen 2: The dashboard bar color is now changed to dark red gradient. The aqua blue gradient background color used in the selected tab button is defined using .arDashboardBarButtonSelected class, which defines the overall style of the button selected in the dashboard bar when your Active Dashboard contains multiple pages to create tabs. Change the dark gradient color (#0297c4 dark aqua in the default section) to pink (#f5d5d9), and light gradient color (#61e0f7 light aqua in the default section) to much lighter pink (#F7EAEB) in all gradient background color properties. Also set the font color to dark red using color property.

Screen 3: The dashboard bar and button colors are set to reflect red gradient theme. For more information on the Active Technologies class names and its purpose for styling each part of Active Technologies reports and dashboards, please refer to Active Technologies User’s Guide Release 7.7.04. For more details on available standard CSS properties and values, please refer to the World Wide Web Consortium's CSS Page.

Converting To Alpha By Art Greenhaus The FOCUS and WebFOCUS language supports a multitude of data formats: alpha, integer, single precision floating point (F), double precision floating point (D), packed (P), smart date, date-time and text. The numeric formats all have different uses, and it is fairly easy to convert them to other formats.

Page 32: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

One conversion that is frequently needed is conversion to alpha. Why? Well, if you want to do any character manipulation with a field (stripping out or altering characters, appending to other strings or breaking into components for re-arrangement, to name a few), alpha strings are easier to manipulate. Traditionally, users have used routines such as EDIT to convert a number to a character string. Unfortunately, EDIT poses certain limitations. For one, it only works with INTEGERS (How would it know how many decimal places to create?). It also adds leading zeros, so the resultant string is always the output length desired (an I6 field containing 123 would become '000123'). In addition, on some platforms you're limited to INTEGER magnitude (how much can be stored in an I4 internal format). Thus, other routines were developed. One is called 'FTOA' (Floating point TO Alpha), and it took advantage of the fact that all numeric arguments passed to a User Written Subroutine (UWS) are converted to 'D' format. Thus, the limit of integer only and integer magnitude were removed, as well as leading zeros (by default). Any EDIT option could be specified in the format argument, so, for example, leading zeros could be obtained by use of the 'L' (leading zero) EDIT option. To keep the magnitude as large as allowable, the format should specify a 'D' format. It might need a 'c' EDIT option to suppress commas. Then, Packed (P) format was expanded to allow up to 31 significant digits, since 'D' only allows 15. To allow for large packed format numbers to be converted to alphas, the routine 'PTOA' (Packed TO Alpha) was created. Its calling arguments were like the FTOA routine, but it would accept larger 'P' format numbers. So far so good, but what about DATE and DATE-TIME values? Rather than write more specific routines, a more general routine was developed, which would handle any format (except TEXT field, which are already ALPHA). This routine is called FPRINT. FPRINT is invoked with three arguments:

• INFIELD is the field or value to be converted. • USAGE_FORMAT is the format of the field to be converted, including display options,

enclosed in single quotes. • OUTFIELD is the output field, or format, enclosed in single quotes .

FPRINT can handle any format field, except TEXT fields. The USAGE_FORMAT should match the format of the input field, and the OUTFIELD should be long enough to accept the result, or truncation will occur. To compare the various routines, consider the following procedure:

Page 33: One Portal to Rule Them All - Information Builders...One Portal to Rule Them All By Matthew Lerner In the Business Intelligence Dashboard, security is applied at the dashboard level,

DEFINE FILE CAR IVAL/I6 = 100; FVAL/F6.2 = 99.99; PVAL/P6 = 123456; EDIT/A6 = EDIT(IVAL); DATE/YYMD = '&YYMD'; HDATE/HYYMDS = HINPUT(8,'&YYMD',8,'HYYMDS'); FTOA/A6 = FTOA(FVAL, '(F6.2)', 'A6'); PTOA/A6 = PTOA(PVAL, '(P6)', 'A6'); FPRINT/A6 = FPRINT(PVAL,'P6','A6'); ADATE/A10 = FPRINT(DATE,'YYMD','A10'); AHDATE/A16 = FPRINT(HDATE,'HYYMDS','A16'); END TABLE FILE CAR PRINT IVAL EDIT IN 30 OVER FVAL FTOA IN 30 OVER PVAL PTOA IN 30 OVER DATE ADATE IN 30 OVER HDATE AHDATE IN 30 WHERE COUNTRY EQ 'ENGLAND' END The results are as follows: IVAL 100 EDIT 000100 FVAL 99.99 FTOA 99.99 PVAL 123456 PTOA 123456 DATE 2012/05/14 ADATE 2012/05/14 HDATE 2012/05/14 00:00:00 AHDATE 2012/05/14 00:00


Recommended