Opportunity Workflow fired twice unexpectedly
|Knowledge Article Number||000006235|
Scenario: Customer reports that an opportunity workflow rule is incorrectly triggered a second time when the price book on the opportunity is changed, despite the fact that the workflow already fired once and the evaluation criteria is set to "When a record is created, or when a record is edited and did not previously meet the rule criteria".
Explanation: In general, most standard objects have what we call “re-parentable foreign keys”. In this case, the foreign key is the price book lookup on the opportunity (the physical act of clicking the 'Choose Price Book' button). If you change the foreign key on a record, we fire the workflow rules all over again as we treat this as a new record. You can see this same behavior with contact and case workflow rules when you change the parent account or contact on a case. The same also occurs when changing the "account name" value on Opportunity and in various other situations.
The workaround which has been implemented by many customers is as follows: