How to implement a 1-n relationship

I'm using oracle 8.1 and currently learning JDO.
Havin the following schema :
DROP TABLE permission_group_map CASCADE CONSTRAINTS;
CREATE TABLE permission_group_map (
permission_group_map_oid NUMBER(10) NOT NULL,
version_oid NUMBER(3) NOT NULL,
group_oid NUMBER(10) NOT NULL,
permission_oid NUMBER(10) NOT NULL,
jdolock NUMBER NULL,
user_id VARCHAR2(20) NULL,
timestamp DATE NULL
ALTER TABLE permission_group_map
ADD ( CONSTRAINT PKpermission_group_map PRIMARY KEY (
permission_group_map_oid) ) ;
DROP TABLE permission CASCADE CONSTRAINTS;
CREATE TABLE permission (
permission_oid NUMBER(10) NOT NULL,
version_oid NUMBER(3) NOT NULL,
name VARCHAR2(60) NULL,
visibility NUMBER(1) NULL,
jdolock NUMBER NULL,
user_id VARCHAR2(20) NULL,
timestamp DATE NULL
ALTER TABLE permission
ADD ( CONSTRAINT PKpermission PRIMARY KEY (permission_oid,
version_oid) ) ;
DROP TABLE user_group CASCADE CONSTRAINTS;
CREATE TABLE user_group (
group_oid NUMBER(10) NOT NULL,
name VARCHAR2(60) NULL,
jdolock NUMBER NULL,
user_id VARCHAR2(20) NULL,
timestamp DATE NULL
ALTER TABLE user_group
ADD ( CONSTRAINT PKuser_group PRIMARY KEY (group_oid) ) ;
ALTER TABLE permission_group_map
ADD ( CONSTRAINT fk2_permission_group_map
FOREIGN KEY (group_oid)
REFERENCES user_group ) ;
ALTER TABLE permission_group_map
ADD ( CONSTRAINT fk1_permission_group_map
FOREIGN KEY (permission_oid, version_oid)
REFERENCES permission ) ;
How can represent a 1-n relation in a .jdo file without adding more fileds.
Here is my .jdo implementation
<class identity-type="application" name="UserGroup"
objectid-class="UserGroupKey" requires-extent="false">
<extension key="table" value="USER_GROUP" vendor-name="kodo"/>
<field name="name" null-value="exception" primary-key="false">
<extension key="data-column" value="NAME"
vendor-name="kodo"/>
<extension key="column-length" value="60"
vendor-name="kodo"/>
</field>
<field name="userId" null-value="exception"
primary-key="false">
<extension key="data-column" value="USER_ID"
vendor-name="kodo"/>
</field>
<field name="groupOid" null-value="exception"
primary-key="true">
<extension key="data-column" value="GROUP_OID"
vendor-name="kodo"/>
</field>
<field name="timestamp" null-value="exception"
primary-key="false">
<extension key="data-column" value="TIMESTAMP"
vendor-name="kodo"/>
</field>
<field name = "permissionGroupMap">
<collection element-type="PermissionGroupMap"/>
<extension vendor-name="kodo" key="inverse"
value="userGroup"/>
</field>
<extension key="lock-column" value="jdolock"
vendor-name="kodo"/>
<extension key="class-column" value="none" vendor-name="kodo"/>
</class>
<class identity-type="application" name="PermissionGroupMap"
objectid-class="PermissionGroupMapKey" requires-extent="false">
<extension key="table" value="PERMISSION_GROUP_MAP"
vendor-name="kodo"/>
<extension key="lock-column" value="jdolock"
vendor-name="kodo"/>
<extension key="class-column" value="none" vendor-name="kodo"/>
<field name="permissionGroupMapOid" null-value="exception"
primary-key="true">
<extension key="data-column"
value="PERMISSION_GROUP_MAP_OID" vendor-name="kodo"/>
</field>
<field name="userId" null-value="exception"
primary-key="false">
<extension key="data-column" value="USER_ID"
vendor-name="kodo"/>
</field>
<field name="permissionOid" null-value="exception"
primary-key="false">
<extension key="data-column" value="PERMISSION_OID"
vendor-name="kodo"/>
</field>
<field name="groupOid" null-value="exception"
primary-key="false">
<extension key="data-column" value="GROUP_OID"
vendor-name="kodo"/>
</field>
<field name="versionOid" null-value="exception"
primary-key="false">
<extension key="data-column" value="VERSION_OID"
vendor-name="kodo"/>
</field>
<field name="timestamp" null-value="exception"
primary-key="false">
<extension key="data-column" value="TIMESTAMP"
vendor-name="kodo"/>
</field>
</class>
and here is the class code
public class PermissionGroupMap {
java.math.BigDecimal permissionGroupMapOid;
java.lang.String userId;
java.math.BigDecimal permissionOid;
java.math.BigDecimal groupOid;
java.math.BigDecimal versionOid;
java.util.Date timestamp;
/** relationship fields **/
UserGroup userGroup;
public class UserGroup {
java.lang.String name;
java.lang.String userId;
java.math.BigDecimal groupOid;
java.util.Date timestamp;
/** relationship fields **/
ArrayList permissionGroupMap = new ArrayList();
Here is the exception that I'm getting :
javax.jdo.JDODataStoreException: [SQL=SELECT t0.PERMISSION_GROUP_MAP_OID,
t0.jdolock, t0.GROUP_OID, t0.PERMISSION_OID, t0.TIMESTAMP,
t0.GROUPOID_USERGROUPX, t0.USER_ID, t0.VERSION_OID FROM
PERMISSION_GROUP_MAP t0 WHERE t0.GROUPOID_USERGROUPX = 1] ORA-00904:
invalid column name

Thanks for you quick response, But I changed the schema a little bit, just
to play arround, now I'm doing a m-n, but it does not work, can you tell
me what I'm doing wrong, here is the schema :
CREATE TABLE user_group (
group_oid NUMBER(10) NOT NULL,
name VARCHAR2(60) NULL,
jdolock NUMBER NULL,
user_id VARCHAR2(20) NULL,
timestamp DATE NULL,
CONSTRAINT PKuser_group
PRIMARY KEY (group_oid)
CREATE TABLE permission (
permission_oid NUMBER(10) NOT NULL,
version_oid NUMBER(3) NOT NULL,
name VARCHAR2(60) NULL,
visibility NUMBER(1) NULL,
jdolock NUMBER NULL,
user_id VARCHAR2(20) NULL,
timestamp DATE NULL,
CONSTRAINT PKpermission
PRIMARY KEY (permission_oid, version_oid)
CREATE TABLE permission_group_map (
group_oid NUMBER(10) NOT NULL,
permission_oid NUMBER(10) NOT NULL,
version_oid NUMBER(3) NOT NULL,
CONSTRAINT PKpermission_group_map
PRIMARY KEY (group_oid, permission_oid, version_oid),
CONSTRAINT R_4
FOREIGN KEY (permission_oid, version_oid)
REFERENCES permission,
CONSTRAINT R_3
FOREIGN KEY (group_oid)
REFERENCES user_group
the .jod file :
<class identity-type="application" name="Permission"
objectid-class="PermissionKey" requires-extent="false">
<extension key="table" value="PERMISSION" vendor-name="kodo"/>
<field name="permissionOid" null-value="exception"
persistence-modifier="persistent" primary-key="true">
<extension key="data-column" value="PERMISSION_OID"
vendor-name="kodo"/>
<extension key="column-length" value="10"
vendor-name="kodo"/>
<extension key="column-index" value="pkPermission"
vendor-name="kodo"/>
</field>
<field name="versionOid" null-value="exception"
persistence-modifier="persistent" primary-key="true">
<extension key="data-column" value="VERSION_OID"
vendor-name="kodo"/>
<extension key="column-index" value="pkPermission"
vendor-name="kodo"/>
<extension key="column-length" value="3"
vendor-name="kodo"/>
</field>
<field name="userGroups">
<collection element-type="UserGroup"/>
<extension vendor-name="kodo" value="permissions"/>
<extension vendor-name="kodo" key="table"
value="PERMISSION_GROUP_MAP"/>
<extension vendor-name="kodo" key="groupOid-data-column"
value="GROUP_OID"/>
<extension vendor-name="kodo"
key="permissionOid-ref-column" value="PERMISSION_OID"/>
<extension vendor-name="kodo" key="versionOid-ref-column"
value="VERSION_OID"/>
</field>
<extension key="class-column" value="none" vendor-name="kodo"/>
<extension key="lock-column" value="jdolock"
vendor-name="kodo"/>
</class>
<class identity-type="application" name="UserGroup"
objectid-class="UserGroupKey" requires-extent="false">
<extension key="table" value="USER_GROUP" vendor-name="kodo"/>
<field name="name" null-value="exception" primary-key="false">
<extension key="data-column" value="NAME"
vendor-name="kodo"/>
<extension key="column-length" value="60"
vendor-name="kodo"/>
</field>
<field name="permissions">
<extension vendor-name="kodo" value="userGroups"/>
<extension vendor-name="kodo" key="table"
value="PERMISSION_GROUP_MAP"/>
<extension vendor-name="kodo" key="groupOid-ref-column"
value="GROUP_OID"/>
<extension vendor-name="kodo"
key="permissionOid-data-column" value="PERMISSION_OID"/>
<extension vendor-name="kodo" key="versionOid-data-column"
value="VERSION_OID"/>
</field>
<extension key="lock-column" value="jdolock"
vendor-name="kodo"/>
<extension key="class-column" value="none" vendor-name="kodo"/>
</class>
CODE :
public class Permission {
     java.math.BigDecimal visibility;
     java.lang.String name;
     java.lang.String userId;
     java.math.BigDecimal permissionOid;
     java.math.BigDecimal versionOid;
     java.util.Date timestamp;
private Collection userGroups = new ArrayList();
public class UserGroup {
     java.lang.String name;
     java.lang.String userId;
     java.math.BigDecimal groupOid;
     java.util.Date timestamp;
Collection permissions = new ArrayList();
Patrick Linskey wrote:
Manuel,
When mapping relations to pre-defined schemas using application identity,
you must use the '<fieldname>-data-column' extension syntax discussed in
http://www.solarmetric.com/Software/Documentation/2.2.6/manual.html#metadata
_extensions.
Additionally, in general, you should not have foreign key fields declared in
your java code as well as relations to other objects. For example, in
PermissionGroupMap, you should just have a relation to UserGroup, and no
groupOid field -- the foreign key information will be handled by JDO, and
should not be user-accessible except through the UserGroup relation.
So, something like this is probably more like what you want (I've removed
some fields for brevity):
<class identity-type="application" name="UserGroup"
objectid-class="UserGroupKey" requires-extent="false">
<field name="groupOid" null-value="exception" primary-key="true">
<extension key="data-column" value="GROUP_OID"
vendor-name="kodo"/>
</field>
<field name = "permissionGroupMap">
<collection element-type="PermissionGroupMap"/>
<extension vendor-name="kodo" key="inverse" value="userGroup"/>
</field>
</class>
<class identity-type="application" name="PermissionGroupMap"
objectid-class="PermissionGroupMapKey" requires-extent="false">
<field name="permissionGroupMapOid" null-value="exception"
primary-key="true">
<extension key="data-column" value="PERMISSION_GROUP_MAP_OID"
vendor-name="kodo"/>
</field>
<field name="userGroup" null-value="exception" primary-key="false">
<extension key="groupOid-data-column" value="GROUP_OID"
vendor-name="kodo"/>
</field>
</class>
public class PermissionGroupMap {
java.math.BigDecimal permissionGroupMapOid;
// this is not needed: java.math.BigDecimal groupOid;
/** relationship fields **/
UserGroup userGroup;
public class UserGroup {
java.math.BigDecimal groupOid;
/** relationship fields **/
ArrayList permissionGroupMap = new ArrayList();
On 6/8/02 11:56 AM, "Manuel Ledesma" <[email protected]> wrote:
I'm using oracle 8.1 and currently learning JDO.
Havin the following schema :
DROP TABLE permission_group_map CASCADE CONSTRAINTS;
CREATE TABLE permission_group_map (
permission_group_map_oid NUMBER(10) NOT NULL,
version_oid NUMBER(3) NOT NULL,
group_oid NUMBER(10) NOT NULL,
permission_oid NUMBER(10) NOT NULL,
jdolock NUMBER NULL,
user_id VARCHAR2(20) NULL,
timestamp DATE NULL
ALTER TABLE permission_group_map
ADD ( CONSTRAINT PKpermission_group_map PRIMARY KEY (
permission_group_map_oid) ) ;
DROP TABLE permission CASCADE CONSTRAINTS;
CREATE TABLE permission (
permission_oid NUMBER(10) NOT NULL,
version_oid NUMBER(3) NOT NULL,
name VARCHAR2(60) NULL,
visibility NUMBER(1) NULL,
jdolock NUMBER NULL,
user_id VARCHAR2(20) NULL,
timestamp DATE NULL
ALTER TABLE permission
ADD ( CONSTRAINT PKpermission PRIMARY KEY (permission_oid,
version_oid) ) ;
DROP TABLE user_group CASCADE CONSTRAINTS;
CREATE TABLE user_group (
group_oid NUMBER(10) NOT NULL,
name VARCHAR2(60) NULL,
jdolock NUMBER NULL,
user_id VARCHAR2(20) NULL,
timestamp DATE NULL
ALTER TABLE user_group
ADD ( CONSTRAINT PKuser_group PRIMARY KEY (group_oid) ) ;
ALTER TABLE permission_group_map
ADD ( CONSTRAINT fk2_permission_group_map
FOREIGN KEY (group_oid)
REFERENCES user_group ) ;
ALTER TABLE permission_group_map
ADD ( CONSTRAINT fk1_permission_group_map
FOREIGN KEY (permission_oid, version_oid)
REFERENCES permission ) ;
How can represent a 1-n relation in a .jdo file without adding more fileds.
Here is my .jdo implementation
<class identity-type="application" name="UserGroup"
objectid-class="UserGroupKey" requires-extent="false">
<extension key="table" value="USER_GROUP" vendor-name="kodo"/>
<field name="name" null-value="exception" primary-key="false">
<extension key="data-column" value="NAME"
vendor-name="kodo"/>
<extension key="column-length" value="60"
vendor-name="kodo"/>
</field>
<field name="userId" null-value="exception"
primary-key="false">
<extension key="data-column" value="USER_ID"
vendor-name="kodo"/>
</field>
<field name="groupOid" null-value="exception"
primary-key="true">
<extension key="data-column" value="GROUP_OID"
vendor-name="kodo"/>
</field>
<field name="timestamp" null-value="exception"
primary-key="false">
<extension key="data-column" value="TIMESTAMP"
vendor-name="kodo"/>
</field>
<field name = "permissionGroupMap">
<collection element-type="PermissionGroupMap"/>
<extension vendor-name="kodo" key="inverse"
value="userGroup"/>
</field>
<extension key="lock-column" value="jdolock"
vendor-name="kodo"/>
<extension key="class-column" value="none" vendor-name="kodo"/>
</class>
<class identity-type="application" name="PermissionGroupMap"
objectid-class="PermissionGroupMapKey" requires-extent="false">
<extension key="table" value="PERMISSION_GROUP_MAP"
vendor-name="kodo"/>
<extension key="lock-column" value="jdolock"
vendor-name="kodo"/>
<extension key="class-column" value="none" vendor-name="kodo"/>
<field name="permissionGroupMapOid" null-value="exception"
primary-key="true">
<extension key="data-column"
value="PERMISSION_GROUP_MAP_OID" vendor-name="kodo"/>
</field>
<field name="userId" null-value="exception"
primary-key="false">
<extension key="data-column" value="USER_ID"
vendor-name="kodo"/>
</field>
<field name="permissionOid" null-value="exception"
primary-key="false">
<extension key="data-column" value="PERMISSION_OID"
vendor-name="kodo"/>
</field>
<field name="groupOid" null-value="exception"
primary-key="false">
<extension key="data-column" value="GROUP_OID"
vendor-name="kodo"/>
</field>
<field name="versionOid" null-value="exception"
primary-key="false">
<extension key="data-column" value="VERSION_OID"
vendor-name="kodo"/>
</field>
<field name="timestamp" null-value="exception"
primary-key="false">
<extension key="data-column" value="TIMESTAMP"
vendor-name="kodo"/>
</field>
</class>
and here is the class code
public class PermissionGroupMap {
java.math.BigDecimal permissionGroupMapOid;
java.lang.String userId;
java.math.BigDecimal permissionOid;
java.math.BigDecimal groupOid;
java.math.BigDecimal versionOid;
java.util.Date timestamp;
/** relationship fields **/
UserGroup userGroup;
public class UserGroup {
java.lang.String name;
java.lang.String userId;
java.math.BigDecimal groupOid;
java.util.Date timestamp;
/** relationship fields **/
ArrayList permissionGroupMap = new ArrayList();
Here is the exception that I'm getting :
javax.jdo.JDODataStoreException: [SQL=SELECT t0.PERMISSION_GROUP_MAP_OID,
t0.jdolock, t0.GROUP_OID, t0.PERMISSION_OID, t0.TIMESTAMP,
t0.GROUPOID_USERGROUPX, t0.USER_ID, t0.VERSION_OID FROM
PERMISSION_GROUP_MAP t0 WHERE t0.GROUPOID_USERGROUPX = 1] ORA-00904:
invalid column name
Patrick Linskey [email protected]
SolarMetric Inc. http://www.solarmetric.com

Similar Messages

  • How to implement one to many relationship between two Document Line Table

    Hi,
    I want to implement the following relationship into user defined tables:
    Example Situation:
    There are tables A, B and C.
    For one record of Table A, there could be multiple records in table B.
    For one record of Table B, there could be multiple records in table C.
    i.e. A(1) -> B(n) [One to many relationship]
         B(1) -> C(n) [One to many relationship]
    finally: A(1) -> B(n) -> C(n)
    How can I achieve this? If I make Table A as Document and table B & C as Document Line and then make them UDO, will it work? Kindly suggest me a solution.
    Regards,
    Sudeshna.

    Hi,
    I think that the database representation is exactly what you ask for. 3 tables, A, B, C. A should have a UDF that is linked to B table, and B should have a UDF that is linked to C table.
    You should manage the database transactions, and the UI to support all this stuff.
    Regards,
    IBai Peñ

  • How to implement SEARCH HELP for input field in WDA

    Hi All,
    I am doing a tool for my team. in this tool there are 4 input fields to show different processes. I implemented the 4 input fields and also bind the respective tables to these fields successfully. Actually I want to filter the data between 2 fields . Means the data in the 2nd input field should be based on the 1st input field. Means when I'll select for example 'CHI' (code for CHINA) in the 1st input field the 2nd field meant for country name should show all country name with value 'CHINA'. But the problem is that all values related to each field are in different table with no foreign key relationship and also some combinations are in single table..
    I have tried the import and export parameter method for search help but no luck till now.
    Can anyone please suggest me how to implement this scenario..
    Thanks in advance...
    sekhar

    Hi sekhar,
    Your Requirement can be implemented by OVS(Object Value selector) This is the custom search help .So that you can define on what basis the value has to be fetched.
    Look at the below link
    http://wiki.sdn.sap.com/wiki/display/WDABAP/ABAPWDObjectValueSelector(OVS)
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/606288d6-04c6-2c10-b5ae-a240304c88ea?quicklink=index&overridelayout=true
    You need to use the component WDR_OVS.
    It has 3 phases
    In phase 1
         You will fetch the value from input field to F4 help dialog box.
    In phase 2
         You will generate the search results , in this phase look for the input value given in field 2 and accordingly generate search result for the field 3.
    In phase 3
         The selected value will be returned to the original screen.
    Regards
    Karthiheyan M

  • How to use GL Parent Child relationships in Discoverer?

    Subject: How to used GL Parent Child relationships in Discoverer?
    How to use GL Parent Child relationships in Discoverer?
    Please let me know how to incorporate the parent -child relation ships exsiting in GL Accouting flexfield Segments in Discoverer for drill downs? we have GL - BIS views installed.
    How to create the specific Parent -child relationship hierarchies in Discoverer from the FND_* tables?
    Please help.
    Thanks.
    KS.

    Hi,
    I'm also trying to implement this. If you have come any further in solving this any hints would be much appreciated...
    regards,
    AJ

  • How to implement parent entity for core data

    Hi there.
    I am starting a document-based Core Data application (Cocoa) and developed the following data model;
    The 'invoice' entity is a parent entity of 'items', because ideally I would want there to be many items for each invoice. I guess my first point here is - is what I am trying to do going to be achieved using this method?
    If so, I have been trying several ways in Interface Builder to sort out how to implement this structure with cocoa bindings. I have made a Core Data app before, just with one entity. So this time, I have two separate instances of NSArrayController's connected to tables with relevant columns. I can add new 'invoice' entities fine, but I can't get corresponding 'items' to add.
    I tried setting the Managed Object Context of the 'item' NSArrayController to this;
    I thought this would resolve the issue, but I still have found no resolution to the problem.
    If anyone done something similar to this, I'd appreciate any help
    Thanks in advance,
    Ricky.

    Second, when you create a Core Data Document Based application, XCode generates the MyDocument class, derivating from NSPersistentDocument. This class is dedicated to maintain the Managed Object Model and the Managed Object Context of each document of your application.
    There is only one Context and generally one Model for each Document.
    In Interface Builder, the Managed Object Context must be bound to the managedObjectContext of the MyDocument instance: it's the File's owner of the myDocument.xib Nib file.
    It's not the case in your Nib File where the Managed Object Context is bound to the invoiceID of the Invoice Controller.
    It's difficult to help you without an overall knowledge of your application, perhaps could you create an InvoiceItem Controller and bind its Content Set to the relationship of your invoice.

  • How to design many to many relationship in the fact and dimension

    There is a problem in my project what is the subject.And i wanna know how to implement in owb.I use the warehouse builder 10. Thanks.

    You may design and load whatever db model you want to.
    But If you set a unique key, you may find some integrity issues. I wouldn't do a many to many relationship between facts and dimensions. This could cause you lots of headaches when users start to submit queries using this tables. You'll probably face performance issues.
    Regards,
    Marcos

  • What is BI ? How we implement & what is the cost to implement ?

    What is BI ? How we implement & what is the cost to implement ?
    Thanks,
    Sumit.

    Hi Sumit,
                        Below is the description according to ur query
    Business Intelligence is a process for increasing the competitive advantage of a business by intelligent use of available data in decision making. This process is pictured below.
    The five key stages of Business Intelligence:
    1.     Data Sourcing
    2.     Data Analysis
    3.     Situation Awareness
    4.     Risk Assessment
    5.     Decision Support
    Data sourcing
    Business Intelligence is about extracting information from multiple sources of data. The data might be: text documents - e.g. memos or reports or email messages; photographs and images; sounds; formatted tables; web pages and URL lists. The key to data sourcing is to obtain the information in electronic form. So typical sources of data might include: scanners; digital cameras; database queries; web searches; computer file access; etcetera.
    Data analysis
    Business Intelligence is about synthesizing useful knowledge from collections of data. It is about estimating current trends, integrating and summarising disparate information, validating models of understanding, and predicting missing information or future trends. This process of data analysis is also called data mining or knowledge discovery. Typical analysis tools might use:-
    u2022     probability theory - e.g. classification, clustering and Bayesian networks; 
    u2022     statistical methods - e.g. regression; 
    u2022     operations research - e.g. queuing and scheduling; 
    u2022     artificial intelligence - e.g. neural networks and fuzzy logic.
    Situation awareness
    Business Intelligence is about filtering out irrelevant information, and setting the remaining information in the context of the business and its environment. The user needs the key items of information relevant to his or her needs, and summaries that are syntheses of all the relevant data (market forces, government policy etc.).  Situation awareness is the grasp of  the context in which to understand and make decisions.  Algorithms for situation assessment provide such syntheses automatically.
    Risk assessment
    Business Intelligence is about discovering what plausible actions might be taken, or decisions made, at different times. It is about helping you weigh up the current and future risk, cost or benefit of taking one action over another, or making one decision versus another. It is about inferring and summarising your best options or choices.
    Decision support
    Business Intelligence is about using information wisely.  It aims to provide warning you of important events, such as takeovers, market changes, and poor staff performance, so that you can take preventative steps. It seeks to help you analyse and make better business decisions, to improve sales or customer satisfaction or staff morale. It presents the information you need, when you need it.
    This section describes how we are using extraction, transformation and loading (ETL) processes and a data warehouse architecture to build our enterprise-wide data warehouse in incremental project steps. Before an enterprise-wide data warehouse could be delivered, an integrated architecture and a companion implementation methodology needed to be adopted. A productive and flexible tool set was also required to support ETL processes and the data warehouse architecture in a production service environment. The resulting data warehouse architecture has the following four principal components:
    u2022 Data Sources
    u2022 Data Warehouses
    u2022 Data Marts
    u2022 Publication Services
    ETL processing occurs between data sources and the data warehouse, between the data warehouse and data marts and may also be used within the data warehouse and data marts.
    Data Sources
    The university has a multitude of data sources residing in different Data Base Management System (DBMS) tables and non-DBMS data sets. To ensure that all relevant data source candidates were identified, a physical inventory and logical inventory was conducted. The compilation of these inventories ensures that we have an enterprise-wide view of the university data resource.
    The physical inventory was comprised of a review of DBMS cataloged tables as well as data sets used by business processes. These data sets had been identified through developing the enterprise-wide information needs model.
    3
    SUGI 30 Focus Session
    The logical inventory was constructed from u201Cbrain-stormingu201D sessions which focused on common key business terms which must be referenced when articulating the institutionu2019s vision and mission (strategic direction, goals, strategies, objectives and activities). Once the primary terms were identified, they were organized into directories such as u201CProjectu201D, u201CLocationu201D, u201CAcademic Entityu201D, u201CUniversity Personu201D, u201CBudget Envelopeu201D etc. Relationships were identified by recognizing u201Cnatural linkagesu201D within and among directories, and the u201Cdrill-downsu201D and u201Croll-upsu201D that were required to support u201Creport byu201D and u201Creport onu201D information hierarchies. This exercise allowed the directories to be sub-divided into hierarchies of business terms which were useful for presentation and validation purposes.
    We called this important deliverable the u201CConceptual Data Modelu201D (CDM) and it was used as the consolidated conceptual (paper) view of all of the Universityu2019s diverse data sources. The CDM was then subjected to a university-wide consultative process to solicit feedback and communicate to the university community that this model would be adopted by the Business Intelligence (BI) project as a governance model in managing the incremental development of its enterprise-wide data warehousing project.
    Data Warehouse
    This component of our data warehouse architecture (DWA) is used to supply quality data to the many different data marts in a flexible, consistent and cohesive manner. It is a u2018landing zoneu2019 for inbound data sources and an organizational and re-structuring area for implementing data, information and statistical modeling. This is where business rules which measure and enforce data quality standards for data collection in the source systems are tested and evaluated against appropriate data quality business rules/standards which are required to perform the data, information and statistical modeling described previously.
    Inbound data that does not meet data warehouse data quality business rules is not loaded into the data warehouse (for example, if a hierarchy is incomplete). While it is desirable for rejected and corrected records to occur in the operational system, if this is not possible then start dates for when the data can begin to be collected into the data warehouse may need to be adjusted in order to accommodate necessary source systems data entry u201Cre-worku201D. Existing systems and procedures may need modification in order to permanently accommodate required data warehouse data quality measures. Severe situations may occur in which new data entry collection transactions or entire systems will need to be either built or acquired.
    We have found that a powerful and flexible extraction, transformation and loading (ETL) process is to use Structured Query Language (SQL) views on host database management systems (DBMS) in conjunction with a good ETL tool such as SAS® ETL Studio. This tool enables you to perform the following tasks:
    u2022 The extraction of data from operational data stores
    u2022 The transformation of this data
    u2022 The loading of the extracted data into your data warehouse or data mart
    When the data source is a u201Cnon-DBMSu201D data set it may be advantageous to pre-convert this into a SAS® data set to standardize data warehouse metadata definitions. Then it may be captured by SAS® ETL Studio and included in the data warehouse along with any DBMS source tables using consistent metadata terms. SAS® data sets, non-SAS® data sets, and any DBMS table will provide the SAS® ETL tool with all of the necessary metadata required to facilitate productive extraction, transformation and loading (ETL) work.
    Having the ability to utilize standard structured query language (SQL) views on host DBMS systems and within SAS® is a great advantage for ETL processing. The views can serve as data quality filters without having to write any procedural code. The option exists to u201Cmaterializeu201D these views on the host systems or leave them u201Cun-materializedu201D on the hosts and u201Cmaterializeu201D them on the target data structure defined in the SAS® ETL process. These choices may be applied differentially depending upon whether you are working with u201Ccurrent onlyu201D or u201Ctime seriesu201D data. Different deployment configurations may be chosen based upon performance issues or cost considerations. The flexibility of choosing different deployment options based upon these factors is a considerable advantage.
    4
    SUGI 30 Focus Session
    Data Marts
    This component of the data warehouse architecture may manifest as the following:
    u2022 Customer u201Cvisibleu201D relational tables
    u2022 OLAP cubes
    u2022 Pre-determined parameterized and non-parameterized reports
    u2022 Ad-hoc reports
    u2022 Spreadsheet applications with pre-populated work sheets and pivot tables
    u2022 Data visualization graphics
    u2022 Dashboard/scorecards for performance indicator applications
    Typically a business intelligence (BI) project may be scoped to deliver an agreed upon set of data marts in a project. Once these have been well specified, the conceptual data model (CDM) is used to determine what parts need to be built or used as a reference to conform the inbound data from any new project. After the detailed data mart specifications (DDMS) have been verified and the conceptual data model (CDM) components determined, a source and target logical data model (LDM) can be designed to integrate the detailed data mart specification (DDMS) and conceptual data model (CMD). An extraction, transformation and loading (ETL) process can then be set up and scheduled to populate the logical data models (LDM) from the required data sources and assist with any time series and data audit change control requirements.
    Over time as more and more data marts and logical data models (LDMu2019s) are built the conceptual data model (CDM) becomes more complete. One very important advantage to this implementation methodology is that the order of the data marts and logical data models can be entirely driven by project priority, project budget allocation and time-to-completion constraints/requirements. This data warehouse architecture implementation methodology does not need to dictate project priorities or project scope as long as the conceptual data model (CDM) exercise has been successfully completed before the first project request is initiated.
    McMasteru2019s Data Warehouse design
    DevelopmentTestProductionWarehouseWarehouseWarehouseOtherDB2 OperationalOracle OperationalETLETLETLETLETLETLETLETLETLDataMartsETLETLETLDataMartsDataMartsDB2/Oracle BIToolBIToolBIToolNoNoUserUserAccessAccessUserUserAccessAccess(SAS (SAS Data sets)Data sets)Staging Area 5
    SUGI 30 Focus Session
    Publication Services
    This is the visible presentation environment that business intelligence (BI) customers will use to interact with the published data mart deliverables. The SAS® Information Delivery Portal will be utilized as a web delivery channel to deliver a u201Cone-stop information shoppingu201D solution. This software solution provides an interface to access enterprise data, applications and information. It is built on top of the SAS Business Intelligence Architecture, provides a single point of entry and provides a Portal API for application development. All of our canned reports generated through SAS® Enterprise Guide, along with a web-based query and reporting tool (SAS® Web Report Studio) will be accessed through this publication channel.
    Using the portalu2019s personalization features we have customized it for a McMaster u201Clook and feelu201D. Information is organized using pages and portlets and our stakeholders will have access to public pages along with private portlets based on role authorization rules. Stakeholders will also be able to access SAS® data sets from within Microsoft Word and Microsoft Excel using the SAS® Add-In for Microsoft Office. This tool will enable our stakeholders to execute stored processes (a SAS® program which is hosted on a server) and embed the results in their documents and spreadsheets. Within Excel, the SAS® Add-In can:
    u2022 Access and view SAS® data sources
    u2022 Access and view any other data source that is available from a SAS® server
    u2022 Analyze SAS® or Excel data using analytic tasks
    The SAS® Add-In for Microsoft Office will not be accessed through the SAS® Information Delivery Portal as this is a client component which will be installed on individual personal computers by members of our Client Services group. Future stages of the project will include interactive reports (drill-down through OLAP cubes) as well as balanced scorecards to measure performance indicators (through SAS® Strategic Performance Management software). This, along with event notification messages, will all be delivered through the SAS® Information Delivery Portal.
    Publication is also channeled according to audience with appropriate security and privacy rules.
    SECURITY u2013 AUTHENTICATION AND AUTHORIZATION
    The business value derived from using the SAS® Value Chain Analytics includes an authoritative and secure environment for data management and reporting. A data warehouse may be categorized as a u201Ccollection of integrated databases designed to support managerial decision making and problem solving functionsu201D and u201Ccontains both highly detailed and summarized historical data relating to various categories, subjects, or areasu201D. Implementation of the research funding data mart at McMaster has meant that our stakeholders now have electronic access to data which previously was not widely disseminated. Stakeholders are now able to gain timely access to this data in the form that best matches their current information needs. Security requirements are being addressed taking into consideration the following:
    u2022 Data identification
    u2022 Data classification
    u2022 Value of the data
    u2022 Identifying any data security vulnerabilities
    u2022 Identifying data protection measures and associated costs
    u2022 Selection of cost-effective security measures
    u2022 Evaluation of effectiveness of security measures
    At McMaster access to data involves both authentication and authorization. Authentication may be defined as the process of verifying the identity of a person or process within the guidelines of a specific
    6
    SUGI 30 Focus Session
    security policy (who you are). Authorization is the process of determining which permissions the user has for which resources (permissions). Authentication is also a prerequisite for authorization. At McMaster business intelligence (BI) services that are not public require a sign on with a single university-wide login identifier which is currently authenticated using the Microsoft Active Directory. After a successful authentication the SAS® university login identifier can be used by the SAS® Meta data server. No passwords are ever stored in SAS®. Future plans at the university call for this authentication to be done using Kerberos.
    At McMaster aggregate information will be open to all. Granular security is being implemented as required through a combination of SAS® Information Maps and stored processes. SAS® Information Maps consist of metadata that describe a data warehouse in business terms. Through using SAS® Information Map Studio which is an application used to create, edit and manage SAS® Information Maps, we will determine what data our stakeholders will be accessing through either SAS® Web Report Studio (ability to create reports) or SAS® Information Delivery Portal (ability to view only). Previously access to data residing in DB-2 tables was granted by creating views using structured query language (SQL). Information maps are much more powerful as they capture metadata about allowable usage and query generation rules. They also describe what can be done, are database independent and can cross databases and they hide the physical structure of the data from the business user. Since query code is generated in the background, the business user does not need to know structured query language (SQL). As well as using Information Maps, we will also be using SAS® stored processes to implement role based granular security.
    At the university some business intelligence (BI) services are targeted for particular roles such as researchers. The primary investigator role of a research project needs access to current and past research funding data at both the summary and detail levels for their research project. A SAS® stored process (a SAS® program which is hosted on a server) is used to determine the employee number of the login by checking a common university directory and then filtering the research data mart to selectively provide only the data that is relevant for the researcher who has signed onto the decision support portal.
    Other business intelligence (BI) services are targeted for particular roles such as Vice-Presidents, Deans, Chairs, Directors, Managers and their Staff. SAS® stored processes are used as described above with the exception that they filter data on the basis of positions and organizational affiliations. When individuals change jobs or new appointments occur the authorized business intelligence (BI) data will always be correctly presented.
    As the SAS® stored process can be executed from many environments (for example, SAS® Web Report Studio, SAS® Add-In for Microsoft Office, SAS® Enterprise Guide) authorization rules are consistently applied across all environments on a timely basis. There is also potential in the future to automatically customize web portals and event notifications based upon the particular role of the person who has signed onto the SAS® Information Delivery Portal.
    ARCHITECTURE (PRODUCTION ENVIRONMENT)
    We are currently in the planning stages for building a scalable, sustainable infrastructure which will support a scaled deployment of the SAS® Value Chain Analytics. We are considering implementing the following three-tier platform which will allow us to scale horizontally in the future:
    Our development environment consists of a server with 2 x Intel Xeon 2.8GHz Processors, 2GB of RAM and is running Windows 2000 u2013 Service Pack 4.
    We are considering the following for the scaled roll-out of our production environment.
    A. Hardware
    1. Server 1 - SAS® Data Server
    - 4 way 64 bit 1.5Ghz Itanium2 server
    7
    SUGI 30 Focus Session
    - 16 Gb RAM
    - 2 73 Gb Drives (RAID 1) for the OS
    - 1 10/100/1Gb Cu Ethernet card
    - 1 Windows 2003 Enterprise Edition for Itanium
    2 Mid-Tier (Web) Server
    - 2 way 32 bit 3Ghz Xeon Server
    - 4 Gb RAM
    - 1 10/100/1Gb Cu Ethernet card
    - 1 Windows 2003 Enterprise Edition for x86
    3. SAN Drive Array (modular and can grow with the warehouse)
    - 6 u2013 72GB Drives (RAID 5) total 360GB for SAS® and Data
    B. Software
    1. Server 1 - SAS® Data Server
    - SAS® 9.1.3
    - SAS® Metadata Server
    - SAS® WorkSpace Server
    - SAS® Stored Process Server
    - Platform JobScheduler
    2. Mid -Tier Server
    - SAS® Web Report Studio
    - SAS® Information Delivery Portal
    - BEA Web Logic for future SAS® SPM Platform
    - Xythos Web File System (WFS)
    3. Client u2013Tier Server
    - SAS® Enterprise Guide
    - SAS® Add-In for Microsoft Office
    REPORTING
    We have created a number of parameterized stored processes using SAS® Enterprise Guide, which our stakeholders will access as both static (HTML as well as PDF documents) and interactive reports (drill-down) through SAS® Web Report Studio and the SAS® Add-In for Microsoft Office. All canned reports along with SAS® Web Report Studio will be accessed through the SAS® Information Delivery Portal.
    NEXT STEPS
    Next steps of the project include development of a financial data mart along with appropriate data quality standards, monthly frozen snapshots and implementation of university-wide financial reporting standards. This will facilitate electronic access to integrated financial information necessary for the development and maintenance of an integrated, multi-year financial planning framework. Canned reports to include monthly web-based financial statements, with drill-down capability along with budget templates automatically populated with data values and saved in different workbooks for different subgroups (for example by Department). The later will be accomplished using Microsoft Direct Data Exchange (DDE).
    8
    SUGI 30 Focus Session
    As well, we will begin the implementation of SAS® Strategic Performance Management Software to support the performance measurement and monitoring initiative that is a fundamental component of McMasteru2019s strategic plan. This tool will assist in critically assessing and identifying meaningful and statistically relevant measures and indicators. This software can perform causal analyses among various measures within and across areas providing useful information on inter-relationships between factors and measures. As well as demonstrating how decisions in one area affect other areas, these cause-and-effect analyses can reveal both good performance drivers and also possible detractors and enable u2018evidenced-basedu2019 decision-making. Finally, the tool provides a balanced scorecard reporting format, designed to identify statistically significant trends and results that can be tailored to the specific goals, objectives and measures of the various operational areas of the University.
    LESSONS LEARNED
    Lessons learned include the importance of taking a consultative approach not only in assessing information needs, but also in building data hierarchies, understanding subject matter, and in prioritizing tasks to best support decision making and inform senior management. We found that a combination of training and mentoring (knowledge transfer) helped us accelerate learning the new tools. It was very important to ensure that time and resources were committed to complete the necessary planning and data quality initiatives prior to initiating the first project. When developing a project plan, it is important to

  • How to Implement BW in IT Service Desk/IT Help Desk /IT Complain Surveillance Dept/IT Customer Support Dept?

    Hi
    If a organization have 200 to 300 daily complains of there IT equipment/Software/Network e.t.c.
    How to Implement BW in IT Service Desk/IT Help Desk /IT Complain Surveillance Dept/IT Customer Support Dept?
    Is there any standard DataSources/InfoObjects/DSOs/InfoCubes etc. available in SAP BI Content?

    Imran,
    The point I think was to ensure that you knew exactly what was required. A customer service desk can have many interpretations from a BI perspective.
    You could have :
    1. Operational reports - calls attended per shift , Average number of calls per person , Seasonality in the calls coming in etc
    2. Analytic views - Utilization of resources , Average call time and trending , customer satisfaction , average wait time
    3. Strategic - Call volumes corresponding to campaigns etc , Employee churn and related call times
    Based on these you would then have to construct your models which would be populated by data from the MySQL instance for you to report.
    Else if you have BWA you could have data discovery instead or if you have HANA - you could do even more and if you have a HANA sidecar - you technically dont need BW. The possibilities are virtually endless - it depends on how you want to drive it and how the end user ( client ) sees value in the same.

  • How to implement implicit and explicit enhancement points

    Hi,
    Can anybody please provide some technical aspects of enhancement spots. I have gone through several sap sites and help poratl but have not get much technical things (how to implement or related t codes). please do not provide link to read theories.
    Rgds
    sudhanshu

    Hi,
    Refer to this link...
    http://help.sap.com/saphelp_nw2004s/helpdata/en/5f/103a4280da9923e10000000a155106/content.htm

  • How many types of authentications in sharepoint and how to implement those authentication in sharepoint?

    Hi All,
    How many types of authentications in sharepoint and how to implement those authentication in sharepoint?
    can any one explain the above things with examples?
    Thanks in Advance!

    In addition to
    A Sai Gunaranjan you can also check this URL for Sharepoint 2010:
    http://technet.microsoft.com/en-us/library/cc288475(v=office.14).aspx
    http://www.codeproject.com/Tips/382312/SharePoint-2010-Form-Based-Authentication
    ***If my post is answer for your query please mark as answer***
    ***If my answer is helpful please vote***

  • How to Implement custom share functionality in SharePoint 2013 document Lib programmatically?

    Hi,
    I have created custom action for Share functionality in document library.
    On Share action i'm showing Model pop up with Share form with addition functionality.
    I am developing custom share functionality because there is some addition functionality related to this.
    How to Implement custom share functionality in SharePoint 2013  document Lib pro-grammatically?
    Regards,
    - Siddhehswar

    Hi Siddhehswar:
    I would suggest that you use the
    Ribbon. Because this is a flexible way for SharePoint. In my project experience, I always suggest my customers to use it. In the feature, if my customers have customization about permission then i can accomplish this as soon
    as possible. Simple put, I utilize this perfect mechanism to resolve our complex project requirement. Maybe we customize Upload/ Edit/ Modify/ Barcode/ Send mail etc... For example:
    We customize <Edit> Ribbon. As shown below.
    When user click <Edit Item>, the system will
    render customized pop up window.
    Will

  • Can't Figure Out How To Implement IEnumerable T

    I have no problem implementing IEnumerable but can't figure out how to implement IEnumerable<T>. Using the non-generic ArrayList, I have this code:
    class PeopleCollection : IEnumerable
    ArrayList people = new ArrayList();
    public PeopleCollection() { }
    public IEnumerator GetEnumerator()
    return people.GetEnumerator();
    class Program
    static void Main(string[] args)
    PeopleCollection collection = new PeopleCollection();
    foreach (Person p in collection)
    Console.WriteLine(p);
    I'm trying to do the same thing (using a List<Person> as the member variable instead of ArrayList) but get compile errors involving improper return types on my GetEnumerator() method. I start out with this:
    class PeopleCollection : IEnumerable<Person>
    List<Person> myPeople = new List<Person>();
    public PeopleCollection() { }
    public IEnumerator<Person> GetEnumerator()
    throw new NotImplementedException();
    IEnumerator IEnumerable.GetEnumerator()
    throw new NotImplementedException();
    class Program
    static void Main(string[] args)
    // Create a PeopleCollection object.
    PeopleCollection peopleCollection = new PeopleCollection();
    // Iterate over the collection.
    foreach (Person p in peopleCollection)
    Console.WriteLine(p);
    Console.ReadLine();
    That code compiles (basically because I haven't really done anything yet), but I get compile errors when I try to implement the GetEnumerator() methods.

    The List<T> class implements the IEnumerable<T> interface, so your enumerator can return the GetEnumerator call from the list.
    class PeopleCollection : IEnumerable<Person>
    List<Person> myPeople = new List<Person>();
    public PeopleCollection() { }
    public IEnumerator<Person> GetEnumerator()
    return myPeople.GetEnumerator();
    IEnumerator IEnumerable.GetEnumerator()
    return myPeople.GetEnumerator();
    class Program
    static void Main(string[] args)
    // Create a PeopleCollection object.
    PeopleCollection peopleCollection = new PeopleCollection();
    // Iterate over the collection.
    foreach (Person p in peopleCollection)
    Console.WriteLine(p);
    Console.ReadLine();

  • How to implement Tool TIP in Table Control

    Hello Everyone,
    Can you please tell me how to implement a tooltip messages in table control columns.
    The Tooltip contains a simple message like "Doublde click on column.
    Thanks in advance.
    Edited by: Suruchi Razdan on Jun 6, 2011 7:57 AM

    Hello,
    In table Control->first Header Row has chance to maintain the Tooltip option.
    In table control columns maintain Double click options in attributes .
    Regards,
    Praveen

  • How to implement a java class in my form .

    Hi All ,
    I'm trying to create a Button or a Bean Area Item and Implement a class to it on the ( IMPLEMENTATION CLASS ) property such as ( oracle.forms.demos.RoundedButton ) class . but it doesn't work ... please tell me how to implement such a class to my button .
    Thanx a lot for your help.
    AIN
    null

    hi [email protected]
    tell me my friend .. how can i extend
    the standard Forms button in Java ? ... what is the tool for that ... can you explain more please .. or can you give me a full example ... i don't have any expereience on that .. i'm waiting for your reply .
    Thanx a lot for your cooperation .
    Ali
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by [email protected]:
    Henrik, the Java importer lets you call Java classes on the app server side - I think what Ali is trying to do is integrate on the client side.
    If you want to add your own button then if you extend the standard Forms button in Java and then use this class name in the implementation class property then the Java for your button will be used instead of the standard Forms button. And since it has extended the basic Forms button it has all the standard button functionality.
    There is a white paper on OTN about this and we have created a new white paper which will be out in a couple of months (I think).
    Regards
    Grant Ronald<HR></BLOCKQUOTE>
    null

  • How to implement a file system in my app?

    How to implement a file system in my app? So that we can connect to my iPhone via Finder->Go->Connect to Server. And my iPhone will show as a shared disk. Any ideas about it? Thanks.

    Hi Rain--
    From webdav.org:
    DAV-E is a WebDAV client for iPhone, with free and full versions. It provides remote file browsing via WebDAV, and can be used to upload pictures taken with the iPhone.
    http://greenbytes.de/dav-e.html
    http://www.greenbytes.de/tech/webdav/
    Hope this helps.

Maybe you are looking for

  • Home screen:feature not supported gallery broken

    Hi there, this is my first post here so i'll try to be quick i foolishly tried installing the ms apps using a third party app since i saw it worked on other people's phones and i thought i would give it a shot i was wrong for about 3-4 days i've been

  • Mac mini using mitsubishi 55" widescreen as display

    I have been told that this mini mac will work with no problems using the mitsubishi 55" widescreen HDTV as a monitor. When I choose the display, I only get 3 choices and they are all terrible. I tried the magic commad+a,v etc.. to no avail. Can anyon

  • Using the servlets with IIS

    hi, In a portal project using ASP and IIS server, i need to develop an application which connect to the web and retrieve documents from it. I choose a servlet technology to do this. I have two question : 1) If the portal uses IIS can i use Servlets w

  • ME57 :scope of list

    Hi MM gurus , I have a query when i am executing the report for scope of list : I one line loop , can i get thr Release date column also ? Pl guide .

  • Using Ant to execute WLST setAppMetadataRepository command

    I am having a problem using Ant to execute the setAppMetadataRepository WLST command. This command puts an entry in adf-config.xml that points to the MDS datasource. This is the ant task that I'm using. These commands work from the WLST tool, but whe