I created a UserDefined configurable service with the following values:
EmployeeDetails
EmployeeNumber: O0001
EmployeeName: James Ndlovu
Department: IT
City: Johannesburg
In the LocalEnvironment set the EmployeeNUmber in Variables/EmployeeNumber which I want to use to retrive the Employee Details from the config service.
To create the Java code, right-click the JavaCompute node and click Open Java to create and open a Java™ file in the Editor view.
Create the Java class for the node in which you want to include IBM Integration API methods.
Add the IBM Integration API JAR file install_dir/common/classes/IntegrationAPI.jar to the Java build path for the associated Java project.
Import com.ibm.broker.config.proxy.* in your code.
try {
// create new message as a copy of the input
MbMessage outMessage = new MbMessage(inMessage);
outAssembly = new MbMessageAssembly(inAssembly, outMessage);
/*get employee details from local environment variable */ MbMessage localEnv = inAssembly.getLocalEnvironment(); MbElement empNoVar = localEnv.getRootElement().getFirstElementByPath("Variables/EmployeeNumber"); String employeeNumber = empNoVar.getValueAsString(); BrokerProxy b = BrokerProxy.getLocalInstance(); /*return an instance of the BrokerProxy object for the integration node to which the message flow (that contains this node) is deployed */ while (!b.hasBeenPopulatedByBroker()) { Thread.sleep(100); /*This ensures that the BrokerProxy object is populated with data from the integration node before you access the configurable service */ } ConfigurableService vendorUDCS = b.getConfigurableService("UserDefined", "EmployeeDetails"); String employeeDetails = vendorUDCS.getProperties().getProperty(employeeNumber);
/*output the employeeDetails to a local environment variable*/ MbMessage newEnv = new MbMessage(localEnv);
newEnv.getRootElement().createElementAsFirstChild(MbElement.TYPE_NAME_VALUE, "EmpDetails", employeeDetails); outAssembly = new MbMessageAssembly(inAssembly, newEnv, inAssembly.getExceptionList(), inAssembly.getMessage()); b.disconnect();} catch (MbException e) {
// Re-throw to allow Broker handling of MbException
throw e;
}