Skip to main content
Nintex Community Menu Bar

K2 Five 5.3 behavioral change – SmartObjects stored in normalized tables

  • February 16, 2021
  • 0 replies
  • 64 views
  • Translate

MillaZ
Nintex Employee
Forum|alt.badge.img+21
  • Nintex Employee
  • 671 replies
 

K2 Five 5.3 behavioral change – SmartObjects stored in normalized tables

KB003121

DOWNLOADS
 
PRODUCT
K2 Five 5.3

K2 Five 5.3 stores SmartObject definitions in normalized SQL tables in the K2 database. This improves performance compared to the method used in previous versions of K2 of storing SmartObject definitions, namely in an XML column. The SmartObject definition table in the K2 Five 5.3 database no longer contains a SmartObjectXML column. Keep in mind that all K2 sites and tools that call SmartObject methods always use the latest version of the SmartObject. The only way in which your solutions might be using an earlier version of a SmartObject is by using custom code.

 

When upgrading to K2 Five 5.3, the K2 Setup Manager converts the latest version of all SmartObject definitions into normalized SmartObject definition tables. K2 stores prior, unconverted versions of SmartObjects in a backup table called [SmartBroker].[SmartObjectXmlBackup].

When upgrading from an environment that has many SmartObjects, the upgrade may take a while to complete due to this SmartObject definition conversion.

Targeting prior versions of a SmartObject

If you have existing code that uses the SmartObject Client API to call a prior version of a SmartObject (i.e. not the latest version of that SmartObject), you must convert the SmartObject definition of that prior version for your code to continue to work.

Follow these steps to create a new stored procedure in the K2 database to do the conversion, and then convert the SmartObject using the code below:

    1. Download the SQL script from this page
    2. Execute the script in your K2 database. This creates a stored procedure called [SmartBroker].[ConvertSmartObject]
    3. Use the following code to convert each SmartObject that you use in code that is not the latest version:
DECLARE @SmartObjectGuid UNIQUEIDENTIFIER
DECLARE @Version BIGINT
EXEC [SmartBroker].[ConvertSmartObject] @SmartObjectGuid
       ,@Version

 

Did this topic help you find an answer to your question?

0 replies

Be the first to reply!

Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie Settings