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 you 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

Creating Custom Alarm Property Through Automation

156 views1 day agoalarms Custom properties
5
Ana Pinho [SLC] [DevOps Member]1.42K 2 days ago 0 Comments

Hello Dojo,

Is it possible to create custom properties through automation without having an alarm beforehand?

If so, how can this be done?

Also, is it possible to expose those properties on the Alarm Console through automation?

Thank you!

Thijs Vanovenacker [SLC] [DevOps Advocate] Answered question 1 day ago

3 Answers

  • Active
  • Voted
  • Newest
  • Oldest
2
José Silva [SLC] [DevOps Enabler]1.89K Posted 1 day ago 1 Comment

Hi ana,

Can you try this:

var propertyConfig = new PropertyConfig
{
Name = property.Name,
Type = "Alarm",
};

PropertyManager.RegisterPropertyConfig(propertyConfig);
public class PropertyManager
{
private static ConcurrentDictionary<string, PropertyConfig> registredProperties = new ConcurrentDictionary<string, PropertyConfig>();

/// <summary>
/// Registers a property in DataMiner system.
/// </summary>
/// <param name="property">Property to be registered.</param>
/// <returns>True if the property was registered;otherwise false.</returns>
/// <exception cref="ArgumentNullException">If <paramref name="property"/> is null.</exception>
public static bool RegisterPropertyConfig(PropertyConfig property)
{
if (property == null)
{
throw new ArgumentNullException(nameof(property));
}

if (registredProperties.ContainsKey($"{property.Name}.{property.Type}"))
{
return true;
}

var properties = GetRegisteredProperties().ToArray();

if (properties.Any(p => p.Name == property.Name && string.Equals(p.Type, property.Type, StringComparison.InvariantCultureIgnoreCase)))
{
return true;
}

var nextId = properties.Select(x => x.ID).Max() + 1;

property.ID = nextId;

try
{
var response = Engine.SLNet.SendSingleResponseMessage(new AddPropertyConfigMessage(property)) as UpdatePropertyConfigResponse;

return response?.ID == nextId;
}
catch (Exception)
{
return false;
}
}

/// <summary>
/// Gets an <see cref="IEnumerable{T}"/> of <see cref="PropertyConfig"/> with all registered properties.
/// </summary>
/// <returns>An <see cref="IEnumerable{T}"/> of <see cref="PropertyConfig"/> with all registered properties.</returns>
public static IEnumerable<PropertyConfig> GetRegisteredProperties()
{
try
{
var response = Engine.SLNet.SendSingleResponseMessage(new GetInfoMessage(InfoType.PropertyConfiguration)) as GetPropertyConfigurationResponse;

var properties = response?.Properties ?? Enumerable.Empty<PropertyConfig>();

foreach (var prop in properties)
{
registredProperties.TryAdd($"{prop.Name}.{prop.Type.ToUpperInvariant()}", prop);
}

return properties;
}
catch (Exception)
{
return Enumerable.Empty<PropertyConfig>();
}
}
}

Kind regards,

José Silva [SLC] [DevOps Enabler] Posted new comment 1 day ago
José Silva [SLC] [DevOps Enabler] commented 1 day ago

By the way, if the goal is to have the property visible in the Alarm Console, you will need to enable the IsFilterEnabled option when creating it:

var propertyConfig = new PropertyConfig
{
Name = property.Name,
Type = "Alarm",
IsFilterEnabled = true
};

Kind regards,

2
Sergio Abreu [SLC] [DevOps Member]186 Posted 1 day ago 0 Comments

Not sure about the 1st/2nd question.
but for the third question we are using:

hyperlinks.xml or by correlation special paraments Special parameters available in automation scripts | DataMiner Docs

Sergio Abreu [SLC] [DevOps Member] Answered question 1 day ago
1
Thijs Vanovenacker [SLC] [DevOps Advocate]2.53K Posted 1 day ago 1 Comment

Hi Ana,

There is currently no documented wrapper method available to programmatically create new properties. However, it is possible to achieve this using direct SLNet calls. If you’d like, we can go through the approach together offline.

Regarding the second part of your question:

As with property creation, there are no built‑in DMA methods for this. Using SLNet as an alternative could again be a workable solution.

A few important notes:

  • The visibility of (custom) properties in the Alarm Console is a user‑based setting.
  • This means that even if you apply changes through code, these will not result in a global configuration update for all users.

I validated this through the following manual test steps:

  1. Enabled visibility of the Ticket ID property in the Alarm Console.
  2. Created a ticket → property updated correctly. ✅
  3. Signed out of Cube and back in with the same admin user → property was still visible. ✅
  4. Created a new local user “Thijs”.
  5. Signed in as Thijs → property was not shown by default. ❌

Admin user view: (property visible)


Thijs user view:
(property not visible)

If helpful, I can walk you through the SLNet approach or discuss alternative workflows.

Thijs Vanovenacker [SLC] [DevOps Advocate] Posted new comment 1 day ago
Thijs Vanovenacker [SLC] [DevOps Advocate] commented 1 day ago

Answer by José gives you the insights for the SLNET call on how to create the property via code. Note that SLNET calls are not always backwards compatible in the core software. Use them carefully!

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