Siebel Open UI – Webcam integration

This question got raised by a consumer goods customer I recently worked with: “how could we integrate the webcam on our Windows Tablet PCs to point & click and generate attachments?”. The consumer goods business can be characterized in that sense that Siebel customers have traditionally (and pretty much continue to do so) deployed on Siebel Remote clients. Reason is their sales reps need to have full disconnected functionality and the data which goes along. These implementations traditionally tend to run on Windows Tablet PCs, also quite specific for this industry. Sales reps need the ability to easily take pictures and store them against the visited account or visit itself for matters of retail audits. So I set my mind to think and come to a working solution with just a bit of code.

First the teaser…

A bit Googling revealed a nice plug-in called WebcamJS and initial tests plus reading the documentation stemmed positive.

So, next step. Integrate it within Open UI. I took the challenge to use a IP14 pre-release. The WebcamJS code comes with a stand-alone JScript library.

I took the vanilla “Account Attachment View” as a starting point and added a “no-menu applet”. Basically a regular list applet but with particular applet web template.

AppletWT

Added the applet to the existing Account Attachment view. Nothing fancy.

ViewWT

Next I created an empty shell physical renderer using Duncan’s code generator, called “DesktopWebcamPR”. I associated both my physical renderer as well as the “webcam.js” to my “Webcam JS Applet” I just created. This ensures that the webcam.js will be downloaded alongside the DesktopWebcamPR physical renderer.

MFAdmin

Next, I put the necessary code in the DesktopWebcamPR. I added three <div> elements to hold the webcam canvas, the result and a bunch of buttons (#mycam, #myresult, #buttons). I added three buttons to Take a snapshot, Clear the snapshot and Save the snapshot. Each button invoking its own function, respectively take_snapshot(), clear_snapshot() and save_snapshot().

Initializing the webcam is just a matter of a single line:

Webcam.attach("#mycam");

WebcamPR1

Next, implementation of the three functions.

To generate a snapshot it requires just a few lines:

function take_snapshot() {
Webcam.snap( function(data_uri) {
document.getElementById('myresult').innerHTML = '<img src="'+data_uri+'"/>';
});
}

To clear the snapshot I choose a simplistic approach:

function clear_snapshot() {
$("#myresult").find("img").attr("src", "")
}

To save the snapshot obviously required a bit more work. I considered couple of options. One was to actually invoke a Webservice, the other to invoke a server-side business service. A Webservice could also be invoked locally on a Mobile Web Client, and would be kind of transparent when working with a Web Client to invoke the service against the EAI OM. Since the data is already Base64 it would make sense and we would not need a single line of eScript. Anyways, I opted for the quickest which would be an eScripted business service “ORCL Create Attachment”.

It does a few things:

1) It generates a SiebelMessage based on the OOTB “CRMDesktopAccountIO” Integration object
2) It retrieves the next available ROW_ID to act as an unique file name for the attachment
3) It adds the Base64 payload
4) It invokes the EAI Siebel Adapter to Upsert the SiebelMessage

CreateAttachmentBS2
And well… that more or less is what is need to make this to work. Obviously, the solution has some rough edges but serves its purpose.

You can grab the necessary code here.

- Jeroen

Using BI Publisher as low-cost approach to generate correspondence from Siebel

Siebel Correspondence, technologically a dinosaur solution. Running Microsoft Word as single-threaded proces on a Windows-based Siebel Server… Well, it still works and there are plenty of implementations still using this good-old approach. But the side-effects are there. Scalability (only by adding servers, regardless of being small & virtual), little ability to include logic in the templates and sensitive to incidents such as hanging Word instances to name a few limitations. Still, use cases are still there.

Of course Oracle has alternatives in this area too. Our flag-ship product is Oracle Documaker, which came along with the aquisition of Skywire back in 2008. A full-fledged solution with enterprise capabilities including batch and interactive generation of documents, a full IDE called “Documaker Studio” with template design capabilities driven by business users (really), workflow driven and scalable build of Web logic server. But this post is not about Documaker.

I wanted to highlight a recent customer web cast:

Innovations with Siebel Correspondence for Customer Service at New York Justice Center

BIPCorr

For those who are not familiar with BI Publisher, this is an application allowing to generate reports, and is available as a standalone product but as well integrated in products such as OBIEE and Siebel. BI Publisher can work with different data feeds, but the integration of BI Publisher in Siebel is purely based on Web services.

Funny fact: BI Publisher was long ago sold as XML Publisher. Similar to Documaker it works with an XSD to map data elements into a report document, where Microsoft Word is the “editing tool” or IDE using a BI Publisher plug-in to support mapping the data. Under the hood, in Word you do no generate a true Word document but rather an XSL-FO (XSL Formatting Objects) template. Consider Word as just the IDE which was chosen in the past. BI Publisher can output in different output format including pdf, rtf, xls and ppt.

Where writing typical “report” template can be pretty straight-forward. Developing a true correspondence letter type-of-template though could easily become more complex. Think of hiding paragraphs or making distinctions based on recipients or recipient-related attributes. The cool thing is that in your XSD you can essentially provide all relevant data available in Siebel, as long as you can relate it to the business object on which you base your XSD (Integration object). And with XSL you have a lot of flexibility at your fingertips, but you need to have some level of comfort in writing XSL :-)

So… defining a BI Publisher template document can easily become more an IT-task than a task for a business-type of user, because of the need to resort to custom XSL instructions / logic.

What Deloitte did for the New York State Justice Center was leveraging the Siebel Reporting business service to on-demand generate a Word document and allow post-editing. This is a nice alternative for traditional Siebel Correpondence and a fairly low-cost solution in terms of licensing too. But the limitations should be kept in mind with regards to template development and management in general. There is no such thing as a multi-user IDE with in-build version control, approval workflow and more of those goodies you would get with a solution like Documaker.

- Jeroen

Siebel Marketing + Eloqua (Oracle Marketing Cloud) – an integration whitepaper

 omc

Published on My Oracle Support – Siebel Marketing – Eloqua Integration Guide (Doc ID 1922718.1)

Follow this link for the PDF Siebel Marketing – Eloqua Integration Guide.

Oracle’s acquisition of Eloqua (“Oracle B2B Cross-Channel Marketing”) presents Oracle customers, including those with Oracle Siebel deployments, with a unique opportunity to leverage Oracle B2B Cross-Channel Marketing functionality with their existing Oracle Siebel Marketing functionality.

Oracle B2B Cross-Channel Marketing (formerly Eloqua) is a part of the Oracle Marketing Cloud Suite. As an industry leading cloud marketing solution, Oracle B2B Cross-Channel Marketing complements the robust on premise functionality provided by Oracle Siebel Marketing.

By leveraging both solutions in an integrated fashion, customers can optimize their marketing processes to take advantage of Oracle B2B Cross-Channel Marketing’s advanced digital marketing capabilities and ease of use while continuing to leverage Oracle Siebel as the master marketing application for segmentation, planning, analytics and CRM integration.