Loading Parent Keys in Customer Dimension

I have a question about how to setup my mapping for my Customer Dimension. A subset of the dimension attributes is below:
Customer_Key (Surrogate Key)
Customer_Number
Parent_Key
Bill_To_Key
My source table has the following fields:
Customer_Number
Bill_to_Customer_number
Parent_Customer_number
I am having difficulty in visualizing this because I can see where the current record may be for customer 10 and its parent is customer 20. Since I have not loaded the record for customer 20, I cannot use a lookup to get the surrogate key for customer 20 as it does not exist. So, my only thought was to load the dimension without the parent and bill_to keys and then run a post-mapping process to update the missing fields. This works, but takes an extremely long time (4 hours) as there are over 300,000 records that it has to update. Maybe my post-mapping process was just inefficient, I am not sure. What I am doing is running an update command on my dimension and looking up the customer-numbers from my staging table, then looking up the surrogate key in my dimension.
Is there a better, more efficient, way to do this?
Thanks,
Jason

I did a little more work with this and have developed at procedure in the post-mapping process that updates the necessary fields in about 3-4 seconds.
Sorry for taking up extra room in the OWB forum with a sql efficiency issue.
Thanks,
Jason

Similar Messages

  • Loading Metadata from ODI to Hyperion Planning Custom Dimension

    Customer want to load a metadata from ODI to Hyperion planning customer dimension using flat files(.txt files).
    Is it possible to load the metadata into custom dimension? If this is possible, do we need any other KM for planning except RKM Hyperion Planning?
    Because when i try to map the dimension from source to taget the connection is blanck. Getting "Used by target columns none".
    Please refer the image
    http://1.bp.blogspot.com/_Z0lKn46L41I/TJuZcsQxIjI/AAAAAAAAA90/TTv79fbQ9ks/s1600/ODIIssue.JPG
    Thanks
    Vikram

    Yes you can load to custom dimensions just like the other dimensions, the custom dimensions should be reversed into the model.
    You need to use the IKM SQL to Hyperion Planning, make sure you set the staging area different than the target.
    If you want to see how to load metadata to planning, have a read of :- http://john-goodwin.blogspot.com/2008/10/odi-series-part-5-sql-to-planning.html
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Parent child hierhecy in customer dimension how can select parent gogrphey when we select parent id in MDX

    i have customer dimension
    CustomerId
    CustomerName
    CustomerParentID
    State
    Region
    my requiremnt is when i select parent id automatically my parent state select using MDX query.

    Hi Manishcal,
    According to your description, you want to get parent state based on the parent id, right?
    We can use the parent function and member properties function to retrival the dimension attribute. I have tested it on my local environment, the sample query below is for you reference.
    with member [measures].[Parent]
    as
    [Employee].[Employees].currentmember.parent.name
    member [measures].[ParentHireDate]
    as
    [Employee].[Employees].currentmember.parent.properties("Hire Date")
    select {[measures].[Parent],[measures].[ParentHireDate]} on 0,
    [Employee].[Employees].[Employee Level 06].members on 1
    from
    [Adventure Works]
    Regards,
    Charlie Liao
    TechNet Community Support

  • Error when loading metadata into Custom Dimension(Planning)

    Hi all,
    We are using text files to load metadata into Hyperion Planning. This works fine for standard dimensions. But it doesn't seem to work well for custom dimensions.
    I have reversed the model for the custom dimension, and also set the staging area as different from target.
    Error:
    com.hyperion.planning.InvalidMemberException: The member <membername> does not exist or you do not have access to it.
    How does ODI realize a custom dimension load(as opposed to a standard dimension load)?
    Thanks.

    Hi,
    Please try this
    1. Go to Designer and select the Interface
    2. Go to Flow tab
    3. Select your target
    4. Go to target properties windows
    5. Now you can find option called "LOAD_ORDER_BY_INPUT" and "SORT_PARENT_CHILE"
    6. Please select the different values "YES" or "NO" and try to load the values.
    Thanks and Regards,
    Vikram.

  • Custom Dimension with multiple children defined as "Never Share"

    Hyperion Planning - 11.1.1.3
    There is Custom dimension "Appliance" with root defined as a "Never Share". It has multiple level 0 (SubAppl1, SubAppl2, SubAppl3 etc) members with "Store". Data is some times loaded at root level and some times at the lower levels and at times both. What is the expected result?
    When POV is Appliance and when it is drilled down?
    For Ex:
    For Jan -
    Appliance is 100, No other members loaded with data.
    For Feb -
    Appliance is 30
    SubAppl1 is 10
    SubAppl2 is 10
    SubAppl3 is 5
    POV
    Appliance Jan - 100
    Appliance Feb - 30 or 25? and why?
    Trying to understand the behavior or "Never share" in this scenario.
    Appreciate your feedback.
    Edited by: 847514 on Mar 28, 2011 11:17 AM

    Never Share has no bearing on your sample. The Never Share flag is to prevent a implicit sharing which will happen when you have one parent with a single child under it. Your structure is not setup such that an implicit share would occur based on your example.
    I really do not recommend loading data at upper level members as this means you can never run a normal aggregation on your data. If you were to aggregate your data and you happened to have the AGGMISSG set to true you would see the data in your january example of 100 was removed due to the level 0 members not having any values.
    So the question of your February being 30 or 25 is did you load 30 to February Appliance or did you load to the level 0 and then aggregate?
    Regards,
    John A. Booth
    http://www.metavero.com

  • How to use AttributeHierarchyOptimizedState property with Primary Key of the Dimension?

    I'm reading the article about increasing SSAS performance. http://www.mssqltips.com/sqlservertip/2567/ssas--best-practices-and-performance-optimization--part-3-of-4/
    I would like to increase processing performance of Customer Dimension with CustomerID as the primary key. It is a good practice to set AttributeHierarchyOptimizedState to NotOptimized to CustomerID attribute. What are the implications to the query
    performance?
    Please advise.

    Hi,
       Since the CustomerID is the primary key (surrogate key) and the usual practice is to hide the surrogate keys in client tools. It is the best practice to set the AttributeHierarchyOptimizedState to NotOptimized to CustomerID attribute. As specified
    in the article SSAS will not create Bitmap indexes on top of that attribute and it saves a lot of processing time and decreases the cube size.
    Regards,
    Venkata Koppula

  • Alias for custom dimensions

    We are trying to display aliases for some of our custom dimensions in an oracle table.
    So far, bringing in aliases for standard dimensions has been a breeze-from the HSP_OBJECT table.(Since the member name and alias name have consequential object id's).
    But for the custom dimension and it alias, there seems to be no easy connecting factor.(when the members are 'Level 0', they seem to follow an order-but not otherwise). I even tried looking it up using the HSP_ALIAS table.
    Does anybody have any suggestions?
    Edited by: 784749 on Oct 7, 2011 12:44 PM

    In FDM the Default LOAD Action generates a FIX statement in Essbase to clear the intersection of Category, Period and Entity. This section has to be modified for each client to include other Dimensions you don't want to clear with you load. I added the Year to the code already. I have to add additional UDs to the FIX statement UD1 and UD2 and am not sure how to do this.
    Dim strDimNameUD1
    Dim strDimNameUD2
    strEntity = ""
    strCurEnt = ""
    Do While Not objFRead.AtEndOfStream
    strLineRead = objFRead.ReadLine
    strCurEnt = DW.Utilities.fParseString(CStr(strLineRead), CInt(intFldCount), CInt(intEntityFld), " ")
    'Check to see if we're on the first line. If so we must calc the first entity
    If strEntity = "" Then
    strEntity = strCurEnt
    bolFirstLine = RES.FDMTrue
    End If
    If strEntity <> strCurEnt Or bolFirstLine = RES.FDMTrue Then
    strTargYear = API.POVMgr.fPeriodKey(CStr(strPer(0))).strTargetYear
    strDimNameUD1 = API.strDimNameUD1
    strDimNameUD2 = API.strDimNameUD2
    '*** CALC SCRIPT ***
    'NOTE: CALC SCRIPT CAN BE MODIFIED For Each CUSTOMER
    'Clear the intersection of (Category, Period, Entity - added Year to customize)
    strClear = "Fix(""" & strTargYear & """,""" & strDimNameUD1 & """,""" & strDimNameUD2 & """,""" & strTCat & """,@IDESCENDANTS(""" & strEntity & """))" & vbcrlf
    strClear = strClear & "CLEARDATA """ & strTPer(0)& """;" & vbcrlf
    strClear = strClear & "EndFix"

  • Customer dimension

    Hi All,
    We have an customer dimension which generally called as party.
    The datails are as below .can you please help me with the hierarchy structure and how to connect with the fact table:
    Party
    Party Code - Parent Code (can be empty or equal Party Code) - Company - Industry, Sales Channel (how to model multiple equal categories?)
    Following levels can be associated with Country - Region subhierarchy: Party Core, Parent Code.
    Country Code is globally unique.
    Party Code is not globally unique, but unique within the next level in the hierarchy. For example code WALMART can be USWALMART or CAWALMART, but there can be only 1 WALMART under US.
    Country Code: Country Code, ie. CA - Canada
    Party Code: Country Code + Party Code, ie. CAWALMART - Walmart Canada Corp
    Party Code: Country Code + Party Code, ie. USWALMART - Walmart Stores Inc
    Both Party Codes above share the same Parent Code, below.
    Parent Code:
    Party Code: Country Code + Party Code, ie. USWALMART - Walmart Stores Inc
    Regards
    Ani

    Hi All,
    We have an customer dimension which generally called as party.
    The datails are as below .can you please help me with the hierarchy structure and how to connect with the fact table:
    Party
    Party Code - Parent Code (can be empty or equal Party Code) - Company - Industry, Sales Channel (how to model multiple equal categories?)
    Following levels can be associated with Country - Region subhierarchy: Party Core, Parent Code.
    Country Code is globally unique.
    Party Code is not globally unique, but unique within the next level in the hierarchy. For example code WALMART can be USWALMART or CAWALMART, but there can be only 1 WALMART under US.
    Country Code: Country Code, ie. CA - Canada
    Party Code: Country Code + Party Code, ie. CAWALMART - Walmart Canada Corp
    Party Code: Country Code + Party Code, ie. USWALMART - Walmart Stores Inc
    Both Party Codes above share the same Parent Code, below.
    Parent Code:
    Party Code: Country Code + Party Code, ie. USWALMART - Walmart Stores Inc
    Regards
    Ani

  • Query to find parent & al children customer based on child Party_number

    Hi All,
    I am working analyzing some TCA hierarchy data for a new customer dimension table design for a project and also for better understanding of the TCA.
    I need a query which can help me in listing all the PARTY IDs of all the customers that come under the top most rolled up customer which is found based on an any random input CHILD PARTY NUMBER.
    In simple terms.
    1. I have any random PARTY NUMBER of any customer in HZ PARTY.
    2. Using that PARTY NUMBER I need to find it's top most level rolled up parent customer.(i.e. Which global parent customer it falls under)
    3. Now based on the global customer found in the second step, I need to find all the customers (and all its global subsidiaries) under that one global name.(All the customers which are spread across the glob)
    I am currently using the following tables to build the logic.
    hz_parties
    hz_relationships
    hz_hierarchy_nodes
    fnd_lookup_values
    Anybody who has done such an exercise or has any kind of inputs, queries which can help, etc.. it would be really helpful.
    Thanks a lot.
    Thank you,
    Warm Regards
    Goldi

    hi goldie,
    u can use
    party_id (pk) from hz_parties,
    party_id(fk) and cust_account_id(pk) from hz_cust_accounts,
    cust_account_id(fk) from AR.HZ_CUST_ACCT_RELATE_ALL.
    i hope u can get the way for your answer..
    pls let me know, it worked or not.
    Regards.
    Pushpal

  • How to delete a custom dimension in planning - 9.3.1

    Hi
    some one please let me know how to delete a custom dimension in planning
    Thanks

    I never promote the method the deletion unless you understand the underlying tables of planning, if you search on the forum you will see posts on the subject just like this one - Delete dimension from planning application
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • Error while running Webi report that uses Custom Dimension object(SAP BW)

    Hi,
    I have a universe that is based on SAP BW.I have created a custom dimension object that displays the maximum date.
    The object syntax is
    <expression>Max(@Select(CPS Online\Calendar day))</expression>
    The object parses successfully.
    The object 'Calendar Day ' is a defaultobject created during universe creation from the BW query.It is defined as [0CALDAY].[LEVEL01]
    I tried  to create a Webi report using this object and a measure .On running the query it throws the following error:
    A database error occured. The database error text is: The MDX query WITH MEMBER [Measures].[EBC10672-C0DA-4998-93,80,D3,FF,C3,E8,A2,22] AS ' Max{[0CALDAY].[LEVEL01]} '  SELECT  { [Measures].[EBC10672-C0DA-4998-93,80,D3,FF,C3,E8,A2,22], [Measures].[4JCOSFOKKCUR3RMBPNROFKQQD] }  ON COLUMNS , NON EMPTY [0CALDAY].[LEVEL01].MEMBERS DIMENSION PROPERTIES [0CALDAY].[20CALDAY] ON ROWS FROM [ZCCPSONL/ZCPSONLINE]  failed to execute with the error Invalid MDX command with (. (WIS 10901)
    I have tried every possible syntax I could think of but I keep getting this error each time.I have set the object type to Number (even though it is actually a Date), I have tried writing the MDX inside the Max instead of the @select , but nothing seems to work.Could anyone please let me know why this error is occuring?Is there anything wrong with the syntax or is there any setting in Webi needed before a custom dimension object can be used on it.

    Can you see data for Custom object @ BEx level??
    YES, then just try to re-create the same variable and Save the BW query.
    Now do View - refresh Strusture @ Universe. And you can see Filter for the same, just Parse it, just whether it is OK or not.
    OK -- then Export the Universe and create WebI reports, this will come as Prompt.
    Hope it will helps you.
    Thank You!!
    Sent from iPhone

  • How to use standard function keys as custom keys

    how to use standard function keys as custom keys.
    i have encountered that problem while developing a screen, there i'm supposed to use standard function key F2 ( which actually meant for choose) for clearing the screen fields where the cursor is present and f1 for saving data that entered in screen fields, etc...
    kindly help me out.

    Hi ,
    Solution to use SAP reserve function keys F1 .. F4 (mostly this requirement comes up for RF screens) can be acheived by assigning your new Function code using the Menu path Utilities --> F key Consistency in the Menu Painter (SE41) . Once you assign your cutom function code to the standard Fn keys the only remaining step is to make sure that you set a curson on any of the field on sceen by using the Key Word "SET CURSOR" .
    If you dont use the key word SET CURSOR in the PBO of the screen then you might not see any response for F4.
    Thanks

  • Payment guarantee procedure key in customer master

    Hi ,
    System determines payment guarantee procedure by
    1. key for doc guarantee proc from sales doc type
    2. customer payment guarantee procedure key in customer master
    However , I am not able to find the field in XD02 for maintaining cust payment guarantee procedure.
    Can some one help me in locating that field . Can this customer master screen be controlled through field screen.
    Regards,
    Mrinal

    Mrinal,
    in Customer master , we can see the field in Sales area data billing tab.
    But if u are nt able to see in that then i guess that fields are suppresed.
    For seeing that do this
    go to transaction OVT0
    select your account group then On Field Status group, double click on the word Sales data then on the word Billing.
    In this go to Hedging and credit contr. area which may be suppressed,  it means that the field above is not visible in the customer master data. Make this fields visible.
    Thanks,
    Raja

  • How to find child records given a parent key

    I have a master table which is parent for several child tables. I want to display a button to delete a record in master table. I would prefer show this button conditionally so when a master record has child records, I don't show delete button and no error is raised.
    Of course I could scan every child table to find out child records, but I think must exist a generic method
    How can I find out if a given parent key has child records?
    Thanks in advance
    Oscar
    P.S: I'm using 10gR2
    Edited by: user10712087 on 13/01/2009 02:31 PM

    Oscar
    There's no magic/generic way to check that a master row has no associated detail rows. As Pavan says, you have to decide which detail tables to check, and check them using SQL as usual. (Actually, there is a quick way - you delete the row and if there are any child rows with foreign keys that don't cascade, the delete will fail; but of course you can't use this in case the delete succeeds but the user never wants to press the button).
    One addition to Pavan's answer: DO NOT under any circumstances count all the records in every detail table. All you want to know is, is there at least 1 detail record in at least 1 of the tables. No need to count 100 or 1000 rows...
    You can do this like this in your PL/SQL
    FUNCTION check_children(p_master_id IN INTEGER) RETURN BOOLEAN
    IS
      CURSOR c_child1  IS
      select 1 from child_table_1 where master_id = check_children.p_master_id;
      CURSOR c_child2 IS
      select 1 from child_table_2 where master_id = check_children.p_master_id;
      -- etc for all child tables
    l_rec_present integer := null;
    BEGIN
        OPEN c_child_1;
        FETCH c_child_1 INTO l_rec_present;
        CLOSE c_child_1;
        IF l_rec_present i= 1 THEN
            -- there is a child in child_table_1
            RETURN TRUE;
        END IF;
        OPEN c_child_2;
        FETCH c_child_2 INTO l_rec_present;
        CLOSE c_child_2;
        IF l_rec_present i= 1 THEN
            RETURN TRUE;
        END IF;
    -- etc for each child; finally, if no child found:
       RETURN FALSE;
    END;This makes sure that (1) you stop as soon as you find any child, and (2) you don't get any NO_DATA_FOUND or TOO_MANY_ROWS exceptions raised.
    HTH
    Regards Nigel

  • Can We Create Custom Dimension ontop of BI Infocube

    Hello Guys,
    I need help on below questions. i appreciate all your help in advance.
    Can we create Custom Dimension ontop of SAP BI Infocube ? Does it support all functions like SQL and ORACLE database supports ? Can any body have list what kind of function it supports ? Does it support If..else ..if condition ??
    Ex. If Account = 410000 and Profit center inlist 100,200,500,999 Then u201CSales Revenueu201D else ifu2026.etc., Can we write this kind of condition in Universe on top of SAP BI Infocube ?
    Regards,
    Komik Shah

    Hi,
    here are some examples of what you can create:
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c0a45246-ce76-2b10-e688-f5c8206203eb
    Ingo

Maybe you are looking for