Will the real Ed Brill please stand up? Friday morning at Lotusphere, there were all these guys standing around claiming to be Ed Brill.
First, there was this guy

Then there was this guy

And finally, this guy

Will the real Ed Brill please stand up? Friday morning at Lotusphere, there were all these guys standing around claiming to be Ed Brill.
First, there was this guy

Then there was this guy

And finally, this guy

The code for the QueryViews Tom Truitt and I demonstrated in the BP106 session at Lotusphere20008 is not in the downloadable slides or in the Analyzer application so I thought I’d write up something quickly here.
The first QueryView was simply a re-exposure of the Domino Access View (DAV) that was created from the data on Company forms. Normally, you’d just create a regular Notes view to show this data, but the idea was to do a Hello World like example for the first Query View. So, assuming you had a DAV out there for the Company form that you called Companies, you could construct a Query View with a SQL statement like this:
Schema := @DB2Schema(“”:”");
“SELECT COMPANYNAME, #NOTEID FROM ” + SCHEMA + “.COMPANIES”
This first query does nothing more than ask Domino to tell us what the db2 schema is for the current database which we then use to construct a SQL statement for the CompanyName and NoteID for records stored in the Domino Access View (DAV) we’d originally created. SCHEMA.COMPANIES tells DB2 we’re looking for a specific schema within the NSFDB2 database created for us by the setup of Domino for DB2 and within that schema, we want the Companies view which was created when we created the Companies DAV. All in all, it’s not a very useful Query View as it could easily be more useful as a normal view, but it establishes that our QV process is working.
Schema := @DB2Schema(“”:”");
State := @Prompt([OkCancelList]; “Select State”; “Select the state to return companies for”; “TX”; state_list);
“SELECT COMPANYNAME, #NOTEID FROM ” + SCHEMA + “.COMPANIES WHERE STATE = ‘” + State + “‘”
This second Query View is a little more interesting in that it introduces the idea of soliciting end user selection of data before any query takes place. In this case, we’re building a short list of states to select from. After the user selects one, we add it to the where clause of our SQL statement to bring back only records within the selected state.
state_list := “TX”:”OK”:”LA”:”AR”;
Schema := @DB2Schema(“”:”");
State := @Prompt([OkCancelList]; “Select State”; “Select the state to return companies for”; “TX”; state_list);
“SELECT COMPANY.COMPANYNAME, CONTACT.FIRSTNAME, CONTACT.LASTNAME, CONTACT.#NOTEID FROM ” +
SCHEMA + “.COMPANIES AS COMPANY, ” +
SCHEMA + “.CONTACTS AS CONTACT ” +
“WHERE COMPANY.COMPANYNAME = CONTACT.COMPANYNAME AND ” +
“COMPANY.STATE = ‘” + State + “‘”
In this Query View we introduce the idea of a join by joining two DAVs to combine the data for a Company and the Contacts associated with that company. Where in the earlier code, the #NOTEID would have resulted in opening a document for the associated company, in this Query View, the #NOTEID is associated with the Contacts table and therefore opens the associated Contact record.
state_list := “TX”:”OK”:”LA”:”AR”;
Schema := @DB2Schema(“”:”");
State := @Prompt([OkCancelList]; “Select State”; “Select the state to return companies for”; “TX”; state_list);
“SELECT COMPANY.COMPANYNAME, INVOICE.INVOICEDATE, INVOICE.AMOUNT, COMPANY.#NOTEID FROM ” +
SCHEMA + “.COMPANIES AS COMPANY, ” +
“DB2ADMIN.INVOICES AS INVOICE ” +
“WHERE COMPANY.COMPANYNAME = INVOICE.COMPANYNAME AND ” +
“COMPANY.STATE = ‘” + State + “‘”
In this Query View, we’re branching out a bit. While before we were selecting from a single DAV or from 2 DAVs joined together, here we are joining a DAV to an external DB2 database table that contains invoicing information for our customers. The join will result in only showing company records where we have matching invoices for the selected state. This example introduces the idea of federated data structures. Given that the demo environment was all running on one machine, federation was only to data external to the NSFDB2 database (but still in the same DB2 server and instance). In the real world, that data could also be external and living in a separate DB2 server, like one that might be running on an iSeries…a point we ran out of time to make in the session. p>
Again, if you have any questions, don’t hesitate to ask
BP106: Converting applications to NSFDB2. What, how and why
Tom Truitt and I thank anyone who made it to our session and hope you got some good information and ideas from it. You’ll find the Analyzer here, and here are the session slides as Open Office odp, or as ppt. I’ll also make sure they make it into the hands of the official Lotusphere site and to the Genii sessions db as well. If you have any questions or feedback, please let us know.
Imagine a mirror server for the 30 percent (guess ?) of conference attendees downloading some piece of new technology from IBM over the next 5 days…like a 700MB Mac client download that’s the wrong file.
The download that was available early this morning for the Notes 8.5 beta mac client appears to be incorrect. After extracting the tarball, the directory structure is ibm/sol/domino and contains files that definitely look like a solaris server install. Running the install script provides this:
You C-coders have known about this for years I’m sure. Many of you Lotusscript types probably have known about this for years. Hell, once upon a time, I probably knew this. But yesterday, I ran across a line of code like this and was intrigued… “What the heck is that?”
If you peruse help for the String data type, you find:The declaration of a string variable uses this syntax:
Dim varName As String [* num] The optional num argument specifies that varName is a fixed-length string variable of num characters. A fixed-length string variable is initialized to a string of null characters (the character Chr(0)). When you assign a string to a fixed-length string variable, LotusScript truncates a longer string to fit into the declared length. It pads a shorter string to the declared length with trailing spaces. Fixed-length strings are often used in declaring data structures for use in file I/O or C access.
I don’t know about you, but I don’t know how many times I’ve written some kind of padding function so that my data was exactly the length I needed, whether for some kind of data export, or funky display table thing.
Oh well, old dogs can learn new tricks.One of my favorite IBM/Lotus events is rolling through Dallas next week (Tuesday, Aug 28). It’s the Lotus Open Labs. If you’re not familiar with it, it’s a day at IBM with 30 computers hooked up to external drives containing 30+ VM images of various labs, such as NSFDB2, Component Designer, Portal, Forms, you name it. A complete list is provided below.
The beauty of this event is that it’s a full day without a single speaker, just you and a computer with self-paced labs. There’ll be people there from IBM and WFS to assist in a limited fashion, but it’s a no pressure, no sales environment to learn how these technologies work. You should definitely check it out. Here are some registration links.
| Location | Event Registration | Date |
|---|---|---|
| Dallas | Lotus Open Labs – Dallas | 08-28-2007 |
| Houston | Lotus Open Labs – Houston | 09-06-2007 |
| Lab | Lab Title | Description | Products |
|---|---|---|---|
| 1 | IBM Lotus Domino NSFDB2: Development and Integration | Part 01 – Create a DB2 Access View (DAV); Part 02 – Create Query Views; Part 03 – Joining data from external DB2 tables; Part 04 – Creating a Parametric Query View | Lotus Notes and Domino; DB2 |
| 2 | Building Composite Applications with Notes 8 | This tutorial describes how to create a local composite application using procedures that make use of new features in IBM Lotus Notes 8 Beta and IBM Lotus Domino Designer 8 Beta. It provides an end-to-end scenario for creating and running a simple composite application using Notes applications as components. When you complete this tutorial, you will have a composite application with inter-component communication, similar to that shown below. Whenever you select a row in the upper component, the lower component will display the documents that have an identical category value in its embedded view. | Lotus Notes and Domino |
| 3 | Beginners Guide to Lotus Component Designer | This tutorial explains how to create a component using IBM® Lotus® Component Designer. This component can be deployed as a portlet and added to an IBM WebSphere® Portal page or application. | Lotus Component Designer, WebSphere Portal |
| 4 | Building AJAX applications with Lotus Component Designer 6 | You will create a simple static portlet application by using Lotus Component Designer 6.0 wizard. Your work is to deploy the created sample portlet application to WebSphere Portal Server 6.0 and to update page configuration to add the deployed portlet application on your page. | Lotus Component Designer, WebSphere Portal |
| 5 | New Features of Sametime 7.5.1 | The overview lab will walk you through the new features of the Sametime 7.5 meeting center and the new connect client. | Sametime |
| 6 | Creating a Plug-in with Sametime 7.5 | In this lab you will create the Buddy Note plug-in. The Buddy Note application provides a way to store notes about the people in your Contacts list. Whenever a contact is selected their buddy note is displayed. These notes are stored locally. | Sametime |
| 7 | Developing and deploying rich client application for desktops and mobile devices | This is an introductory lab, which will show you how to create a simple RCP application and test it in IBM Rational Software Architect (RSA), and then deploy it into the Lotus Expeditor workbench on the desktop and device. | Lotus Expeditor |
| 8 | Developing and deploying portlets for desktops | This is a quick start tutorial on Portlet (JSR 168) programming for the IBM Lotus Expeditor Client for Desktops. You will create a small portlet application and deploy it on the IBM Lotus Expeditor Client. | Lotus Expeditor |
| 9 | Developing and deploying composite applications for desktops | This tutorial will cover the implementation of a composite application in Lotus Expeditor. The application will use the Property Broker feature that is included in Expeditor to communicate between multiple disparate applications. The example uses a JSR 168 Portlet as a user interface to collect a customer number from the operator. The customer number is then passed via the Property Broker to two other applications which use it to display information. | Lotus Expeditor |
| 10 | Introduction to Workplace Forms 2.7 | “This lab consists of 5 labs: 01 – Getting Started with the Workplace Forms Viewer 02 – Installing Workplace Forms Designer 2.7 03 – Creating a form using XFDL 04 – Developing a form using Xforms 05 – Webform Server” |
Workplace Forms |
| 11 | IBM WebSphere Portal 6 Walk Thru | In the first part of this lab, we will highlight some of the main features of WebSphere Portal 6.0. We will explore the Document Manager and other product areas within the Portal. Then we will learn how to create new users and groups. We will also demonstrate how users can work with portlets and pages. | WebSphere Portal |
| 12 | IBM WebSphere Portal 6 Themes | The purpose of this lab is to provide the technical professional experience working with the new features for configuring and building themes in Portal V6. | WebSphere Portal |
| 13 | IBM WebSphere Portal 6 Document Manager | The lab is built to explore the Portal Document Manager and how it can integrate into the daily work of Portal users. | WebSphere Portal |
| 14 | IBM WebSphere Portal 6 Search | The objective of this lab is to provide you with an understanding of using WebSphere Portal V6.0 Search Features and Search Portlets. | WebSphere Portal |
| 15 | IBM WebSphere Portal 6 Templates | This exercise walks you through importing and modifying an application template. You then create an application using the new template. | WebSphere Portal |
| 16 | IBM WebSphere Portal 6 Template and Applications | During this lab you will create a new application template and add a workflow. Once you have completed these steps you will create an application from the template and then test that application and workflow. | WebSphere Portal |
| 17 | IBM WebSphere Portal 6 Attribute-based Administration | The purpose of this lab is to provide you with an understanding of the Attribute Based Administration (ABA) feature of Portal 6. | WebSphere Portal |
| 18 | Application Integration with WebSphere Portal Express V6 – Portal Branding In this lab, you will gain a better undertstanding of how the portal can be “branded” to your specific look-and-feel. More specifically, you will learn how to define a new custom theme. You will then learn how to use theme policies and color palettes to customize this theme. | WebSphere Portal Express | |
| 19 | Application Integration with WebSphere Portal Express V6 – Lotus Component Designer | The purpose of this exercise is to give you some hands on experience using IBM Lotus Component Designer. In the course of this lab you will create a component using IBM Lotus Component Designer and deploy that component to the WebSphere Portal 6 server. The main focus on the lab is to get you familiar with the basic capabilities of the product. | WebSphere Portal Express |
| 20 | Creating Cooperative Portlets with IBM WebSphere Portlet Factory | In this tutorial you will create a set of cooperative portlets, deploy them to the portal server and wire them together without writing one line of code. | WebSphere Portlet Factory |
| 21 | WebSphere Portlet Factory Designer – Employee Compensation Summary | This is an introductory demonstration of the application of WebSphere Portlet Factory Designer in the development of a portlet that exposes information from a relational database. His portlet will interact via Cooperative Portlet Messaging with the WPF Employee Detail portlet installed and deployed in the Employee Compensation – Getting Started Guide. this exercise will introduce you to Data Services in WPF (SOA) and Rich Data Definition, concepts vital to competency in WDF/WPF. | WebSphere Portlet Factory |
| 22 | Workplace Dashboard Framework – Compensation Budget Summary and Drilldown | This is an introductory demonstration of the application of Workplace Dashboard Framework in the development of a dashboard portlet that exposes information from a relational database. This portlet is similar to the Department Compensation portlet, but adds a number of dashboard features. | Workplace Dashboard Framework; WebSphere Portal WebSphere Portlet Factory |
| 23 | Building Composite Applications for WebSphere Portal 6.0 with Portlets You Create | Composite applications enable end users to translate their knowledge and skills into business value by assembling complex applications out of a set of components. The lab attendee will learn how to create a component using AJAX then compose into Composite Applications. The technologies covered and touched in this lab are: AJAX, Lotus Domino and Web Services Composite Applications | WebSphere Portal, Lotus Domino |
| 24 | IBM Workplace Web Content Management End to End Tour | The objective of this lab is to provide you with an understanding of the steps to define, create and edit content in a Portlet using WebSphere Portal 6.0 Web Content Management. | IBM Workplace Web Content Management |
| 25 | Integrating portal search with IBM Workplace Web Content Management 6 | The objective of this lab is to provide you with an understanding of the integration of portal 6 search with IWWCM. | IBM Workplace Web Content Management |
| 26 | Workplace Forms and Domino Web Services Integration | This lab describes the steps to integrate Workplace Forms with Domino using Domino Web Services. The integration explores a very common scenario encountered in a majority of solutions: pre-populating a form based on information entered by the end-user. In this particular lab a user will request a Purchase Order form which will be pre-populated with personal details based on the input of a contractor number. The personal details are stored in a Notes database, which is extracted by making a web service call from the form itself. This lab requires some basic understanding of Domino Administration, Domino Designer, and Workplace Forms Designer. A basic understanding of Web Services is useful but not a prerequisite to complete the lab. | Lotus Domino, Workplace Forms |
| 27 | Using Web Services to Integrate Workplace Forms and WebSphere Process Server | This is a quick start tutorial on integrating Workplace Forms and WebSphere Process Server (WPS). You will create a Web application on WPS using WebSphere Integration Developer (WID) and a Forms application with Workplace Forms Designer, and integrate them by Web Service. | Workplace Forms, WebSphere Process Server |
| 28 | WebSphere Portal Express V6 – Lotus Component Designer (BLOG Portlet) | In this lab you will create a Blog component using Lotus Component Designer and deploy that component to Portal Server Express. | WebSphere Portal Express |
| 29 | Configuring IBM HTTP Server and WebSphere Application Server | The purpose of this lab is to configure the Web infrastructure components – IBM HTTP Server and WebSphere Application Server – prior to installing Lotus Connections | IBM HTTP Server, WebSphere Application Server, Linux |
| 30 | Lotus Connections – Administering and Using Profiles | The purpose of this lab is to become familiar with the user interface of the Lotus Connections Profiles application | Lotus Connections, Linux |
| 31 | Using Lotus Quickr (Domino) 8 | The purpose of this lab is to introduce you to how to use the new Lotus Quickr. The lab will demonstrate how to create places, add members, create documents and so on. | Lotus Quickr |
| 32 | Installing and Using the Lotus Quickr 8.0 Connectors | The purpose of this lab is to introduce you to the Quickr Connectors. The lab will demonstrate how to install the Quickr Connectors, and will lead you through some exercises to use them with Domino Services for Quickr. The Connectors are an exciting new way to allow users to work with Lotus Quickr while they are in other applications. Users do not need to leave what they are doing and go somewhere else to get information. Whether they are reading mail or working in a Notes application, chatting with a teammate, or creating an Office document, they can access the power of Lotus Quickr from right there. | Lotus Quickr |
For whatever reason, on my production machine I’d been unwilling to run Notes 8 Betas with the Standard client. Call me cautious. (Ha! No one’s believing that.) I saved the Standard client for my VM environments. Now that 8′s gold, I decided to upgrade to the Standard client. I started the installer, and boing, unsupported upgrade.
Ok, I halfway expected that. Re-check the Release Notes (you do read the Release Notes don’t you?) and confirm that a client un-install is in order. Do a quick backup of the data directory, and uninstall. Check Install the new Notes client, accept the defaults and start. Hmm, where are all my icons? Well, it looks like we have a REALLY fresh install. Where did it install to? After missing it a couple of time, I realize that the new default path for Notes 8 install is to c:program filesIBMLotusNotes, not c:program filesLotusNotes. Time to do a little pruning of the old data directory and move it over. Take the bookmark.nsf, names.nsf, desktop6.ndk…leave cache.ndk, leave all the old NSD crash logs (only 20 or so) and dump files. Restart Notes client. Voila, up and running. A little sluggish at first as lots of indexes have to be rebuilt, but then pretty speedy. I’m loving the embedded ST client already. Nice.Yesterday I posted about getting to know WebSphere Portal to really be able to state the case for a Notes 8 standard client deployment. One of the things I mused about in comments was a Portal entitlement from IBM for Domino customers so they could have that opportunity.
If IBM doesn’t have it, IBM should consider a Portal development entitlement for Domino customers that would allow them to effectively research this. I’ll ask Sue to look into it.
Reading through Ed’s blog from last week, I found that IBM has indeed made that entitlement available. Here’s the link, WebSphere Portal Server software – limited use entitlement. Essentially, for every Domino server that has Collaboration licensed users running against it (i.e. not just a messaging server), you are entitled to 20 users of Portal. Those users can:
That’s exactly what I was thinking customers needed, a way to explore without having to make a fullscale committment up front to Portal. Well done IBM!
Answer: Evaluate WebSphere Portal
I know it sounds strange, but if you don’t truly know what Portal is and what it can do, then you really don’t know what Notes 8 is. Since you’re probably not going to rush out and deploy Notes 8 immediately, now’s the time to understand the Portal environment and it’s capabilities. To me, it’s similar to companies that deployed Notes as an email platform and never really looked at or discovered what they could do with it from a development perspective. Certainly there’s value in Notes as strictly a mail platform, certainly around the security and virus aspects alone. Right or wrong, a lot of companies found themselves evaluating the licensing down the road and wondering why they were paying so much for strictly mail. I think a similar situation occurs with Notes 8. You can deploy the Notes 8 basic client, at which point, I think a decision is being made (consciously or otherwise), to relegate Notes to legacy status. However, blindly upgrading to the Notes 8 standard client isn’t necessarily the right answer either. For one thing, when you install Domino 8, it’s going to ask about your Portal server, as it wants to install templates on it. While I’m sure you’ll be able to retrofit that later, I’m not sure I want to mess with that down the road. So, if you’re going to take full advantage of the Notes 8 world, you’re going to have sidebar items in the client and you’re going to have composite applications that leverage the entire IT enterprise rather than silo’d Notes applications. And this is where you need to understand what Portal is, what the Lotus Component Designer is, and how these things play together. So, what’s your next step for Notes 8? Understanding the entirety of the Notes 8 platform which means understanding Portal’s role in it.