Monday, September 22, 2014

Siebel Community Survey

If you had one place where you would easily find all the Siebel related content you needed, would you go there?


My fellow bloggers and friends Bruce Daley of the Siebel Observer and Richard Napier of On Demand Education and me have been putting our heads together and came up with something we think is a nice little idea.

The idea is to bundle the wealth of information about Siebel CRM like blog posts, news, job listings, events, trainings, webinars, example code or forums into one Siebel 'super' site.
Of course this is a big decision and we would not want to act without hearing the voice of the Siebel community.

So please take a minute and fill in the survey. You will be asked about what Siebel related content you're looking for on the web and how difficult you feel it to find.

have a nice day

@lex



Friday, September 19, 2014

Larry Ellison Appointed Executive Chairman and CTO of Oracle

Yesterday, Oracle announced that its board of directors has elected Larry Ellison - formerly CEO - to the position of Executive Chairman of Oracle's Board and appointed him the company's Chief Technology Officer. Oracle also announced that the function of CEO will be held by two senior executives.

Safra Catz will serve as CEO for manufacturing, finance, and legal functions while Mark Hurd will continue to oversee the sales, service and vertical industry global business units.



Read the full press release here

International news sites are abuzz with the story and focus on Mr. Ellison's 37-year long leadership from which he now steps down.

Larry Ellison, who turned 70 this year, announced: “Safra and Mark will now report to the Oracle Board rather than to me. All the other reporting relationships will remain unchanged. The three of us have been working well together for the last several years, and we plan to continue working together for the foreseeable future. Keeping this management team in place has always been a top priority of mine.”

have a nice day
@lex

Thursday, September 18, 2014

Oracle Fusion/Cloud Applications File Based Data Import Templates

When you are the proud owner of a new and shiny instance of Oracle Fusion Applications or Sales Cloud (formerly known as Fusion CRM), one of the first tasks you find yourself at is to load administrative and customer data from various sources.

For cloud instances, there are basically two options of importing (and/or exporting) data:

  • File based data import (FBDI)
  • Web Services

For mass/bulk data, file based import has many advantages over web services, which are typically chosen for message-based real-time integration with other systems.

In the remainder of this short article, we will focus on FBDI and point out how Oracle assists you with the sometimes tedious task of creating 'the right' import file. For this task, Oracle provides import templates. Let's see where and how we can get them:

My Oracle Support

A logical conclusion is to go to My Oracle Support and search for "fusion import template" (or "cloud import template"). One of the support docs you will then be able to locate easily is 1596128.1 (Oracle Sales Cloud File Import Template (Reference) and SupportingInstructions).

From this MOS document, you can download a generic Sales Cloud template that provides mappings for Sales Accounts, Opportunities, Leads and so forth.

Sales Cloud Import Template for Sales Accounts
In addition, the article contains links to instructions and exercise templates to get you up to speed quickly.

Oracle Enterprise Repository


For non-CRM applications, most of the documents (like Oracle Support Document 1593823.1) on My Oracle Support point to the Fusion Applications Enterprise Repository (OER).

The OER is the one-stop shop for all Fusion Applications related metadata and technical documents (aka 'assets'). Log in as guest to the OER and find file based import related assets by simply typing 'FBDI' in the search box and pressing ENTER.

Search results for FBDI in Oracle Enterprise Repository for Fusion Applications.
Of course you can limit your search results by using other search terms or types.

After selecting the asset of interest in the search results you can download instructions and templates in the Documentation tab.

have a nice day

@lex

Wednesday, September 17, 2014

The State of Siebel 2014 - Webinar on Sept. 23rd

Bruce Daley, chief editor of the Siebel Observer informs us that he will present a webinar on the State of Siebel 2014 on September 23rd 2014 at 11:00 AM EST.


Building on last year's successful State of Siebel address, this year's presentation helps Siebel customers and partners determine what different directions they can take their implementation and their careers in the light of Siebel Open UI. Is a Siebel Renaissance really taking place? Find out where you really stand in your career.

You can register for the webinar here

have a nice day

@lex

Tuesday, September 16, 2014

Siebel CRM Patchset 11 for Innovation Pack 2013 is Available

Another month, another patchset.

Last weekend, Oracle has released patchset 11 for Innovation Pack 2013 carrying the mystical number 8.1.1.11.11 (or 8.2.2.4.11).



A quick glance at the Readme document (aka Installation Guide) puts this patchset into the 'lots of bugfixes' category.

The list of bugs fixed spans across the entire product line with an emphasis on order management and Open UI (including the rather promising "Enhance JavaScript Performance for Open UI").

