K2 blackpoint Q&A at MOSSIG

Was a great turnout for MOSSIG tonight – to see the demo+prezzo by Jey Srikantha from jEyLaBs.

Jey covered much of the functionality of K2 blackpoint; there’s just soooo much involved, that it’s tricky to show it all in detail.

Just as a quick overview of what was shown :

  • K2 Web Designer – add a new process, and use a “template” of Approve, Decline, Re-Work – and include some events & user tasks (uses a Silverlight plug-in)
  • K2 Studio – rich-client (desktop) which includes additional designer templates in an Office-2007 style designer
  • K2 Process Portals – SharePoint webparts & site templates for managing the processes deployed within K2 blackpoint. 
  • K2 Worklist + ViewFlow – user interaction and reporting views

While I’d seen much of the functionality already, but was good to see/hear the reaction from attendees – and there were lots of questions.

I wanted to provide a further “take” on the whole blackpoint/blackpearl equation – and “document” some of the questions+answers…>

What is blackpoint and what is blackpearl ?

One of the analogies I like to use (for developers) is the “Visual Studio” approach.   Firstly, think of Visual Studio Express, and then Visual Studio Professional.  Each of these products have a bunch of project-types & functionality that you create.  

And – while the projects you can create in “Express” is limited, you can easily upgrade to “Professional” – and open the same projects and continue – with more features & functions.

The analogy here is :

  • K2 blackpoint is akin to Visual Studio Express
  • K2 blackpearl is akin to Visual Studio Professional

Another way to say it – is that one is a subset – and the other is the super-set :


Can you include code / is there an API / can you add new activities ?

Some of the discussion related to being able to start workflows via code, or being able to add new activities to the designer, and so forth.  

In essence, what’s the “extensibility” level of K2 blackpoint ?    (for developers)

Much of the answer was simply “uuum, No – you’d need K2 blackpearl for that”.  

And yes, sorry to disappoint, but the K2 blackpoint product is intended to provide a huge wealth of functionality for SharePoint workflow – that doesn’t NEED to delve into any code – and there’s a LOT you can do within the bounds of the functionality.

If you need to “outgrow” the bounds of what K2 blackpoint can provide, then you may need to consider looking at K2 blackpearl instead.

Just like the analogy of Visual Studio – the different versions of the product have different inclusions – eg. if you need Source Code control, you need to use “Professional” instead of “Express”

What’s the upgrade path ?

As above, there (will be) the ability to simply do an in-place upgrade from K2 blackpoint to K2 blackpearl.   This will mean that the new features of “pearl” will be immediately available.  This includes the following :

  • Licensing upgrade – the principle is that this will be a simply “license key” change.  Obviously there will be some licensing fees involved – this can be determined on a case-by-case basis from K2.
  • Installation upgrade – in principle (again), this will be a simple “SETUP.EXE” installation.   At present, this is not really an option – until the K2 blackpearl product has a minor update to include the K2 Studio, K2 Silverlight Designer and K2 Process Portals.  This is expected very soon – the latest I’d heard is that there is a BETA release due in April (ie. next month).  This will also support the 2008 stack (Windows Server 2008, SQL Server 2008 – and Visual Studio 2008) – will be a big release indeed !


If there are any other questions/comments about the session at MOSSIG – or K2 blackpoint in general, pls. feel free to enter a comment…>

Click here to see some more info :


Thanks Jey for tonight’s session at MOSSIG…!



K2 WorkList Item Email – How To Change The Mail Template

With K2, there is (most likely) the need to create a user task – ie. a client event of some kind – using InfoPath, ASP.NET, etc. 

And – all you have to do is tick a box and an email will automatically be sent to the user when the task (client event) is created.


When the user task happens, the user will then get an email looking like this :


But – if you need to (or want to) CHANGE the look and feel of the email template – how can I does this ??    Well, I’m glad you asked…>


Deep (deep) within the bowels of the K2 “Program Files” folder, there are a number of EXE’s and CONFIG files – and there’s also a file called…     (take a deep breath !) :



The file location is :

C:\Program Files\K2 blackpearl\Host Server\Bin\

This file contains the HTML definition of what that email looks like (above).   And so – you can use your favourite HTML editor to change it all about – I just fiddle away in Visual Studio – the one tool of choice for me…

