maandag 25 juni 2012

Increase user adoption - use the SharePoint Adoption Kit

If you want to increase SharePoint adoption, use the Adoption Kit! This kit is available on http://sharepoint.microsoft.com/iusesharepoint. This site contains a lot of material to let business users get familiar with SharePoint. I think that the 45(!) Quick Reference Cards (which also look very sharp and neat) and the practical tips can be of a huge advantage for the user adoption when SharePoint is going to be implemented in an organisation.

maandag 18 juni 2012

NEW Certification: K2 Solutions Professional

Last week I attended a 4 day course to get myself up and running for K2 Blackpearl. With 2 years of experience in K2 Blackpoint (the SharePoint based little brother), I went to the K2 office in London for this 4 day instructor-led course. My trainer for this week was Simon Allport. The course comprised several modules which I will describe in more detail below.

Monday


Introduction and Overview - Everyone introduced themselves. I had noticed very quickly that I was the only person with relevant K2 (and SharePoint) experience. The other guys were mostly sent by their company to learn or assess K2 as a potential software implementation.

Process Design and Implementation - This module actually showed nothing new to me although it was very useful for the other attendees as they did not have any experience with K2.

In the evening I watched the game France against England in a pub next to my hotel.

Tuesday


Data Management - This is interesting stuff! We have learned how to extract/lookup data in external data sources and use them in your K2 processes and InfoPath forms. K2 offers so-called SmartObjects functionality (which I have often used before). SmartObjects allows us to use external data as a K2 specific object. K2 creates some SmartObjects out of the box but we have learned how to create SmartObjects based on a specific data source (a SQL Server table and the Active Directory in this case). Of course it is also possible to use other data sources as input for your SmartObject and join this external data with K2 data. By using K2 SmartObjects we can link data from multiple systems (for example an HR system and Active Directory) and use that data in a form or workflow. It also possible to write to these data sources so K2 can also automate your Active Directory tasks. During the course I created a single form that creates a new Active Directory user based on the input fields in the form.

For a fictive company we developed a customer services workflow so employees can request client portals for new clients by filling out a single webform. K2 handles the creation of a record in the CRM system + the creation of a SharePoint portal site for the new customer based on a template.
In the evening I bought an Oyster Card and took the underground for a visit to the London city centre.

Wednesday


Reporting, Business Intelligence, and Activity Monitoring - Reporting is a very important, but often an ignored part of a workflow solution. Keeping track on your running processess and process history allows business users to support business decision making.
  • Reporting deals with providing decision support information to business decision makers.
  • Business Intelligence (BI) deals with providing access to interrelated information to support business decision making.
  • Business Activity Monitoring (BAM) deals with monitoring real-time business activities.
K2 offers a few out of the box reports but also allows users to create their own reports. Users can create reports in three ways:

- K2 Databases
- K2 SmartObjects
- Data source access (ADO.NET + APIs + SmartObject Services)

K2 reports can be created in the K2 Report Designer, Excel, SQL Server Reporting Services, or we can develop our own report in our preferred programming language. We built a custom report with Microsoft Business Intelligence Studio. Because the custom reports relies on K2 SmartObject we are able to use them in a workflow. This means that reports can be emailed from a K2 workflow!

Logging and Diagnostics - Logging and custom logging from workflow. K2 developers can log specific messages using C# code in a Server Event in a workflow. Using this code we can log messages to the Windows Event Log or File Log for example with just a single line of code.

With Visual Studio we can connect to a running process that is in error state and fix that particular process to remove the error and continue the workflow so it is no longer needed to redeploy and restart the whole process (as I usually had to do in Blackpoint). This can all be done with the Process Management tab in Visual Studio, a specific toolset for Visual Studio automatically installed as part of the K2 solution.

Thursday


Customization and Extension - Complete flexibility and extendibility! It is possible to tweak the underlying workflow code so it totally can meet the customer's requirements. It is also possible to create custom worklists so SharePoint and K2 tasklists can be combined into one worklist with only a specific set of display fields. The code behind most K2 event templates is based on Windows Workflow Foundation (WF) schedules. During the course we created a custom tasklist and a custom worklist. Also we have developed custom notifications, error handling, SmartObjects and Service Providers.

Conclusion


The trainer showed me some best practices regarding development and workflow design and I have seen the added value of Blackpearl. Most important is that I am now able to utilize the Blackpearl functionality to totally automate organisation's business processes!

vrijdag 23 maart 2012

Save multiple accounts in SharePoint people column

This is a post about storing the data from an InfoPath Contact Selector control into SharePoint, in a proper way without coding.

It is very useful that when you have a K2 workflow with an InfoPath form, you want to store or synchronize the form data with a SharePoint item. I ran into an issue with saving multiple user accounts from a Contact Selector control. All accounts entered in this InfoPath control must be saved with the corresponding SharePoint item. K2 must update the metadata of the SharePoint item when the user submits the InfoPath form.

Your InfoPath form contains a Contact Selector in which multiple user accounts can be added.



Now, let's store the user accounts (Bremen, Onderwater, Schepers) with the SharePoint list item (see the screenshot below).


At first glance, it seems like this is not possible. I have found something that can do the trick, and the best thing about it: no coding is needed!

In you are familiar with the Contact Selector you know that InfoPath has the following fields in the main data source: a Person group that contains the nodes DisplayName, AccountId and AccountType. Please read the following page if you don't know how to configure the Contact Selector: http://msdn.microsoft.com/en-us/library/ms558892.aspx.



In SharePoint you need to create a column to store the user accounts. In my example I name this column 'Experts'. Please note that you need to check the 'Allow multiple selections' option.


Now go to your K2 workflow and create two activities.


For the first activity (Extract experts) plan the Destination Users according the options below:
  • Run this wizard in Advanced Mode;
  • Plan per destination - All at once;
  • Create a slot for each destination;
  • Resolve all roles and groups to users;
  • Add a destination set by using the AccountId node of the InfoPath Contact Selector


Create a data field of the type String. In my example I name this field 'Experts'.

Add a Data Event to the first activity. This Data Event fills the data field 'Experts' with all user accounts in the Contact Selector.


 To do this use the following formula:


In the second activity (Save experts) add a SharePoint List Items event. Configure this event to save the Data Field Experts to the SharePoint Experts column.


As you probably have noticed, the first activity loops through all InfoPath AccountId nodes and appends them to the Experts data field. The second activity just stores the value of this data field in the SharePoint metadata column. Easy as that!

Welkom

Welkom op mijn blog! Ik zal hier regelmatig berichten posten over zaken die ik tijdens mijn werk als SharePoint consultant tegenkom in de praktijk. De problemen en andere interessante dingen die ik tegenkom beschrijf ik zoveel mogelijk op deze blog.