Symptoms
When attempting to add an item to a list view and/or edit an item already present the following error was thrown:
Error Heading : SmartObject property ListName is a required property for selected method Create. Value must be set.
Details of an error : ?Type: System.NullReferenceException
?Source: SourceCode.SmartObjects.Client
?Method Base
?Member Type: Method
?Name: Validate
?Module
?Scope Name: SourceCode.SmartObjects.Client.dll
?Declaring Type
?Full Name: SourceCode.SmartObjects.Client.SmartObject
?Stack Trace:
at SourceCode.SmartObjects.Client.SmartObject.Validate(Boolean isList)
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
The root cause here was a ultimately an issue in the order of operations. Imagine two views A and B in this scenario view B was setting its parameters (which were used to execute the Create method) based upon values obtain from view A. The views A and B were initializing asynchronously and so because view A had yet to initialize view B could not obtain the needed parametrical values for itself.
Resolution
Switching the execution sequence from asynchronous to synchronous (one after the other) resolved this issue.