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]");
Comments
0 comments
Please sign in to leave a comment.