I'd mimic %DispatchSetMultidimProperty signature. Shame local cannot be casted into a multi-argument call. Wrap in $g if values can be skipped.
/// do ##class().Test()
ClassMethod Test()
{
kill ^data
do ..setValue("val", "key1")
do ..setValue("val", "key1", "key2", "key3", "key4")
zw ^data
}
ClassMethod setValue(val, args...)
{
if args=1 {
set ^data(args(1)) = val
} elseif args=2 {
set ^data(args(1), args(2)) = val
} elseif args=3 {
set ^data(args(1), args(2), args(3)) = val
} elseif args=4 {
set ^data(args(1), args(2), args(3), args(4)) = val
}
}- Log in to post comments
.png)