Showing posts with label today I learned. Show all posts
Showing posts with label today I learned. Show all posts

Monday, November 12, 2018

The awesome EAI Transaction Service

 

After I finally got to leave the ‘Siebel ecosystem’, I had to return as that was indeed my core competency. And because there are places were Siebel is still awesome.

Like, the concept of a Webservice transaction in Siebel session. I am yet to see other systems implement it.

Siebel provides an awesome business service called ‘EAI Transaction Service’.  It has two methods , BeginTransaction, and EndTransaction. Like the name denotes, you mark the beginning of the your webservice transaction , and then proceed to use ‘EAI Siebel Adapter’ to make your updates, and finally commit everyting with the EndTransaction method.

Nothing gets committed to the system until you End the transaction successfully.

On commit, the last updated date and time on the objects is correctly preserved.

Now, the truly awesome thing. Although the documentation mentions use of Siebel EAI services, any update can be done in the transaction, and they all will be treated the same way.

It works for scripting !

It works of Workflow updates as well.

So if you use a script to update a record, that update also will be commited only if the EndTransaction method is invoked successfully.

 

Otherwise, everything gets rolled back.

In other words, you don’t have to be doing EAI work in Siebel to use this BS. You can use it wherever you need to rollback changes in case something does not work out well. Doc ID 1293943.1

 

 

If only we could rollback our own mistakes in life like that .

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)

Friday, August 26, 2016

Linux is 25 today !

 

25 years ago , Linus Torvalds let the world know of his pet project for a new operating system. And started the revolution.

image

Wednesday, July 27, 2016

BIP: Report Usernames

 

There was a simple requirement to print the login name of the user running a BIPublisher report on that report itself. This got me hunting. There are tonnes of ways to get the login name from an oracle database, but because of the way BIP uses the DB and runs the SQL, not all of those ways would give the right answers. cleartext.blogspot.com

Simplest way, use the  <?$XDO_USER_NAME?>  parameter n your template.

But my requirement was to enforce data security on the report, to ensure the logged in user sees only the records he should see. This meant fetching the username at the SQL itself.

One sure shot way to do this is to use :XDO_USER_NAME in the SQL. This will fetch the userid of the logged in user. cleartext.blogspot.com

And there is one more way.

Use the sys_context ('userenv','CLIENT_IDENTIFIER') CLIENT_IDENTIFIER function in the SQL. cleartext.blogspot.com

image

 

To get all the sys_context parameters, this SQL can be used. cleartext.blogspot.com

