# ReopenProcessActivity ## Overview The service allow reopening a process activity after it has been cancelled/skipped. ## Input Object | Name | Type | Description | | --------------- | :------------------: | ----------------------------------- | | ProcessActivity | IndEqProcessActivity | The Process Activity to be *Reopened*. | ## Output Object | Name | Type | Description | | --------------- | :------------------: | -------------------------------------------------- | | ProcessActivity | IndEqProcessActivity | The updated Process Activity after *Reopened*. | ## Pre Conditions * The input *ProcessActivity* must not be null. * The *ProcessActivity* must be in one of the following states: *Canceled* or *Skipped*. * The *ProcessActivity* should have no Checklist associated. ## How it works 1. Validates the input is not null and loads the full *ProcessActivity* entity if exits. 2. Validates the *ProcessActivity* is in *Canceled* or *Skipped* state. If not, throws an exception. 3. Validates the *ProcessActivity* if there is checklist associated. If it is, throws an exception. 4. Validates the *ProcessActivityDefinition* of the *ProcessActivity*, if the *ProcessActivityDefinition* has been removed from the current flow, then throw an error. 5. Validates the *Condition Expression* of *ProcessActivityDefinition*. If the context of the *ConditionExpression* not meet, throws an exception. 6. If the *ProcessActivity* is terminated, then unterminate the *ProcessActivity*. 7. Sets the system state of the Process Activity to *Open* if it's system state isn't *Open*. 8. Returns the updated Process Activity in the output.