ExternalCallout API example
This example creates an external callout that gets a credit score.
Create an external callout that gets a credit score:
Create a file that is called GetCreditScore.java with the following contents. This file assumes that there is a class that is called ScoreQueryUtility that fetches a score from a modeling application.
import java.util.Map; import com.unicacorp.interact.session.AudienceId; import com.unicacorp.interact.flowchart.macrolang.storedobjs.IAffiniumExternalCallout; import com.unicacorp.interact.flowchart.macrolang.storedobjs.CalloutException; import java.util.Random; public class GetCreditScore implements IAffiniumExternalCallout { // the class that has the logic to query an external system for a customer's credit score private static ScoreQueryUtility scoreQueryUtility; public void initialize(Map<String, String> configurationData) throws CalloutException { // configurationData has the key- value pairs specific to the environment the server is running in // initialize scoreQueryUtility here } public void shutdown(Map<String, String> configurationData) throws CalloutException { // shutdown scoreQueryUtility here } public int getNumberOfArguments() { // do not expect any additional arguments other than the customer's id return 0; } public List<String> getValue(AudienceId audienceId, Map<String, String> configurationData, Object... arguments) throws CalloutException { Long customerId = (Long) audienceId.getComponentValue("Customer"); // now query scoreQueryUtility for the credit score of customerId Double score = scoreQueryUtility.query(customerId); String str = Double.toString(score); List<String> list = new LinkedList<String>(); list.add(str); return list; } }
Compile GetCreditScore.java to GetCreditScore.class.
Create a JAR file called creditscore.jar containing GetCreditScore.class and the other class files it uses.
Copy the JAR file to some location on the runtime server, for example /data/interact/creditscore.jar.
Create an External Callout with name GetCreditScore and classpath as /data/interact/creditscore.jar in the externalCallouts category on the Manage Configurations page.
In an interactive flowchart, the callout can be used as EXTERNALCALLOUT('GetCreditScore').