have a nice day

@lex


Monday, September 15, 2014

Oracle Addresses Competitor FUD

When talking to customers and partners in the Oracle Siebel CRM realm, a lot of discussions soon reach the point of having to address some fears, uncertainties and doubts (FUD) about Oracle's direction and support for the CRM system we all know and love.

Recently, Oracle has added some interesting public documents to their official Oracle.com Siebel Page in addition to webcasts and videos.

The Siebel Friends and Family letter is a very personal address to the Siebel community and lists the major assertions from Oracle's competitors and the rebuttal.


Click image to enlarge. Click here to read the full letter.
I will not reiterate or comment on individual positions of the letter but the overall feeling is that Oracle will keep investing in Siebel.

But Oracle has opened more channels to communicate their commitment to Siebel.
  • On oracle.com, a FAQ document has been made available that addresses the same concerns as the family letter.
  • The FAQ lists some recorded webcasts that will help customers, partners and Oracle employees understand the investments that Oracle is making.
  • There is a new Siebel CX YouTube channel where we can already find some interesting videos on Oracle's directions for Siebel CRM and CX.
  • Last but not least, Siebel Customer Success Stories give great insight into successful projects.
have a nice day

@lex

Thursday, September 11, 2014

What You Can 'Get' from Open UI (Literally)

Despite of the openly misleading heading, we are going to discuss some official Siebel Open UI stuff. I get quite a lot of questions from students who are seeking documentation for 'all properties that I can use in Get()' or similar.

So what we are talking about today is the presentation model's Get method, the values (i.e. the names of properties) you can pass to it and what you get in return. If you have made your way into the Siebel Open UI JavaScript realm, you sure came across this method somewhere. Accessing the so-called properties is a mandatory step in most customizations. Otherwise you wouldn't be able to introspect the current data set or access the control objects within an applet and so forth.

Before we start, let me mention that this is officially documented in the Configuring Siebel Open UI guide in bookshelf (exactly here). So why do we engage in the seemingly futile exercise of repeating the documentation? Well, let's see:

Assorted Properties (properties you will probably need to "get", explained):

GetControls

This one is the salt of the earth ;-). Not much would be going on without the GetControls property. This is what you get:


What the PM returns when you tell it to go get the GetControls property is an object that contains one object for each control that is currently exposed (not necessarily visible) in the applet. With that you can usually find the control you want, invoke one of the various control object methods etc.

GetRecordSet

Another essential property is the current record set. Its value is actually an array of objects - one for each record that is currently displayed by the applet. Note that this is not the full query result set but only the records the applet displays. For a list applet in 'less' mode, it will be 10 records for example.

Record set for the Opportunity List Applet

Also noteworthy is the fact that the values (see above screenshot) are formatted as per the client locale (German in the screenshot).

GetRawRecordSet

If you need the raw data, try the GetRawRecordSet property.This one didn't make it into official documentation (yet) but is very useful because its data is unformatted and also includes controls not currently displayed (e.g. list columns not shown) and the Id field.

Raw record set for the Opportunity List Applet
GetFullId

Want to apply some (jQuery) magic to an entire applet? Simply use the GetFullId property to get the value of the id attribute of the applet container element. An example return value is "S_A1". Now it's easy to create a jQuery selector and work your magic...

GetPlaceholder

If you want to access child elements of the applet, the GetPlaceholder property is a good way to retrieve the string that uniquely identifies the 'placeholder'. An example value is "s_1_l" (last character is a lowercase 'L') and it appears many times as a sub-string. See this screenshot.


The screenshot is the DOM elements (partially) for the Opportunity List Applet. On top (in red boxes) you see the full Id used for the parent elements. Below you see the placeholder id (blue boxes) in child elements such as the column headers.

GetBusComp

Just in case you want to fool around with the applet's BC, the GetBusComp property holds a reference to the applet's business component instance.

GetMode

This is an easy one, holding the current applet mode such as "Edit List".

GetName

The GetName property holds the repository name of the applet, just in case you need it.

GetListOfColumns

This one only works on list applets and returns a similar object as the GetControls property, albeit it contains only the currently visible columns.

GetNumRows

This is the size of the current record set and NOT the record count!

GetSelection

The GetSelection property is the index number of the currently active record in a list applet. For example when the fourth record in a list is selected, the number would be 3.

GetRowsSelectedArray

For list applets, the GetRowsSelectedArray property holds a funny array that looks like this:

[false, false, true, true, false, false, false, false, false, false]

