Windows IT Pro is the leading independent community for IT professionals deploying Microsoft Windows server and client applications and technologies.
  
  
  Advanced Search 


August 2008

Gold Medal SharePoint Applications in Beijing


RSS
Subscribe to Windows IT Pro | See More Replication Articles Here | Reprints | Or get the Monthly Online Pass—only $5.95 a month!

We built the UI—the form—by using InfoPath 2007, which allows us to embed the business logic into the form so that when an editor works on metadata for a specific package, the only fields that appear are those needed by the appropriate outlets. The form also makes sure the data complies with the datatype and content requirements of the video distribution application.

So that we don’t have to deploy the InfoPath client on our systems, we’re using InfoPath Forms Services, a feature of Microsoft Office SharePoint Server (MOSS) 2007 Enterprise Edition, to render the forms in users’ browsers. When a form is saved, the data is stored in a SharePoint list, and a custom application page uses a workflow to publish the data to the XML format that the video distribution application requires. This application is the most heavily coded application of the four SharePoint solutions I’m describing in this article, and even this application took two smart folks from Net- Fusion, a Microsoft Gold Partner, less than two weeks to create. It would have taken months without the functionality that Info- Path and MOSS provided.

I’ll create custom views of the SharePoint list, add alerts, and create Microsoft Excel reports linked to data in the list. These tools will allow editors, producers, and management to perform their responsibilities related to the process. So if you watch any of the Games on a device other than a television, know that SharePoint helped it get to you.

Transportation Management
Speaking of applications that could have taken months to create, let’s talk about the transportation management application we developed in just a few days, without ever opening Visual Studio. NBC’s thousands of employees, contractors, and vendors need to travel all over Beijing. And you’ll know when watching the Games what a masterful feat it is to move team members from point A to point B. The transportation group consists of a handful of talented folks who must coordinate hundreds of rides every day for more than three months and oversee as many as 200 vehicles and drivers. We had to provide a way to make it all easier to manage.

The transportation management application needed to allow any transportation team member to enter information about a ride request, assign a vehicle and driver (a “transfer”) to fulfill the request, and enable monitoring and reporting of the transportation group’s activities. In previous Games, all ride requests were submitted by phone. This time, we wanted to let users submit requests online. Because SharePoint can use alerts and workflows to notify users when data changes, I wanted the application to notify a user when his or her ride request had been assigned a transfer, so that the user would know which vehicle to look for, when the ride would depart, and who else was going on the same ride.

The challenge with this application began with the data tables. To properly support the application, we needed tables with vehicle information, ride requests, and locations. The transportation team needed to be able to easily pull up information such as addresses, maps, and even photos of buildings. SharePoint isn’t built to create or support relational databases out of the box. However, with Microsoft Access as a client, you can create an application that provides, through queries, the ability to relate data in various lists and delivers a rich, form-based interaction with that data. Traditional Access applications had data in tables within the database (.mdb) itself. Many IT pros have learned that you can gain a lot by putting the data on SQL Server or, now, a SharePoint server instead, and use Access only as the front-end application.

There are several ways to build Access applications that are front ends to Share- Point lists. You can build an Access database and use the migration wizard in Access 2007 to move tables to a SharePoint site as lists. Or you can create the lists in SharePoint and pull them into an Access database application as linked tables. I chose the latter method.

Access then lets you create queries and rich forms; any additional functionality you need becomes an Access programming task rather than a SharePoint programming task. For example, I wanted to give the transportation team a way to identify which of the 200 vehicles were available at a specific place and time to fulfill a ride request. This required a fairly sophisticated SQL query, which I built in Access with help I found via my favorite Internet search engine. I also wanted fields to autopopulate data to reduce data entry for users and transportation managers. I accomplished this with simple Visual Basic for Applications (VBA) code behind the Access forms. In less than three days, I had a rich application that will support our complex transportation management needs.

But I also wanted to provide some of the “nice to have” functionality for this application. First on my list was a Web form for users to submit ride requests. This was easy thanks to SharePoint Designer. I created a new Web form, dragged my SharePoint list onto the form to create the data connection, then modified the Insert template, which is the form rendered by the server when a user creates a new record. Within an hour, I had the form I wanted.

The next step was to create alerts for users. I created a custom view of the ride request list, called My Rides, which filters the list to look for items for which the Created By field was equal to [Me], a special token in SharePoint that translates to the current user. So when I go to the list, I see only my rides, and when another user goes to the list, she sees only hers.

