Anda di halaman 1dari 16

DecisionPoint Applications

Its The Data Model, Dummy By: Larry Scheurich Chief Technology Officer March 8th, 2004

Lets Have Some Fun To Start


Be the first to answer the following questions, and receive a prize person can only win once Each What year was the first version of Oracle Applications ever implemented (outside of Oracle)? What was the first module ever implemented? What was the name of the company that first implemented Oracle Applications? What business was that company in? Who was the person responsible for the implementation?

DecisionPoint Applications: Data Access Myth

The primary limitation in the ability of end users accessing information is the user interface. More Information Access = Better Tools + Generic Data Models
3

DecisionPoint Applications: An Oracle Apps Example


In order to get data that looks like this

Sales Region West

East Central

UK

Customer ABC Retail Retread Tires Company Office Supplies, Inc Furniture Supply, Inc Photo Imaging Company XYZ Pharmaceuticals Food Retail Corporation City Transport Legal Supply, LTD Citibus Transport, LTD

$ $ $ $ $ $ $ $ $ $

Revenue Amount 1,250,000.00 2,450,000.00 535,000.00 252,000.00 715,000.00 1,125,500.00 825,000.00 1,075,000.00 1,555,000.00 235,000.00

Region Revenue Amount $ 4,235,000.00

$ $

252,000.00 3,740,500.00

1,790,000.00

Revenue By Region

UK 18% West 42%

Central 37%

East 3%

DecisionPoint Applications: An Oracle Apps Example


