SAS Decision Manager enables you to build and test decisions to use in batch processes, real-time web applications or with SAS Event Stream Processing.
In this blog, I explain how to use Rulesets in an Event Stream Process project. If you are streaming data using SAS Event Stream Processing and your data stream involves making decisions, you can build Rulesets in SAS Decision Manager and use them in your event stream project. ESP can invoke the code generated by SAS Decision Manager and execute it in its Micro Analytic Service (MAS) engine.
Receiving code for Rulesets
To use a Ruleset in Decision Manager within an event stream project in ESP, you need to export the DS2 code generated by Decision Manager and point ESP towards the code to execute it. To export code from Decision Manager, we use the SAS Decision Manager Viya REST API to:
• Obtain an access token to SAS Viya
• Receive the ID for the required Ruleset
• Receive the Decision Manager DS2 code via the Ruleset ID
Obtain an access token to SAS Viya
Before using SAS Viya APIs, your SAS administrator must register a client identifier. The SAS Logon OAuth API uses OAuth2 to securely identify your application before it connects to the SAS Viya platform. See Registering clients for information on how clients are registered. Once a client is successfully registered, the SAS administrator provides you with the client identifier and client secret to authenticate an API request.
To obtain an access token call:
http://{{ViyaServer}}/SASLogon/oauth/token
If successfully executed, you will get an access token for all further REST calls.
Receive the Ruleset ID
We need the ID for the Ruleset we want to use in ESP. The REST Endpoint requires the ID to receive the DS2 code.
To get the ID, call the Endpoint that lists all available Rulesets:
http://{{ViyaServer}}/businessRules/ruleSets
If successfully executed, you will receive the Ruleset ID in the field “id” in the “items” list.
Receive Ruleset code
With this new ID, we can export the DS2 code for the Ruleset.
To get the code, call the appropriate Ruleset Endpoint:
http://{{ViyaServer}}/businessRules/ruleSets//code
Set ID to the value of this new Ruleset ID.
If executed successfully, you will receive the DS2 code for the Ruleset.
Preparing the code
Copy the DS2 code from the REST call into a file, save the file with a descriptive name (i.e. the name of the Ruleset) and move it to a location where ESP can access it.
Invoke Decision Manager Code in Event Stream Processing
Now that we have saved the code into a file and moved it to a location that Event Stream Processing can access, we can now invoke the code from our Event Stream Processing project.
We need to register the ruleset code file we saved.
Open the ESP project and go to Micro Analytic Service Modules at the project level.
Add a new Micro Analytic Service Module for the ruleset code file and fill in all required fields.
To invoke the code in the event stream, add a Calculate Window.
In Settings choose Calculation = User-specified.
Under Handlers, select the source and ensure the field values are set correctly.
Set the fields for the output schema of the calculate window. Note that the field names and types must match the names and types used in the Ruleset.
Save the project.
You are now ready to run your project in Test mode to check if it works.
Conclusion
SAS Decision Manager allows you to build decisions in an independent environment to ESP. This gives you the freedom to design and test decisions in a less technical environment without touching the event stream. After testing the decision, you can simply “hook it in” to your event stream.
Other users can work on and update decisions by just applying a new/updated code file. This will allow your event stream to be to be more flexible and easier to maintain. To learn more, please check out these sources.
Video: SAS Decision Manager
Article: Using SAS Decision Manager to enrich the data prep process