This discussion has been locked. The information referenced herein may be inaccurate due to age, software updates, or external references.
You can no longer post new replies to this discussion. If you have a similar question you can start a new discussion in this forum.

How do I get the Alert Acknowledge URL inside an SQL Query?

I have an SQL Query which filters alerts on a widget. I would like this widget to also have a column with Alert URLs. How would I go about getting that URL?

SELECT
    o.AlertConfigurations.Name AS [ALERT NAME]
    ,'/Orion/NetPerfMon/ActiveAlertDetails.aspx?NetObject=AAT:' + ToString(o.AlertObjectID) AS [_LinkFor_ALERT NAME]
    ,CASE
    WHEN o.AlertConfigurations.Severity = 2 THEN '/Orion/images/ActiveAlerts/Critical.png'
    WHEN o.AlertConfigurations.Severity = 3 THEN '/Orion/images/ActiveAlerts/Serious.png'
    WHEN o.AlertConfigurations.Severity = 1 THEN '/Orion/images/ActiveAlerts/Warning.png'
    WHEN o.AlertConfigurations.Severity = 0 THEN '/Orion/images/ActiveAlerts/InformationalAlert.png'
    WHEN o.AlertConfigurations.Severity = 4 THEN '/Orion/images/ActiveAlerts/Notice.png'
    END AS [_iconfor_ALERT NAME]
    ,o.EntityCaption AS [ALERT OBJECT]
    ,o.EntityDetailsURL AS [_LinkFor_ALERT OBJECT]
    ,o.RelatedNodeCaption as [RELATED NODE]
    ,o.RelatedNodeDetailsURL AS [_LinkFor_RELATED NODE]
    ,ToLocal(o.AlertActive.TriggeredDateTime) AS [ALERT TRIGGER TIME]
    ,'/Orion/images/StatusIcons/Small-' + p.StatusIcon AS [_IconFor_RELATED NODE]
    ,CASE
    when minutediff(o.AlertActive.TriggeredDateTime,GETUTCDATE())>1440 then (tostring(round(minutediff(o.AlertActive.TriggeredDateTime,GETUTCDATE())/1440.0,1)) + ' Days')
    when minutediff(o.AlertActive.TriggeredDateTime,GETUTCDATE())>60 then (tostring(round(minutediff(o.AlertActive.TriggeredDateTime,GETUTCDATE())/60.0,1)) + ' Hours')
    else (tostring(minutediff(o.AlertActive.TriggeredDateTime,GETUTCDATE())) + ' Minutes')
    end as [Time Active]
    ,aa.AcknowledgedBy
    ,ah.Message as [Note]
    --,${AcknowledgeURL} as "Click to ACK"

From
    Orion.AlertActive aa
    join Orion.AlertObjects o on aa.alertobjectid=o.alertobjectid
    LEFT join Orion.Nodes p on p.nodeid=relatednodeid
    left join orion.alerthistory ah on ah.AlertActiveID=aa.AlertActiveID and ah.EventType in (2,3)
    left join Orion.AlertConfigurations c on o.alertID = c.AlertID

WHERE
    c.Severity > 0 AND
    o.RealEntityType NOT LIKE 'Orion.VIM%'
    --AND aa.Acknowledged IS NULL
   
ORDER by
    aa.Acknowledged,
    o.AlertActive.TriggeredDateTime DESC