Symptoms
K2 for SharePoint SmO error when filtering by DateTime values:
Microsoft.SharePoint.Client.ServerException: Exception from HRESULT: 0x80131904
Sample reproduction steps:
1. You have SmartObjects based on SP Lists with fields of type DateTime
2. You created ListView based on this SmO
3. You set filtering enabled for this View in Runtime Options
4. From toolbar in Quick Search you chose proper field (with type of DateTime)
5. You input correct date value e.g. 6/19/2015
6. You receiving an error:
Exception from HRESULT: 0x80131904
•Type: SourceCode.SmartObjects.Client.SmartObjectException
•Source: SourceCode.SmartObjects.Client
•Method Base
?Member Type: Method
?Name: GetSmartObjectReader
?Module
?Scope Name: SourceCode.SmartObjects.Client.dll
?Declaring Type
?Full Name: SourceCode.SmartObjects.Client.SmartObjectClientServer
Diagnoses
This is known issue with K2 for SharePoint (TFS 568900) when you receive HRESULT Error when filtering on DateTime values of SharePoint SmartObject". Issue exists in all K2 versions up to 4.6.11.
Coldfixes for this issue available for K2 4.6.9 and 4.6.11 via request to K2 support.
Extra considerations/details on the behavior of filtering with coldfix applied:
- The impartial date is a unsupported filter and we only support full date for filtering of date.
- You may see "The string was not recognized as a valid "DateTime" error when you perform filtering on all fields. This is expected behavior on the forms where there are some columns which are decimal columns, yes/no columns or any others which can not be filtered with date as a filter input. Best practice would be to filter on the field that is needed to avoid SharePoint returning errors for invalid values supplied.
Resolution
Please contact K2 support to obtain coldfix for this issue. As a workaround you may try to use filter:
In Tester Tool: When executing the SmartObject you will notice a Filter Section on the Right Hand side.
Click on "SET"
First Drop Down "Your DateTime Column"
Second Dropdown ""
Third Dropdown "Equals"
Right Property Value "6/19/2015" (proper date value)
Click on "Add"
Click on "Ok"
Execute