TM01, this is just a guess, but i think you can just use the value of the K2Mng.WorklistItem.ID as if it were the same exact thing as the K2ROM.WorklistItem.SerialNumber
So, take the value from you call K2Manager.RedirectWorklistItem(worklistItem.ID, strDestUser)
and just use that same value in the K2ROM.Connection.OpenWorklistItem(worklistItem.ID, etc. etc.)
i'm mixing my syntax here because you'd need to create a connection object first in K2ROM, it's not a static method, but you probably get the point since you using the API already.
here's what i'm basing my guess on:
if you take a look at the K2 database (and this is on K2.net 2003 sp2a, by the way) you'll find a couple of stored procedures that pretty much mimc the API interface.
CREATE PROCEDURE kWorklistItemRedirect @ProcInstID INT, @EventInstID INT, @User NVARCHAR(128)
CREATE PROCEDURE kWorklistItemOpen @ProcInstID INT, @EventInstID INT, @Platform NVARCHAR(128), @Alloc BIT, @IgnoreStatus BIT
the parameters of these sprocs are so close to the API that i can only assume they match up and that the SerialNumber in K2 is just a ProcInstID and an EventInstID concatenated and split up by the API before making the db call.
that would lead me to believe you can just use the worklistitem.ID as a worklistItem.SerialNumber and get that connection you're looking for.
hope that helps.
The statements and opinions made in my postings are my own, and do not reflect the opinions of SourceCode Technology Holdings, Inc. or its subsidiaries. All information is provided as is with no warranties, express or implied, and grants no rights or licenses.