You can use ExposedVariables to control which variables from the workflow are copied into the WorkItem object. If you have defined ExposedVariables, only those variables in the list are copied to the WorkItem. Using this option controls the size of WorkItem objects reducing memory usage, database size, and CPU processing time. The definition should be a list containing string representations of the workflow variables. Two example definitions follow.
<!-- Pass the entire view object but no other WF variables --> <ExposedVariables> <List> <String>userView</String> </List> </ExposedVariables> <!-- More optimized to only pass the Lighthouse attributes and email value --> <!-- Note the definition of a partial GenericObject path and a complete GenericObject path --> <ExposedVariables> <List> <String>userView.accounts[Lighthouse]</String> <String>userView.waveset.email</String> <String>managerFlag</String> </List> </ExposedVariables>
Passing only the data that the UserForm requires to operate optimizes the WorkItem processing time. This reduces the time required when processing the workItemEdit.jsp and also reduces total memory consumption and GC activities for the JVM. Without this option, the system can quickly consume a large amount of CPU time during concurrent user operations.