In the OBA demo Part 1 and Part 2
I presented how we can easily deploy and provision OBA components with OBA
Composer. In this post, I'll show you an example developed by our team which
creates some documents from LOB System data.
Now let's see a general user need: we'd like to
generate several documents from data stored in several LOB Systems: contracts,
specifications, training materials, etc. These document types have common
parts, but we need custom information as well. We have some other important
requirements too:
The data source
have to be transparent for the end users- Let's use our
existing client softwares - Minimize (or
avoid, if it's possible) the LOB Systems' modification
With help of my developer team we made a little demo OBA, which
hasd the following layers:
On the client
side we have a VSTO Word Add-in (the Word 2007's UI is well known by end-users,
so they are really happy with it)- The VSTO Add-in
communicates with the other layers via a WCF (Windows Communication Framework)
layer. - At the bottom
we have SharePoint lists and libraries as data sources, we store in them
everything in this version. - Between the WCF
and SharePoint we have a layer called LINQ4SP. This layer
developed by us contains custom components for SharePoint. The goal of this
module is to make the development process more productive and less complicated.
We're planning to make a public version of this component in April 2008.
Well, now let's see how does this component work. First the user
pick up a Section type (i.e. Contracts), then he/she can select a section
(chapter) from this type. The VSTO Add-in reads the section's document from the
SharePoint library via several layers.
But generally the documents live with included dynamic
property fields. In this example we put customer info into documents (company
name, address, tax number, account number, contact, etc.) – of course, we can
have different data sources (SQL, SAP, Oracle etc. or Web Services), not only
SharePoint lists.
We can insert the customer data into my document via
embedded property fields easily, and the pre-defined sections contain these
property fields as well. When the user selects a customer and contact, all the
information will be inserted or updated in the document.
OK, but how can we use this OBA? In our company, we
use it for generate training materials, contracts and several project
documents. Of course, we make some further development as well, so if you read my blog, you'll be informed about our new components and developments.