Worklist Service Broker

  • 12 November 2009
  • 34 replies

The Worklist Service Broker enables the retrieval of user(s) work list items so that you can quickly create custom work lists and reports that incorporate standard work list data with line of business data within the same view. This can be accomplished by using one of the two service objects provided as the basis for your SmartObject methods and then by building a composite SmartObject that contains the additional data you would like to incorporate resulting in a custom work list. In addition, y

34 replies

Querying SO with Impersonation

I am currently querying a worklist SmartObject using the SOCommand.ExecuteReader method and am having trouble getting the query to run with Impersonation aspects in affect.

This is the code I'm using, I'm assuming I'm setting up the SOConnection up incorrectly or something, but I don't see anyways to pass in any type of "Impersonate this person" information.

Could anybody give any guidance on this?

     using (SOConnection connection = new SOConnection(_SOServer, _SOPort))
        using (SOCommand command = selectionFactory.ConstructSelectCommand(connection, identity))
            using (SODataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection))
                while (reader.Read())

Thanks a lot,
Greg Andora



This SmartObject broker should not really need to be called from code. If you want to code against the worklist, please simply use the SC.WF.Client API


Examples code on how to do this is included in this project.



Since the upgrade to Blackpearl 4.6.8 the Custom Worklist has been generating an authentication error. I've attached a screenshot of the error reproduced on my VM but I'm also getting the exact error at a Customer Site which has just been upgraded from 4.6.7. to 4.6.8 as well. 



Hi Latte,


Did you find the reason of your error? I have the same error when I'm trying to filter by username.



You must modify the "Impersonate COnnection String" value.  THe default value is just a template.  YOu ahve to fill in the domain, username and password of the account that has impersonate permissions.  I'm running 4.6.8 and it works fine with no errors.  I'm also running v0.1 that is in the zip file.



I am getting the following error. Please let me know, where I am doing the mistake while configuring.






Badge +1

I am researching options for presenting the worklist and I came across this option.


We currently have BlackPearl 4.6.9 installed and using SmartForms. It looks like there are three versions in this download.


0.1 last modified on 11/12/2009

v.02 last modified on 4/8/2012

v0.5 last modified on 11/04/2012


Is anyone using any of these verson on 4.6.9 or using alternative approaches to provided a different front end for worklist items?







Please take a look on this screenshot:


As you can see, I'm using the Get Worklist Items method, and I think it's suposed to return just the worklist items for current logged user.

However, it comes with all worklist items.

Anyone got this problem too?


Best Regards,

Óscar Gomes


Badge +1

I am using Blackpearl 4.6.9 and I have created a view using this Worklist Service Broker. I store the process instance id in a SmartObject that start a process workflow.  Then when a form is opened for that SmartObject I filter the BasicWorkListItem -> Get Worklist Items to find any active actions for that process. I then use the serial number to get WorklistItemAction -> Get Worklist Item Actions to show a drop down of actions.


This is working fine, except when someone uses the out of office feature.  When the WorklistItemAction -> Get Worklist Item Actions runs it gets an error saying not allowed to open the worklist item with SN=9999_9999


Does anyone know what is different with OOF assignements that prevents this from working or if am I using this incorrectly?



Has anyone tried to use the worklist service broker on a multi-servers environment? Our workflow server and the IIS server are separate. I can't get the worklist object to retrieve anything in the SmartForm. I am thinking the connection string is the issue, but I don't know which server and what credential should be in the connection string.

Can anyone help?


We've installed the dll "SourceCode.SmartObjects.Services.WorklistService.dll" version 0.5 on a development server, copying it into the service broker directory under the Blackpearl directory but the service does not show up as a type that ias available for registration in the Smart Object tester.  We're running Blackpearl 4.6.11.


We followed the instructions from here -


I've tried also installing it via the Broker Manager but when trying to create a new instance again within the Smart Object tester it fails with the exception as shown below.


Can anyone shed any light on what we're missing or if this works with the K2 4.6.11?






Hi Paul,


Have you checked that the DLL is not blocked? Navigate to the folder where the DLL is (ServiceBroker folder), right click and select properties. In the properties window, in the General tab, at the bottom, if you see a button that says "Unblock", then its a blocked DLL. Click the button and try again.


Hope this solves it. Regards,



Thanks Moises, that's exactly what it was!  We're now installed!


Once again many thanks!



