Interface ReferencedProcess

All Superinterfaces:
ExecutableBusinessProcess, LightWeightProcess, LocalisedString, PluginDataContainer, UserAttributeContainer

public interface ReferencedProcess extends LightWeightProcess
The ReferencedProcess is used to reference another process template. This can either be a "real" subprocess (corresponds to ProcessConstants.TemplateUsage.AS_REFERENCE) or a forked subprocess (corresponds to TemplateStatus.isTopLevelUsable()). Changes to the referenced template are automatically propagated to its usages. This interface just returns the reference to the corresponding template (via its UUID) and whether the referenced process is to be started asynchronously (forked).
In case of a fork, the parent template may not accept any output parameters of the "child" template. Additionally, the subprocess usage of the referenced template is ignored; only the top-level-usage is relevant.
Author:
Kevin Goeser, Ulrich Kreher
  • Method Details

    • getTemplateID

      UUID getTemplateID()
      Returns the ID of the referenced template. This is different from AbstractActivity.getID() and therefore not in the common superclass since a process template is a reference in the process repository while an activity template references a template in the activity repository.
      Returns:
      The ID of the referenced process template.
    • fork

      boolean fork()
      Returns whether the referenced template should be instantiated as separated top-level process instead of a "real" process. A forked (child) process may not provide any data (output parameters) for the parent process. Additionally, every process template which is top-level usable (TemplateStatus.isTopLevelUsable()) may be used as a forked (child) process.
      Returns:
      Whether the referenced template should be instantiated as separated top-level process instead of a "real" process.