Monday, August 31, 2009

Metalink3 is now My Oracle Support

As indicated by many fellow bloggers such as Gasparotto from the Peoplesoft department, the Oracle support portal for application customers (Peoplesoft, JDEdwards, Siebel and Hyperion) has transitioned to My Oracle Support last weekend.


And indeed, the URL http://metalink3.oracle.com is now redirected to https://support.oracle.com.

As many of you are aware (and this has been a source of sceptical comments ever since the official announcement), My Oracle Support requires Adobe Flash Player 9 or above.

Please use the comments form to tell others about your experience with the new portal.

Have a nice day

@lex

Sunday, August 30, 2009

New Vendor for Oracle Certification

As announced on the Oracle Certification blog, Oracle will switch vendors for certification testing as per Sept., 25th. The idendity of the new vendor has yet to be officially revealed by Oracle.

This might be of interest for all those among you, who have been certified at a Prometric test center (the soon to be former test vendor) or who plan to get certified in the near future.

If this is the case, please review Paul Sorensen's post on the Oracle Certification blog.

BTW, the Siebel CRM and Oracle BI EE (formerly Siebel Analytics) certification exam information is still available:

have a nice day

@lex

Friday, August 28, 2009

OBI EE Repository Merge

Recently, I joined some discussions about the merge functionality in the Oracle BI EE Administration Tool.

There are many different opinions on the merge utility, however it is the only official way to combine different development paths in one single rpd file.


I demonstrated the functionality to a client who develops BI applications for various small customers and needs to maintain them over the release cycle. They were pleased with the result.

I also pointed them to the various well-written tutorials and blog resources on the internet and would like to repeat that effort in this post.

So if you seek information on how the Oracle BI EE merge works, you could start here:

OTN Tutorial on merging Oracle BI EE repositories

Venkat's post on merging Oracle BI EE repositories (thanks Venkat)

have a nice merge

@lex

Monday, August 24, 2009

How Siebel Search found me

To be honest, I was able to keep myself out of reach of Siebel search engine integration over the past years. However, I have been monitoring the evolution of how third party search engines are integrated with Siebel CRM, be it Fulcrum/Hummingbird, FAST! or - logical result of the acquisition of Siebel by Oracle - Oracle Secure Enterprise Search (OSES).

Quite recently, I took a plunge into Siebel Search because I had to guide course delegates through installation, setup and administration - topics which the native Siebel 8.0 New Features course does not cover in practice. I decided to use Siebel CRM 8.1.1 together with the only supported search engine - OSES (support for FAST! has been discontinued with version 8.1.1).

So I fired up my virtual Siebel sandpit machine and while it was coughing to life, I swiftly downloaded the OSES installer.

Installing OSES is not a really big deal, the only drawback for me was that the OSES installer brings his own Oracle database instance (10g that is) and so I ended up with two Oracle database engines (11g and 10g) on my poor little VM. Well, setting windows services to manual startup is also not very challenging ;-).

OSES of course is a planet of its own, so it's better to read the fabulous manual (rtfm) and get a bit acquainted with the architecture and underlying application technology.

Speaking of RTFM, I had a good read on the Siebel Search Administration Guide which leads you through the setup process.

Here are some notes I scribbled down while gearing up Siebel Search and the further intention of this post is to share my experience with the loyal readership community.

  1. Ensure that you do your homework and plan your infrastructure. Especially if you plan to have disparate servers (Siebel Server, Siebel File System, OSES).

  2. OSES crawls Siebel data by parsing rss feeds(!) that are created by the Search Data Processor business service in a Siebel File System subdirectory.

    RSS feed generated for the OSES crawler, click to enlarge

    As I was in a somewhat playful mood, I tried (successfully) to invoke the Search Data Processor business service directly, subsequently generating rss files. I also loaded the files into an RSS reader but they are not really in best format for viewing outside of Siebel.
    However, it's an interesting fact that Siebel is providing a business service to create RSS feeds.

  3. The default protocol to access the rss feeds is ftp, but you can also modify the RSS_Crawler_Configuration.xml file to support directory access in case you have concerns setting up ftp.

  4. To read the security information, OSES calls an inbound Siebel web service (SearchSecurityService), so the EAI Object Manager must be online on the Siebel Server. If the component is not online, end users do not see any search results.

  5. The setup steps for OSES differ between Siebel 8.0 and 8.1. If you need to setup OSES integration for Siebel 8.0, here is a link to the bookshelf guide that actually contains the steps.

  6. When setting up file system crawling, ensure that the file system folder is reachable from the search server. Files are temporarily extracted to the SSC folder for crawling and indexing. And, yes the word 'localhost' must be included in the location string but can be followed by a network share.
