Building a business process in SharePoint

By: Vladi Gubler | Comments [1] | Category: Sample Applications | 3/8/2011




UPDATE: you can now download a self-installing site template here. The package will install trial versions of all the required Infowise products automatically.




If you keep track of our product line, you are probably aware that we offer a bundle of 7 of our forms-oriented products, called the Ultimate Forms bundle. The bundle allows you to build complex business processes in SharePoint using just your browser. Such features as different tabs for different stages of the process, simplified data entry and relationships between items, to name but a few, turn any regular SharePoint list into a complete data management system.

We've created a business process for demo purposes, called Vehicle Reservation Form. In this process, an employee can reserve one of the company cars, the manager approves the reservation and the vehicle supervisor handles the order, you can even administer special requests within you reservation, such as preparing a gift basket for an important guest or supplying winter tires. Watch the video now to see how it works:

As you can see, this is a pretty powerful capability, but it took us just over an hour to build, using nothing but the browser!

Let me show you how it is done:

  1. Install the products included in the Ultimate Forms bundle. You can get a full-featured 30-day trial version here
  2. Create a blank site.
  3. Create a custom list named Vehicle Types. It will hold the types of vehicles you can order. You do not need to add any columns, the built-in Title column will suffice.

    Vehicle Types list
  4. Create a custom list named Vehicles. Add a lookup column, named Class, pointing to the Vehicle Types list. You can use the regular lookup field or our Connected Field, which will give you the option of adding new vehicle types directly from the Vehicles list, in the midst of adding a new vehicle. This is really cool, as if your vehicle type is not in the list, you do not need to leave your entry form in the middle to go and add it to another list.

    Vehicles list
  5. Create a list for reservation-related tasks. We will use the Associated Tasks template and call the list Tasks, no need to change any of the default settings.
  6. Create a document library for related documents. Call it Attachments, there is no need to change any of the settings.
  7. Now we come to the main list of our system, the one that will store and manage the reservations themselves. Create a custom list called Vehicle Reservations.
  8. These are the columns we need to include in the list. I will explain the settings for our custom fields in more details.

    Vehicle Reservations list columns
  9. Vehicle column is a Connected Field master-detail column, meaning that the vehicle list in the column is filtered according to the value selected in the Vehicle Type column. First we tell the column what list to take the values from and which column to show, so far it is almost identical to how the regular lookup field works. Now we tell it to link to parent, specifying the parent lookup column in the current list AND the link column, which is the lookup column in the Vehicles list pointing to the Vehicle Types list, we called it Class, remember?

    Connected Field settings
  10. Our Pick-up Location column is also responsible for color-coding the reservations, we are using our Color Choice Field, which is similar to the regular choice field, but also allows you to specify a different color for each option. When included in a view, it paints the whole row in the color of the selected value.

    Color Choice settings
  11. We permit the employee to enter multiple tasks for each reservation for including and tracking specific requests pertaining to that reservation. We are using our Associated Tasks Field, which can create and manage related tasks. We've already created a list for storing the associated tasks. Now we add the field that will allow users to enter and track the tasks in the context of a reservation. Once we've added the field, most of the settings are defined automatically, once you select Tasks as your source list. Note that the Source view selector specifies what view to use as a template for the view in the field, that is how you specify which fields to show.

    Associated Tasks Field settings
  12. The employee's manager is filled out automatically using the information managed in SharePoint profiles. Using our User Property Field, we can defined what information to extract from the current user's profile and what template to use for presenting that information. You can use multiple profile properties and regular text. In our sample form we simply include the Manager property. Find the property in the right box, select it and click on Add to formula.

    User Property Field settings
  13. We need to make sure manager and supervisor approvals are not being changed by someone else. Obviously we can enable versionning on the list and see who made the change in the version history. But this is not convenient and prone to errors. Our Electronic Signature Field allows you to instantly know when field values have been changed, as the signature will be broken and you will see it clearly in views. Just add the signature field and specify which columns are to be signed. The manager will then sign the values using username/password combination, ensuring that any change will be noticable straight away.

    Signature Field settings
  14. Document Link Field allows you to attach documents to a specific location in the form, as a field. The documents themselves are stored in a regular document library, so you can use check-out, versionning and approval.

    Document Link Field settings
  15. The Supervisor needs to allocate a car for the reservation. The cars are managed in an SQL database, external to SharePoint. Using our LOB Item Link Fieldwe can pull the car information from the database by specifying the key, which in our case is the license plate number. We need to provide the field with a connection string for MS SQL or Oracle database. Then we can select from a list of tables and views. After that we can specify which fields we want to use and even give user-friendly names to some or all of the fields. Finally, we can either select the key value or type it in, depending on the requirements.

    LOB settings
  16. We are now done defining the columns. Next we want to give each reservation a unique identifier using our Smart ID Pro. The identifier will be generated automatically and entered into the Title field of the item. We start by selecting the Title field, then we specify the ID template using text, column value placeholders and functions. As the same ID type is applied to all items, we do not need conditions. Our template takes in vehicle make, pick-up date and a numerator (for uniqueness).

    Smart ID Pro settings
  17. Now we define the different tabs that will make up the process. Smart List Pro is the product responsible for that. Generally, each stage of the process gets a separate tab and we define permissions based on those tabs, which is the fastest way. First, we enter the tab name, then we select the columns and their order. After that we need to specify the permissions. For instance, the first, Reservation Details, tab, is in Write mode in the New form (when the item is created) and in Read mode in all the other forms, so that the reservation details are not changed by the manager and supervisor.

    Tab settings
  18. We also want to add a validation rule, stating the Hondas cannot be picked up at the airport. That is pretty straightforward. The rule is that the Pick-up location does not equal Airport under the condition that the Vehicle contains the word Honda. Otherwise, an error message is shown and the form cannot be saved.

    Validation settings
  19. The last thing we want to do is to add some view permissions, so that each person is automatically shown his or her own default view, while other, restricted, views are hidden. First we create a view for each stage, filtering out items currently not at that stage. After that, we specify which users, depending on their role in the process, see which view.

    View settings

This is basically it, the process is ready for testing. We used no custom development, we did not even open up SharePoint Designer. The whole thing can be done in both 2007 and 2010 version, using the same tools. One last thing you might want to do is to define a dashboard as the system's Welcome page, using OOTB list view web parts. Isn't it really easy and fun? Cool


See you next time!


1  Lalaine at 10/22/2012 12:18:03 AM
That's a creative anwser to a difficult question

Leave a Comment:

Comments are moderated and will appear after approval
Comments are not designed to replace support calls. If you have a specific issue with one of our products, please send an email to to open a support ticket.