Wednesday, January 24, 2018

Siebel IP 18 - 2018 SOD

Oracle is going ahead and staying with Siebel. For now. They have just released the statement of direction for IP 2018.

At a high level the document describes features and improvements:

  • Business agility - Siebel Composer enhancements for Web Tools and Parallel Development.
  • Enhanced deployment and migration options.
  • High Availability architecture with clustering support for the new Gateway
  • Integration improvement via enhancements to the REST API
  • Customer experience improvements with Open UI, including intuitive Dashboards
  • Industry innovations - Product Configurator, cross-Industry User Dashboards, Oracle Policy Automation, Real Time Scheduler and Siebel UCM improvements.
  • Autonomous CRM - Business Process Discoverer, Automated iHelp and Test Automation improvements

Access the Statement of Direction:

Innovation Pack 2018 (18.0) for Siebel CRM Statement of Direction / Planned Features (Doc ID 2328111.1)

Monday, November 6, 2017

Is it over ?


Today I came across a rather brave article predicting the end of cloud computing. It is a bold statement to make, but the author has clearly backed up his claim with facts. The biggest problem being any cloud system is a sitting duck when it comes to security. Interesting read.

image

Tuesday, April 4, 2017

OpenUI , I get it now

 

After years of questioning it , I am starting to understand the reason why people are crazy about OpenUI.  For decades, the crude activex based frontend was a big pain area in Siebel. Customers were always using an older, outdated version of Internet Explorer for Siebel CRM, because the latest version never supported it. There was also that crazy 32bit, 64bit IE version problem.

So when the move to a open standards based frontend was announced, it was welcomed with open arms. No more IE. Any browser, any device. But  then started the crazy ideas, crazy configurations, outrageous themes. People started implementing all their business processes purely in OpenUI ! I have stayed away fro this kind of work, for a long time.

But for the past 6 months, I have been working on pure OpenUI requirements. For integration. Yes, Siebel EAI integrations triggered from OpenUI ! Only reason I agreed to it, was because that was exactly what my customer wanted. And the challenge was too sweet to ignore. Javascript is a horrible language, but with OpenUI, it opens up possibilites endless.  Whatever restriciton Siebel puts up to you, can be bypassed in Javascript. I was able to implement a purely asynchronous VBC like applet in OpenUI, something which is not possible using traditional Siebel code.

But OpenUI works poses its own challenges. Unlike tools, there is no object locking system, so better have some kind of CVS in place  if you have multiple people working on OpeUI files. Also, test in every browser. Do not assume that IE or Edge will honour the code the same way Firefox does. Test your code specially with the  Show More button on the applet (tip),  because Show More has lots of issues in OpenUI.

And finally, Siebel still provides the best architecture for a CRM system. Try to implement whatever you can OOB, and OpenUI should be the last option. Unless you want to get into maintenance hell.

 

Wednesday, March 22, 2017

On a Learning Spree

After almost a decade of teaching stuff, I am now on a learning spree. Here is shot of my training calendar.

 

 

 

Technology has clearly grown exponentially over the years.  Makes Siebel look like a dinosaur.

 

 

Friday, December 30, 2016

Back to Siebel


After about 2 years of getting lost in various Oracle clouds, I am finally back to the Siebel game. Right on the latest version, Siebel IP 2016. Open UI. Yup, that’s there. And on a telecom project with tonnes of EAI integration and Order Management. And now I truly see why Siebel cannot be fully replaced. Until a worthy contender and full cloud replacement comes in, these kind of projects can only be implemented in Siebel.

I’ve come to understand that Oracle Cloud is a joke. At least for the time being, it can only be used for medium sized companies who have standard sales and service business processes. The amount of extensibility available is very less. And although one can write their own customization on Oracle PaaS and Java Clouds, that kind of beats the purpose anyway. The whole point of modern cloud is to reduce the amount of code written.

I’m hoping to ride out this last wave of Siebel projects before I too am forced to move to the cloud for good. 

For the time being, it’s good to be back. Happy New Year !




Thursday, December 1, 2016

TCC: Date Manipulation

 

 

 

 

cleartext.blogspot.com

