Activities are harder to maintain and not as easy to construct as other rules in Pega.
We should not use an activity for calculations or property validations that we can implement as constraints rules or Declare Expression rules. Use of a declarative rule (rather than an activity) eliminates the need to control how and when an activity executes. A best practice is to use declarative processing rather than activities when feasible.
For data manipulations, we can use a Data Transform instead of an activity.
To query from an external DB, we can use Report Definition rules instead of activities.
We may need to automate the processing of cases with a sequence of steps to be executed. Most of the time, this is possible with the steps in the case designer or multiple shapes in a flow rule or with declarative rules or data transform rules or a combination of those and other rules.
As per my understanding, if developers create activities, it makes their applications harder to maintain and harder to upgrade. Rather than having them create activities, Pega has created alternatives, so that they can do what they need without activities.
Pega is not the coding language and Pega should write the code not the end user. But in each rule you can find the expression builder to write the Java code which is provided as a work around to the end user, as we can't achieve everything through non-java. In activities we have features like entry & exit conditions, Jump conditions, calls to other activities through which its hard to debug and manage the code by the developer, that is the reason we recommend to have at max 25 steps in an activity and activity should be used if no other rule can fulfill your requirement.
Actually writing an activity is very near to writing the code, we are compelling our users to not to write the code and get all your requirements done with all the available existing rules which are like configurations. Its not just the Property-set or loop through functionalities available in activities, there are many other functionalities that can be performed in activities like writing Java code, Jump to other steps, go to another activities, etc.
Thanks Midhun for your patience and reply :). So if i have to just do property sets .. a lot a property sets then it doesnot matter whether i use a Data transform or a activity right?. If i am not doing anything other than property-set.
If your task is just to perform the property initializations then you don't need to go for an activity rule Pavani, as activity is mostly used if you can't perform your business task with the other existing rules.