Have a nice search

@lex

Thursday, August 20, 2009

Oracle BI Server NQS Procedures

Sometimes the attentive Oracle BI administrator/developer stumbles across some hidden functionality of a product.

So when you read the following, please bear in mind that everything below this line is

A TOTALLY UNSUPPORTED FEATURE!

I leave it up to your imagination how useful the following procedures built into the Oracle BI Server's SQL engine might prove for e.g. repository documentation etc.

call NQSGetSQLCustomTables('SubjectArea','Owner','TableName','')
call NQSGetSQLCustomColumns('SubjectArea','Owner','TableName','ColumnName')
call NQSGetSQLCatalogs()
call NQSGetLevelDrillability('LogicalSQL')

I pick the NQSGetSQLCustomColumns procedure and you can try this and other stuff by using one of the great ODBC tools of the younger past, the Oracle BI ODBC Client.

What I did was launch the Oracle BI ODBC Client and log on to the DSN for the Oracle BI Server.

Then I issued the following SQL statement

call NQSGetSQLCustomColumns('%','%','%','%')

which resulted in the record set below

The resulting table is a denormalized representation of presentation column properties and has the following columns:
  • TABLE_QUALIFIER: Subject Area name
  • TABLE_OWNER: always null, not sure when this is populated
  • TABLE_NAME: name of the presentation table
  • COLUMN_NAME: name of the presentation column
  • DATA_TYPE: numeric representation of the columns data type
  • TYPE_NAME: text representation of the columns data type
  • PRECISION: length of the column
  • LENGTH: see above
  • SCALE: always zero, not sure about the use
  • RADIX: cryptic to me, always zero
  • NULLABLE: 1 if the column can be NULL, 0 if not
  • REMARKS: the description text of the column
  • DICT_URL: the suffix for the file path when you generate the metadata dictionary
So this is what you get. As I said the feature is totally unsupported, so play around with it at your own risk. Please post a comment if you find a useful scenario.

have a nice day

@lex

Monday, August 17, 2009

Siebel Nuggets: The EAI Dispatch Service

Recently, I had the privilege to demo the EAI Dispatch Service to a customer (they liked it ;-).

The service and its infrastructure is nicely described in the Siebel Bookshelf, so I'm not going to copy/paste that content here.

My intention is rather to guide you through a quick self-study-ish scenario which you could apply quickly to any business service. Those among you who have some experience in EAI might already know where this is going...

The business service simulator, of course.

The first part of the demo scenario is to look up the customer type field inside a SiebelMessage property set and pass that type value to the output property set.

1. Create a somewhat complex hierarchical property set

So let's use good ol' EAI Siebel Adapter's Query method and the Internal Account Interface integration object to quickly create a SiebelMessage typed child property set (I am using the SIA 8.1.1 sample database for this).

Use the business service simulator to run the query and move the output to the input. Also it's a good idea to save the whole thing to a file. If you use PrimaryRowId=1-6, this is what you get. Note the type value buried deep in the hierarchical property set.

A SiebelMessage type property set created by EAI Siebel Adapter

2. Create the EAI Dispatch Rule Set

Navigate to Site Map | Administration - Integration | EAI Dispatch Service View.

Create a new rule set in the upper applet.

