So, I'm Michael Coté, and we're going to be talking about Eclipse BERT today, and would you like to introduce yourself? Sure. Tell us a little bit about what you do. Sure. I'm Virgil Dotson. I am a technology evangelist for Actuate Corporation, and I run around talking about BERT and how cool it is. Right, right. And so, BERT is, I think several people know it's a reporting sort of infrastructure, if you will. What is it beyond just sort of that cliche understanding of it? Sure. Well, it stands for Business Intelligence Reporting Tools, BIRT, and it's designed for the Java developer. There's really two parts of that. There's a designer, of course, that produces an XML report design, and then there's an engine to help you deploy that. Beyond that, it's a way for developers to visualize their data. Right, right, right. And so, what have you found people have been using it for since it's been out? Well, just all sorts of things. Is there a wide range of topics? Yeah. So, everything from operational reporting to sales reporting to forecasting to just literally anything you can get. We found that every application needs some sort of output. Right. It is a pretty exciting project. Yeah, no, I mean, I was being serious about reporting is always one of the more annoying things to deal with. And so, I mean, it's even one of those things where I always think, "Can we just buy something?" Or, you know, whether we download it and it's open source or we buy something, it's just like so excruciatingly painful. Because I remember in, let me think, I think most every project I've ever worked on over like 10 years or so, every release, we sort of end up rewriting the reporting stuff. And it's just like everyone has like the grand architecture that's going to solve your reporting needs. And really, that's one of those cases where you need that sort of, I always think of it, you sort of need, that you need to delegate those long meetings you have just to someone else. Right, right. And just say, you know, we're not really going to sit around and debate about what we're going to use or any of this stuff. Let's just buy something.
2:00And whatever it does, I mean, you know, it'll do it well when we pick it. Right, right. But whatever it does, let's just work with that and not waste our time. Yeah, it's the last five minutes of your application. You've finished it all and now it's, let's add some reports. Exactly. You know, and so you've got to get them in quick, so you've got to use a tool. Right. But I mean, the thing is, like the reports are often one of the most valuable things, especially in business software, right? Because it's kind of, it's like one of the easiest sort of links between, you know, everyone's all about aligning business and IT, right? But essentially if you want to make decisions about what your IT is doing, really you pretty much have reports. I mean, you can have people come in front of you as a decision maker and just kind of say how things are going and so forth. That's right. But really, once you see a report, then I think that gives you more or less the, you know, sort of the most efficient best knowledge to actually make decisions. Right. And timely, I guess, is one of the most important things. Right, right, right. You can't just see a report six months after. Yeah, yeah. You've got to see it right away. Absolutely. Building these web applications using BERT. Yeah. Gets the reports out quickly. Make good decisions. Yeah. We'll check out the demo. And thanks. So BERT 2.2 is coming out with Eclipse's Europa simultaneous release this month in June. And it'll be based on Eclipse 3.3. And a lot of exciting things are showing up in this version of BERT, including a web services data source, a crosstab control, some several new chart types, and some nice easy way to deploy BERT reports with a new web project wizard and some new emitters for Word and PowerPoint and others. So I'll show you a few of those here today. So as far as data sources go, we do have a new web services data source, and it's very easy to use. So I'll select that data source, point to a WSDL, and I've now created that source. I'll create a new data set from that web services source, and I'll simply choose one. I got this web service from webservicex.net. There's a lot of them out that you can play with, and I'm going to use a SOAP call to get information by area code. So I'll pass in a default value so it has something to work with initially.
4:01And this is the SOAP message that will be sent to the web service, and we get a SOAP response back. And we'll get to parse that response and set up tables, point to various fields from that data. So I'll select that table as my XPath expression, and I'll use the various fields like city, state, and so forth as the information I want to gain from the web service. And once it's finished, I can preview my results, and I see a nice list of the cities and states and zips that belong to that particular area code. So I'll select OK, and I'll make this a parameter as well. So we'll call this area code parameter, and I'll plug that default value into here. And then back in my data set, I'll go back to my SOAP request, and have it regenerate with area code as a parameter, and I'll link it to my report parameter I created a minute ago. Now that I've done this, then I can pass anything I want to that web service. So I've got one already created called Web Services Report Design, and I'll preview this one. And it runs, showing me the locations for the area code for 913. So this would be very useful getting a call in from somebody and not sure what the 201 area code is. Nice quick report. And I can see that whoever was calling me was calling me from New Jersey. So back to data sources. Additional data source improvements here, working with flat files. In addition to supporting the comma, we now support the semicolon, the tab, and the pipe as delimiters. And as well, when you're defining one of those text data sources, you can now define the type.
6:05So coming in, this is a string or this is a date, an integer, making it very easy if you're working with dates or numbers to be able to use those as real values once they get into your report and not as strings. So we also now support a linked connection profile. So if you've created these connection profiles as part of the data tools project, you were always able to import those into BERT, but now you're able to link to them. So as that connection profile changes, we can change accordingly and the BERT report will use your new connection with its changes. So finally, if you're using that text data source to link to other sources as well, we now, on the joint data set, can perform a full outer join if you needed that. And then if you're going to be creating your own data source itself, we have a couple new projects to help you out here. These are the ODA runtime driver plug-in and the ODA design plug-in. So nice and easy to create these ODA open data access drivers for you to point to your custom data source. So while designing your report, you'll probably notice on the new palette here that we've got a cross-tab control. This control is very easy to use and it's actually the front end to the multidimensional OLAP engine underneath it. The scenes. So you'll see that there. You'll also see in the data explorer the new data cubes. So to use this, let me pop over to cross-tab report design and I'll go to the palette. And by the way, I've already got a data source and a data set created, so I have some data to work with. So back to the palette, I'll grab the cross table control and drop it on here and then drop some data on here to get started. So now we're in the cross-tab cube builder. So we need summary or group fields rather and then summary fields or measures to go in the middle. So on the outside, we'll take country and status. And as our dimension, I want to take my quantity times my price. So I'll start with one quantity and we'll call this one total.
8:09And instead of just my quantity, it's really going to be my quantity times my price. All right, once I've created this, I can now grab these fields and drop them in. So I'll drag country as my row dimension. I'll drag status from my column dimension. And in the center where they meet up, I'll pull a total. So additional things here, I can go ahead and sum up all these as well. So we'll create a total, a grand total by row, and a grand total by column. And to keep some of these clear, we'll take this total off and change the colors of status to be, we'll say yellow. And country, we'll make blue. And then where they intersect, we'll make green. So previewing this now, I now get a list of countries, list of statuses, and in the center here, the value that matches up. So BERT's always been able to do crosstabs, but you had to know how many columns you're working with. So BERT22 now introduced the first dynamic crosstab control. So additional things to help with BERT22, by going to show view, other, and then look at the report and chart design. There's two new views here. One's the report example view. And this is actually a very interesting and neat way of exploring for reports. So if you're looking for a particular report, I don't know how to build a combination chart, or I'm looking for something particular, some business forms, perhaps, a sales invoice. I can open that form, open that report design, and see that in my own environment over here. And it's a real working report.
10:09I can play with it, preview it, run it. It works off the example data source that I included with the product as well. So very easy way to get started with report designs. All right, so some additional things that help with BERT22. We now include styles when you're talking about highlighting. So if I want to click on total months orders here, for instance, and I want to add a highlight when that reaches a certain criteria. Say when the total month orders reaches is greater than or equal to 300, then I want to apply some style. In this case, I'll call this the high order style. So we can now use a style. We've applied multiple properties to this style. You don't have to create this every time. We just point to that style. And also I'll add a second condition where if the value of this item is less than or equal to 100, then I'm going to apply my low order style. So now preview in this report, I now get my style applied here. So speaking of style, we work with cascading style sheets in the previous versions of BERT. But now we can actually link to them. So we used to import those. So if I go back to my layout and into my outline, I can use a CSS file instead of just importing it. So that means when the CSS file changes, it'll reflect in my report. So I'll grab one here. We'll pull all these styles in. So now as I change this cascading style sheet for my website, for example, it'll reflect on all my reports. It's a nice style here. So BERT now supports expressions for parameter values. So let me go to another report I've got over here called param. If I look at this particular parameter called order param, we've been able to select a value from the database for a while for both the value passed to the query, as well as what gets displayed to the user.
12:10However, this was a simple dropdown list of the various fields in the data source. We're now able to use expressions. So I can pass things. In this case, I just want to pass an order number back. But I need the order number, the status, the customer number, so that the person running the report can identify the right value. So if I run this one and show these report parameters, even though I'm only passing the order number, I get to look through the order number, the status, and find the exact canceled order I was looking for to run for this particular report. All right. A lot of changes have taken place around charting with this version of BERT. So there's a couple new chart types as well. These include the bubble chart, a difference chart, a Gantt chart. So here we've got the whole selection of bubble, a difference, a Gantt. And we have different variations of our bar chart as well. We can now support a tube or a cone, even a pyramid type of style for these reports. So speaking of charting, we also have a nice chart explorer. And this lets us look at chart examples. And this is great if you're going to be using charting outside of BERT. So find the chart we're looking for. Maybe we want a nice combination chart or a 3D chart here. Let's get one with some formatting in it and some code. So we've got a colored by value series here. Up at the top right again, I can click open. And it'll take me directly to the Java code that it would have take to pull off this particular chart. So a very easy way to get started building charts with Java here. So there's also a chart tag library, a new charting servlet to make it easy for you to deploy these reports as well. Okay, as far as emitters go, we have several new emitter types. So if we look at outputting as PDF and HTML, that's typical.
14:10But we also now support a doc. So we can get that in that Microsoft Word format. And we support PowerPoint, as you see here, as well as we have a postscript emitter. And for sending stuff directly to a printer and an XLS prototype emitter to get that into Excel format. There were also a number of enhancements to the PDF emitting output as well. So as far as deployment goes, BERT is a nice rich design environment. But deploying meant you had to jump into the SDK or use the example viewer to create a deployment. Or look at one of the commercial alternatives. So we're going to look today at the new BERT web tools project. So to do that, we'll create a new project. And under business intelligence reporting tools, you'll see one called the web project. So this web project now is based on the web tools project. And I'll call this one my sample BERT project. And this will create everything I need for a sample J2E in deployment. So we'll switch to the J2E perspective as it's asking me to. And if we go down to that sample web project, we'll run index.jsp. And there we go. So what we've created now is a J2E web application that'll run a BERT report. It includes one sample. So if we click on view example, then our report's going to run back here and it includes the viewer as well.
16:11So a nice easy way to get an example deployment architecture put into place. Now if you're not going to be using that viewer or if you are but you wanted to build your own JSP pages, we can create a new JSP. We will just call this run report. And you'll see two new templates here. So we've got a template that includes support for the BERT chart tag library. And that adds this line down here to support for the BERT chart tag library. And then we've got a BERT tag library as well. So we'll create a new one with that tag library. And by doing so, I'm able to get access to all sorts of different report running JSP tags. So we've got one called report. And I've already added one, so let me jump over to one that's already completed here. And what I did was added a report tag and a viewer tag to show you the difference, both using the same report design and set their heights and widths. So we'll run this. And we now, within our own JSP pages, can create BERT content. The top one shows a report running without the viewer and the bottom one showing the report running with the viewer, both embedded in Java server pages. So as far as this viewer is concerned that we saw down here, there are some changes to that as well. First of all, we can now add style to our table of contents. So previously, this table of contents was defined by the viewer. Now this can be defined within the report. And we can add style here. As we see, we've added some colors and underlines to this as well. Let me run a different report in the viewer here.
18:16And let's run that again with some different order. There we go, some values. And some additional things we can do now is we can export the data. So we can export this piece as we want as a comma or semicolon or just as a text file. We can also export the report. In this case, we can send it out as a postscript file. We can send it out as a PDF file, Word, Excel, PowerPoint as well. And we support now both client-side printing as well as a server-side printing where we can print this out into one of our server printers. So lots of improvements around that viewer as well. Lots of improvements around BERT 2.2 all together. So this has been a look at BERT 2.2. And we encourage you to get out to eclipse.org/bert and try it yourself.