Worklist Service Broker for K2 ver 4.7




I wanted to find out if you do not have the updated version of the Worklist Service Broker for K2 Blackpearl v4.7. We upgraded about two weeks ago and our whole sistem went down and our companyi s not able to work at all and our payroll is also messed up now. K2 Support has been trackign the source off the issue we having and we just narrowed it down to the Worklist service broker that is not companbel with the new k2 version 4.7 


Woudl you be abel to assist us with a new version of this Worklist broker

Hi Neville1,


When performing an upgrade of K2 platform it is recommended to plan it properly and test if first on a development or staging environment to validate that the upgrade goes smooth and doesnt cause any collateral issues. In the eventuality of facing issues, support should help you get you system back online and running properly.


However custom made and community components like this Worklist Service Broker are not supported by K2.  We are not responsible to upgrading community components or make them compatible with newer versions of K2.  The source code is avaialble here for download so that our customer, partners and developers can change it and  fix it. You can engage with our Professional Services organization who can help you fix an issue in a custom component. The Worklist Service Broker comes with the source code so it should be easy to debug and fix.


This component is an extension of the K2 platform, therefore the platform should work properly without it. If it causes issues, you should be able to remove it and continue working with the out-of-the-box K2 components. However I understand you might have use this component to build a more complex solution on top of it and this might be causing problems in your payroll system.


Please contact your local sales representative to get further assistance if needed.

 Is this going to work for 4.7?

Yes it will pcorearusa, no change at all.

Can anyone help me how to associate action item for this worklist?

Any idea what this error is about. I get it when i create a view using details worklist.
'=' is an unexpected token. The expected token is ';'. Line 1, position 354.
'=' is an unexpected token. The expected token is ';'. Line 1, position 354.
  • Type:
  • Source:
  • Method Base
    • Member Type:
    • Name:
    • Module
      • Scope Name:
    • Declaring Type
      • Full Name:
  • Stack Trace:

    at System.Xml.XmlTextReaderImpl.Throw(Exception e)

    at System.Xml.XmlTextReaderImpl.HandleEntityReference(Boolean isInAttributeValue, EntityExpandType expandType, Int32& charRefEndPos)

    at System.Xml.XmlTextReaderImpl.ParseText(Int32& startPos, Int32& endPos, Int32& outOrChars)

    at System.Xml.XmlTextReaderImpl.ParseText()

    at System.Xml.XmlTextReaderImpl.ParseElementContent()

    at System.Xml.XPath.XPathDocument.LoadFromReader(XmlReader reader, XmlSpace space)

    at System.Xml.XPath.XPathDocument..ctor(TextReader textReader)

    at SourceCode.SmartObjects.Client.SmartHyperlinkProperty.GetRuntimeData(String value)

Let's be clear there are two seperate issues here. To verify that the Worklist Service broker is functioning correctly you can use the SmartObject Tester Utility to execute any of the service methods.  For example Basic Worklist Item.Get Worklist Items should return a list of tasks if you indeed have any tasks on your work list. Due to the error message you posted I suspect the broker is executing without issue.


It looks to me like your getting a binding error on your view. Most of the time, but not always, the only property that will contain an '=' character is the Link property which is a Hyperlink type.  Hyperlink properties contain a display value in addition to the actual hyperlink itself. 


Could you first attempt to remove this property from the view and try running your view again? Via a process of eliminiation you should be able determine the offending property. Additionally are you passing the property value through any Inline Functions?  

Will this work with 4.7?

As the author and maintainer of this code I can assure you it will.

Could someone help me please?


I'm using the Worklist Service broker v0.5, but when I excecute Load Worklist Item, I dont get anything back.

K2 version 4.6.11

My Login and Service Accounts have Permissions to the Workflow Server Rights "Impersonate"


Authentication Mode: Impersonate

Connection String: Integrated=True;IsPrimaryLogin=False;Authenticate=True;EncryptedPassword=False;Host=K2ServerName;Port=5252

Impersonate Connection String: Integrated=True;IsPrimaryLogin=True;Authenticate=True;EncryptedPassword=True;Host=K2ServerName;Port=5252;WindowsDomain=MyDomain;UserID=SvcAccount;Password=password


Thank you so much!

I am not too familiar with with broker, but usually when specifying the 'UserID' and 'Password' parameter for a connection string, you would want to set 'Integrated=false' so it uses those values instead of Integrated windows authentication.