In the middle applet, create a new rule and set the following:

  • Sequence = 1
  • Search Expression = /*/SiebelMessage/*/Account@Type
    (if you want to read up on this syntax - it's only XPATH-ish! - please refer to the Siebel Bookshelf)
  • Property Value = Hospital

In the bottom applet create two records:

RootHierarchy: /*
Property: /*/SiebelMessage/*/Account@Type | Property Name: AccountType

Click the Clear Cache button in the upper applet.

This is your result: Upon execution of this rule, EAI Dispatch Service will evaluate whether there is a child of type SiebelMessage in the input property set and if 2 levels below there is a child of Type "Account" with a property named Type and that property has a value of "Hospital" it will declare "MATCH".


The transform definition tells the EAI Dispatch Service to copy the entire input hierarchy to the output property set (RootHierarchy = /*) and create a property named "AccountType" with a value of the current account type field in the output property set.

So let's check...

3. Call EAI Dispatch Service Lookup method in the business service simulator

To demonstrate the use of the Lookup method, we will pass the output of the EAI Siebel Adapter to the EAI Dispatch Service. The Lookup method executes all rules in the set and upon a match it executes the transform for that rule (subsequent rules are not executed). The Lookup method will not dispatch the output property set to another business service, so it can be useful when you just want to leverage the capability of the EAI Dispatch Service to generate a specific output property set.

If you use the browser back button to navigate back to the simulator view, the application should 'remember' your data. If this is not the case, you have to reload the input property set.

Modify the input property set by adding a new property named "RuleSet" and add the name of your EAI dispatch rule set as the value.

Select the test case and click Run on One Input.

Check the output property set. It should contain the entire SiebelMessage hierarchy plus a new property named AccountType.


4. Test the Dispatch method

The Dispatch method is aimed at those EAI developers who wish to add some dispatching logic to their dispatch rule sets. This is implemented by declaring the dispatch service and dispatch method for each rule. When the EAI Dispatch Service finds a matching rule, it will create an output property set according to the transform definitions for that rule, invoke the dispatch service and method and pass the output property set as input.

So in our simple test scenario, we can even go further by modifying the dispatch rule set: Add the EAI XML Write to File business service and its WritePropSet method to the rule. Also add a new transform record of target type "Property" and write the FileName property and an appropriate value for it to the output property set.

Now you can navigate back to the business service simulator view and run the Dispatch method. You will notice that instead of simply generating the output property set, the EAI Dispatch Service will pass the output property set as input to the EAI XML Write to File business service's WritePropSet method.

The result is of course an XML file containing the output property set data.

have a nice day

@lex

Saturday, August 15, 2009

Multi-Location Search on Oracle University Website

Just a quick announcement on behalf of my employer's website.

If you are searching for Oracle University course offerings in your broader neighborhood, you can now select multiple countries and course locations. This is especially useful if you live in smaller countries and traveling is an option.

Search results can be displayed as short list or tabs (with more information) and you can send the search results by email.

Wanna try? Here is a link to the advanced search page.

Have a nice day

@lex

Thursday, August 13, 2009

ADM Reloaded

The Siebel Application Deployment Manager framework is widely known for it's enhanced capabilities (since version 8.0) of migrating configuration changes in three areas from a source enterprise to multiple target enterprises.

These areas are
  • Database-side changes (administrative data that is, e.g. LOVs, Assignment Rules, iHelp, etc)
  • Repository changes (everything that goes in a .sif file)
  • File changes (some - but not all - file types such as .srf, .swt, .css which typically reside on the Siebel Server or Siebel Web Server Extension)
So what's the news?

Recently, I had the privilege of working with version 8.1.1 of the ADM framework and I found some interesting differences to version 8.0 which I would like to share here.

New Data Types

One of the first questions that arise when a new Siebel version is released is "What data types are now supported by ADM"

Here are the 8 new ones for 8.1 (against 8.0)
  • Search Category
  • BI Publisher Report Objects (4 data types)
  • Internal Division
  • Organization
  • Position
Command Line Flags

Version 8.1.1 introduces the concept of optional command line flags for the deployment commands which are embedded in the deploy.bat file.

Most notable are the following:

-async allows to execute the copy command in asynchronous mode thus freeing the command line for example to issue the report or the various status commands

-c (optionally combined with -q) writes back all parameter values for the given command

-verify must be used if you wish to use the new verify command later during the session

Enhanced Status Reporting

The output and amount of status commands has increased. This bookshelf page gives a nice overview.

The report command is not new but still very useful to create a nicely formatted html report with content, status and timing stats for the given package.


Broadcast Messaging

Upon succesful deployment, ADM 8.1.1 is supposed to create a broadcast message for the position of the user that it runs under.

Well, so says bookshelf. I couldn't verify that so far...

Verifyable Sessions

if you create sessions with the -verify option (which is default), you can later (after the copy command) use the verify command to verify successful (or unsuccessful) deployment.

SRFDiff Utility

The new srfdiff command line utility is not necessarily related to ADM but can be used of course to verify the successful deployment of the srf file.

have a nice day

@lex

Wednesday, August 12, 2009

Oracle VM Template for Siebel CRM 8.1.1

Today, Oracle has announced the the availability of Oracle® VM Templates for Siebel CRM 8.1.1.

So if you want to speed up provisioning of your Siebel environments, you could now use the Linux-based Oracle VM infrastructure to quickly deploy the corresponding VM template.

Have a nice day

@lex

Monday, August 10, 2009

Data Visualization Example

Embedded in an NY Times article I found one of the most intriguing data visualizations I have seen in the younger past.



The interactive chart shows how american citizens (they do not tell how many thousand were interviewed) of different groups (men/women employed/unemployed etc) spend their day. Click here to try it yourself.

What I like about the chart is its usability. I wonder how "the average user" would react but I assume people would find their way through it by clicking on the areas. I believe the animation is the result of many hours of flash programming (if not, please show me where I can download the software) but it would be great if we could generate such kind of visualizations programmatically.

If any of the astute readers knows more about this visualization or even how to do it in Oracle BI EE or BI Publisher, please share with the greater public by adding a comment.

Have a nice day (and don't spend so much time watching TV ;-)

@lex

Saturday, August 08, 2009

Results of the OBI EE Skill Level Poll

A while ago, I re-posted Gerard Braat's article on "Understanding the BI Server - See the light" and found it appropriate to create a poll along with my post.

The intention of the poll was to solicit honest answers from the valued readers of this blog to find out in what phase of the learning curve they consider themselves to be.

Here are the results:


36 people found it worthwhile to click the buttons.

  • 19% consider themselves to be in the first stage "Entrepreneur/Drag&Dropper"
  • 16% have undergone the classic 5 day training such as Oracle BI EE: Build Repositories
  • 11% are already swimming, but it feels a bit muddy to them
  • 16% are starting to see the light
  • 36% of the respondents consider themselves native BI Server speakers

Thanks for your participation

Have a nice day

@lex

Thursday, August 06, 2009

Segmentation Summer Series Part 2: Marketing Lists

Welcome to part 2 of our series of posts regarding Oracle BI EE Marketing Segmentation.

Today we will have a closer look at the two remaining object types in the Administration Tool's Marketing Manager window.
  • List Catalogs
  • Conforming Dimension Links
List Catalogs

Technically speaking, a list catalog is a presentation catalog which has one of its presentation columns mapped to a Qualified List Item (QLI). QLIs were covered in part 1 of this series.

So it's fairly easy to create a list catalog but what is the purpose of it?

The purpose of list catalogs is to enable the Oracle BI List Format Designer which (very similar to Answers) allows to define a sequence of columns and the formatting of the data. Albeit the big difference between Answers and the List Format Designer is that whilst Answers is used to define data output on a screen, the List Format Designer specifies the necessary information for the BI Presentation Server to generate output files (csv or xml) or to transfer the data directly to a database table (via the BI Server).

So the list formats define integration touchpoints between Oracle BI EE and other IT systems used for marketing (such as Siebel CRM's Marketing application which is preintegrated with Oracle BI EE).

Creating a List Catalog

The task of creating a list catalog is accomplished as follows:

1. (Optionally) Create/Modify a presentation catalog for list purposes

This is an optional task as you can very well reuse any presentation catalog as a list catalog. The only requirement is that it exposes the key column to be mapped with a QLI.

2. Create a list catalog

In the Marketing Manager window click Action | New | List Catalog and assign a presentation catalog.

Note that you can only choose from presentation catalogs that are not yet used as a list catalog.

Click the Add button in the Qualifying Keys section to map the presentation column carrying the entity key to the QLI.


Now save/check consistency on/check in the new object, fire up servers and test...

3. Create a list export format

In Oracle BI EE navigate to More Products | Marketing | Create a List Format. Your new list catalog should appear in the list at the right side of the screen.

Click the new list catalog and use the list format designer to create a simple output list with some product information.

Check the option "Re-qualify list results against original segment criteria" to ensure that your list format can be filtered against the result set of a segment.

Experiment with the Options and Headers and Footers and use the Preview tab to generate a file to test your list format.

For example, the output file could look like this (click to enlarge):


Save your list format.

4. Associate the list format with a segment

In the Advanced Options tab for a segment, you can associate three different types of list formats with a segment.
  • The campaign load file format is used specifically for integrating with Siebel Marketing.
  • The list preview file format enables the Generate List functionality of the segment (see below).
  • The saved result set file format specifies the fields that should be stored permanently when a user saves a segment result set.
You can now associate your new list format as a list preview file format, save the segment and click the Generate List button in the Edit Segment tab.

A dialog appears which is similar to the preview of a list format and allows you to either generate a list file in the specified folder or generate a preview in a new window.


Congratulations on your first list format!

But before you hit the beach, let's share some information on the last object type.

Conforming Dimension Links

Conforming Dimension Links might be used rarely in the wild. They allow the marketing developer to define a path from one dimension to another by declaring a "from" catalog and key column and a "to" catalog and key column thus enabling "cross-star" queries that are needed when segments include columns from different segmentation catalogs which don't use the same QLI.

The following error message occurs when you create a segment using two segmentation catalogs which do not share the same QLI.


When you create a conforming dimension link between the two catalogs, the segment count works (along with weird SQL generated).

I hope this little series has triggered some interest in Oracle BI Marketing Segmentation.
The Siebel Marketing Server Architect course gives a lot of insight into the topics of this and the previous post.

have a nice day

@lex

Tuesday, August 04, 2009

Tweeting Trainer

Sometimes I have to try new things and after having consumed twitter feeds for a while, I felt like trying "da thing" myself.

So I'll be tweeting this week live from the classroom and then see how I like it. You can follow the feed on this page (top left) or using your tool of choice.


Hope you enjoy the tweet and maybe you want to follow or reply to me.

Have a nice tweet

@lex

Monday, August 03, 2009

Segmentation Summer Series Part 1: Target Levels

For all those of you who don't spend their deserved vacation on the beach, I thought it would be benefitial to share some thoughts about one of the hidden gems of Oracle BI EE: Marketing Segmentation.

In September last year I wrote an article on how to display the list generation dialog on a dashboard.

In this small series I would like to introduce the building blocks of the marketing segmentation metadata. The latest version of samplesales.rpd comes with ready to use Target Levels. So let's start exploring...

Fire up your Sample Sales demo application and navigate to More Products | Marketing | Create a Segment. This will bring you to the start page of the Oracle BI EE Segment Designer which displays the available target levels from the rpd file.

The definition of a target level takes place in the Administration Tool's Marketing Manager window which is accessed by navigating to Manage | Marketing...


This window allows us to create and edit four types of object definitions:
  • Target Levels
  • Qualified List Items
  • List Catalogs
  • Conforming Dimension Links
The first two will be explained further in this post. Please stay tuned for future posts which will explain the concepts of the latter two.

Target Levels

According to the Marketing Segmentation Guide "A target level is the entity that a marketer wants to count."

This means that you can use target levels to apply a set of query criteria (i.e. a segment) against any entity available through your subject areas and count them. The Oracle BI Segment Designer allows you to save segment definitons and use them to create output lists for further marketing efforts such as mail merges etc.


In other words, a target level is a set of presentation catalogs that are "linked" together by a shared Id, the Qualified List Item (QLI).

More than that, a target level optionally stores information about sampling tables and the physical storage for saved result sets.

Qualified List Items

Technically, a Qualified List Item (QLI) is used as a reference to a presentation column which maps to a primary key of the respective dimension. QLI's are used in target levels to link presentation catalogs together via a shared key.

QLIs also allow the developer to control the physical storage of the Marketing Cache which (opposed to the Oracle BI Server cache) is accomplished by storing the record Ids in a physical table.

Creating a target level

To understand how a target level works, it's best to create one, so here we go:

Let's create a target level for the Products entity (typically marketers think in terms of customers but this little example shall demonstrate the ability of the tool to apply segmentation criteria to any entitiy).

1. (Optionally) Create/Modify a presentation catalog for segmentation

For the sake of the demo, let's duplicate the Sample Sales presentation catalog and remove the dimensions and facts that are not related to products or orders.

Any presentation catalog that displays the key column for the target entitiy is eligible for participating in a target level. However if you have multiple facts, you should define the implicit fact column to direct the BI server to the correct join in case you have a dimension-only query.

Here is the result of the first step:


2. Create the Qualified List Item

In the Marketing Manager window, click Action | New | Qualified List Item and create a new QLI.
Note: you could do this on the fly whilst creating the target level. Of course you can also reuse existing QLIs.

3. Create the Target Level

In the Marketing Manager window, click Action | New | Target Level and create a new Target Level.

Assign the new QLI.


In the Segmentation Catalogs tab, click Add to assign a presentation catalog.

In the Qualifying Keys list, click Add to map the primary QLI of the target level to the presentation column that exposes the entity key.



Phew, lots'a clicks for a hot summer day...

The Marketing Manager window allows a separate consistency check on the marketing segmentation metadata. If this check passes, you have correctly configured the target level.

4. Create a test segment

Save/Check in, fire up the servers and check the start page of the segment designer.

Click on the new target level and observe that the columns of the presentation catalog(s) associated with the target level are available in the selection pane.

Create a test segment and click Update Counts. You should get count results.

Save the segment.



Congratulations, and now off to the beach ya lizards ;-)

have a nice day

@lex