Siebel Order Management Infrastructure Guide > PSP Engine > Components of the PSP Engine >
A controller workflow invokes the PSP engine every time a PSP procedure is called. The controller workflow insulates the PSP procedure from the calling context. The various calling contexts, such as Siebel Configurator, a product picklist, or a Web service, each have separate controller workflows. The PSP Driver Workflow Process is an example of a prebuilt controller workflow. You can configure your own controller workflows to meet your organization's particular needs.
NOTE: PSP Driver Workflow Process is the generic controller workflow. For more information, see PSP Driver Workflow.
While the PSP procedure transforms row sets in memory, the controller workflow passes those row sets to the PSP procedure and then determines what to do with the PSP procedure's output. The typical flow is:
- An end user clicks a button or makes some other choice in the interface.
- This end-user action triggers a signal which executes the controller workflow.
- The controller workflow establishes the inputs for the PSP procedure by finding data and constructing this data into row sets. The controller workflow can use the variable maps mechanism to construct the row sets.
- The controller workflow calls the PSP procedure and passes the inputs to it.
- The PSP procedure transforms the inputs and sends the transformed row set back to the controller workflow.
- The controller workflow determines what to do with these transformed rows. For example, it might display the transformed rows on the screen or write them to the database.
The PSP procedure's only function is to transform row sets in memory. The controller workflow executes any other actions.
Figure 16 shows an example of a controller workflow.
Figure 16. Example of a Controller Workflow That Invokes the Price PSP Procedure
This controller workflow and its called PSP procedure operate as follows:
- Get Shared Context Variables. This first step (after the Start step) obtains the needed data by using the variable maps mechanism (the Context Service business service) to populate a property set containing context variables shared by all rows (such as Channel, Account Type, or User Role).
- Get Selected Line Items as Row Set. This step instructs the Context Service business service to populate a property set containing the input row set.
- Price. This Subprocess step calls the Price PSP procedure, passing the context variables and the input row set. The Price PSP procedure transforms the row set and passes the values back to the controller workflow.
- Update Line Items. This step, which also uses variable maps, updates the line items with the values from the transformed row set. That is, it saves the newly calculated prices.