Skip to content

arccore.filter keys cannot contain period(s) characters #3

Description

@ChrisRus

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).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions