ok. I see :-D
Let me try to shed some light.
I think the base concept to get here is that, by default, updates done by the workflow tasks DO NOT trigger the workflow system. That means that if you update a field on the record being saved (the one that triggered the workflow in the first place), there will be no further workflows launched on that record.
Let's suppose you are editing a Contact record, and update a field on that record. That update will not trigger the workflow system
Now, on the same contact record, you trigger an update workflow and update a field on the related Account. That update, on the account record, will NOT trigger a workflow.
Again, on the same Contact, but now with an Update Related Records task, the one that permits you to massively update fields on the related lists of records. Let's suppose you have a task that updates some field on all the invoices related to this contact. When that update happens, no workflow will be launched.
That is how the system works by default, it tries to avoid potential loops and slow performance for the UX. But, sometimes, you really need to launch workflows on those updates, that is where the checkbox comes in. If you are in a normal Update Field task and check the "launch workflows" then, in both examples above the workflows will be launched. They will be launched when the Contact record is updated and also when the account record is updated. If there are any workflows related to those modules that should be launched (their conditions are met) they will be launched.
For the Contact-Invoice example, each invoice that gets the update will launch the workflow system, the workflow system will look for all workflows associated to the invoice module and will evaluate the conditions and launch the tasks for each updated Invoice record. Just as if you had entered each one and edited it.
Now, all that said, and hopefully being a bit more clear, I have to ask if you have tried the global variables Product_SubProduct_CostRollUp and Product_SubProduct_PriceRollUp which are supposed to do that quantity update you are looking for. Are those not working as you expect?
Let me try to shed some light.
I think the base concept to get here is that, by default, updates done by the workflow tasks DO NOT trigger the workflow system. That means that if you update a field on the record being saved (the one that triggered the workflow in the first place), there will be no further workflows launched on that record.
Let's suppose you are editing a Contact record, and update a field on that record. That update will not trigger the workflow system
Now, on the same contact record, you trigger an update workflow and update a field on the related Account. That update, on the account record, will NOT trigger a workflow.
Again, on the same Contact, but now with an Update Related Records task, the one that permits you to massively update fields on the related lists of records. Let's suppose you have a task that updates some field on all the invoices related to this contact. When that update happens, no workflow will be launched.
That is how the system works by default, it tries to avoid potential loops and slow performance for the UX. But, sometimes, you really need to launch workflows on those updates, that is where the checkbox comes in. If you are in a normal Update Field task and check the "launch workflows" then, in both examples above the workflows will be launched. They will be launched when the Contact record is updated and also when the account record is updated. If there are any workflows related to those modules that should be launched (their conditions are met) they will be launched.
For the Contact-Invoice example, each invoice that gets the update will launch the workflow system, the workflow system will look for all workflows associated to the invoice module and will evaluate the conditions and launch the tasks for each updated Invoice record. Just as if you had entered each one and edited it.
Now, all that said, and hopefully being a bit more clear, I have to ask if you have tried the global variables Product_SubProduct_CostRollUp and Product_SubProduct_PriceRollUp which are supposed to do that quantity update you are looking for. Are those not working as you expect?
Joe
TSolucio
TSolucio