As an update, I've made SOME progress. I can get the individual ExternalReference objects to synchronize correctly individually, when they are added, updated and delete, but I'm still unable to to get them to synchronize completely when I synchronize the parent document/page. I've also added them to the Objects synchronization tree, but when I do a complete synchronization there, it only updates and inserts -- it doesn't remove non-existing objects from the destination server.
public static ObjectTypeInfo TYPEINFO = new ObjectTypeInfo(typeof(ExternalReferenceInfoProvider), OBJECT_TYPE, "My.ExternalReference", "ExternalReferenceID", null, null, "ExternalReferenceName", "ExternalReferenceName", null, null, "DocumentID", "cms.document")
{
ModuleName = "My.Module",
TouchCacheDependencies = true,
IncludeToSynchronizationParentDataSet = IncludeToParentEnum.Complete,
LogSynchronization = SynchronizationTypeEnum.LogSynchronization,
IncludeToVersionParentDataSet = true,
SupportsVersioning = false,
AllowTouchParent = false,
LogEvents = true,
ImportExportSettings =
{
IncludeToExportParentDataSet = IncludeToParentEnum.Complete,
LogExport = false,
},
SynchronizationObjectTreeLocations = new List<ObjectTreeLocation>()
{
new ObjectTreeLocation(new string[2]
{
"##SITE##",
"##CONTENTMANAGEMENT##"
}),
}
};
Without setting the AllowTouchParent
to false, I get an error whenever I try to add a new ExternalReference: "[DocumentHelper.CheckParameters]: Missing document parent node." I have no clue what this means.