You have to run a query that looks like this
SELECT NVL(RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, 'NA'),NVL(TO_CHAR(RA_CUSTOMER_TRX_ALL.ORG_ID)||'-'||TO_CHAR (RA_CUSTOMER_TRX_ALL.CUST_TRX_TYPE_ID),'NA'),DECODE (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, 'REC', NVL ) AND /* Enable for Territory Flexfield */ RA_CUSTOMER_TRX_ALL.TERRITORY_ID = (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCTD_AMOUNT,0),0),DECODE RA_TERRITORIES.TERRITORY_ID (+) AND (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS,'REV', NVL RA_CUST_TRX_LINE_GL_DIST_ALL.CUST_TRX_LINE_SALESREP_ID = (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCTD_AMOUNT,0), 0),DECODE RA_CUST_TRX_LINE_SALESREPS_ALL.CUST_TRX_LINE_SALESREP_ID (+) AND (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, RA_CUSTOMER_TRX_LINES_ALL.INTERFACE_LINE_ATTRIBUTE6 = OE_ORDER_LINES_ALL.LINE_ID 'REC', 0, 'REV', 0, 'UNBILL', 0, 'UNEARN', 0, (+) AND OE_ORDER_LINES_ALL.HEADER_ID = OE_ORDER_HEADERS_ALL.HEADER_ID (+) AND /* '-99999'),RA_CUST_TRX_LINE_GL_DIST_ALL.ORIGINAL_GL_DATE, NVL(RA_CUST_TRX_LINE_GL_DIST_ALL.ACCTD_AMOUNT,0) Enable for Accounting Flexfield */ RA_CUST_TRX_LINE_GL_DIST_ALL.PERCENT,'DEC-98',NVL(TO_CHAR ),DECODE(RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, 'UNBILL', GL_CODE_COMBINATIONS.CODE_COMBINATION_ID = (RA_CUST_TRX_LINE_GL_DIST_ALL.CUSTOMER_TRX_ID),'NA'),NVL NVL(RA_CUST_TRX_LINE_GL_DIST_ALL.ACCTD_AMOUNT,0),0),DECODE RA_CUST_TRX_LINE_GL_DIST_ALL.CODE_COMBINATION_ID AND /* Non Change Data Capture (RA_CUST_TRX_LINE_SALESREPS_ALL.SALESREP_ID,-99999),NVL (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, 'UNEARN', NVL */ RA_CUST_TRX_LINE_GL_DIST_ALL.GL_DATE>=TO_DATE('', 'DD-MON-YYYY') AND /* Non (RA_CUST_TRX_LINE_GL_DIST_ALL.SET_OF_BOOKS_ID,-99999),TO_CHAR (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCTD_AMOUNT,0),0),NVL(TO_CHAR Change Data Capture */ (RA_CUST_TRX_LINE_GL_DIST_ALL.CUST_TRX_LINE_GL_DIST_ID),DECODERA_CUST_TRX_LINE_GL_DIST_ALL.GL_DATE<= TO_DATE(' (RA_CUSTOMER_TRX_ALL.BILL_TO_SITE_USE_ID),'NA'), 23:59:59', 'DD-MON-YYYY HH24:MI:SS') AND (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, 'REC', NVL RA_CUST_TRX_LINE_GL_DIST_ALL.COMMENTS,NVL(TRUNC RA_CUST_TRX_LINE_GL_DIST_ALL.SET_OF_BOOKS_ID IN (1) AND (RA_CUST_TRX_LINE_GL_DIST_ALL.AMOUNT,0),0),NVL (RA_CUST_TRX_LINE_GL_DIST_ALL.GL_DATE),'31-DEC-4712'), RA_CUSTOMER_TRX_ALL.COMPLETE_FLAG='Y' AND (RA_CUSTOMER_TRX_ALL.INVOICE_CURRENCY_CODE,'NA'),DECODE RA_CUST_TRX_LINE_GL_DIST_ALL.GL_POSTED_DATE,DECODE RA_CUST_TRX_LINE_GL_DIST_ALL.CUSTOMER_TRX_LINE_ID=RA_CUSTOMER_TRX_LINES_ALL.CUST (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, 'REV', NVL (RA_CUSTOMER_TRX_LINES_ALL.INVENTORY_ITEM_ID,NULL,'NA',DECODE OMER_TRX_LINE_ID (RA_CUST_TRX_LINE_GL_DIST_ALL.AMOUNT,0),0),DECODE (OE_ORDER_LINES_ALL.SHIP_FROM_ORG_ID,NULL,'NA', (+) (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, AND RA_CUSTOMER_TRX_LINES_ALL.INVENTORY_ITEM_ID||'-'||OE_ORDER_LINES_ALL.SHIP_FROM_ORG_ID) 'REC', 0, 'REV', 0, 'UNBILL', 0, 'UNEARN', 0, RA_CUST_TRX_LINE_GL_DIST_ALL.CUSTOMER_TRX_ID=RA_CUSTOMER_TRX_ALL.CUSTOMER_TRX_I ),NVL(TRUNC(RA_CUSTOMER_TRX_ALL.TRX_DATE),'31-DEC-4712'), D NVL(RA_CUST_TRX_LINE_GL_DIST_ALL.AMOUNT,0) RA_CUSTOMER_TRX_LINES_ALL.LINE_NUMBER,NVL(RA_CUSTOMER_TRX_LINES_ALL.LINE_TYPE, ),DECODE(RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, 'UNBILL', 'NA'),RA_CUST_TRX_LINE_GL_DIST_ALL.LAST_UPDATE_DATE, NVL(RA_CUST_TRX_LINE_GL_DIST_ALL.AMOUNT,0),0),DECODE RA_CUST_TRX_LINE_GL_DIST_ALL.MRC_ACCTD_AMOUNT,NVL (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, (RA_CUST_TRX_LINE_GL_DIST_ALL.ORG_ID,-99999),NVL(OE_ORDER_HEADERS_ALL.HEADER_ID, 'UNEARN', NVL (RA_CUST_TRX_LINE_GL_DIST_ALL.AMOUNT,0), 0) FROM GL.GL_CODE_COMBINATIONS@VIS1158 GL_CODE_COMBINATIONS,ONT.OE_ORDER_LINES_ALL@VIS1158 OE_ORDER_LINES_ALL, AR.RA_TERRITORIES@VIS1158 RA_TERRITORIES,ONT.OE_ORDER_HEADERS_ALL@VIS1158 OE_ORDER_HEADERS_ALL,AR.RA_CUSTOMER_TRX_ALL@VIS1158 RA_CUSTOMER_TRX_ALL, AR.RA_CUSTOMER_TRX_LINES_ALL@VIS1158 RA_CUSTOMER_TRX_LINES_ALL, AR.RA_CUST_TRX_LINE_GL_DIST_ALL@VIS1158 RA_CUST_TRX_LINE_GL_DIST_ALL, AR.RA_CUST_TRX_LINE_SALESREPS_ALL@VIS1158 RA_CUST_TRX_LINE_SALESREPS_ALL WHERE ( (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS <> 'REC') OR (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS = 'REC' AND RA_CUST_TRX_LINE_GL_DIST_ALL.LATEST_REC_FLAG = 'Y' )

DecisionPoint Applications: What if?


What if you had a query/reporting tool that made the complex query simple from an end user perspective?
Pros
With the appropriate query tool configuration, changing the query properties is very easy Different display columns Different summarizations Different constraints (i.e. time periods, regions, etc.) Each user can format the data in a manner that suits them best Spreadsheet Chart HTML

DecisionPoint Applications: What if?


What if you had a query/reporting tool that made the complex query simple from an end user perspective?
Cons
Adding data elements that do not already exist in the environment require IT resources Different database tables Different database joins End user information (labels and descriptions) are manually entered by IT staff RA_TERRITORIES.SEGMENT1 = Sales Country As more tables and joins are added to the query, the performance for the end user becomes slower, dramatically in some cases Data granularity issues If a table is added that has different levels of granularity, numeric amounts may or may not add up correctly. It is left to the user to decide how/what to do.

Query tools help, but the cons far outweigh the pros
7

DecisionPoint Applications: Data Access Reality

While end user access is important, the more critical, yet unseen, component is how the information is structured. More Information Access = Better Tools + Better Data Models
8

DecisionPoint Applications: A DecisionPoint Example


In order to get data that looks like this

Sales Region West

East Central

UK

Customer ABC Retail Retread Tires Company Office Supplies, Inc Furniture Supply, Inc Photo Imaging Company XYZ Pharmaceuticals Food Retail Corporation City Transport Legal Supply, LTD Citibus Transport, LTD

$ $ $ $ $ $ $ $ $ $

Revenue Amount 1,250,000.00 2,450,000.00 535,000.00 252,000.00 715,000.00 1,125,500.00 825,000.00 1,075,000.00 1,555,000.00 235,000.00

Region Revenue Amount $ 4,235,000.00

$ $

252,000.00 3,740,500.00

1,790,000.00

Revenue By Region

UK 18% West 42%

Central 37%

East 3%

DecisionPoint Applications: A DecisionPoint Example


You have to run a query that looks like this
SELECT NVL(RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, 'NA'),NVL(TO_CHAR(RA_CUSTOMER_TRX_ALL.ORG_ID)||'-'||TO_CHAR (RA_CUSTOMER_TRX_ALL.CUST_TRX_TYPE_ID),'NA'),DECODE (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, 'REC', NVL ) AND /* Enable for Territory Flexfield */ RA_CUSTOMER_TRX_ALL.TERRITORY_ID = (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCTD_AMOUNT,0),0),DECODE RA_TERRITORIES.TERRITORY_ID (+) AND (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS,'REV', NVL RA_CUST_TRX_LINE_GL_DIST_ALL.CUST_TRX_LINE_SALESREP_ID = (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCTD_AMOUNT,0), 0),DECODE RA_CUST_TRX_LINE_SALESREPS_ALL.CUST_TRX_LINE_SALESREP_ID (+) AND (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, RA_CUSTOMER_TRX_LINES_ALL.INTERFACE_LINE_ATTRIBUTE6 = OE_ORDER_LINES_ALL.LINE_ID 'REC', 0, 'REV', 0, 'UNBILL', 0, 'UNEARN', 0, (+) AND OE_ORDER_LINES_ALL.HEADER_ID = OE_ORDER_HEADERS_ALL.HEADER_ID (+) AND /* '-99999'),RA_CUST_TRX_LINE_GL_DIST_ALL.ORIGINAL_GL_DATE, NVL(RA_CUST_TRX_LINE_GL_DIST_ALL.ACCTD_AMOUNT,0) Enable for Accounting Flexfield */ RA_CUST_TRX_LINE_GL_DIST_ALL.PERCENT,'DEC-98',NVL(TO_CHAR ),DECODE(RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, 'UNBILL', GL_CODE_COMBINATIONS.CODE_COMBINATION_ID = (RA_CUST_TRX_LINE_GL_DIST_ALL.CUSTOMER_TRX_ID),'NA'),NVL NVL(RA_CUST_TRX_LINE_GL_DIST_ALL.ACCTD_AMOUNT,0),0),DECODE RA_CUST_TRX_LINE_GL_DIST_ALL.CODE_COMBINATION_ID AND /* Non Change Data Capture (RA_CUST_TRX_LINE_SALESREPS_ALL.SALESREP_ID,-99999),NVL (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, 'UNEARN', NVL */ RA_CUST_TRX_LINE_GL_DIST_ALL.GL_DATE>=TO_DATE('', 'DD-MON-YYYY') AND /* Non (RA_CUST_TRX_LINE_GL_DIST_ALL.SET_OF_BOOKS_ID,-99999),TO_CHAR (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCTD_AMOUNT,0),0),NVL(TO_CHAR Change Data Capture SELECT SALES_REGION_NAME,CUSTOMER_NAME,SUM(REVENUE) */ RA_CUST_TRX_LINE_GL_DIST_ALL.GL_DATE<= TO_DATE(' (RA_CUST_TRX_LINE_GL_DIST_ALL.CUST_TRX_LINE_GL_DIST_ID),DECODE (RA_CUSTOMER_TRX_ALL.BILL_TO_SITE_USE_ID),'NA'), FROM SALES_REGIONS,CUSTOMER,REVENUE 23:59:59', 'DD-MON-YYYY HH24:MI:SS') AND (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, 'REC', NVL RA_CUST_TRX_LINE_GL_DIST_ALL.COMMENTS,NVL(TRUNC RA_CUST_TRX_LINE_GL_DIST_ALL.SET_OF_BOOKS_ID IN (1) AND WHERE SALES_REGION.REGION_KEY=REVENUE.REGION_KEY (RA_CUST_TRX_LINE_GL_DIST_ALL.AMOUNT,0),0),NVL (RA_CUST_TRX_LINE_GL_DIST_ALL.GL_DATE),'31-DEC-4712'), RA_CUSTOMER_TRX_ALL.COMPLETE_FLAG='Y' AND AND CUSTOMER.CUSTOMER_KEY=REVENUE.CUSTOMER_KEY (RA_CUSTOMER_TRX_ALL.INVOICE_CURRENCY_CODE,'NA'),DECODE RA_CUST_TRX_LINE_GL_DIST_ALL.GL_POSTED_DATE,DECODE RA_CUST_TRX_LINE_GL_DIST_ALL.CUSTOMER_TRX_LINE_ID=RA_CUSTOMER_TRX_LINES_ALL.CUST AND REVENUE.TIME_PERIOD=JAN-04 (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, 'REV', NVL (RA_CUSTOMER_TRX_LINES_ALL.INVENTORY_ITEM_ID,NULL,'NA',DECODE OMER_TRX_LINE_ID AND REVENUE.CURRENCY=USD (RA_CUST_TRX_LINE_GL_DIST_ALL.AMOUNT,0),0),DECODE (OE_ORDER_LINES_ALL.SHIP_FROM_ORG_ID,NULL,'NA', (+) GROUP BY SALES_REGION_NAME,CUSTOMER_NAME (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, AND RA_CUSTOMER_TRX_LINES_ALL.INVENTORY_ITEM_ID||'-'||OE_ORDER_LINES_ALL.SHIP_FROM_ORG_ID) 'REC', 0, 'REV', 0, 'UNBILL', 0, 'UNEARN', 0, RA_CUST_TRX_LINE_GL_DIST_ALL.CUSTOMER_TRX_ID=RA_CUSTOMER_TRX_ALL.CUSTOMER_TRX_I ),NVL(TRUNC(RA_CUSTOMER_TRX_ALL.TRX_DATE),'31-DEC-4712'), D NVL(RA_CUST_TRX_LINE_GL_DIST_ALL.AMOUNT,0) RA_CUSTOMER_TRX_LINES_ALL.LINE_NUMBER,NVL(RA_CUSTOMER_TRX_LINES_ALL.LINE_TYPE, ),DECODE(RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, 'UNBILL', 'NA'),RA_CUST_TRX_LINE_GL_DIST_ALL.LAST_UPDATE_DATE, NVL(RA_CUST_TRX_LINE_GL_DIST_ALL.AMOUNT,0),0),DECODE RA_CUST_TRX_LINE_GL_DIST_ALL.MRC_ACCTD_AMOUNT,NVL (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS, (RA_CUST_TRX_LINE_GL_DIST_ALL.ORG_ID,-99999),NVL(OE_ORDER_HEADERS_ALL.HEADER_ID, 'UNEARN', NVL (RA_CUST_TRX_LINE_GL_DIST_ALL.AMOUNT,0), 0) FROM GL.GL_CODE_COMBINATIONS@VIS1158 GL_CODE_COMBINATIONS,ONT.OE_ORDER_LINES_ALL@VIS1158 OE_ORDER_LINES_ALL, AR.RA_TERRITORIES@VIS1158 RA_TERRITORIES,ONT.OE_ORDER_HEADERS_ALL@VIS1158 OE_ORDER_HEADERS_ALL,AR.RA_CUSTOMER_TRX_ALL@VIS1158 RA_CUSTOMER_TRX_ALL, AR.RA_CUSTOMER_TRX_LINES_ALL@VIS1158 RA_CUSTOMER_TRX_LINES_ALL, AR.RA_CUST_TRX_LINE_GL_DIST_ALL@VIS1158 RA_CUST_TRX_LINE_GL_DIST_ALL, AR.RA_CUST_TRX_LINE_SALESREPS_ALL@VIS1158 RA_CUST_TRX_LINE_SALESREPS_ALL WHERE ( (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS <> 'REC') OR (RA_CUST_TRX_LINE_GL_DIST_ALL.ACCOUNT_CLASS = 'REC' AND RA_CUST_TRX_LINE_GL_DIST_ALL.LATEST_REC_FLAG = 'Y' )

10

DecisionPoint Applications: What if?


What if you had a query/reporting tool that made the simple query more simple from an end user perspective?
Pros
With the appropriate query tool configuration, changing the query properties is very easy Different display columns Different summarizations Different constraints (i.e. time periods, regions, etc.) Each user can format the data in a manner that suits them best Spreadsheet Chart HTML Much less IT involvement for any change related to data models Additional tables Additional joins Table/Column names that are setup to be user recognizable Any query performance issues are easily diagnosed and resolved

11

DecisionPoint Applications: What if?


What if you had a query/reporting tool that made the simple query more simple from an end user perspective?
Cons
There is a process involved in transforming the data from complex/cryptic structures to simple/recognizable structures Data may not be as timely as some end users need it Processes need to be put in place to ensure data accuracy in the transformation process

Query tools help, and the pros far outweigh the cons
12

DecisionPoint Applications: The Final Frontier


What about users that need to navigate (i.e. move from one model to another for additional information) the data?
Even with simple data models, end users still need the ability to navigate from one data model to the next, seamlessly, in the process of getting more detailed information when required
Requirements Shared dimensions Users can only navigate from one data model to the next when there are a common set of dimensions with which to navigate by Tool intelligence The end user tool needs to be smart enough to know how to let end users navigate within and between data models

Even the best end user tools on the market are significantly lacking when it comes to data model navigation
13

DecisionPoint Applications: Data Access Reality

While end user access is important, the more critical, yet unseen, component is how the information is structured. More Information Access = Better Tools + Better Data Models
14

Related Customer Stories


Quantum
Noetix 13 different client tool environments
Oracle Express, FRx, Discoverer, Cognos, etc.

Oregon Health Sciences University (OHSU)


Noetix Discoverer

The right end user tool DOES NOT make your data access problem any easier

PGA
Noetix FRx, Discoverer

15

DecisionPoint Applications

Anda mungkin juga menyukai