As you can see, the third and fourth value are "true" indicating that the user has multi-selected these records in the list applet.

Summary

Take a bit of time to inspect the properties available from a presentation model and you will find some great information, essential data and good time-savers.

have a nice day

@lex

Monday, September 08, 2014

Back to School: Why You Should Learn Web Standards Now

In our 'Back to School' series we take the liberty of stepping back and taking a look at the big picture of Siebel Open UI.

Today, it's time to talk about the learning curve associated with Open UI.

Example of a learning curve. Source: Dries Buytaert

The first thing I did when Siebel Open UI became available to me (in fall 2012) and I realized that JavaScript, HTML, jQuery and CSS are its building blocks, was that I researched some good books on jQuery and CSS and ordered them. Personally, I have always learned faster from a book than from online tutorials. Those books have served me well and with 2 years of practice on my back I feel rather confident but not yet a full-grown web developer. But I can combine my Siebel developer skills with my newly acquired web developer skills quite effectively (so I hope).

Why did I think that JavaScript, HTML, jQuery and CSS are mandatory skills? Why didn't I have those skills already?

The answer to the first question is: Open UI is built using those web standards. Period.
The second question is personal and I for myself had some basic JavaScript, HTML and CSS skills but no clue about jQuery. So the answer is: Because I didn't have to learn it previously.

I believe the typical Siebel developer - even 'vets' with more than 10 years experience - are pretty blank when it comes to modern web standards. Oh of course, you write eScript (lots of it) so you know JavaScript. Well, honestly, you don't. A classic Siebel developer does not really need to use HTML5, CSS3 and jQuery magic every day, so why learn it?

Why should you start to learn now?

Because Siebel Open UI is here to stay. It is the user interface of choice simply because IE8 is running out of support (and Siebel ActiveX with it) or because you or your customer want to get future-proof (BYOD, mobile computing, etc...).

So if you haven't done so already, start browsing for books, tutorials, classes - whatever your preferred way of learning is - and start learning.

On the Open UI page, you will find some useful links for further reading (and learning).

have a nice day

@lex

Thursday, September 04, 2014

Effectively Rewriting Siebel Predefined Queries for Performance

The following is a cross-post from my co-worker Jeroen Burgers, who shares his experiences as an Oracle Implementation Advisor on his blog with the same name. In one of his recent articles, Jeroen picked up the topic of Siebel Predefined Queries (PDQ) and the impact they can have on performance. I am pleased that he agreed to publish his findings on Siebel Essentials.

***

Ever had to deal with PDQs which required to fetch based on date functions such as Year-to-date or Month-to-date (or any related…)?

I came across an implementation where a customer became very creative trying to resolve this. But the end-result was a terrible performance. Why? Because the PDQ could not be completely be executed as SQL.

A generic implementation flaw in queries written by Siebel configurators or business analysts: misusing calculated fields to be used in e.g. search Expressions and PDQs. It can (or will) hammer performance. A lot.

For example:

Provide me all the Opportunities YTD. This was the original PDQ:

"[Due Date] <= Today() AND JulianYear(Today())=JulianYear([Due Date])"

It does the job. But the SQL WHERE clause would only include the [Due Date] <= Today() clause. Assume you have some 15 years of Opportunities. It would fetch all records. Only in-memory the object manager would be able to further filter based on the condition JulianYear(Today())=JulianYear([Due Date]). You can imagine how resource-extensive this would be. Not to imagine the end-user performance perceived.

Similar constructions for Month-to-date and Quarter-to-date queries.

How to circumvent this?

Goal would be to have Profile Attributes available throughout the application which would carry values such as:

  • 1st day of the year - "01/01/2014"
  • last day of the year - "31/12/2014"
  • 1st day of the month: - "01/08/2014"
  • last day of the month: - "31/08/2014"
  • Well, you get the point.

To realize this you can easily configure a number of fields on the “Personalization Profile” business components. The nice feature of this business component is that all fields are loaded for every session immediately after login. And those fields - well - become Profile Attributes. Typically the “Personalization Profile” business component consist out fields which can be joined toward the Party record for the user logging in (can be an Employee, but can be also a Portal user). But you can also create Calculated Fields. And that will be of great help. Consider the Calculated Fields below (you can grab the complete.xls here).

Click to enlarge.

The “green” ones are the interesting profile attributes. The white ones are just supporting field to make the calculated fields somewhat readable.

Now let’s rewrite the PDQ from the example.

"[Due Date] <= Today() AND JulianYear(Today())=JulianYear([Due Date])"

