Skip to content
DataMiner Dojo

More results...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in posts
Search in pages
Search in posts
Search in pages
Log in
Menu
  • Updates & Insights
  • Questions
  • Learning
    • E-learning Courses
    • Tutorials
    • Open Classroom Training
    • Certification
      • DataMiner Fundamentals
      • DataMiner Configurator
      • DataMiner Automation
      • Scripts & Connectors Developer: HTTP Basics
      • Scripts & Connectors Developer: SNMP Basics
      • Visual Overview – Level 1
      • Verify a certificate
    • YouTube Videos
    • Solutions & Use Cases
      • Solutions
      • Use Case Library
    • Agility
      • Learn more about Agile
        • Agile Webspace
        • Everything Agile
          • The Agile Manifesto
          • Best Practices
          • Retro Recipes
        • Methodologies
          • The Scrum Framework
          • Kanban
          • Extreme Programming
        • Roles
          • The Product Owner
          • The Agile Coach
          • The Quality & UX Coach (QX)
      • Book your Agile Fundamentals training
      • Book your Kanban workshop
    • >> Go to DataMiner Docs
  • DevOps
    • About the DevOps Program
    • Sign up for the DevOps Program
    • DataMiner DevOps Support
    • Feature Suggestions
  • Downloads
  • Swag Shop
  • PARTNERS
    • Business Partners
    • Technology Partners
  • Contact
    • Sales, Training & Certification
    • DataMiner Support
    • Global Feedback Survey
  • >> Go to dataminer.services

How can I mask a specific table row alarm in DataMiner?

257 views3rd May 2026
2
Deema Mahmud [DevOps Advocate]286 30th April 2026 0 Comments

I’m trying to automatically mask only one specific table row alarm during a fixed time window and would appreciate guidance on the correct implementation.

Scenario:

  • I have an element with a table where each row represents a source/channel.
  • One table column, for example Administrative Status, generates an alarm when it goes Down.
  • I only want to mask the alarm for one specific row, identified by its table index/display key.
  • I do not want to mask the full element, table, or parameter.
  • The masking should only apply during a fixed window, for example 1:00 PM to 2:00 PM.

How should I configure the Correlation rule so that it triggers an Automation script, and how do I link the script to the rule?

Inside the Automation script, how can I retrieve the triggering alarm’s table index / display key?

Once the correct table row/value is identified, what is the correct method to mask only that specific alarm instance, without masking the full element, table, or parameter?

Deema Mahmud [DevOps Advocate] Answered question 3rd May 2026

2 Answers

  • Active
  • Voted
  • Newest
  • Oldest
1
Miguel Obregon [SLC] [DevOps Catalyst]22.97K Posted 30th April 2026 0 Comments

Hi Deema,

To pass information from the alarm that triggered the correlation rule to an automation script, you can follow the process described in DataMiner Docs: How do I parse Correlation Alarm Info Data.

To mask an alarm, you could use the code available in the following example: https://github.com/SkylineCommunications/SLC-AS-MaskServiceAlarms/blob/main/MaskServiceAlarms_1/MaskServiceAlarms_1.cs

See method AlarmAction.

Hope it helps.

Miguel Obregon [SLC] [DevOps Catalyst] Answered question 30th April 2026
0
Deema Mahmud [DevOps Advocate]286 Posted 3rd May 2026 1 Comment

I keep getting this error. I am not sure what I am doing wrong.

The following was returned from the script:
EXIT: "Something went wrong: (Code: 0x80131500) Skyline.DataMiner.Automation.ScriptAbortException: Script parameter 65006 exists, but no value was passed from Correlation.
at Skyline.DataMiner.Automation.Engine.ExitFail(String reason)
at MaskSpecificRowAlarm.Script.RunSafe(IEngine engine)
at MaskSpecificRowAlarm.Script.Run(IEngine engine)"

script below:
namespace MaskSpecificRowAlarm
{
using System;
using Skyline.DataMiner.Automation;
using Skyline.DataMiner.Net;
using Skyline.DataMiner.Net.Enums;
using Skyline.DataMiner.Net.Messages;

public class Script
{
public void Run(IEngine engine)
{
try
{
RunSafe(engine);
}
catch (Exception e)
{
engine.ExitFail("Something went wrong: " + e);
}
}

private void RunSafe(IEngine engine)
{
ScriptParam correlationInfoParam = engine.GetScriptParam(65006);

if (correlationInfoParam == null)
{
engine.ExitFail("Script parameter 65006 does not exist in the Automation script. Please add it as a string parameter.");
return;
}

if (string.IsNullOrWhiteSpace(correlationInfoParam.Value))
{
engine.ExitFail("Script parameter 65006 exists, but no value was passed from Correlation.");
return;
}

string alarmInfo = correlationInfoParam.Value;
string[] parts = alarmInfo.Split('|');

if (parts.Length < 21)
{
engine.ExitFail("Invalid Correlation Alarm Info format: " + alarmInfo);
return;
}

int dmaID = Convert.ToInt32(parts[1]);
int elementID = Convert.ToInt32(parts[2]);
int parameterID = Convert.ToInt32(parts[3]);
string parameterIdx = parts[4];
int rootAlarmID = Convert.ToInt32(parts[5]);
string alarmValue = parts[10];

int targetParameterID = 9003;
string targetRowIndex = "0";

engine.GenerateInformation($"Received alarm - DMA: {dmaID}, Element: {elementID}, Parameter: {parameterID}, IDX: {parameterIdx}, Value: {alarmValue}, RootAlarmID: {rootAlarmID}");

if (parameterID != targetParameterID || parameterIdx != targetRowIndex)
{
engine.ExitSuccess($"Skipped: ParameterID={parameterID}, IDX={parameterIdx}");
return;
}

var connection = engine.GetUserConnection();

AlarmTreeID treeId = new AlarmTreeID(dmaID, elementID, rootAlarmID);

var maskRequest = new SetAlarmStateMessage(
treeId,
AlarmUserStatus.Mask,
"Automatically masked by Correlation Automation script.");

connection.HandleMessage(maskRequest);

engine.ExitSuccess($"Successfully masked alarm for ParameterID={parameterID}, IDX={parameterIdx}, Value={alarmValue}");
}
}
}

Miguel Obregon [SLC] [DevOps Catalyst] Posted new comment 6th May 2026
Miguel Obregon [SLC] [DevOps Catalyst] commented 6th May 2026

Hi Deema,
To rule out any potential issue in your automation script, can you perform a test with the snippet available in the documentation (https://docs.dataminer.services/dataminer/Functions/Automation_module/FAQ/How_do_I_parse_Correlation_Alarm_Info_data.html)?
You can just copy/paste the code snippet and generate an information event for any alarm attribute (e.g. the AlarmID)
Keep in mind that the script can only be executed through a correlation rule. If you execute manually the automation script, an exception will be throw.

Please login to be able to comment or post an answer.

My DevOps rank

DevOps Members get more insights on their profile page.

My user earnings

0 Dojo credits

Spend your credits in our swag shop.

0 Reputation points

Boost your reputation, climb the leaderboard.

Promo banner DataMiner DevOps Professiona Program
DataMiner Integration Studio (DIS)
Empower Katas
Privacy Policy • Terms & Conditions • Contact

© 2026 Skyline Communications. All rights reserved.

DOJO Q&A widget

Can't find what you need?

? Explore the Q&A DataMiner Docs

[ Placeholder content for popup link ] WordPress Download Manager - Best Download Management Plugin