[OutDoc] Error on GetDocumentation method from EspaceMetaModel extension

[OutDoc] Error on GetDocumentation method from EspaceMetaModel extension

  
Forge Component
(28)
Published on 11 Jun (11 days ago) by OutSystems R&D
28 votes
Published on 11 Jun (11 days ago) by OutSystems R&D

Hi guys, 


When i use the GetDocumentation method to retrieve the XML of an eSpace, I get the following error: 


Message:


Unable to cast object of type 'ServiceStudio.Expressions.ParsedExpression' to type 'System.String'.: Unable to cast object of type 'ServiceStudio.Expressions.ParsedExpression' to type 'System.String'.    at ServiceStudio.Model.PropertyDescriptorPropertyMapper`1.<GetString>b__6(PropertyType obj)
   at ServiceStudio.Model.PropertyDescriptors.PropertyDescriptor`2.GetValue(ObjectType obj)
   at ServiceStudio.Model.PropertyDescriptors.PropertyDescriptor`2.GetValue(IObject obj)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.<>c__DisplayClass5d.<GetReferedAnonymousTypes>b__5a(PropertyDescriptor prop)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Linq.Enumerable.<OfTypeIterator>d__92`1.MoveNext()
   at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
   at System.Collections.Generic.HashSet`1.UnionWith(IEnumerable`1 other)
   at System.Collections.Generic.HashSet`1..ctor(IEnumerable`1 collection, IEqualityComparer`1 comparer)
   at OutSystems.RuntimeCommon.CollectionsExtensions.ToHashSet[T](IEnumerable`1 fromEnumerable)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.GetReferedAnonymousTypes(AbstractObject obj)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.LoadReferencedAnonymousTypes(AbstractObject obj)
   at ServiceStudio.Import.Importer.ImportObject(ObjectKey oldKeyOfCurrentObject, Func`2 sourceAdditionalData, AbstractObjectKind sourceKind, IImportTarget target, IKindConversion conversionToUse, LoadCriticalData loadCriticalData, Action`1 loadCriticalReferences, Action`2 loadChildren, Boolean isRootOfImport)
   at ServiceStudio.Import.Importer.ImportObject(ObjectKey oldKeyOfCurrentObject, Func`2 sourceAdditionalData, AbstractObjectKind sourceKind, IImportTarget target, LoadCriticalData loadCriticalData, Action`1 loadCriticalReferences, Action`2 loadChildren)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.<>c__DisplayClass58.<LoadChildren>b__52()
   a...



Stack:

