Symptoms
We are seeing that on a smartform designed to create a new list item on submitting the form, the creation of the item will fail and we will get a blank error with the following stack trace:
?Type: SourceCode.SmartObjects.Client.SmartObjectException
?Source: SourceCode.SmartObjects.Client
?Method Base
?Member Type: Method
?Name: ExecuteScalar
?Module
?Scope Name: SourceCode.SmartObjects.Client.dll
?Declaring Type
?Full Name: SourceCode.SmartObjects.Client.SmartObjectClientServer
?Stack Trace:
at SourceCode.SmartObjects.Client.SmartObjectClientServer.ExecuteScalar(SmartObject smartObject, DataTable inputTable)
at SourceCode.Forms.AppFramework.FormRuntime.SmartObjectExecution(BrokerSmartObject brokerSmo, SmartObjectBrokerMetaData brokerMetaData, Boolean outputDependencies, SmartObjectClientServer smoClientServer, Queue`1 soInstances)
at SourceCode.Forms.AppFramework.FormRuntime.WorkXmlToApi(BrokerPackageCollection packages, SmartObjectClientServer smoClientServer)
at SourceCode.Forms.AppFramework.FormRuntime.WorkXmlToApi(Stream input, Stream output)
at SourceCode.Forms.Runtime.AJAXCall.ProcessRequestInternal(HttpContext context)
Diagnoses
This is a known issue with Appit 1.5 and there is a fix for the issue. This revolves around passing scnull into a checkbox, our smartobject broker does not handle this properly as this changed from 1.4.
Resolution
A fix for this issue was included with Update 1 to Appit 1.5 This update was applied to customer's Dev environment last week.
We can work around this issue by changing the configuration for the create method on the submit button. We should make sure that in our input and output mappings we are not passing in a value to the smartobject that could be null. For example if the control did not get a value on the form and we passed in the control value it is going to cause this error. We can remove this value that would be passing null and then check this view in. After that we can safely submit this form as it is designed.