I am doing some mockup exams for the certification. There is a question saying:
An sObject named Application__c has a lookup relationship to another sObject named Position__c. Both Application__c and Position__c have a picklist field named Status__c. When the Status__c field on Position__c is updated, the Status__c fields on Application__c needs to be populated automatically with the same value, and execute a workflow rule on Application__c. How can a developer accomplish this?
And the possible answers are:
A) By changing the Application__c.Status__c into a roll-up summary field
B) By configuring a cross-object field update with a workflow
C) By using an Apex trigger with a DML operation
D) By changing the Application__c.Status__c into a formula field.
The correct answer is D, change status into a formula field. But we were not able to reproduce it. There is also a thread about it here. What we believe, the correct answer should be C, an Apex Trigger.
Our only concern is that in the question it specifies that a workflow on child must be triggered when the parent picklist value is changed. As described in the above link, workflows are not triggered on formula field value update, as the value is calculated on run time and not stored in the database.