Input and output format
You can use JSON for input and output for executed decision operations.
A specific decision runner called
JSONDecisionRunner provides facilities to use
JSON for input and output of the executed decision
operation:String opName = "LoanValidation";
// Get the specific DecisionRunner for using JSON as input/output
JSONDecisionRunner runner = provider.getDecisionRunner(opName, JSONDecisionRunner.class);
// create the input object from a JSON string
String inAsJSON = ...;
Object in = runner.getInputReader().readValue(inAsJSON);
Object out = runner.execute(in);
// create the JSON string representation of the output object
String outASjson = runner.getOutputWriter().writeValueAsString(out);This example shows a complete code snippet for executing a decision operation named
LoanValidation in a decision service that is packaged in the application class
loader. Input and output are JSON
strings:// Create a decision runner provider for decision service archive in the application class loader
DecisionRunnerProvider provider = new ClassLoaderDecisionRunnerProvider
.Builder()
.build();
// Get the decision operation runner
JSONDecisionRunner runner = provider.getDecisionRunner("LoanValidation", JSONDecisionRunner.class);
// Get an example of input
Object inExample = runner.createInputExample();
// Convert the example to a JSON string
String inExampleAsJSON = runner.getInputWriter().writeValueAsString(inExample);
// Convert the example JSON string to a Java object
Object in = runner.getInputReader().readValue(inExampleAsJSON);
// Execute the decision operation
Object out = runner.execute(in);
// Convert the output Java object to a JSON string
String outAsJSON = runner.getOutputWriter().writeValueAsString(out);