Unable to cast object of type 'ServiceStudio.Expressions.ParsedExpression' to type 'System.String'.: Unable to cast object of type 'ServiceStudio.Expressions.ParsedExpression' to type 'System.String'.    at ServiceStudio.Model.PropertyDescriptorPropertyMapper`1.<GetString>b__6(PropertyType obj)
   at ServiceStudio.Model.PropertyDescriptors.PropertyDescriptor`2.GetValue(ObjectType obj)
   at ServiceStudio.Model.PropertyDescriptors.PropertyDescriptor`2.GetValue(IObject obj)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.<>c__DisplayClass5d.<GetReferedAnonymousTypes>b__5a(PropertyDescriptor prop)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Linq.Enumerable.<OfTypeIterator>d__92`1.MoveNext()
   at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
   at System.Collections.Generic.HashSet`1.UnionWith(IEnumerable`1 other)
   at System.Collections.Generic.HashSet`1..ctor(IEnumerable`1 collection, IEqualityComparer`1 comparer)
   at OutSystems.RuntimeCommon.CollectionsExtensions.ToHashSet[T](IEnumerable`1 fromEnumerable)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.GetReferedAnonymousTypes(AbstractObject obj)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.LoadReferencedAnonymousTypes(AbstractObject obj)
   at ServiceStudio.Import.Importer.ImportObject(ObjectKey oldKeyOfCurrentObject, Func`2 sourceAdditionalData, AbstractObjectKind sourceKind, IImportTarget target, IKindConversion conversionToUse, LoadCriticalData loadCriticalData, Action`1 loadCriticalReferences, Action`2 loadChildren, Boolean isRootOfImport)
   at ServiceStudio.Import.Importer.ImportObject(ObjectKey oldKeyOfCurrentObject, Func`2 sourceAdditionalData, AbstractObjectKind sourceKind, IImportTarget target, LoadCriticalData loadCriticalData, Action`1 loadCriticalReferences, Action`2 loadChildren)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.<>c__DisplayClass58.<LoadChildren>b__52()
   at ServiceStudio.Import.Importer.SafeExecuteInOtherTargetCollection(CollectionIndex collectionIndex, Func`1 action)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.LoadChildren(IKindConversion conversionToUse, AbstractObject obj)
   at ServiceStudio.Import.Importer.ImportObject(ObjectKey oldKeyOfCurrentObject, Func`2 sourceAdditionalData, AbstractObjectKind sourceKind, IImportTarget target, IKindConversion conversionToUse, LoadCriticalData loadCriticalData, Action`1 loadCriticalReferences, Action`2 loadChildren, Boolean isRootOfImport)
   at ServiceStudio.Import.Importer.ImportObject(ObjectKey oldKeyOfCurrentObject, Func`2 sourceAdditionalData, AbstractObjectKind sourceKind, IImportTarget target, LoadCriticalData loadCriticalData, Action`1 loadCriticalReferences, Action`2 loadChildren)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.<>c__DisplayClass58.<LoadChildren>b__52()
   at ServiceStudio.Import.Importer.SafeExecuteInOtherTargetCollection(CollectionIndex collectionIndex, Func`1 action)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.LoadChildren(IKindConversion conversionToUse, AbstractObject obj)
   at ServiceStudio.Import.Importer.ImportObject(ObjectKey oldKeyOfCurrentObject, Func`2 sourceAdditionalData, AbstractObjectKind sourceKind, IImportTarget target, IKindConversion conversionToUse, LoadCriticalData loadCriticalData, Action`1 loadCriticalReferences, Action`2 loadChildren, Boolean isRootOfImport)
   at ServiceStudio.Import.Importer.ImportObject(ObjectKey oldKeyOfCurrentObject, Func`2 sourceAdditionalData, AbstractObjectKind sourceKind, IImportTarget target, LoadCriticalData loadCriticalData, Action`1 loadCriticalReferences, Action`2 loadChildren)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.<>c__DisplayClass58.<LoadChildren>b__52()
   at ServiceStudio.Import.Importer.SafeExecuteInOtherTargetCollection(CollectionIndex collectionIndex, Func`1 action)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.LoadChildren(IKindConversion conversionToUse, AbstractObject obj)
   at ServiceStudio.Import.Importer.ImportObject(ObjectKey oldKeyOfCurrentObject, Func`2 sourceAdditionalData, AbstractObjectKind sourceKind, IImportTarget target, IKindConversion conversionToUse, LoadCriticalData loadCriticalData, Action`1 loadCriticalReferences, Action`2 loadChildren, Boolean isRootOfImport)
   at ServiceStudio.Import.Importer.ImportObject(ObjectKey oldKeyOfCurrentObject, Func`2 sourceAdditionalData, AbstractObjectKind sourceKind, IImportTarget target, LoadCriticalData loadCriticalData, Action`1 loadCriticalReferences, Action`2 loadChildren)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.<>c__DisplayClass58.<LoadChildren>b__52()
   at ServiceStudio.Import.Importer.SafeExecuteInOtherTargetCollection(CollectionIndex collectionIndex, Func`1 action)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.LoadChildren(IKindConversion conversionToUse, AbstractObject obj)
   at ServiceStudio.Import.Importer.ImportObject(ObjectKey oldKeyOfCurrentObject, Func`2 sourceAdditionalData, AbstractObjectKind sourceKind, IImportTarget target, IKindConversion conversionToUse, LoadCriticalData loadCriticalData, Action`1 loadCriticalReferences, Action`2 loadChildren, Boolean isRootOfImport)
   at ServiceStudio.Import.Importer.ImportInitialObject(ObjectKey oldKeyOfCurrentObject, Func`2 sourceAdditionalData, AbstractObjectKind sourceKind, IImportTarget target, IKindConversion conversionToUse, LoadCriticalData loadCriticalData, Action`1 loadCriticalReferences, Action`2 loadChildren)
   at ServiceStudio.Clone.ObjectCloner.FirstPassDeserializer.Execute(IKindConversion conversionToUse, AbstractObject objBeingCloned, IImportTarget targetParent, SecondPassDeserializer secondPassDeserializer)
   at ServiceStudio.Clone.ObjectCloner.InnerCloneObject(AbstractObject source, IImportTarget newParent, IKindConversion conversionToUse, Stack`1 pendingClones, IDictionary`2 extraAdditionalDatas)
   at ServiceStudio.Clone.ObjectCloner.CloneObject(AbstractObject source, IImportTarget newParent, IKindConversion conversionToUse, IEnumerable`1 extraAdditionalDatas)
   at ServiceStudio.Import.ImportExtensions.InnerCreateTopLevelReferenceElement(AbstractObject originallyReferedObject, ESpace targetESpace, Nullable`1 hiddenStatus)
   at ServiceStudio.Import.ImportExtensions.CreateTopLevelReferenceElement(ITopLevelReferenceableElement topLevelReferenceableElement, ESpace targetESpace, Nullable`1 hiddenStatus)
   at ServiceStudio.Model.ESpace.SignatureManager.GenerateElementSignature(ITopLevelReferenceableElement topLevelReferenceableElement)
   at ServiceStudio.Model.ESpace.SignatureManager.UpdateSignature(CompoundKey compoundKey, ITopLevelReferenceableElement topLevelReferenceableElement)
   at ServiceStudio.Model.ESpace.SignatureManager.UpdateSignatures()
   at ServiceStudio.Model.ESpace.UpdateSignatures()
   at ServiceStudio.Model.ESpace.Load(Stream stream, String initialLastSavePath, Boolean isUnregisteredESpace, Boolean readOnlyMode, Boolean recoverMode, ObjectKey newKeyForClone, String productKey, Nullable`1 forceModifiedFlag, IInformationForESpaceUpgrade informationForUpgrader)
   at ServiceStudio.Model.ESpace.Load(Byte[] bytes, String initialLastSavePath, String productKey, Nullable`1 forceModifiedFlag, IInformationForESpaceUpgrade informationForUpgrader)
   at ServiceStudio.Model.ESpace.Load(Byte[] bytes, String productKey, IInformationForESpaceUpgrade informationForUpgrader)
   at OutSystems.NssEspaceMetaModel.EspaceMetaModelWorker.MssGetDocumentation(Byte[] ssOml, String& ssXml, String& ssErrorsXml)
   at ssOutDoc.RssExtensionEspaceMetaModel.MssGetDocumentation(HeContext heContext, Byte[] inParamOml, String& outParamXml)
   at ssOutDoc.Actions.ActionGetXML(HeContext heContext, Byte[] inParamFileContent, String& outParamXmlContent)
   at ssOutDoc.Actions.ActionDocumentation_GenerateEspaceDocumentation(HeContext heContext, Int32 inParameSpaceVersionId, String& outParamxml, String& outParamerror)


This only happens with some eSpaces. 

Additional information: I've recently upgraded service studio's version to: 10.0.707.0

Any insight on this?


Thanks in advance,

João Carvalho

Exactly same problem here.... Can't figure out what is wrong.

Same issue here. The GetDocumentation method in extension EspaceMetaModel throws that error on some eSpaces.

We have/ had the same issue here.

The error only occurs when specific eSpaces are published with Service Studio version 10.0.707.0 or later.
The root cause is not found yet.

For that reason, as a temporary workaround, the suggestion is to use ServiceStudio version 10.0.704.0 or below to (re)publish the espaces triggering this issue with OutDoc.

Same problem here, and we are all going to new version. 

When will there be a patch?


Same problem here.

I have 20+ eSpaces and extensions in the application I'm documenting, only one of them is generating this error. 

Also, I'm using v10.0.705.0


I also have that problem in one eSpace.


I found that the problem in one WebBlock was two label widgets being used outside a form.

In another webblock, i had a form with only expressions, no inputs, so i removed the form, and the problem got fixed.

¯\_(?)_/¯ 

Solution

A new version of OutDoc that should solve the reported problem has just been published.

Please try it out and let us know if the problem persists.


Thanks!

Solution

OutSystems R&D wrote:

A new version of OutDoc that should solve the reported problem has just been published.

Please try it out and let us know if the problem persists.


Thanks!

Worked for me! 


Thanks!