Eliminate 'Case-Sensitivity' on HPSM Approval Records

I have a situation where an approval record is generated with all lowercase letters in the userid.  But, when the actual user gets logged in, they may have the user ID either in Caps or partial mix of capital and lowercase letters.  Is there any way to have Service Manager ignore the case sensitivity in the userID's

  • Hello Jtonn,

    hope you are doing fine.

    According to your description I believe on Service Manager is not possible to ignore the case sensitivity, this only applies for BD oracle when is needed,

    "Case insensitivity applies to the data, not the field names."

    The fields always have a default value on this cases.


  • Verified Answer

    Actually, the issue he's describing is not the case on a field; it has to do with the intersect rtecall and the index() function.

    There's a documented enhancement request for this (not sure of the number off the top of my head) but the issue is in the 'approval.init' RAD application, the rtecall("intersect") function:

    $L.void=rtecall("intersect", $L.err, $L.approval.intersect, $L.groups, current.pending.groups in $L.approval future.groups in $L.approval)

    So, the undocumented rtecall("intersect") is supposed to take a set of arrays and compare the results of those arrays.  In the RAD function, the first parameter, $L.err, is for any error code from the rtecall.  The second parameter ($L.approval.intersect) is an array that, after the function runs, will return a list containing the entries that are in both of the remaining parameters - $L.groups (the change groups this person can approve for and the operator() function) and the joined current.pending.groups and future.groups in this particular approval record.

    You can try it out yourself using the RAD debugger with the following:

    x $L.arrayOne = {tolower(operator())}
    x $L.arrayTwo = {tolower(operator())}   $lo.pm.assignments
    x $L.void=rtecall("intersect", $L.rc, $L.retVal, $L.arrayOne, $L.arrayTwo)

    After running that, the value of $L.retVal should be the same as {tolower(operator())}

    But, if you change it and try the following:

    x $L.arrayOne = {toupper(operator())}
    x $L.arrayTwo = {tolower(operator())}   $lo.pm.assignments
    x $L.void=rtecall("intersect", $L.rc, $L.retVal, $L.arrayOne, $L.arrayTwo)

    The value of $L.retVal will be {}, because the intersect function is case sensitive.

    The index() function has the same problem.  Using the RAD Debugger, try:

    x $L.array = {toupper(operator())}
    d index(tolower(operator()), $L.array)

    Right now, as I said, there's an enhancement request, but as of 9.3x, this hasn't been resolved.  I don't know about 9.4x and 9.5x