New Loacation -> Applications and Business Intelligence



Thursday, December 29, 2005

Raptor: Toad Competition here I come!

http://www.oracle.com/technology/products/database/project_raptor/index.html

Oracle just made the public release of Raptor, its new graphical interface to its database.
"
Project Raptor is a new, free graphical tool that enhances productivity and simplifies database development tasks. With Project Raptor, you can browse database objects, run SQL statements and SQL scripts, and edit and debug PL/SQL statements. You can also run any number of provided reports, as well as create and save your own
"

Here are some of the questions that come up in my mind...
Why it took so many years for Oracle to come up with this tool? And when it did why now?
Why is it free? What happens to the competiting products?

There was one good thing that happened to all the ISVs(Toad , etc) that develops and sells graphical interface to Oracle database. I am sure most of them are doing good selling these GUI tools. With the entry of a free tool there is a slight punch to these ISVs, its not that this is the first free GUI tool (since there are freeware and Open source already available) but since this is from Oracle it makes a lot of difference.

With the threat from Open source database like MySql, Oracle recently released an Xpress Edition of Oracle 10g and now introducing Raptor as a freeware, Oracle intends to stop the migration to other Open Source databases. Now there is more incentive for any ISV or micro-ISV to consider Oracle as the development platform.

With regards to competition (ISVs who make living selling GUI for Oracle database), I think the market has become more healthy and still there is lot more room to innovate and keep an edge.

Looks like many of Raptor's interface and components are borrowed from JDeveloper (which is a mature product in itself).

(PS: InfoCaptor is developed completely using JDeveloper)
http://www.InfoCaptor.com <--- Create Drills, Dashboards, Monitors

Wednesday, December 28, 2005

Father-Son Team Builds Hospital Intelligence From Scratch

A father-son team of physicians has taken aim at the medical field -- notoriously behind the curve when it comes to using business intelligence to gather and analyze data, especially hospital records -- with a software product that combines elements of both business process management (BPM) and BI analytics. Called Micro-Cares, the product tracks the treatment of patients in a hospital setting, and its creators say it could represent a revolution in how doctors think not only about patient care, but the training of physicians.

read the complete article

http://www.InfoCaptor.com <--- Create Drills, Dashboards, Monitors

Restrict Discoverer Data access?

Restrict Discoverer Data access by apps user_id, org_id, responsibility etc..

A simple solution is to create a simple sql folder in your EUL with the below query

select fnd_global.resp_id,
fnd_global.resp_name,
fnd_global.user_id,
fnd_global.user_name,
fnd_global.employee_id,
fnd_global.per_security_profile_id,
fnd_global.org_id
from dual;

You can use this folder joined to any other folder to restrict data based on user_id, employee_id or org_id

Alternatively you can incorporate the above query in your view to restrict data directly inside the view and use that view in the discoverer EUL folder.

Have a nice day!
http://www.InfoCaptor.com
<--- Create Drills, Dashboards, Monitors -->

Thursday, December 22, 2005

How to pick the best Idea?

If you are contemplating on starting your own software business, here are some points worth noting to evaluate your software idea. All the below details are from the spreadsheet mentioned in this article (What is your idea score?)


Do you know atleast one person who needs this solution including yourself?
(A solution has to be for a person or a company, having atleast one person is a good start)

Can you describe the solution in one sentence
(How will you tell your audience what your product/solution does?)

Will the solution save money for the user?
(this is defining the ROI, is it Money saver or Time Saver?)

Will it save time for the user?

Will it Entertain the user?

Will it Educate the user?

