SharePoint SmartObject fails when opening Form, server must be restarted

  • 24 February 2022
  • 0 replies

Userlevel 4
Badge +17

SharePoint SmartObject fails when opening Form, server must be restarted


K2 blackpearl 4.7
K2 smartforms 4.7
K2 blackpearl 4.7
K2 SmartObject Integration
Microsoft SharePoint
This article was created in response to a support issue logged with K2. The content may include typographical errors and may be revised at any time without notice. This article is not considered official documentation for K2 software and is provided "as is" with no warranties.
This article has been archived, and/or refers to legacy products, components or features. The content in this article is offered "as is" and will no longer be updated. Archived content is provided for reference purposes only. This content does not infer that the product, component or feature is supported, or that the product, component or feature will continue to function as described herein.


When opening a Form that contains a SharePoint Integrated SmartObject,  an error appears:

"SmartObject property ID is a required property for selected method GetListItem.Value must be set."


This issue occurs intermittently and can be resolved by restarting the K2 Server. However, the issue will occur again in a couple of days with the same symptoms. 


There aren't many symptoms of this issue besides the error. However, you can confirm that this is your issue if you go to the Database to check if you have any orphaned Workflow Instances


The issue occurs because workflows exist in the ServerLog.ProcInst and Server.ProcInst table but do exist in the Server.Log table

Troubleshooting Steps

1. Confirm that your issue is the orphaned workflows not being moved through the other tables successfully.

Run the following query: 


SELECT DISTINCT [PI].[ExecutingProcID] AS [ExecProcID], [P].[ID] AS [ProcID] FROM [ServerLog].[ProcInst] [PI] WITH (NOLOCK)
FULL JOIN [ServerLog].[Proc] [P] ON [PI].[ExecutingProcID] = [P].[ID]
WHERE [PI].[ID] IN (SELECT [ProcInstID] FROM [Server].[Log]) AND [P].[ID] IS NULL


This query will return ProcInstIDs from the Server.Log table where there is not a corresponding ServerLog.Proc record. This will confirm if there's any orphaned workflows. 


2. Copy the Workflow ProcInstID's that returns from this query. These are the "problem" Workflows. Now you need to run the following query to check if these exist in the Server.ProcInst table:

Run the following query:


SELECT From Server.ProcInst

Where ProcInstID = [Orphaned Process Instance ID]



If these do not return, and these instances are no longer running or are in error, you can go ahead and delete them from the Server.Log table.


3. Delete the instances you found to be orphaned from the Server.Log table.


Delete from Server.Log 

Where ProcInstID = [Orphaned Process Instance ID]



This will delete these instances, test and see if the issue occurs again. 


Please make sure to backup your database before making any changes to the Database or running any of the queries above. 


0 replies

Be the first to reply!