1230 rocks

I finished a complete install of a K2 load balanced distributed production clusters integrated with SharePoint farm, a staging and a dev environment update this week. The 1230 installer was awesome.

While everyone is excited about the cool new viewflow (which is really cool) I think the installer team should be congratulated for making my life easier – cheers!! 🙂

K2 blackpoint and SharePoint Designer based workflows

Recently, my team has been working on a SharePoint project. As part of the brief we also have to fixup a few workflows that are behaving badly. We looked at the problem and it was a list that had couple of SharePoint designer based workflows attached for doing item updates and email notifications based on changes happening to the list items. One might think SPD can do it easily but, oh no, the requirement was to do date based checks on a regular basis along with reacting to the updates made to the list items. This needed time based loop and Date based calculations and other computations.

The guys spent ~two days trying to get this going and finally gave up. I think I can do this with blackpoint in couple of hours. Lesson: Choose the right tool for the right job. Just because it is free, dont kill yourself using it. Hope this is useful. Let me know if you had a similar or better experience with tools.

Accessing process data

We can access completed K2 process instance information through smart objects. All the reports that you get with K2 are built using smart objects. One thing to note with the reporting data is that it is not real time.

The asynchronous nature of a workflow environment means that if you need access to state information in real-time you will need to manage that. One way to do this is to use a custom smart object. My preference is to stick with the K2 provided reporting smart objects.

Here’s a code sample for accessing the smart object data.

Costly way to Building Workflow Applications…

Sometime ago, I was going through the functional specs for a number of workflow applications for a client. We were looking at solution design and estimates. We had two solution approaches on the table. First one was a custom coded solution. The second option was K2 & SharePoint based applications.

We had to plan for the number of workflow applications that the client wanted to develop and deploy to production in the next 12 months.
Some of these apps were simple and some were very complex.

Some setup time and infrastructure related effort figures also went into the K2/SharePoint solution estimate.

We projected the estimates of the two approaches for these apps and applied some adjustments based on experience to both approaches.

The estimates came out as 2:1. The K2/SharePoint solution was costing the client half the cost of the custom app option.

Well, I think the key to understand these differences in estimates is the number of applications and the amount of inevitable change that comes through during each application project.

If the implementation methodology and the tools used in a project can help better absorb this burden then that approach will always going to be in a better position compared to one that does not help.

I think this is where the K2/SharePoint combination rocks!

In a well governed SharePoint environment, We can manage amounts of new applications and changes by delegating most of them to power users. We can use Form technology such as Infopath and Forms Services to design, develop and control easily. We can leverage the out of the box workflow capabilities of K2 and its integration with SharePoint, SQL and Reports. We can utilize K2’s deployment support. We can also write code when we absolutely have to.

Obviously the above estimates will be different to different environments based on requirements, team and technology mix. Hopefully they are better than 2:1. But I think the trend will be the same – you get much more value out of these platforms.

With K2 & SharePoint, the first project is going to cost more due to setup time, training, consulting and learning curve. But, with the second & third applications you will start to see much more rapid ROI. This is with taking into consideration the managing, patching and updating efforts required for platforms such as K2 and SharePoint.

Platforms force you to work within certain limits and encourage best practices. At times these are hard to develop against. We know the pain associated with SharePoint development and upgrades. But, if you plan it right and execute well (Getting good consultants in with a view to get your own people trained on the job is important here), these platforms give rapid returns.

So, my point is, the Costly way to Building Workflow applications, which touch people and have an implied change aspect more so than other apps, is to completely custom code them.

The New Kid on the block called 4.5

Oh yeah, now we have an official name for what was code named “090x”. It is K2 4.5 and, we will have K2 blackpearl 4.5, K2 blackpoint 4.5 and K2 connect for SAP 4.5 entering beta cycles shortly. This release is a major milestone for K2 as the fourth generation K2 technology released in August 2007 now matures into the next level.

One of my favourite features of K2 to look forward to in this release is called the “Inline Functions”. With Inline Functions, one can construct complex rule evaluations very easily without writing code. There is an impressive array of pre-built functions made available. There are things like GetXmlValue() for working with Infopath content, PadLeft() and other string manipulation functions, Conversion functions for type casting and your standard logical functions.

In the screen shots below you will see the inline functions in action:

Inline functions can be called everywhere within a K2 process. Combining them with smart objects will open up interesting scenarios. There is also an API made available for extending these out-of-the-box functions with your own custom goodies.

UPDATE: Ruben wrote some detailed posts on Smart functions recently, worth the read.