I noticed an interesting (and potentially exceptionally confusing) error string back from filter recently.
{
____types: "jsObject",
____asMap: true,
key: {
____types: "jsObject",
required: {
____accept: "jsString"
}
}
}
Now suppose I create an object that looks like this:
{
"~.this.is.a.path.into.cds.instance.data.used.as.a.key": { /* whoops */ )
}
missing ~.this.is.a.path.into.cds.instance.data.used.as.a.key.required
<--- wat
What to do about this? n JavaScript we can write:
let x = {};
x["~.whatever.i.want"] = 5
RAP: [ "whatever.i.want" ]
RIS: "~.[whatever.i.want]"
I'm not sure. I've got a whole system all worked out for ARC RIS and RAP --- I just can't recall the exact details.
In the short term I think it's prudent to **advise against ** using map/dictionary keys that contain period (.) character(s). arccore.identifier.irut.fromReference
(or alternative) function is available to quickly hash strings that may contain forbidden characters.
Leaving this open in case anyone hits this case. DO NOT USE period characters in keys; if you have to deal with keys that do or may contain periods, convert them to IRUT digest hash strings (or use some other appropriate mechanism to remove the periods).