<quer:projection id="idEEO2bDisabledPersonAnswerNo" alias="CorrectedStartDate">
    <!--quer:customFunction name="TO_CHAR"-->
    <quer:query projectedClass="Location" alias="Corr_Start_Dt">
        <quer:projections>
            <quer:projection>
                <quer:add>
                    <quer:field ownerQuery="MainQuery" path="Applications,Offers,ActualStartDate"/>cleartext.blogspot.com
                    <quer:divide>
                        <quer:add>
                            <quer:field path="NetworkLocation,TimeZone,Offset"/>
                            <quer:multiply>
                                <!---->
                                <quer:add>
                                    <quer:customFunction name="TO_NUMBER">
                                        <quer:customFunction name="SUBSTR">
                                            <quer:customFunction name="TZ_OFFSET">
                                                <quer:customFunction name="TO_CHAR">
                                                    <quer:field ownerQuery="MainQuery" path="Applications,Offers,ActualStartDate"/>
                                                    <quer:string>TZR</quer:string>
                                                </quer:customFunction>
                                            </quer:customFunction>
                                            <quer:integer>1</quer:integer>
                                            <quer:integer>3</quer:integer>
                                        </quer:customFunction>
                                    </quer:customFunction>
                                    <quer:divide>
                                        <quer:customFunction name="TO_NUMBER">cleartext.blogspot.com
                                            <quer:customFunction name="SUBSTR">
                                                <quer:customFunction name="TZ_OFFSET">
                                                    <quer:customFunction name="TO_CHAR">
                                                        <quer:field ownerQuery="MainQuery" path="Applications,Offers,ActualStartDate"/>
                                                        <quer:string>TZR</quer:string>
                                                    </quer:customFunction>
                                                </quer:customFunction>
                                                <quer:integer>5</quer:integer>
                                                <quer:integer>2</quer:integer>
                                            </quer:customFunction>
                                        </quer:customFunction>
                                        <quer:integer>60</quer:integer>cleartext.blogspot.com
                                    </quer:divide>
                                </quer:add>
                                <quer:integer>-1</quer:integer>
                                <!---->
                            </quer:multiply>
                        </quer:add>
                        <quer:integer>24</quer:integer>
                    </quer:divide>
                </quer:add>
            </quer:projection>
        </quer:projections>
        <quer:filterings>
            <quer:filtering>
                <quer:equal>
                    <quer:field path="Code"/>cleartext.blogspot.com
                    <quer:field ownerQuery="MainQuery" path="Applications,Requisition,JobInformation,PrimaryLocation,Location.Code"/>
                </quer:equal>
            </quer:filtering>
        </quer:filterings>
    </quer:query>
    <!--quer:string>yyyy-MM-dd hh:mm:ss</quer:string></quer:customFunction-->
</quer:projection>

cleartext.blogspot.com

Monday, September 19, 2016

Too Much Javascript

 

I can't understand this trend. After years of focus and interest in compiled languages and binary executables, now everyone is focussed  on what can be done in the humble browser. And its programming language, Javascript. And that's where the action is. Everyday I hear about new javascript based libraries and frameworks. And the language syntax is getting worse. With new conventions of invoking script and processing data, its almost as if they are re-inventing multiple wheels again. There are new graphing and charting libraries, and it is now possible to build entire standalone desktop applications running on javascript. It seems to be everyone's favourite, enjoying a position once occupied by Java. I can straightly see the advantages of moving your UI code to Javascript.

image

  • It is truly portable. Runs in all modern browsers, even on smartphones and tablets.
  • Flash and Java, the previous leaders in browser programming, are no longer supported by newer browsers. Maybe due to security vulnerabitlies in them.
  • None of that bytecode compilation you see in Java class files.
  • The source stays with you, so it is still modifyable.
  • It is free. Truly free. It is open source.

But I can't help noticing that it greatly increases the amount of data being downloaded into the final browser. And takes up a lot of bandwidth. Sure, many of those applications use require.js and files are loaded only conditionally. But still, they need to be downloaded. And the humongous task of executing the program is now transferred from the server to the end-user's browser. Which is definitely good for the server, lesser load balancing to take care of. But on many sites, I can actually feel the browser slowing down due to the additional processing power it needs.

I like browsing light weight. I sometimes turn off javascript completely on some news sites, I feel it gives a much faster rendering of the site, as none of those additional garbage is loaded and run. The URL links still work, because those are in the HTML.

But the bigger problem is see is un-regulated development. Everyone is writing their own libraries and packages. First it was just google and facebook. Now even new players like oracle has entered the race and are giving out their own libraries. And the tutorials of all their libraries does the same thing: render graphs and charts in the browser.

Too many tools. Too much configuration. That is the problem. Javascript experts have written better about these problems, so I will leave that there.

The bigger problem I see lines of code. After programming for more than 20 years now, I have learned to understand is that the real challenge (and fun) in programming is to achieve maximum tasks writing as little code as possible. You don't have to be Phd to understand that it is easier to debug and test a 10 line program than a 100 line program. Every extra line added to the codebase increases the difficulty in debugging it at a later stage. Not to mention the huge effort of merging code written by large teams during checkin. But all these javascript based boilerplates, linters and generators don't solve this problem, they just make it worse.

A library should be simple enough to add it into ones current code base, and the developer should not have to know how it is implemented to use it. All the real work must be transferred into the library being invoked, leaving the base code base minimal. Minimal. That should be the keyword.

Or there should be a way for RAD tools. A system of abstractions which will hide the complexity beneath and generate highly efficient code.

When I started work in Siebel, I used to hate the idea of Enterprise Application development. But I absolutely admired the way Siebel had built a layer of abstraction and user properties, and through them, indirectly invoked C++ code to achieve its functionality. Sure there is one extra layer in this packaged application method, but the final code which the consultant/developer writes is very minimal. I have seen entire projects implemented with a total of less than 1000 lines of escript code in it.

I was looking into the new Oracle JET library for javascript application development which was created by Oracle and it is completely bonkers. All they have done is to re-implement a couple of already perfecte ideas and re-do it in their own way. A lot of the final code looks exactly the same as from Angular or React. I have no idea why any enterprise customer would decided to writes thousands of lines of javascript code just to get charts rendered in the browser, when other Oracle delivered  packaged and cloud applications can do the same without ANY lines of code.

Hope somebody sits up and takes notice.