One of the lesser-known features of Share- Point alerts is that when you create a custom view, you can generate alerts, based on changes to data, that appear in that view. So your view can be a filter for your alerts. This feature isn’t well known because the option for creating a view-based alert appears only after you create a custom view, so you might not have ever noticed that option. After I created the My Rides view, I assigned the view to all users. Now, when anything changes about a ride for a user, the user will receive an alert with the appropriate information. We’ll be testing the alert-based notification for a few weeks. If it doesn’t meet our needs, I’ll use SharePoint Designer to create a custom workflow to achieve the same email notification.

I learned some important lessons from building this application. Because SharePoint doesn’t support relational data very well, I needed to denormalize some data points. That is, I have some redundant information across tables. For example, when a user’s ride request is fulfilled as a transfer, the vehicle number is entered into the transfer table and into the ride request table. Code within the Access form enters the data automatically, but it’s redundant. That was necessary to give the correct experience and information when a user visits the site online or receives an email notification. SharePoint has lookup fields, but working with them can be difficult (e.g., there are places where doing searches, sorts, and queries based on their content isn’t so easy). So, I cut my development time significantly by entering information into two fields—a lookup field, which lets users jump to related items via a link when visiting the application online, and a normal text field, which is easier to manipulate programmatically and to generate views and queries.

Using Access as a front end to a Share- Point application isn’t the right solution for every challenge, but since we had a limited number of internal transportation managers who need to interact with the data in a rich way, we can deploy Access to their systems. All other users will be interacting with the ride request form and with the ride list online, and with email notifications. We could have created part of the solution using SharePoint Designer and its powerful Data View Web part, or we could have opened Visual Studio. But we met our requirements with an easy solution within which the only custom code is related to automating the process and reducing data entry.

On to the Games
These four applications demonstrate some interesting uses of SharePoint to solve problems. I’m writing this article a few months before the Games, and by the time you read this, we’ll be running full speed toward the Opening Ceremony on August 8. We’ll have learned even more by then, and you can learn about these applications at my blog, share.intelliem.com/cs/blogs/danholme.

End of Article

   Previous  1  [2]  Next  


Reader Comments

You must be a registered user or online subscriber to comment on this article. Please log on before posting a comment. Are you a new visitor? Register now




Top Viewed ArticlesView all articles
2009 Windows IT Pro Editors' Best and Community Choice Awards

Picking a favorite product from an impressive crowd of competitive offerings is never an easy task, and such was the case with our Editors' Best and Community Choice awards this year. ...

Command Prompt Tricks

One reader shares his tip for setting up the command prompt to reflect a remote path. ...

WinInfo Short Takes: Week of November 23, 2009

An often irreverent look at some of the week's other news, including some post-PDC some soul searching, a Google Chrome OS announcement and a Microsoft response, Windows 7 off to a supposedly strong start, the Jonas Brothers and Xbox 360, and so much more ...


Collaboration Whitepapers Best Practices for SharePoint Backup & Recovery

From Development to Production: Streamlining SharePoint Deployment with DocAve Deployment Manager

Meeting Compliance Objectives in SharePoint

Related Events SharePointPro 2010 Summit & Expo

Microsoft SharePoint Connections 2010

Power Up With SharePoint

Check out our list of Free Email Newsletters!

Collaboration eBooks Web Filtering: An Assessment

Understanding and Leveraging Code Signing Technologies

A Guide to Windows Certification and Public Keys

Related Collaboration Resources Introducing Left-Brain.com, the online IT bookstore
Looking for books, CDs, toolkits, eBooks? Prime your mind at Left-Brain.com

Discover Windows IT Pro eLearning Series!
Clear & detailed technical information and helpful how-to's, all in our trademark no-nonsense format


Windows IT Pro Home Register FAQ for Windows WinInfo News
Europe Edition About Us Contact Us/Customer Service Media Kit Affiliates / Licensing  
SQL Server Magazine Office & SharePoint Pro DevProConnections IT Job Hound
Left-Brain.com Technology Resource Directory asp.netPRO ITTV Windows SuperSite 
 
 Windows IT Pro is a Division of Penton Media Inc.
 © 2009 Penton Media, Inc. Terms of Use | Privacy Statement