In Wrokflow transform is not supported

In the access request submitted workflow, I am validating the access profile name to Native Identity, but I am receiving the error below.

requestedItem.name: “Sales Admin RGD

nativeIdentity: “CN=test,OU=…,DC=RGD,DC=test,DC=tr”

  • Match: requestedItem.name "RGD " matches nativeIdentity “DC=RGD” continue next in workflow

error

transform: is not supported, supported transforms are: [concatenate substring trim replace getIndex addTime subtractTime formatDate] (type: Unexpected Error, retryable: false):

“Extract Domain From Name”: {

"actionId": "sp:define-variable",

"attributes": {

    "id": "sp:define-variable",

    "variables": \[

        {

            "description": "Extract last word (domain code) from requestedItem name",

            "name": "domainFromName",

            "variableA.$": "$.trigger.requestedItem.name",

            "transforms": \[

                {

                    "id": "sp:transform:lower"

                },

                {

                    "id": "sp:transform:getIndex",

                    "input": {

                        "index": -1,

                        "delimiter": " "

                    }

                }

            \]

        },

        {

            "description": "Build DC= pattern for comparison",

            "name": "dcPattern",

            "variableA": "DC=",

            "transforms": \[

                {

                    "id": "sp:transform:concatenate:string",

                    "input": {

                        "variableB.$": "$.defineVariable.domainFromName"

                    }

                }

            \]

        }

    \]

},

"displayName": "Extract Domain From Name",

"nextStep": "Compare Domain Match",

"type": "Mutation"

}

Hello KR, welcome to the SailPoint Developer Community.
Yes, lower is not a valid Define Variable operator. Also, Get Index returns the position of a substring as an integer, not the substring itself, so it won’t give you RGD out of Sales Admin RGD. For this use case I would keep it simpler & skip parsing the name into another variable. I would use Compare Strings directly:

  • Value 1: $.trigger.requestedItem.name

  • Operator: Ends With

  • Value 2: RGD

Or if you are checking against the DN, use Contains.

I need to dynamically verify the value of `$.trigger.requestedItem.name` against the DN value, rather than hardcoding it.

The value $.trigger.requestedItem.name ends with RGD or something else it need to check DN value.

Hello,

You can Create Variables inside the workflow to store the following.

  1. DN value of the identity from AD
  2. Request Item Name from the Trigger

Then, using String Compare Operator, you can use CONTAINS function to compare.

requestedItem.name: “Sales Admin RGD

nativeIdentity: “CN=test,OU=…,DC=RGD,DC=test,DC=tr”

Create two variables in the workflow, one variable to store the requestedItem Name, now split this variable and store last index in different variable, then another variable to store the nativeIdentity, now compare the last index variable with the nativeIdentity.