Executing a Decision on irServer SOAP endpoint using a Service Reference

  • Updated

Prerequisites: A valid Service Reference

See Also: irServer - Rule Execution Service

The following sample represents how to execute a Decision on irServer Rule Execution Service using a service reference:

using (RuleEngineServiceClient proxy = new RuleEngineServiceClient())
{
 // Get RuleApp as defined in the config (RepositoryRuleApp or FileSystemRuleApp)
 RepositoryRuleApp ruleApp = new RepositoryRuleApp
 {
         RepositoryServiceUri = "http://localhost/InRuleCatalogService/Service.svc",
         RepositoryRuleAppRevisionSpec = new RepositoryRuleAppRevisionSpec { RuleApplicationName =
"AreaCalculator" },
         UserName = "Admin",
         Password = "password"
 };
 // Create new ExecuteDecisionRequest
 ExecuteDecisionRequest request = new ExecuteDecisionRequest
 {
         RuleApp = ruleApp,
         DecisionName = "CalculateArea",
         InputState = "{\"Height\":50,\"Width\":3}",        // Note: Decisions only accept JSON input
         RuleEngineServiceOutputTypes = new RuleEngineServiceOutputTypes
                                                 {
                                                         ActiveNotifications = true,
                                                         ActiveValidations = true
                                                 }
 };
 try
 {
         // Submit request
         Console.WriteLine("- Calling ExecuteDecition on RuleEngineService...");
         ExecuteDecisionResponse response =
(
ExecuteDecisionResponse)proxy.ExecuteRuleEngineRequest(request);
         Console.WriteLine("Active Notifications:");
         foreach (Notification notification in response.ActiveNotifications)
         {
                 Console.WriteLine($"[{notification.NotificationType}]: {notification.Message}");
         }
         Console.WriteLine("");
         Console.WriteLine("Active Validations:");
         foreach (Validation validation in response.ActiveValidations)
         {
                 Console.WriteLine(validation.InvalidMessageText);
         }
         Console.WriteLine("");
         // Note: Decisions only support the output of JSON, not XML
         Console.WriteLine("Decision Output:");
         Console.WriteLine(response.OutputState);
         Console.WriteLine("");
 }
 catch (Exception ex)
 {
         Console.WriteLine($"Unknown exception occurred during RuleEngineService request: {ex}");
 }
}
Console.WriteLine("[END ExecuteDecisionServiceReferenceConsumer Sample]");

Was this article helpful?

0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.