Between 1 and 10, how do you rate the necessity of this solution?
(10 - Can't live without it or cannot run business)

How many competitors exists who are either providing the exact same solution or part of the solution that you intend to provide

How strong is the presence of your competitor?
(think in terms of their product downloads, check user forums, google rank, customer profiles etc, Rate from 1-10 where 10 indicates a very popular product, website and company)

Is there any USP(Unique Selling Point) for your solution

(define barrier to entry)
How many Man Months will it take to develop your solution?

(define barrier to entry)
Are you inventing new stuff in order to provide this solution (algorithm, protocol etc)


Is the solution for Consumers

Is the solution for Business

Do you have all the resources to complete the solution?

Do you know how to complete the solution?

Will you use your own solution if you had the exact same pain/necessity as your target audience?

For how many days have you been thinking about this idea?
(passion factor)

http://www.InfoCaptor.com

Saturday, December 17, 2005

Documenting EUL, Discoverer Workbook, Worksheet

Do you need to document EUL Schema, Oracle Discoverer Work-books, worksheets?

Discoverer is a great ad-hoc and BI tool. People working and using this tool often need to document the EUL (End User Layer) but there is no straight forward ways to do it. I have seen clients run some scripts against the EUL meta data and then create a word doc file for later referencing.

Lets focus on some of the key EUL tables which could be used to document the different Discoverer components.

In the below examples, replace "disco" with the appropriate schema owner of EUL tables. In my case it is the disco owner and hence the examples

List of Business Areas
select ba_name "Business Area", ba_created_by "Creator", ba_created_date "Creation Date", ba_updated_by "Updated By ", ba_updated_date "Last Update Date" , ba_id
from disco.eul4_bas
where ba_created_by like 'DISCO'

List of Folders
select b.ba_name, f.obj_name folder_name, f.obj_id, f.obj_ext_owner Owner
from disco.eul4_objs f,
disco.eul4_ba_obj_links l,
disco.eul4_bas b
where 1=1
and f.obj_id= l.bol_obj_id
and b.ba_id= l.bol_ba_id
and upper(b.ba_name) like upper('Video Store Tutorial')
and upper(f.obj_name) like upper('%')
order by b.ba_name,f.obj_name

List of Folder Items
select i.exp_name item_name, i.exp_id, i.it_ext_column, f.obj_name folder_name, b.ba_name
from disco.eul4_expressions i,
disco.eul4_objs f,
disco.eul4_ba_obj_links l,
disco.eul4_bas b
where f.obj_id= i.it_obj_id
and f.obj_id= l.bol_obj_id
and b.ba_id= l.bol_ba_id
and upper(i.exp_name) like upper('%')
and upper(b.ba_name) like upper('Video Store Tutorial')
and upper(f.obj_name) like upper('Products')
order by b.ba_name,
f.obj_name,
i.exp_name

List of Folder Joins
select key_description
from disco.eul4_key_cons
where fk_obj_id_remote=100027 or key_obj_id=100027

(substitute the numeric id from the Folders obj_id (see the List of Folder query)

List of Workbooks
select doc_name "Document",doc_developer_key, doc_description "Description" from disco.eul4_documents

Documenting Workbooks and worksheets ..........continued ....

http://www.InfoCaptor.com
<--- Create Drills, Dashboards, Monitors

Thursday, December 15, 2005

Discoverer Presentation Options

Discoverer Viewer allows passing all Presentation Options as a binary string into the URL in the following syntax

Discoverer Viewer version 4.1.42 and higher introduces a new URL parameter called "_po" which is used for passing all the Presentation Optionsfrom URL without having to modify the XML/XSL files.

Each option is set on or off by the binary value of 1 or 0.

there are 23 presentation options controlled by _po parameter. Each prestentation option correlates to one of the 23 positions in the parameter.

Below is a list of the presentation option and its relative position: 1. Logo
2. New Connection
3. Open Workbook
4. Options
5. Exit
6. Help
7. Top Blue Bar
8. Worsheets Link
9. ReRun Query
10. Presentation Option
12. Export
13. Parameters
14. Workbook Name
15. Data(Including Worksheet Title)
16. Chart
17. Page Item
18. Drill
19. Pivot
20. Row Numbers
21. Bottom Blue Bar
22. Oracle Copyright
23. Show XML

For e.g if you want to turn off the parameters(13th position) then the PO would be like this.
this:_po=11111111111101111111111

Change the ICX profile ICX: DISCOVERER PARAMETERS (ICX_DISCOVERER_PARAMETERS)at the site, user or responsibility level and it will be added automatically to the URL when an E-Business Intelligence (BIS/EDW) analysis workbook is called.


http://www.InfoCaptor.com <--- Create Your Own Drills, Dashboards, Monitors <-----Browse Oracle Meta data, Discoverer EUL Data----->
Use InfoCaptor to store all your frequently used queries

Monday, December 12, 2005

BI for the Masses

Does BI stand for Business Indigestion?

BI Tools market is dominated by the likes of Oracle, Hyperion, Cognos, Business Objects and few others. These tools cost in millions to license,install and maintain and hence it is a hot market. There are so many different categories within the BI segment. The prominent ones are Ad-Hoc Reporting, Dashboards, OLAP (Predictive Analytics and Data Mining combined in some cases).
But who is the most dominant and looks like could emerge as the top winner? Looking at all the offerings by different vendors, Oracle is the only vendor that seems to have complete range of BI Stack and products. Being an Oracle Consultant myself this might seem to be a biased opinion.

With the introduction of Data Mining and OLAP engine inside the Oracle Database, Oracle has cornered this segment.
Ad-Hoc reporting - Discoverer seems to be more popular than ever and there is a good demand for it.
Dashboards - With Discoverer 10g and Portal you already have the ability to create robust dashboards but one tool that can really make a difference in the BI segment as well as the overall ERP market is Daily Business Intelligence known as DBI. DBI is the embedded dashboard reporting for Oracle applications. It consists of a range of intelligence pages for GL, AP, AR, HR, and other modules.

Thursday, December 08, 2005

How are your Discoverer Reports Performing

How do you measure the performance of Discoverer Reports?

Oracle provides some basic statistics for measuring the time it takes for Discoverer queries to run.

These stats are saved in the eul4_qpp_stats table.

Here are few queries that can be used to measure the frequency of reports run, how long they run, Max time taken for running Disco workbooks etc

The below query is part of the Workbook Statistics dashboard available for free to download, use and modify.

http://www.infocaptor.com/img/workbook_stats.png

http://www.infocaptor.com/files/workbook_stats.zip

The below query lists the workbook - worksheet run for a given date range.

select to_char(qs_created_date,'DD-MON-YYYY') Run_Date, qs_doc_name ' ('qs_doc_details')' "Workbook (Worksheet)", round(qs_act_cpu_time/60,2) cpu_time, round(qs_act_elap_time/60,2) total_time from #OWNER#.#PATTERN#_qpp_statswhere upper(qs_doc_name) like upper('param<>')--and qs_created_date between sysdate - 7 and sysdateand trunc(qs_created_date) between to_date( 'param','DD-MON-YYYY') and to_date( 'param','DD-MON-YYYY')order by qs_created_date, qs_act_elap_time desc,qs_doc_name,qs_doc_details desc

http://www.InfoCaptor.com <--- Create Drills, Dashboards, Monitors <-----Browse Oracle Meta data, Discoverer EUL Data----->
Use InfoCaptor to store all your frequently used queries

Monitor the Oracle Apps Concurrent Managers

Here are few scripts that monitor the Internal and Standard Concurrent managers.

Internal Concurrent Manager Locks
select SH.OSUSER, SH.PROCESS, SH.MACHINE, SH.TERMINAL, SH.PROGRAM from V$SESSION SH where SH.SID in (select LH.SID from V$LOCK LW, V$LOCK LH, V$SESSION SW, FND_CONCURRENT_PROCESSES where LH.SID != SW.SID and LH.ID1 = LW.ID1 and LH.ID2 = LW.ID2 and LW.KADDR = SW.LOCKWAIT and SW.LOCKWAIT is not null and SW.PROCESS = OS_PROCESS_ID and QUEUE_APPLICATION_ID = 0 and CONCURRENT_QUEUE_ID = 1)

CRM Locks
select SH.OSUSER, SH.PROCESS, SH.MACHINE, SH.TERMINAL, SH.PROGRAM from V$SESSION SH, V$LOCK LW, V$LOCK LH, V$SESSION SW, FND_CONCURRENT_PROCESSES where LH.SID = SH.SID and LH.SID != SW.SID and LH.ID1 = LW.ID1 and LH.ID2 = LW.ID2 and LW.KADDR = SW.LOCKWAIT and SW.LOCKWAIT is not null and SW.PROCESS = OS_PROCESS_ID and QUEUE_APPLICATION_ID = 0 and CONCURRENT_QUEUE_ID = 4

Inactive Managers
Select Application_Name, Concurrent_Queue_Id QId, User_Concurrent_Queue_Name Manager, Node_Name Node from Fnd_Concurrent_Queues_Vl Q, Fnd_Application_Vl A where A.Application_Id = Q.Application_ID And Max_Processes = 0 And Running_Processes = 0 And Q.Concurrent_Queue_ID != 1 order by Application_Name, User_Concurrent_Queue_Name

Similarly there are more useful queries stored in this dashboard file

http://www.infocaptor.com/files/sysadmin_dba.icv

http://www.infocaptor.com/img/sysadmin_dba.png

You can view these queries using the InfoCaptor viewer.

http://www.InfoCaptor.com <--- Create Drills, Dashboards, Monitors <-----Browse Oracle Meta data, Discoverer EUL Data----->
Use InfoCaptor to store all your frequently used queries

Wednesday, December 07, 2005

Oracle APPS Sysadmin Screen - Source views

Ever had a need to dig into the Oracle Apps Screens to find out where the data is coming from?
The general approach is to query the Record Details and it will show you the View or the Table name from where the data is sourced from. Here is a list of important tables and views that make up the Sysadmin Screen. Hope it helps!

You can even built a monitor using InfoCaptor Designer and you no longer need to login to Oracle Applications to check important data


Users
fnd_user
ak_web_user_sec_attr_values (securing attributes)
fnd_user_resp_groups_direct ( direct responsibilities)
Indirect responsibilities ????


Monitor Users
User name, responsibility, form, login, time, oracle process, terminal name (no query)??

Define Responsibility
fnd_responsibility_vl
Menu Exclusions - fnd_resp_functions ( type, name, desc)

Request Groups
fnd_request_groups (header)
fnd_request_group_units (details)

Oracle Users
fnd_oracle_userid

Data Groups
fnd_data_groups (header)
fnd_data_group_units_v

Requests
fnd_conc_req_summary_v (main)

Request Set
fnd_request_sets_vl (main)
fnd_req_set_stages_form_v (stages)
fnd_request_set_programs (stage_requests)
fnd_descr_flex_col_usage_vl (request parameters)
fnd_req_set_stages_form_v (link stages)

Concurrent Managers
fnd_concurrent_queues_vl (main)
fnd_concurrent_queue_content (specialization rules)
fnd_concurrent_queue_size (work shifts)

work shifts
fnd_concurrent_time_periods

concurrent programs
fnd_concurrent_programs_vl (main)
fnd_descr_flex_col_usage_vl (parameters)
fnd_executables_form_v (executables)
fnd_conflict_domain ( concurrent conflicts domain)

profile
fnd_profile_options_vl

applications
fnd_application_vl

form functions
fnd_form_functions_vl (description)

menus
fnd_menus_vl (header)
fnd_menu_entries_vl (detail)

value sets
fnd_flex_value_sets, fnd_flex_values,


key flexfield segments
fnd_id_flexs
fnd_id_flex_segments_vl
fnd_segment_attribute_values (qualifiers)




http://www.InfoCaptor.com <--- Create Drills, Dashboards, Monitors <-----Browse Oracle Meta data, Discoverer EUL Data----->
Use InfoCaptor to store all your frequently used queries

Tuesday, December 06, 2005

Convert DFF (Descriptive Flex field) to Number

Often data in Oracle Applications is stored in extended columns known as Descriptive Flex field columns. These are character columns which you can map it to store any kind of information. On the front end, it is possible to apply validations like numeric, date or character but the ultimate value that gets stored inside these flex columns is just character strings.

The trouble comes during the time of reporting. Its not a problem if you just want to display the value stored in the column. The pain starts when you want to do some logic on top of those numeric or date values. In this article we just consider numeric values and how can they be utilized.

The problem can be simplified by using the to_number function that Oracle provides but this assumes that the column infact has *ONLY NUMERIC* values and no "white space," or "non-numeric" characters in it. If it does have non-numeric characters then the to_number function is going to bomb right in your face. Descriptive Flex fields are context dependent ie. each attribute column can store different data types for a given row, so for row 1 the attribute1 column might store a numeric value, row2 might store a date value and so on...

To deal with the above situation, we can create a new generic function as below

function get_number(p_val varchar2) return number is
l_value number;
begin
l_value := to_number(p_val);
return l_value;
exception
when others then
return -1;
end;

In the above wrapper function, it tries to convert the character value into number, if it succeeds then returns the value else returns a -1.

So you can modify this function to return any value depending on the requirement e.g return a zero value instead of -1. The reason we chose -1 is to highlight any data issues. If we return a zero value then there is a possibility that the user might overlook the data error. So depending on the situation return a value which would tell the user that the data is not correct e.g like a huge negative value.

You can enhance the function to strip out non-numeric values like spaces etc using ltrim, rtrim or replace functions but caution should be exercised to not overload this function with more logic and calculations as it will effect the performance of your reports.

Have a nice day
http://www.infocaptor.com <-- Store all your queries, Create Monitors and Dashboards