A synchronous plug-in must set cr5a2_fullcode on an inspection row, combining two other columns, whenever the row is created. The value must be saved with the row in the same operation, without issuing a second update request. Which stage should the step use?
Select an answer to reveal the explanation.
Short Explanation
PreOperation is your last chance to slip something into the envelope before it's sealed. Change the Target there and the value rides along with the create, no second update needed. Change it in PostOperation and you're editing a letter that's already in the mailbox.
Full Explanation
The PreOperation stage runs inside the database transaction just before the core operation. Changes made to the Target entity in InputParameters at this stage become part of the data the core operation writes, so setting cr5a2_fullcode there saves it with the new row in a single operation, with no extra request and no additional pipeline events. Setting the column on Target in PostOperation has no effect on the stored row, because the core operation has already written the data; the change is silently lost. An asynchronous PostOperation step would need its own Update call to persist the value, which is the second request the requirement rules out, and the row would briefly exist without the value. Stage 30, MainOperation, is reserved for the core platform operation and for plug-ins that implement custom APIs; ordinary plug-in steps cannot be registered there. Exam caveat: PreValidation can also modify Target before the transaction, but logic that depends on running within the transaction, or after other validations, belongs in PreOperation. Operational check: register the step on Create at PreOperation, create a test row, and confirm cr5a2_fullcode is populated with an audit history showing only the create.