java.lang.Object
com.azure.messaging.servicebus.administration.models.RuleAction
com.azure.messaging.servicebus.administration.models.SqlRuleAction

public class SqlRuleAction extends RuleAction
Represents set of actions written in SQL language-based syntax that is performed against a ServiceBusMessage.

Sample: Create SQL rule filter with SQL rule action

The code sample below creates a rule using a SQL filter and SQL action. The rule matches messages with:

If the filter matches, it will set/update the "importance" key in ServiceBusMessage.getApplicationProperties() with "critical".

 String topicName = "emails";
 String subscriptionName = "important-emails";
 String ruleName = "emails-from-joseph";

 RuleFilter sqlRuleFilter = new SqlRuleFilter(
     "sys.CorrelationId = 'email' AND sender = 'joseph' AND (importance IS NULL OR importance = 'high')");
 RuleAction sqlRuleAction = new SqlRuleAction("SET importance = 'critical';");
 CreateRuleOptions createRuleOptions = new CreateRuleOptions()
     .setFilter(sqlRuleFilter)
     .setAction(sqlRuleAction);

 RuleProperties rule = client.createRule(topicName, ruleName, subscriptionName, createRuleOptions);

 System.out.printf("Rule '%s' created for topic %s, subscription %s. Filter: %s%n", rule.getName(), topicName,
     subscriptionName, rule.getFilter());
 
See Also:
  • Constructor Details

    • SqlRuleAction

      public SqlRuleAction(String sqlExpression)
      Creates a new instance with the given SQL expression.
      Parameters:
      sqlExpression - SQL expression for the action.
      Throws:
      NullPointerException - if sqlExpression is null.
      IllegalArgumentException - if sqlExpression is an empty string.
  • Method Details

    • getParameters

      public Map<String,Object> getParameters()
      Gets the properties for this action.
      Returns:
      the properties for this action.
    • getSqlExpression

      public String getSqlExpression()
      Gets the SQL expression.
      Returns:
      the SQL expression.