Quick tip – append a “.HTML” extension and will then have a proper editing experience in Visual Studio – colour coded & preview – just need to fix up some XHTML.

And – make sure you remember to remove the “.HTML” when you’re completed.

Here’s one I’ve prepared for the “DENALLIX” corporation (seen in Visual Studio) :


IMPORTANT – be sure you take a backup copy of the file – and you MUST retain the value within the text : [UrlWithSN]    This is replaced with the URL to the client event page – ie. an ASPX / Forms Server page.

After saving the file in place with the new layout & so forth – all is done for the template. 

Time to give it a whirl.

  • So – users should see this new layout from now on, right ??    WRONG
  • Just a simple re-start of the K2 Server should pick it up, eh ??   WRONG
  • Re-boot the server (Windows & all) – should pick it up, eh ??   WRONG

Jeez – what do I have to do to use my new mail template !!??!

In fact – this mail template is only loaded when a new client event is created in Visual Studio.  

So – any NEW processes that are developed – and deployed – will have the correct mail format.

BUT – not any process instances that already are underway – or for any new instances of an already deployed process definition.


To demonstrate the concept, I’ll create a new process (very simple) – and we’ll worry about the OTHER process mail templates a bit later (read more below).


  • Add a “Default Client Event” – just put something like http://www.abcdefg.com for the address – who cares, just want an email to come through.
  • Just need the default action (“Task Completed”)
  • Add a “Default Server Event (Code)” – and add in a line to complete (as above)
  • Deploy the process
  • Jump over to K2 Workspace, and start up a new instance.


Then – should get an email arrive – just like this :


That looks great, eh ?    Being HTML, you can configure anything really – including STYLE, height, layout – anything really !   

This is definitely something that you should do BEFORE creating any new K2 processes – but there’s a really clever (MacGuyver) trick for “refreshing” the existing processes that you’ve deployed.  

Meaning that you don’t have to re-edit / re-deploy them all – and any currently running instances will get the fancy new email template / layout.

This involves either of the following :

  • Use the K2 Workspace to view the email “Notification Event” to change what the format of the email will be.   This is a “manual” step – and has to be done one-by-one – I had over 80 listed on my K2 Server – and so I wanted to find an easier way
  • You can use (an unsupported) SQL Server update to “reset/update” the email templates for any “existing” processes – including those underway, and those deployed already.

But – will have to leave that for now.  I’ll detail THOSE approaches in the NEXT post…  

Server Code Event – K2 BlackPearl

One of the best aspects of K2 BlackPearl is the ability to include CODE – sometimes in response to an “event” of some kind – such as before or after an event or activity :


This can be either “standard C#” code – or a Windows Workflow designer “chunk”.

The example I’ll walk through is more with regard to “standard C#” code.  

Or – more specifically – using a “Default Server Event (Code)”.

Some background – and the reason behind this post.  

We have a workflow with an InfoPath form, and need the K2 process to update/inject values into the XML behind the form.  

There used to be a specific “event wizard” for this with K2.NET 2003 – but no longer, and have to use some code.  

The other aspect being covered is “re-using / re-factoring” the code into a shared module.   And calling this from within K2 – ie. an external DLL.

OK – so here’s what I’ve baked already :

  • InfoPath form – with two views – one for Submit and another for Manager
  • Very (very) basic workflow – initiated from a SharePoint forms library
  • InfoPath client event to approve/decline
  • Send an email to notify if approved/declined


If you’re lost already – I suggest you don’t read any further, there’s a great book that will help with some learning’s, and getting up-to-speed with K2.

Here’s what the user’s see – with the form initiated from clicking “NEW” in the document library :


And the manager view – with an additional field to update some information (synopsis) – not a great example, but it’ll prove the point.


This runs fine – but what we need to do is update the XML in the InfoPath form BEFORE it’s shown to the manager – with the “synopsis” field pre-populated – ideally using other data in the form – but just hard-coded for now.

This will be reviewed by the manager – and updated as necessary – and used in the body of the email to be sent out.

