È possibile esporre le proprietà di InteractionSpec e ConnectionSpec per l'output in modo che l'applicazione Java possa ottenere i valori della proprietà dopo l'esecuzione della transazione. Per esporre le proprietà di InteractionSpec per l'output, è necessario creare una nuova classe di output e modificare i file di interfaccia e di implementazione del bean Java J2C prima di utilizzarli in un'applicazione.
package sample.cics.data; public class WrapperBean { protected CustomerInfo customerInfo; protected String funcName; /** * @return Returns the functionName. */ public String getFuncName() { return funcName; } /** * @param functionName The functionName to set. */ public void setFuncName(String functionName) { this.funcName = functionName; } /** * @return Returns the customerInfo. */ public CustomerInfo getCustomerInfo() { return customerInfo; } /** * @param customerInfo The customerInfo to set. */ public void setCustomerInfo(CustomerInfo customerInfo) { this.customerInfo = customerInfo; } }
Di seguito si riporta il metodo aggiornato. Le modifiche da effettuare sono riportate in grassetto, e il codice generato modificato è in corsivo:
/** * @j2c.interactionSpec class="com.ibm.connector2.cics.ECIInteractionSpec" * @j2c.interactionSpec-property name="functionName" value="TADERC99" * @j2c.interactionSpec-returnProperty name="functionName" outputBinding="funcName" * @generated */ public WrapperBean getCustomer(sample.cics.data.CustomerInfo arg) throws javax.resource.ResourceException { ConnectionSpec cs = getConnectionSpec(); InteractionSpec is = interactionSpec; if (is == null) { is = new com.ibm.connector2.cics.ECIInteractionSpec(); ((com.ibm.connector2.cics.ECIInteractionSpec) is).setFunctionName("TADERC99"); } sample.cics.data.CustomerInfo output = new sample.cics.data.CustomerInfo(); invoke(cs, is, arg, output); WrapperBean bean = new WrapperBean(); bean.setCustomerInfo(output); bean.setFuncName(((com.ibm.connector2.cics.ECIInteractionSpec) is).getFunctionName()); return bean; }