The optimized version would become:

[Due Date] > GetProfileAttr("Year Start") AND [Due Date]) < Today()

The optimized PDQ would translate completely into a more enjoyable SQL WHERE clause. It will no longer have to fetch unnecessary data. Let the database take care of this. And of course ensure an appropriate index exist for an efficient execution plan :-)

This article was originally published on the Oracle Implementation Advisor blog by Jeroen Burgers.

***

have a nice day

@lex

Monday, September 01, 2014

Back to School: What Open UI Does for You - And What Not

With the upcoming Siebel Innovation Pack 2014, the Siebel community is rightfully excited about Siebel Open UI. IP 2014 will be the fourth release (after 8.1.1.9 two years ago, 8.1.1.10 and IP 2013) and once it is generally available, there will be a lot of exciting things to write about.

Siebel Open UI - now in 3D. Coming to a browser near you soon ;-)
But here we are, still with IP 2013 and many customers contemplating if they should do 'the switch' from traditional Siebel web clients to the new Redeemer UI. In our 'back to school' series we also contemplate today and nurse some deep thoughts about what Open UI could do for us and what we should better not expect.

What Open UI does for you

There are many non-arguable points for Open UI such as:

Open UI gives you browser independency: Un-chain your project from IE8 and ActiveX lock-in. The prospect of accessing all your Siebel data in any browser on any device is a truly compelling argument.

It makes your applications rich: Well, if we don't get rich with Siebel, our applications do with Open UI. Siebel Open UI is built on modern web standards like HTML5, JavaScript and CSS3. So if your browser can do it, you can do it.

Open UI provides an extensible browser-side framework: You no longer have to feel bad for writing browser script. Siebel Open UI provides a JavaScript API and multi-tier architecture that guarantees goosebumps ;-)

Open UI can rejuvenate your project: Siebel Open UI has a rejuvenating effect on the Siebel family. Instead of desperately 'hanging on' you can now stay on the scene as a project lead or developer. End users (mostly) will love Open UI, if you manage their expectations right from day one (see below).

...and if I forgot anything, here's Oracle's official data sheet. And of course, your comments are welcome as always.

What Open UI does NOT do for you


Open UI does NOT teach you good manners: That you have to do yourself. What I have seen often is that when Open UI is introduced in a project, everyone gets so excited that all 'good manners' are thrown overboard. Business process analysis? Requirements mapping? Design? Source control? Forget it, we've got Open UI, so we do all the fancy stuff because we can do it. That of course is a recipe for disaster.

It does NOT make you a web developer overnight: With Open UI, the typical Siebel developer can be easily overwhelmed with all the web technologies such as JavaScript, HTML and CSS. Oh, you wrote eScript for the last ten years? Jolly good but sorry, that does not make you a web developer even if you argue that JavaScript is based on the same standard (ECMA) as eScript. Most of us will have to start learning, not only the Open UI API but also web standards. And it's better to start learning today than tomorrow.

It does NOT grant you the 'license to code': While Open UI provides us with a three-tier browser-side architecture and a JavaScript API, you should still think twice before you code. Any line of code that you add to your project is likely to make your life harder during troubleshooting, debugging, maintenance, monitoring and upgrades. That does not change just because you now write code in a friggin cool JavaScript IDE.

Open UI will NOT pardon you for things you did in the past: If you hacked your way through browser scripting and ActiveX in the old world of High or Standard Interactivity, you're gonna have a bad time in Open UI. But even if you obeyed the rules, expect some things to break (see next points).

It will NOT manage your expectations (nor your customer's): You still have to be realistic. Open UI relies heavily on JavaScript, so choose your browser wisely and do not expect your heavily customized Open UI client to perform equally fast on every device and browser combination. Do not expect that you just 'turn the key' and your Siebel application that you customized over the past 10 years will 'magically' become a modern web application. Migrating all your customizations (especially browser script) to Open UI can be hard work. The more you stayed on the standard path and away from (browser) scripting, the faster your migration will be.

Siebel Open UI will NOT be 100% compliant with the old world: The HI and SI clients have had their time. Personally, I still consider the HI client (from 7.7 onwards) to be one of the best enterprise app UIs in existence (I have used plenty of other 'enterprise apps', believe me). But times are a'changin' and we have to leave some dear acquaintances behind (right mouse click, anyone?). Oracle does a great job to migrate most of the HI goodies (iHelp is planned for IP 2014 for example) to Open UI but you will fare better if you do not expect a 100% transition.

...anything I forgot? Please find the comments.

have a nice day

@lex