Forum Discussion

Mark_van_D's avatar
Mark_van_D
Icon for Cirrostratus rankCirrostratus
Sep 02, 2019

APM session attribute exists

Hi there, I am trying to find an elegant way for an Access Policy to go down a different branch depending on whether multiple AD attributes exists or not, but am not having much luck at present. ...
  • Andy_McGrath's avatar
    Sep 02, 2019

    You are using 'info exists' and 'mcget' incorrectly.

    'mcget' will return the value of the APM session variable, so if the session variable for 'session.ad.last.attr.mobile' is 555-1234 you are passing this to 'info exists'. i.e. you are executing 'info exits 555-1234' but guessing no variable exists named 555-1234 (or what ever the value is)

    I think if you call 'mcget' on a session variable that doesn't exist I think you get "" returned, so the following should do what you want (not tested as no quick access to APM currently):

    if {[mcget {session.ad.last.attr.mobile}] == ""} {
        set ad_attribute1_exists 0
    } else {
        set ad_attribute1_exists 1
    }
    if {[mcget {session.ad.last.attr.pager}] == ""} {
        set ad_attribute2_exists 0
    } else {
        set ad_attribute2_exists 1
    }
    expr { $ad_attribute1_exists == 1 && $ad_attribute2_exists == 1}

    Or as a one liner:

    expr { [mcget {session.ad.last.attr.mobile}] != "" && [mcget {session.ad.last.attr.pager}] != ""}