Sharable Temporary Data
The Object Manager stores the data that the user creates or modifies during a task instance. It stores this data in temporary storage in a special database table but does not save it to the base tables until the user finishes the task or reaches a commit step. Sharable temporary data can include temporary data that spans multiple server components. A thread that is separate from the initiating application can pass the task instance ID to another server component, and then return the information from this other server component back to the task.
Siebel CRM starts and shares temporary storage in the following way:
-
If the Server Request Broker detects that the current Object Manager is running a task transaction, then it passes the task transaction ID to the server component that Siebel CRM called.
-
If the Object Manager in the server component detects the task transaction ID, then the Object Manager uses this ID to start the same task transaction. As a result, the session for the Object Manager gains access to the data in this task transaction. The Object Manager ends the task transaction before the server component thread ends.
-
The Task UI framework uses a locking feature to handle any concurrency issues in the server component. It makes sure that no more than one transaction for each task is active at a time, regardless of how many threads Siebel CRM runs in the server component.
This solution can handle multiple server calls. For example, if a task calls a server component and this server component then calls another server component, then these server components possess access to the same task transaction.
Example with Assignment Manager
Assume that a task must schedule a job. It does the following work to evaluate the skills and availability that an individual possesses, and then to assign and schedule the job:
-
A call center representative runs a task to handle a service request while on a phone call with a customer.
-
Siebel CRM passes the task instance ID of the task that the user runs to the Assignment Manager server component.
-
The Assignment Manager server component determines if a field service engineer is available.
-
The Assignment Manager server component returns this information to the task that the call center representative is running.
How Siebel CRM Shares Temporary Storage
The sharing of temporary storage is disabled by default in Siebel CRM. To enable the sharing of temporay storage, you must define the TASKTEMPSTORAGESHARING task property with a data type of String. If this property is not defined, then Siebel CRM will display an error indicating that it cannot access temporary storage.
An asynchronous call to the Server Request Manager cannot access temporary storage data even if sharing of temporary storage data is available.