È possibile esporre le proprietà di InteractionSpec e ConnectionSpec per l'input come dati in modo che l'applicazione Java possa impostare i valori della proprietà. Ad esempio, è possibile esporre la proprietà del timeout dell'esecuzione di ECIInteractionSpec per fornire un valore di timeout basato su input dell'utente.
Esempio
Di seguito viene riportato il metodo getCustomer() per l'esercitazione tader99 modificato per includere un numero intero, execTimeout, come ulteriore argomento e impostarlo nella proprietà interactionSpec. Le modifiche effettuate sono riportate in grassetto. Il codice generato modificato è in corsivo:
/** * @j2c.interactionSpec class="com.ibm.connector2.cics.ECIInteractionSpec" * @j2c.interactionSpec-property name="functionName" value="TADERC99" * @j2c.interactionSpec-property * name="executeTimeout" * argumentBinding="execTimeout" * * @generated */ public sample.cics.data.CustomerInfo getCustomer( sample.cics.data.CustomerInfo arg, int execTimeout) 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"); ((com.ibm.connector2.cics.ECIInteractionSpec) is).setExecuteTimeout(execTimeout); } sample.cics.data.CustomerInfo output = new sample.cics.data.CustomerInfo(); invoke(cs, is, arg, output); return output; }
Per esporre correttamente una proprietà ConnectionSpec per l'input, invece, utilizzare la tag doclet @j2c.connectionSpec-property.