We all know the primary use of InfoPath right?
Wednesday, November 25, Jason Le No comments Background A common requirement amongst many Siebel customers, is to have Ootb business process ability to run an asynchronous workflow under the real user's login.
This issue is highlighted in the following Oracle support web document, and is representative of the problems faced by many customers. The solution offered by the support personnel was to run the work flow in synchronous mode.
Asynchronous workflows are used in Siebel to offload work from the user session to perform background processing, however that leaves an undesired effect of stamping the record with SADMIN.
This behavior obscures information about the creator, updater, and prevents audit trail from being utilized. Workflows can be run synchronously as suggested in the Oracle support web document above, but it has the rather unwanted effect of blocking the UI.
Fortunately, for customers who can't accept running background tasks synchronously, there is a viable solution, but it requires a little bit of effort. Requirement To re-affirm the requirement, we are going to walk through a solution that allows any workflow or business service in Siebel to be run asynchronously, under the actual users credentials, and without actually supplying the password!
If we step back, and look at the problem from an architectural perspective, we know that when the user logs into the Application and executes any type of code such as eScript, or workflow, it will run synchronously under the users application object manager, and it will operate under the users own credentials.
The only supported method to run code and avoid blocking the UI, is to run code under a background process, however any code that is run in the background will operate under SADMIN by default.
The first challenge is to Ootb business process a supported method to execute code in a background session under the current users credentials. Experienced Siebel Integrators in the audience can probably guess, that we can achieve this with any Siebel API that supports SSO, or utilize the inbuilt impersonation capability of certain Siebel components.
The two most suitable choices are: Siebel JDB I've highlighted these particular interfaces, because both provide APIs that can be invoked from a background session, and has the potential to allow arbitrary code to be dispatched, and run under a different set of credentials.
As an added benefit, both of these APIs can be built to support load balancing for high availability. Solution Overview The diagram below shows an overview of this proposed solution. The user triggers an asynchronous task from the current user session, and is allowed to continue with their work in the application 2.
A synchronous call is invoked over the transport, using the Siebel API identified above 4. The Siebel API instantiates a new session on behalf of the real user, executes the destination business service, and returns the results back to the background process.
The developer should be able to specify the desired subsystem, and the service should abstract the low level transport requirements, and perform the necessary acrobatics to make the call. The following diagram shows how a facade is used for invoking the actual SSO interface.
A standard Siebel business service is defined, so it can be substituted in any existing workflow, or hooked into any existing Siebel trigger. The designer now has to implement the adapter code, and build the interface to communicate with the relevant SSO interface. The implementation of interfaces to these Siebel APIs are out of scope of this article, as it requires different spectrum's of design, involve advanced integration, and require environment dependencies to exist, but the key considerations are provided below for customers who are interested in building this capability.
Please consult with your Siebel Integration Architect for more localized implementation advice. Input Arguments To support a plug and play design, I propose that all input arguments and child properties passed into this service would be dispatched to the remote business, in the same way as any other business service in Siebel including workflows.
This design allows us to go into tools, and retrofit this capability to any business service, without redevelopment effort. It is also deliberately designed to avoid hierarchy changes required for the correct invocation of the destination business service.
To control the dispatch, lets define a custom child hierarchy, which contains 3 key elements. The user login to impersonate 2.
The destination business service to dispatch to 3. The destination business method name The diagram below illustrates the property set structure, with the required information to dispatch the call This special PropertySet can sit at any index, however it should be removed before it is dispatched to the remote business service, in-case there is logic that is sensitive to property sets with specific indexes.
PropertySet Serialization PropertySets are a Siebel proprietary representation of objects that only exist in memory. In order to send a PropertySet out of Siebel, and receive it back in, it has to be serialized, de-serialized, and potentially encoded to match transport constraints.
XML is usually used to transfer data between different systems, and Siebel provides methods to convert the PropertySet to XML, and back, however a more efficient method is to utilize Siebel's own PropertySet to text encoding format, or a utilise a custom JSON parsing engine in eScript.
This minimizes the size of the message, results in less IO, and ensures that request is sent as efficiently as possible.Anything that falls outside the OOTB parameters would then need to be managed by a specific, software-development driven process.
So what begins to develop is two sets of governance: the first being a business-driven governance catering to BAs, and a second governance covering developers when solutions cross a line of complexity.
Neil Myers gives the high-level overview of the Out-of-the-Box Change process. There are three levels of Change that may be modified to fit your business approval process: Standard, Normal and Emergency.
"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years.
I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Connect Consulting leverages over 25 years of combined laboratory, systems development, and customer service experience to deliver business solutions and services to laboratories in .
Considering 93 percent of companies file for bankruptcy within 12 months of a disaster that blocked access to their data for 10 days or more, planning for the worst is just smart business.
Choose the blue pill: define the required business process(if possible without compromising the OOTB data model and core principles) and make the OOTB tool fit the requirements by using a combination of configuration and .