Here’s the basic steps that I’m taking to do this :

  • Within the K2 BlackPearl “solution”, add another “project” as with any other web application within Visual Studio.
  • Choose “Visual C#” – and then “Class Library”
  • Name the new class project “K2Helper”
  • Rename the class library (CS) to be “InfoPathHelper”

The solution (and projects) should NOW look something like this (click to expand/enlarge):


We’re going to add a method that can then be called from within the K2 project.  This will take some parameters relating to “InfoPath XML” – which will become apparent soon enough.

  • 1st step is to make sure the “using System.Xml” has been added at the top of the class
  • And then – add a method :

public static string UpdateInfoPathField(string xml, string nameSpace, string fieldName, string fieldValue)


The next set of code has been sourced / stolen / copied from my good buddy Jason Apergis – check out this post – related to “updating InfoPath fields” :

Working with InfoPath XML and Archiving it with BlackPearl and SharePoint

//Load up the XML from input parameter
XmlDocument doc = new XmlDocument();

//Create a name space manager for InfoPath
XmlNamespaceManager nsMgr = new XmlNamespaceManager(doc.NameTable);
nsMgr.AddNamespace("my", doc.DocumentElement.GetNamespaceOfPrefix("my"));

//Now set the value for XPath
string xPath = "//my:" + nameSpace + "/my:" + fieldName;

//update the value in the XML
doc.SelectSingleNode(xPath, nsMgr).InnerText = fieldValue;

//return the "fixed" xml back as a string
return doc.OuterXml;

This is the same code – shown in the nice Visual Studio editor :


OK – that’s about it.  

Do a quick build of the project (just the “K2Helper” project) – and verify that all is OK.   

Now – we can turn our attention to the K2 workflow project.

  • Double-click on the KPRX file – to display the K2 workflow
  • RIght click somewhere in the white space – and select properties
  • Need to add a reference to the DLL of the project (above)


  • Click Add
  • Then, click Browse
  • Navigate to the BIN folder, and select the DLL – and click OK


Now that there is a reference to the project/DLL, we can include a reference within code – and use the method as needed.

  • Drag a “Default Server Event (Code)” onto the design pane
  • Position this ABOVE the Manager Approval step
  • Move the lines & boxes around – and join it up
  • Should look something like this :


Now, we can actually add the code :

  • Right-click on the “lightning bolt”


  • Click View Code > Event Item
  • Add the statement at the top “using K2Helper”
  • The following code then :
      • Grabs the XML
      • Passes the XPath, FieldName and Value to set
      • Set the xml BACK to the K2 XMLField – and thus the form

//Get the XML Field string
string xml = K2.ProcessInstance.XmlFields[0].Value.ToString();

//pass it to the class, and return the updated XML to the string value
xml = InfoPathHelper.UpdateInfoPathField(xml, "meetingAgenda/my:meeting", "meetingSynopsis", "Lunch will be provided");

//Now set the value back into the XML Field
K2.ProcessInstance.XmlFields[0].Value = xml;

This is the same code – shown in the nice Visual Studio editor :


And so, when the manager approval step is shown, there is a value that’s (magically) appeared :


*** Obviously – this can be extended – to grab out the fields within the form, and compile the “synopsis” of the meeting. 

Eg,   “Joe Barnes will chair the meeting to discuss Development KickOff.  Please be prompt, as the meeting will commence at 11:00 – make your way to Rm 402

The manager could then update as needed – and the TEXT would be sent in the email in the following step.

That’s about all it takes – in case there are any questions !!?!    *smile*

Here’s what was shown :

  • Default Server Event (Code) – calling to an external DLL
  • Method to update InfoPath values (thx Jason A)

Hopefully that quick overview is of some use.  

Pls. leave a comment if you would like to discuss – or to try out some more examples (if you’re NICE, I might even email you the code/project)


Updated K2 release

The new drop of K2 blackpearl has landed – entitled 0807.   The last release was 0803 – so not sure what the number means – unless I missed 0804, 0805 and 0806.  🙂

There’s a swag of improvements and some new features that I’m keen to check out.   I’d used an earlier Beta of 0807 – and keen to try out the RTM install set.

The 0807 release focused on greater stability and better performance than ever before.

It includes various enhancements and performance increases for the K2 Workspace, the K2 Designer for Microsoft Visual Studio 2005, and the K2 blackpearl Workflow Server to name but a few.

