Hi,
How can we enable/disable a correlation rule from an automation script?
Preferably this would be done without having to pass the entire configuration of the rule each time.
Thanks!
Hi Ruben, you can use one of the below methods as a starting point:
/// <summary>
/// Enables the correlation rule refered by folderName and ruleName
/// </summary>
/// <param name="folderName">The subfolder of C:\Skyline Dataminer\Correlation containing the correlation rule</param>
/// <param name="ruleName">The name of the correlation rule as found "name" tag in the correlation rule xml file</param>
public static void enableCorrelationRule(string folderName, string ruleName)
{
GetCorrelationRuleMessage gcm = new GetCorrelationRuleMessage();//Foldername: within correlation folder
gcm.FolderName = folderName;
gcm.RuleName = ruleName;GetCorrelationRuleResponse resp = Engine.SLNet.SendSingleResponseMessage(gcm) as GetCorrelationRuleResponse;
UpdateCorrelationRuleMessage updateReq = new UpdateCorrelationRuleMessage();
updateReq.Type = UpdateCorrelationRuleMessage.UpdateType.Update;
updateReq.RuleDefinition = resp.Definition;
updateReq.RuleDefinition.IsEnabled = true;Engine.SLNet.SendMessage(updateReq);
}
/// <summary>
/// Enables the correlation rule refered by ruleID
/// </summary>
/// <param name="ruleID">The ID of the correlation rule as found "ID" tag in the correlation rule xml file</param>
public static void enableCorrelationRule(string ruleID)
{GetCorrelationRuleMessage gcm = new GetCorrelationRuleMessage();
// alternative to foldername and rulename using ruleID (ID found in correlation rule xml file):
gcm.ID = new Guid(ruleID);GetCorrelationRuleResponse resp = Engine.SLNet.SendSingleResponseMessage(gcm) as GetCorrelationRuleResponse;
UpdateCorrelationRuleMessage updateReq = new UpdateCorrelationRuleMessage();
updateReq.Type = UpdateCorrelationRuleMessage.UpdateType.Update;
updateReq.RuleDefinition = resp.Definition;
updateReq.RuleDefinition.IsEnabled = true;Engine.SLNet.SendMessage(updateReq);
}
Note that this is an internal call and we do not recommend using this, as it is not officially supported and we cannot guarantee that it will still work in the future. As a rule, you should avoid using SLNet calls, as these are subject to change without notice. We recommend to instead always use the correct UI or automation options provided in DataMiner Automation or through our web API.
Hi Ruben,
I believe you'll only be able to do this by sending an UpdateCorrelationRule message to SLNet.
The UpdateCorrelationRule message has a field 'type' that can be set to 'Enable' or 'Disable'
You only need to pass on the rule ID in case of enable or disable messages.