Skip to main content

I'm currently building a test workflow project using K2 4.5 for Visual Studio 2010.  I'm running into a problem, in which there exists two users with the same username -- 'jsmith' -- one user in AD (Active Directory), another in the K2Users table in K2SQLUM.  When I attempt to set the destination user to jsmith in K2Users table, the notification is sent to the jsmith user in AD.  I've set the connection string as follows:


"Integrated=False;IsPrimaryLogin=True;Authenticate=True;EncryptedPassword=False;Host=localhost;Port=5252;SecurityLabelName=K2SQL;UserID=susername];Password=spassword];"


And I've verified that the destination user is the correct user (K2SQL:jsmith, and not dDOMAIN NAME]jsmith).  If I set the destination user to any other user in the K2Users table -- a user whose username does not exist in AD -- the notification works correctly, meaning that it gets sent to that person.  The problem seems to be when there is a user whose username exists in both AD and the K2Users table.  In this case --even when I specify K2SQL for the security label --  K2 is sending the notification to the user in AD, not to the user in K2SQL.  Is there anything else I need to do, in addition to specifiying the security label?


Regards,


Craig


 

This sounds like either a misconfiguration or a bug.
I'd try the following test:
Using the SmartObject Service Tester, execute the UMUser SmartObject. Select the Get User Details method, and provide the user's FQN (K2SQL:jsmith) as input. See which email address is returned by the SmartObject. If it's right, then K2 is using the wrong security provider to get the email address. If it's wrong, then maybe the SQLUM database has the wrong value.


If the SmartObject is pulling the right information, I'd open a support ticket.


HTH,


Gail


Thanks, Gail.  I think I must have done something wrong somewhere, because now the notification process works as it should.


But now I'm running into another strange issue.  I updated an email address in the K2Users table, in the K2SQLUM schema, using a very simple UPDATE K2SQLUsers set... statement.  I've verified that the record that was updated has the new address.  However, when I execute the UMUser SmartObject, passing the user's FQN, the email address returned by the SmartObject is the old address, not the new one.  The database has the right value.  This sounds like a bug to me,.


Craig,


This behavior will be different based on what version you are running. If KB1370+, the SmartObjects are no longer the "Source of Authority". Instead, the Identity Service resolves users, groups, etc., and stores it in a cache in the database.


So, first I'll need to know which update you are using.


If 1370+, we can talk about the timer values on the Identity Service, and how they can impact changes like this.


HTH,
Gail


 


I know that we K2 blackpearl 4.5, but I don't know which KB.  How do I find out which KB I have?


On a machine with K2 components installed (server or development client):
Windows XP, Windows Server 2003:
1. Open Control Panel
2. Open Add/Remove Programs
3. Select the Show Updates checkbox


Windows 7, Windows Server 2008:
1. Open Control Panel
2. Open Programs and Features
3. Select the View installed updates


K2 components will include the KB number for the installed update (such as KB001420)


HTH,
Gail


Got it.  We have KB001370.


After reviewing this link -- http://www.k2underground.com/blogs/johnny/archive/2011/10/03/working-with-the-identity-service-caching-mechanism.aspx -- I was able to figure out why the the old email address was being pulled.  If I set the user's ExpireOn value to a past date, then the new email address is returned.


Thanks again for your help.


Reply