It also includes post-0803 patches and bug fixes.

New exciting features included in this release are Out of Office functionality and K2 Interop !

The K2 Interop is essentially the ability to open processes from the older K2.NET 2003 version.  Much like you would with a ASP.NET 1.1 (Visual Studio 2003) project – when opening in Visual Studio 2005, and upgrading to ASP.NET 2.0.

Of course, there’s a school of thought that says to simply “re-do processes” – to use new features, and re-visit/re-engineer the process – many businesses will have changed operation in the last 3-5 years – so a review, and re-design could be beneficial.

Also – there’s a new migration utility coming soon, which needs 0807.  This allows old processes from K2.NET 2003 to be “run” on the K2 blackpearl server – as opposed to opening and upgrading processes, just run with what was originally implemented.

And – without delving into EVERYTHING that the new 0807 setup will bring :

  • New Active Directory service – to retrieve & update to AD
  • Performance Enhancements
  • K2 Wizard Enhancements – stream-lined SharePoint integration
  • Documentation – many new topics, and Developer Reference

More info/blogs :

Some comments from Jey Srikantha :

(1) superior performance in VS.NET – much faster and efficient memory usage

(2) smartobject performance improvements

(3) workspace improvements & Out of Office functionality.

K2[blackpearl] 807 is here! Go get it!! 

Going to be great to try it out.  Click here to download : K2 [BLACKPEARL] 0807 (4.8210.1.0) 

NB.  Requires portal login – have to contact K2 for a login…

Custom code in K2 blackpearl

As you may, or may not be aware, the underlying code of workflows produced by K2 blackpearl have Windows Workflow Foundation (WF) at the core.

With the previous K2.NET 2003, there was a Notepad-like editor that allowed you to over-write the code generated for the event.  It was compiled “on the fly” – you could just update some code (to fix an error for example) – and then “continue” the workflow.

With K2 blackpearl, there are so many event wizards, templates and other functionality “out of the box”, you will may not ever need to write any custom code.   I haven’t had to as yet – but one day, I’m sure I will, for some reason or another.  

