Preventing Workflows from Running

I am looking for a solution to how to prevent a workflow from executing when a prior workflow has already completed the necessary task(s).  I have 3 workflows, two that act upon the value of a virtual attribute of a computer object and 1 that acts upon the addition of a computer object to a group.  One of the workflows for computer objects adds the object to the appropriate group when the object is created and the other removes/adds the object from/to specific groups when the attribute is modified.  The workflow on the groups verifies the system object being added to the group meets the criteria for it to be added; checks the setting on the virtual attribute.  If the computer objects virtual attribute does not match the purpose of the group, the object cannot be added.

For Example:

A computer object compA is created and the virtual attribute is set to P.  The workflow triggered on object creation of the computer object places the computer object in Group-P.  At the same time or after the workflow for the computer object creation completes, Group-P is being modified, computer object being added, and the workflow launches for that group.  Same thing would be true for the modification of a computer object.  If the virtual object on compA is modified, say changed to R, the workflow triggered on the modification of the object is launched which removes the object from Group-P and adds it to Group-R.  At the same time or after the workflow for the computer object modification completes, Group-R is being modified, computer object being added, and the workflow launches for that group.

I am essential looking to see how, if possible to prevent the group workflow from running when the computer object is created or modified.  I only want the group workflow to run when I actually add the computer object directly to the group.

Thanks for your assistance.

Parents
  • In principle, this is about the filtering conditions on your workflow.  You can approach this from a couple of directions but the example below shows the case where a computer is added to a group (this watches the memberof on the computer object).

    The point is you can make your filtering conditions (i.e. the bottom part of the dialogue above) as specific as you need and they can include filtering on the name of the object being modified, the properties being modified, the content of those properties (whether existing or inbound [the requested change]) and any combination of these.

Reply
  • In principle, this is about the filtering conditions on your workflow.  You can approach this from a couple of directions but the example below shows the case where a computer is added to a group (this watches the memberof on the computer object).

    The point is you can make your filtering conditions (i.e. the bottom part of the dialogue above) as specific as you need and they can include filtering on the name of the object being modified, the properties being modified, the content of those properties (whether existing or inbound [the requested change]) and any combination of these.

Children