Great!
There, a version with multidimensional array support until 4 subscripts level :
ClassMethod GetPrivateProp( oref, propName, ByRef result As %Binary) As %String{ Do ##class(%Studio.General).DumpObjectExecute(.arr,.oref) Set key = $o(arr(propName),1,value), @propName = arr(propName)
For {
Quit:(key="")||($Qs(key,0)'=propName)
Set subscriptLevel = $Ql(key)
If subscriptLevel=1 {
Set @propName@($Qs(key,1))=value
}ElseIf subscriptLevel=2 {
Set @propName@($Qs(key,1),$Qs(key,2))=value
}ElseIf subscriptLevel=3 {
Set @propName@($Qs(key,1),$Qs(key,2),$Qs(key,3))=value
}ElseIf subscriptLevel=4 {
Set @propName@($Qs(key,1),$Qs(key,2),$Qs(key,3),$Qs(key,4))=value
}
Set key = $o(arr(key),1,value) } Merge result=@propName Kill @propName
Quit:$Quit arr(propName) Quit}- Log in to post comments