This is not the same as when using the K2 API and ASP.NET (C#) to open K2 connection, and worklist, etc – and inter-operating with the K2 server/runtime.   This is with regard to code within the workflow.

Another K2 Insider Gabriel Malherbe has posted a great article about how to add code to events within K2 blackpearl – with some screen-shots, etc. 

It’s not for the faint-hearted – code within WF introduces a new swag of functionality, acronyms and techniques – XOML for one – and I’ve never been a fan of the design interface for WF (within Visual Studio).

But – if you HAVE to include some custom code within a K2 workflow – and can’t achieve the same result by calling a web service, or SmartObject method – then this article is a good start.

Thanks Gabe !

Source : Writing custom code in a K2 blackpearl client event

Forms within K2 – InfoPath / ASP.NET

When developing a workflow, the participants (humans) within the process will need to interact with some sort of user interface. 

The usual suspects in this instance are InfoPath and ASP.NET.

Jason Apergis from RDA (and K2 Insider) has a great article following on a K2 user group.  

InfoPath and ASP.NET Development Considerations

The article covers the main Pro’s and Con’s of both InfoPath and ASP.NET, and their place in a K2 process.

There’s so much more to this topic – with many differing development aspects (code) and design aspects (InfoPath) that need to be considered.

In fact, there’s enough discussion to fill an entire chapter of a book – which is what Jason and I have done !

Wrox – Professional K2 [blackpearl]


We’re in final review stages for our chapter – the book will be available later this year (2008), with “Chapter 11” focusing on Forms within K2 – covering InfoPath (Jason) and ASP.NET (me).

K2 and BlueThread sign bundling agreement

Some more about BlueThread, from the recent K2 Networker newsletter (July 08)

BlueThread Technologies has always used K2 software as the workflow engine of its enterprise content management (ECM) solutions.

As a result of a new bundling agreement, BlueThread will now directly integrate K2 blackpearl into its SmartDesk software.

“In addition to users realizing productivity improvements, the K2/SmartDesk bundle offers clients a simple and cost-effective means to upgrade to K2 blackpearl.

Clients can quickly configure process- and content-enabled business applications without writing code.

IT can now focus on ECM application rollout and the development of unique, client-specific functions and not be burdened with the overhead of supporting custom, one-off business applications.”

Mark Brazeau, BlueThread president and senior principal

And – there’s a further reading also (case study + press release) :

  • Case study – how Integrated Behavioural Health used K2 and BlueThread software to speed claims processing, improve customer service and increase efficiency.
  • Press release – how Bridge Finance Group used K2 and BlueThread software to automate its loan processing business and meet critical, 24-hour service-level agreements.

Bluethread – K2 + SharePoint

Was passed a few videos from a buddy at Microsoft, covering the new solution application stack from Blue Thread.

They’ve taken SharePoint – and K2 blackpearl – and created a full-blown enterprise solution for customers.  

SmartDesk is a highly optimized and dynamic ECM end-user interface leveraging Microsoft’s technology stack.

Through configuration, it’s designed to aggregate work and required content in an optimized paradigm so users can make better and faster decisions.

Interesting to see a partner taking K2 and creating a solution / product – rather than a customer using K2 within their organisation.

Just have a look at the architecture involved – amazing !    … and K2 is only a small part of the overall solution :


You have to really see it in operation – there’s a few videos from Micheal Gannotti.

Microsoft Partners BlueThread and K2 have come together to in partnership to offer clients one of the most compelling solutions around application delivery on the SharePoint platform to date.

While I was in Tampa I had the opportunity to see a number of applications they have delivered and it got me very excited. Here was a powerful solution that is exactly what so many of my own customers have called for.

In this 3 part video series you will get an overview from some of the folks from Bluethread and K2 as well as see two demo videos around actual application implementations of their solutions (more of these on the way).

Also – don’t forget to check out the new “Geier At Large” video – featuring Jeremy Ragan from Blue Thread Inc – they even offer TIME TRAVEL !!

Will be great to have a deeper look at the new Blue Thread SmartDesk product, looks like it’s going to be a huge hit.  

I wonder if they have a reseller or partner located in Australia – and if not – why not !!?!  


Recommended Third Party Products for SharePoint Server 2007

Yet another recommendation for K2, when dealing with SharePoint workflow. 

This time from a trusted source – Bill English @ mindsharp.com :

Bill English (MCSE, MCSA, MVP, MCT) is an industry leader, author, and educator specializing in the exciting SharePoint Products and Technologies product set from Microsoft.

In this role as Mindsharp’s CEO, Bill focuses on emerging technical changes in SharePoint to ensure Mindsharp continues to provide cutting-edge training and business solutions.

Bill draws on his expertise in knowledge management and collaboration technologies to teach and consult worldwide about powerful customized solutions based on the SharePoint platform.

OK – so what has he said about K2 ?!?

When it comes to SharePoint Server 2007, there is no shortage of third-party products that can help enhance your SharePoint Server 2007 experience and increase the ROI on your product.

In this blog post, I’ll highlight many of the third-party products that I recommend to customers, depending on their needs.

Not everyone needs every product here, but many running SharePoint Server 2007 will need at least some of the products.


K2. Need I say more? Simply the best in the field for workflows.

Source : Bill English (MindSharp)

The blog post also covers the following :

  • Collaboration
  • Security, User Account Management and Permissions Management
  • Search and Relevance
  • Document Administration
  • Upgrade and Moving Content

Worth a read-thru for any SharePoint implementations out there.

Click here to read the full article.

The ‘point’ of origin – K2 blackpoint

Well, it’s a great day when someone asks you “so, what’s happening with that BlackPoint” thingo from K2 ?” – and I can reply “It’s out !”


SharePoint workflow.  More features.  No code.

Click here to view the home page : blackpoint.k2.com

For those who haven’t heard about the K2 blackpoint, the easiest way to describe it is that it’s a cut-down version of the flagship K2 blackpearl product :

K2 blackpoint, a subset of K2 blackpearl features and tools, is for SharePoint users that want the ability to build workflows and process-driven applications quickly — without code, without complexity.

As was shown at a recent SharePoint user group meeting, there are a number of workflow solutions out there, with Nintex, Skelta, and the Microsoft offering of SharePoint Designer and WIndows Workflow Foundation (WF).

The K2 blackpearl product stood out as the better choice for an enterprise scale workflow & BPM tool, with Nintex looking rather appealing for SharePoint-based workflow.

That’s all changed now, with the introduction of K2 blackpoint – using the word ‘point’ as it’s a SharePoint-only workflow product.

Let’s have a look at the features that are included “out of the box” :

  • K2 studio – new Microsoft Office style workflow designer tool.  Had posted about this earlier, click here to read.
  • K2 process portals – SharePoint portals to manage processes, instead of the K2 workspace (as with K2 blackpearl)
  • Out of the box reporting
  • Works with Windows SharePoint Services (free) as well as Microsoft Office SharePoint Server (MOSS)
  • Works with SharePoint Forms Server – or without, by coding ASP.NET pages

So – K2 blackpoint does what it says – SharePoint workflow, no code.  

There’s some buzz on the interwebs regarding the differences and advantages/disadvantages when compared with Nintex Workflow

Here’s a few that are relevant (IMHO) – not the official cross-reference from K2 or anything like that :

Server – K2 blackpoint runs using a dedicated workflow server. Nintex is fully integrated into SharePoint, which means it’s processes are hosted by SharePoint, as with SharePoint Designer workflows.

Licensing – being a separate server, a single K2 blackpoint server can support multiple SharePoint servers, rather than requiring a separate license (costs)

Upgrade – if workflow requirements increase over time, there will be an easy upgrade path to the K2 blackpearl product, including the K2 Visual Studio designer and Visio, as well as K2 connect for SAP, and K2 SmartObjects designers.  If using Nintex, and workflow needs/requirements are greater, then it maybe end up (unfortunately) as a “start-over” task, with an enterprise scale product (K2 blackpoint or K2 blackpearl)

Functionality – K2 blackpoint has out-of-the-box reporting capabilities, and assign-to-Content-Type features.   For users familiar with the new Word-2007 environment, the K2 studio tool will be easy to create & configure workflows, as well as the K2 designer within SharePoint (like the designer for Nintex). 

Extensibility – can easily code webpages and web services using the K2 API, and SourceCode.Workflow.Client namespaces.   And, can use ADO.NET to interact with SmartObjects created by the K2 blackpoint, or within SharePoint.

Integration – being fully integrated to SharePoint means that Nintex resides within the content database.  This can be GOOD, with regard to disaster recovery.  K2 blackpoint has it’s own server, and SQL Server databases, which would require (additional) backup & disaster recovery plans, etc

Click here to view a PDF with the complete comparison document – between K2 blackpoint and K2 blackpearl.

One of the comments that is usually directed at K2 is that “it’s too expensive”.   Well, how’s this for an answer :


K2 blackpoint will be priced on a per-server model — $5,000 (U.S.) for up to 200 users, $10,000 (U.S.) for up to 500 users and $15,000 (U.S.) for unlimited users.

So – the K2 blackpoint product may be cheaper for a lot of implementations, has more functionality, and scalability, and is a true BPM solution – and is easily upgradeable (to K2 blackpearl) when/if you need to.

Seems like a no-brainer, to me.  But – hey, that’s just me !   

In case you’re wondering, here is a list of what’s NOT included in K2 blackpoint, and requires the K2 blackpearl version :

  • Visual Studio designer
  • K2 SmartObjects designer
  • K2 Workspace
  • Custom report designer (within workspace)
  • Process simulation (coming soon for K2 blackpearl)
  • Code editing, within the workflow designer (would require K2 for Visual Studio)
  • K2 connect for SAP, etc
  • Business Data Catalog, within SharePoint

Click here to view the home page for K2 blackpoint, including :

  • Details on training
  • Video clip showing main features
  • Sign-up for a free trial of K2 blackpoint BETA

And – there’s even a competition to celebrate the launch. 

The prizes are pretty good, just need to do some some searching for “clues”, and enter codes on the website :

  • 1st prize : DELL 30 inch Flat Panel monitor
  • 2nd prize : Canon PowerShot S5 digital camera
  • 3rd prize : Nintendo Wii

Click the following link to see details about the K2 blackpoint Game – get the point(s), win something cool.

Can’t wait to start playing around with K2 blackpoint – looks like it’s going to be great !