Symptoms
When you deploy a list (setup as describe below), it goes through the entire wizard and then fails while it is deploying with the following error:
The following errors were encountered: Reference Missing: The 'Lists_Commitments_Instance' has a reference to 'Schedule/Sections (Schedule_x002f_Sections)' which could not be found.
Reference Missing: The 'Lists_Commitments_Instance' has a reference to 'Schedule/Sections (Schedule_x002f_Sections)' which could not be found.
Reference Missing: The 'Lists_Commitments_Instance' has a reference to 'Schedule/Sections (Schedule_x002f_Sections)' which could not be found.
Reference Missing: The 'Lists_Commitments_Instance' has a reference to 'Schedule/Sections (Schedule_x002f_Sections)' which could not be found.
Reference Missing: The 'Lists_Commitments_Instance' has a reference to 'Schedule/Sections (Value) (Schedule_x002f_Sections_Value)' which could not be found.
Reference Missing: The 'Lists_Commitments_Instance' has a reference to 'Schedule/Sections (Value) (Schedule_x002f_Sections_Value)' which could not be found.
Reference Missing: The 'Lists_Commitments_Instance' has a reference to 'Schedule/Sections (Value) (Schedule_x002f_Sections_Value)' which could not be found.
Reference Missing: The 'Lists_Commitments_Instance' has a reference to 'Schedule/Sections (Value) (Schedule_x002f_Sections_Value)' which could not be found.
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
Stack Trace:
at SourceCode.SmartObjects.Client.SmartObjectClientServer.GetSmartObjectReader(SmartObject smartObject, ExecuteListReaderOptions options, Dictionary`2and propertyReference)
at SourceCode.SmartObjects.Client.SmartObjectClientServer.ExecuteListReader(SmartObject smartObject, ExecuteListReaderOptions options)
at SourceCode.Forms.AppFramework.FormsApiToXml.GetSmartObjectReader(ExecuteListReaderOptions options)
at SourceCode.Forms.AppFramework.FormsApiToXml.ToXmlList()
at SourceCode.Forms.AppFramework.FormRuntime.SmartObjectExecution(XPathNavigator nav, Boolean outputDependencies, SmartObjectClientServer svr)
at SourceCode.Forms.AppFramework.FormRuntime.WorkXmlToApi(String xml)
at SourceCode.Forms.Runtime.AJAXCall.ProcessRequest(HttpContext context)
Diagnoses
Two lists with K2 for SharePoint solutions.
Commitments is the parent, Commitment Instance is the child.
Commitments:
Contains a column bound to managed metadata, to a term set stored on the Site Collection level.
use the K2 forms for it and also built a K2 workflow on this list.
This workflow will call the "Create list item" method of the Commitment Instances list to create a new instance.
Commitment Instance:
Contains a column bound to managed metadata, to a term set stored on the Site Collection level (same as the one for Commitments)
This list also contains a lookup column to Commitments, looking up the value on the ID column.
This list also uses K2 forms and there is a K2 workflow which reference only items from the commitment instances list.
Since the workflow on Commitments references commitments instances, it includes commitments instances artefacts when generating a package for commitments.
Since Commitments Instances references Commitments through the lookup column, it includes the Commitments artefacts when generating a package for Commitments Instances.
Trying to deploy the commitments and commitment instances artefacts to a different site collection, on the same farm.
We have created the list structures on the destination site collection.
The only difference is that the term set on the destination site collection is referencing its own term set (different GUID) (Uses the Same Term Store ID, but the Term Set IDs are different).
This causes problems when deploying either commitments or commitment instances.
When trying to deploy the Commitments Instance package the validations fail before even getting to the deploy button because it cannot find the Managed Metadata configuration for the destination Site Collection (See attached Picture - Commitment Instances Error).
We believe these errors are happening because the deployment cannot change the managed metadata columns for the related lists.
Resolution
Turned out to have nothing to do with managed metadata, but simply that the column name on the target site did not match the smartobject property name in the package.
The PandD UI shows the problem clearly and exactly.
(Column in package: Schedule/Section – Column on list: Schedule/Sections).
After the client renamed the SharePoint list column, everything worked as expected and they were finally able to deploy the commitments list
You have 3 days to accept or reject this resolution. If you feel the issue is not resolved, please reject this resolution.