Use Abstract Activity

An abstract activity is a modeling placeholder for another activity in a structured process. It is useful when you want to design a structured process but aren't sure about the implementation details for some activity in the process flow.

Let us explore how you can use an abstract activity in a structured process. Suppose you have designed a travel request process. You want that the travel request should be validated before it is sent for approval, but aren't sure at this point if you would want to use a human task activity, service activity, or decision activity for validating. In this case, you can use an abstract activity as a placeholder activity to complete designing the process flow without worrying about the implementation details for the activity.

  1. On the Activities palette, expand System and drag and drop an Abstract activity onto the process flow.

  2. Rename the abstract activity as Validate Request. Notice the following:
    • There are no implementation details defined for the activity hence the activity will display an error.
    • You'll get a process level validation error also for the activity which will not allow activation unless implemented.

    Description of abstract-activity-error.png follows
    Description of the illustration abstract-activity-error.png

  3. Once you're sure about the kind of activity you want to use, you can change the abstract activity type. For example, you decide to use a service activity to validate the travel request. Right-click the abstract activity and select Change Type, then choose Service.

    Description of abstract-activity-changetype.png follows
    Description of the illustration abstract-activity-changetype.png

    The abstract activity changes to a service activity.

You decided to use a service activity but still don't have connector details for implementing the service activity. As there are no implementation details for the service task activity, you'll get validation error for the activity and won't be able to activate and test the process in runtime.

If you want to test a process that has an abstract activity or an unimplemented activity, you need to use the draft property for the activity. See About Draft Property.