09-17-2015 09:44 PM
Studying for the CTD
i am kind of confused on the callbacks.( i know how to use them and all that but that will not answer the CTD questions lol)
So please explain this for dummies
From the book: " you can override a SequenceFile Engine callbacks in any sequences file"...
From the Book leson 6 page 4...
Consider the following example"
A process model seq file, overrrides the X engine callback. A Client(my seqeunce?) seq file that uses the Process Model also overrides X callback.
When the client sequence file executes using the process model, the X engine callback overriden in the process model executes after the execution of every step in the process model file. the X engine callback overriden in the client sequence file executes after the executiong of every step in the client sequence file. The X engine call back overriden in the process modes dos not execute for stepes withing the client sequence file.... Please explain me this...
what i understood is that X call back executes Twice, one on the process model and on for the sequence file client?
09-18-2015 10:45 AM - edited 09-18-2015 10:55 AM
Hi buton,
When you overrride a SequenceFile engine callback, that action will be scoped to the sequence file in which you define it. So, if you override a SequenceFilePostStep callback in a process model sequence file (for example, SequentialModel.seq), this will execute after every step in that sequence file. You will not see this action after every step in the client sequence file that uses this process model. If you wanted to specify a PostStep behavior unique to a client sequence file, you could define a SequenceFilePostStep callback within that client sequence file.
Hope this helps; happy studying!
Regards,
09-21-2015 09:51 AM
There are 3 types of engine callbacks:
Each can only reside in certain types of sequence files:
Each applies to a different scope:
Here are a few scenarios:
Scenario 1: ProcessModel has ProcessModelPostStepFailure and SequenceFilePostStepFailure callbacks. A step in the client fails. Only the ProcessModelPostStepFailure will get called.
Scenario 2: ProcessModel has ProcessModelPostStepFailure and SequenceFilePostStepFailure callbacks. Client file has SequenceFilePostStepFailure callback. A step in the client fails. Both the ProcessModelPostStepFailure in the process model and the SequenceFilePostStepFailure in the client will execute. The SequenceFilePostStepFailure in the process model will NOT execute.
Scenario 3: ProcessModel has ProcessModelPostStepFailure and SequenceFilePostStepFailure callbacks. Client file has SequenceFilePostStepFailure callback. A step in the process model fails. Only the SequenceFilePostStepFailure in the process model will execute.
Scenario 4: Station Callback file has StationPostStepFailure. ProcessModel has ProcessModelPostStepFailure and SequenceFilePostStepFailure callbacks. Client file has SequenceFilePostStepFailure callback. A step in the client fails. All three of the StationPostStepFailure in the station callback file, the ProcessModelPostStepFailure in the process model and the SequenceFilePostStepFailure in the client will execute. The SequenceFilePostStepFailure in the process model will NOT execute.
Hope this helps clarify.
09-21-2015 01:00 PM
Thanks jiggawax... great answer.... 🙂
08-11-2019 12:17 PM
The location in which you place your callback depends on how global you want the behavior to be. If you only want the behavior to be present in a certain sequence file, place the callback in the sequence file<SequenceFileCallback>. If you want the behavior to happen for every file(Client Sequence) using a process model, place the callback in the process model<ProcessModelCallBack>. If you want the behavior to happen no matter what model a sequence file uses, place the callback in the station callback<StationCallback>. Defining an Engine callback in multiple files does not override behavior. The TestStand Engine calls each callback in this case.
Refer the link for more Detail: