12-17-2011 10:39 AM
Since the Java class instance is reused, the injection only happens once, when the serviceTask is called the first time. When the fields are altered by your code, the values won't be re-injected so you should treat them as immutable and don't make any changes to them.
<serviceTask id="servicetask2" name="Excel" activiti:class="org.nexusbpm.activiti.ExcelNexusJavaDelegation">
<extensionElements>
<activiti:field name="skipHeader">
<activiti:string>true</activiti:string>
</activiti:field>
<activiti:field name="columnLimit">
<activiti:string>${'hello'}</activiti:string>
</activiti:field>
<serviceTask id="serviceTask" activiti:delegateExpression="${delegateExpressionBean}" />
…
<serviceTask id="javaService"
name="My Java Service Task"
activiti:expression="#{printer.printMessage()}" />
12-18-2011 10:39 PM
FieldExtensionsExport.java
for (FieldExtension fieldExtension : fieldExtensionList) {
if(fieldExtension.getFieldname() != null && fieldExtension.getFieldname().length() > 0 &&
fieldExtension.getExpression() != null && fieldExtension.getExpression().length() > 0) {
xtw.writeStartElement(ACTIVITI_EXTENSIONS_PREFIX, "field", ACTIVITI_EXTENSIONS_NAMESPACE);
xtw.writeAttribute("name", fieldExtension.getFieldname());
if (fieldExtension.getExpression().contains("${")) {
xtw.writeStartElement(ACTIVITI_EXTENSIONS_PREFIX, "expression", ACTIVITI_EXTENSIONS_NAMESPACE);
} else {
xtw.writeStartElement(ACTIVITI_EXTENSIONS_PREFIX, "string", ACTIVITI_EXTENSIONS_NAMESPACE);
}
xtw.writeCharacters(fieldExtension.getExpression());
xtw.writeEndElement();
xtw.writeEndElement();
}
}
if (serviceTask.getResultVariableName() != null && serviceTask.getResultVariableName().length() > 0) {
xtw.writeAttribute(ACTIVITI_EXTENSIONS_PREFIX, ACTIVITI_EXTENSIONS_NAMESPACE, "resultVariableName", serviceTask.getResultVariableName());
}
12-19-2011 03:26 AM
12-19-2011 07:09 AM
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.