select
  sys_context ('userenv','ACTION') ACTION,
  sys_context ('userenv','AUDITED_CURSORID') AUDITED_CURSORID,
  sys_context ('userenv','AUTHENTICATED_IDENTITY') AUTHENTICATED_IDENTITY,
  sys_context ('userenv','AUTHENTICATION_DATA') AUTHENTICATION_DATA,
  sys_context ('userenv','AUTHENTICATION_METHOD') AUTHENTICATION_METHOD,
  sys_context ('userenv','BG_JOB_ID') BG_JOB_ID,
  sys_context ('userenv','CLIENT_IDENTIFIER') CLIENT_IDENTIFIER,
  sys_context ('userenv','CLIENT_INFO') CLIENT_INFO,
  sys_context ('userenv','CURRENT_BIND') CURRENT_BIND,
  sys_context ('userenv','CURRENT_EDITION_ID') CURRENT_EDITION_ID,
  sys_context ('userenv','CURRENT_EDITION_NAME') CURRENT_EDITION_NAME,
  sys_context ('userenv','CURRENT_SCHEMA') CURRENT_SCHEMA,
  sys_context ('userenv','CURRENT_SCHEMAID') CURRENT_SCHEMAID,
  sys_context ('userenv','CURRENT_SQL') CURRENT_SQL,
  sys_context ('userenv','CURRENT_SQLn') CURRENT_SQLn,
  sys_context ('userenv','CURRENT_SQL_LENGTH') CURRENT_SQL_LENGTH,
  sys_context ('userenv','CURRENT_USER') CURRENT_USER,
  sys_context ('userenv','CURRENT_USERID') CURRENT_USERID,
  sys_context ('userenv','DATABASE_ROLE') DATABASE_ROLE,
  sys_context ('userenv','DB_DOMAIN') DB_DOMAIN,
  sys_context ('userenv','DB_NAME') DB_NAME,
  sys_context ('userenv','DB_UNIQUE_NAME') DB_UNIQUE_NAME,
  sys_context ('userenv','DBLINK_INFO') DBLINK_INFO,
  sys_context ('userenv','ENTRYID') ENTRYID,
  sys_context ('userenv','ENTERPRISE_IDENTITY') ENTERPRISE_IDENTITY,
  sys_context ('userenv','FG_JOB_ID') FG_JOB_ID,
  sys_context ('userenv','GLOBAL_CONTEXT_MEMORY') GLOBAL_CONTEXT_MEMORY,
  sys_context ('userenv','GLOBAL_UID') GLOBAL_UID,
  sys_context ('userenv','HOST') HOST,
  sys_context ('userenv','IDENTIFICATION_TYPE') IDENTIFICATION_TYPE,
  sys_context ('userenv','INSTANCE') INSTANCE,
  sys_context ('userenv','INSTANCE_NAME') INSTANCE_NAME,  cleartext.blogspot.com
  sys_context ('userenv','IP_ADDRESS') IP_ADDRESS,
  sys_context ('userenv','ISDBA') ISDBA,
  sys_context ('userenv','LANG') LANG,
  sys_context ('userenv','LANGUAGE') LANGUAGE,
  sys_context ('userenv','MODULE') MODULE,
  sys_context ('userenv','NETWORK_PROTOCOL') NETWORK_PROTOCOL,
  sys_context ('userenv','NLS_CALENDAR') NLS_CALENDAR,
  sys_context ('userenv','NLS_CURRENCY') NLS_CURRENCY,
  sys_context ('userenv','NLS_DATE_FORMAT') NLS_DATE_FORMAT,
  sys_context ('userenv','NLS_DATE_LANGUAGE') NLS_DATE_LANGUAGE,
  sys_context ('userenv','NLS_SORT') NLS_SORT,
  sys_context ('userenv','NLS_TERRITORY') NLS_TERRITORY,
  sys_context ('userenv','OS_USER') OS_USER,
  sys_context ('userenv','POLICY_INVOKER') POLICY_INVOKER,
  sys_context ('userenv','PROXY_ENTERPRISE_IDENTITY') PROXY_ENTERPRISE_IDENTITY,
  sys_context ('userenv','PROXY_USER') PROXY_USER,
  sys_context ('userenv','PROXY_USERID') PROXY_USERID,
  sys_context ('userenv','SERVER_HOST') SERVER_HOST,
  sys_context ('userenv','SERVICE_NAME') SERVICE_NAME,
  sys_context ('userenv','SESSION_EDITION_ID') SESSION_EDITION_ID,
  sys_context ('userenv','SESSION_EDITION_NAME') SESSION_EDITION_NAME,
  sys_context ('userenv','SESSION_USER') SESSION_USER,
  sys_context ('userenv','SESSION_USERID') SESSION_USERID,
  sys_context ('userenv','SESSIONID') SESSIONID,
  sys_context ('userenv','SID') SID,
  sys_context ('userenv','STATEMENTID') STATEMENTID, cleartext.blogspot.com
  sys_context ('userenv','TERMINAL') TERMINAL
from dual
     
Try running this on Oracle Live SQL

Monday, October 26, 2015

OpenUI lead to other frameworks from competitors

 

Three years ago people were talking about the end of the world, which know seems like a joke. But people in the Siebel business were talking more about the advent of OpenUI, and how the new UI layer will transform the Siebel landscape. Well, it was a case of too little to late. Siebel projects are now at their lowest ebb. Most Indian IT companies have changed their business models to either discontinue their Siebel practice, or to diminish and merge them with other CRM practices. There are upgrade and support projects , but greenfield implementation projects are the rarest lot.

But it turns out Oracle's launching of the ridiculously-difficult-to-implement OpenUI lead to similar offerings from other players in the industry.  Today I learnt about how SalesForcedotCom released their lightning system to allow for better UI designs for mobile and other portable form factors. Lightning uses opensource technologies like javascript ,css and HTML5, and the look and feel looks eerily similar to OpenUI.

tmpDE43

OpenUI also lead SAP to release a new UI layer for their systems, which they are calling OpenUI5 ! Same open standards and direct coding system, I watched a few videos on SAP's OpenUI5, and the framework requires tonnes of coding to get the layout up and running.

tmp120

SAP has launchen OpenUI5 as a repo on github, and are welcoming contributions from the public to take ti forward .Both these frameworks talk about being responsive and faster than their earlier UIs, and require tonnes of lines of code to bring up even the simplest UIs, like Siebel OpenUI. Clearly Siebel is leading the innovation in this regard, and its good to see others picking up.