APEX 4.1 dynamic parent child LOV

Is is possible to create a dynamic parent child LOV? I want to be able to use information populated by a user on a form to become a select list on a subsequent form where the second field (child) is dependent on what is selected on the first field (parent). The list needs to grow based on data entered on the initial form and maintain the relationship.

You should post this in the APEX forum.
Oracle Application Express (APEX)
Please open a thread on the APEX forum, update this thread with the link to the new thread and the mark this thread ANSWERED.

Similar Messages

  • Select List (Parent/Child) LOV

    I have the Easy Oracle HTML-DB book, they give an example of a
    Parent Child Select List using a query.
    Does anyone know how to apply the Parent/Child relationship with
    a List of Value generated from a table.
    Example
    Parent Child
    Car Pontiac
    Car Buick
    Car Cadillac
    Car Nissan
    Truck Tahoe
    Truck Silverado
    Truck F150
    Truck Titan
    The parent(s) in the above example are Car/Truck, the children are in the adjacent column.
    Objective: When the parent "Car" is chosen, only the "Pontiac/Buick/Cadillac/Nissan" will be available, once the child is selected,
    wish to submit to a empty table that can grow dynamically.
    OS: Windows: XP
    Oracle ver.: 10g
    Apex ver.: Release 2

    Hi,
    are you just having one table storing all the values?
    1) Create a "Select list with Submit"
    2) Lov query would be something like
    SELECT DISTINCT
           CAR_TYPE AS D
         , CAR_TYPE AS R
      FROM WHATEVER_TABLEThe distinct is only because you have mixed your parent and child values in one table instead of having two separate tables with a FK from the child to the parent.
    3) Create another "Select List"
    4) Lov query would be something like
    SELECT CAR AS D
         , CAR AS R
      FROM WHATEVER_TABLE
    WHERE CAR_TYPE = :P2_CAR_TYPE-> in the where clause you restricting the second lov with the value the user has selected in the first select list.
    The first "Select List with Submit" will trigger a full page refresh when you select a car type. If you want to avoid that you can use the AJAX based "Cascading Lov" feature of my ApexLib Framework (see http://apex.oracle.com/pls/otn/f?p=33231:4 ) or search on the forum for "cascading lov ajax" for other similar solutions.
    Patrick
    My APEX Blog: http://inside-apex.blogspot.com
    The ApexLib Framework: http://apexlib.sourceforge.net
    The APEX Builder Plugin: http://sourceforge.net/projects/apexplugin/

  • Multi-Org Parent-Child LOV

    Issue Description:
    in Action BC (Table: S_EVT_ACT) we are trying to implement the following organization based parent child picklists/LOVs for Status->Status Reason
    [Status] - Activity Status field (col: EVT_STAT_CD)
    *Picklist: LOV Type = 'EVENT_STATUS', picklist BC: 'List Of Values Dynamic (REL)'
    [LN Status Reason] - customised field/column (Col: X_STATUS_REASON)
    *Picklist: LOV Type = 'LN_MISSED_ACTIVITY_REASON', picklist BC: 'PickList Hierarchical'
    *Pick Map: [LN Status Reason] = [Value], [Status] = [Parent] (Constraint = Y)
    in the Admin-Data LOVs:
    Type = EVENT_STATUS, Display Value/LIC = "Not Achieved", Organization = "Org 1"
    Type = LN_MISSED_ACTIVITY_REASON
    Display Value/LIC = "Reason 1", Parent LIC = "Not Achieved", Organization = "Org 1"
    Display Value/LIC = "Reason 2", Parent LIC = "Not Achieved", Organization = "Org 1"                                                                                          
    On UI, create new record in Account - Activities, selecting Status = "Not Achieved".
    Now when i try to select the Status Reason value, the drop down does not give me any value.
    If I set the Organization to blank on "Reason 1", then the "Reason 1" value shows up in the Status Reason drop down under Account - Activities.
    In SQL of the log file, for the Status Reason drop down, it always hard code a T1.BU_ID is null in the WHERE clause, this would explain why its blank in the dropdown
    Also as a test, If i remove all the pick map constraints for the [LN Status Reason] field (ie the only record in the pick map is [LN Status Reason] = [Value]), then the drop down works correctly (ie displaying both the values with Organization = "Org 1"), and in the SQL of the log file, instead of BU_ID is null, it has BU_ID = ? with variable binding.
    Is there a reason why it would hard code the BU_ID is null in the WHERE clause in the SQL, and how to overcome this to achieve my requirement.
    Just a further update due to character limit of the original description,
    The "Owner Organization Specifier" property on the table S_EVT_ACT is blank (not sure if its related to anything though)
    The user i'm using belongs to "Org 1" for both the employee's Organization and its Position's Organization
    Thanks

    This is exactly what I'm looking for...I just can't make it work. I have 2 tables (database and schema). They are related via a database_id column. My code is below if you are willing to help.
    HTML Header
    <script>
    function get_select_list_xml1(pThis,pSelect){
    var l_Return = null;
    var l_Select = html_GetElement(pSelect);
    var get = new htmldb_Get(null,html_GetElement('pFlowId').value,
    'APPLICATION_PROCESS=CASCADING_SCHEMA',0);
    get.add('P7_DATABASE',pThis.value);
    gReturn = get.get('XML');
    if(gReturn && l_Select){
    var l_Count = gReturn.getElementsByTagName("option").length;
    l_Select.length = 0;
    for(var i=0;i<l_Count;i++){
    var l_Opt_Xml = gReturn.getElementsByTagName("option");
    appendToSelect(l_Select, l_Opt_Xml.getAttribute('value'),
    l_Opt_Xml.firstChild.nodeValue)
    get = null;
    function appendToSelect(pSelect, pValue, pContent) {
    var l_Opt = document.createElement("option");
    l_Opt.value = pValue;
    if(document.all){
    pSelect.options.add(l_Opt);
    l_Opt.innerText = pContent;
    }else{
    l_Opt.appendChild(document.createTextNode(pContent));
    pSelect.appendChild(l_Opt);
    </script>
    Application Process
    BEGIN
    OWA_UTIL.mime_header ('text/xml', FALSE);
    HTP.p ('Cache-Control: no-cache');
    HTP.p ('Pragma: no-cache');
    OWA_UTIL.http_header_close;
    HTP.prn ('<select>');
    HTP.prn ('<option value="' || 0 || '">' || '- All Schemas -'
    || '</option>'
    FOR c IN (SELECT schema, schema_id
    FROM (SELECT schema, schema_id, database_id
    FROM schema_lookup
    WHERE database_id = :cascading_selectlist_item_1)
    LOOP
    HTP.prn ('<option value="' || c.schema_id || '">' || c.schema || '</option>');
    END LOOP;
    HTP.prn ('</select>');
    END;
    P7_DATABASE_ID Form Element Attribute
    onchange="get_select_list_xml1(this,'P7_SCHEMA_ID');
    P7_SCHEMA_ID LOV
    select SCHEMA d, SCHEMA_ID v from SCHEMA_LOOKUP
    where DATABASE_ID = :P7_DATABASE_ID
    order by 1

  • Parent-child LOV dependencies

    Hi
    i have a problem, i have to create 2 lov, a parent LOV and a child LOV....the Child LOV have to depend from the first LOV. The problem is that i can't execute submit after the first selection, because these lovs is in a Tabular form......first lov in the first column and second lov in the second column.
    How can i do?
    Thanks

    Hi,
    See this link: http://htmldb.oracle.com/pls/otn/f?p=31517:234:3947371667335265:::RP,::
    thanks
    Tauceef

  • Dynamic Parent/Child Select List - Parent may have only a single entry

    Hello,
    I have a parent/child select list implemented using APEX only, ie no AJAX.
    The child list always has multiple entries, but the parent may only have a single entry, depending on who is running the application. When the parent has just one entry it can't submit, so the child list remains empty. Also when the parent has multiple entries, the user must select another entry from the parent list to cascade the child list.
    I have put a button to fire the branching to same page submit, but this is a little clunky. Is there a way of cascading the child list when the page opens? Preferably without ajax, but if has to be then ok
    I've looked for an answer to this but all threads I have followed seem to assume parent to have multiple entries, and that child list requires parent selection, but this not so in my application.
    Thanks, Jock

    Anyone?
    Even an acknowledgment that this should be obvious to me, or that it is not currently possible would be of assistance.
    Thanks,
    Jock

  • Apex 4 Cascading LOV's how to set a child LOV back to null return value

    Hi,
    My problem is I am using the new Dynamic Actions to implement Cascading LOV functionality in Apex 4 which means not having to submit the page to update child LOVs after parent LOV changes.
    What I am finding is that when you change the parent LOV value then the child LOV (which has a null return value) is not defaulting to the null return value (in my case no selection should return -1) if its list is filtered to a different set of values which doesnt have a valid selection. The child LOV is left without a selection when I need it to default back to the null return value (-1, representing all values).
    Also I was hoping to do this before the page is submitted so the filtering down the hierarchy of LOVs will work where the child is null (-1, meaning all values) and in turn its child LOV(s) will filter also from the null child value.
    Any help would be much appreciated.
    Thanks

    Hi 804641,
    I'm not sure if I get your problem and I tried to reproduce it.
    http://apex.oracle.com/pls/apex/f?p=2672:6 is my example with a cascading LOV where I have also defined a dynamic action which fires when P6_EMPNO changes and it shows the current selection.
    Maybe it helps if you setup an example on apex.oracle.com and provide the workspace/user/pwd so that I can have a look. I'm also not sure about your sentence "using the new Dynamic Actions to implement Cascading LOV functionality", because dynamic actions are not needed for cascading LOVs. It's a feature of the item types themselves where you just have to set the "Cascading LOV Parent Item(s)" attribute.
    Regards
    Patrick
    My Blog: http://www.inside-oracle-apex.com
    APEX 4.0 Plug-Ins: http://apex.oracle.com/plugins
    Twitter: http://www.twitter.com/patrickwolf

  • Dynamic hierarchy in parent child hierarchy table??

    Do you have any experience to handle the requirement of dynamic hierarchy in universe/webi?
    We have some data in parent child hierarchy as below u201CCustomeru201D table.
    Customer
    Parent          Child
    Z                  A
    Z                  B
    A                  AA
    B                  BB
    AA               AAA
    For example, Company Z is the parent company of Company A.
    Another table, Amount is the amount value of different Customers.
    Amount
    ID               Amt
    AA               10
    AAA            1
    BB                2
    Is there any functionality in Universe designer to build related Classes and objects, So that the web intelligence documents represent the following report with the drilling results?
    When we want to see the ID and Amt, the expected result should be:
    Z                13
    when we drill down Z
    the result should be:
    A                11
    B                2
    when we drill down A:
    the result should be:
    AA              11
    notes **
    the level of hierarchy is dynamic
    Any suggestion is appreciated.  Thanks.

    Hi,
    The only way to do it is to create recursive derived table that flatten you parent child hierarchy with a given maximum depth.
    Here is a sample I built a long time ago to flatten a parent-child hierarchy on Employees table in Foodmart database (SQL Server).
    Didier
    SELECT DISTINCT
         Z.employee_id,
         A.supervisor_id_1,
         A.employee_id_1,
         A.full_name_1,
         A.supervisor_id_2,
         A.employee_id_2,
         A.full_name_2,
         A.supervisor_id_3,
         A.employee_id_3,
         A.full_name_3,
         A.supervisor_id_4,
         A.employee_id_4,
         A.full_name_4,
         A.supervisor_id_5,
         A.employee_id_5,
         A.full_name_5,
         A.supervisor_id_6,
         A.employee_id_6,
         A.full_name_6,
         Z.supervisor_id AS supervisor_id_7,
         Z.employee_id AS employee_id_7,
         Z.full_name AS full_name_7
    FROM employee Z,
         SELECT DISTINCT
              A.supervisor_id_1,
              A.employee_id_1,
              A.full_name_1,
              A.supervisor_id_2,
              A.employee_id_2,
              A.full_name_2,
              A.supervisor_id_3,
              A.employee_id_3,
              A.full_name_3,
              A.supervisor_id_4,
              A.employee_id_4,
              A.full_name_4,
              A.supervisor_id_5,
              A.employee_id_5,
              A.full_name_5,
              Z.supervisor_id AS supervisor_id_6,
              Z.employee_id AS employee_id_6,
              Z.full_name AS full_name_6
         FROM employee Z,
              SELECT DISTINCT
                   A.supervisor_id_1,
                   A.employee_id_1,
                   A.full_name_1,
                   A.supervisor_id_2,
                   A.employee_id_2,
                   A.full_name_2,
                   A.supervisor_id_3,
                   A.employee_id_3,
                   A.full_name_3,
                   A.supervisor_id_4,
                   A.employee_id_4,
                   A.full_name_4,
                   Z.supervisor_id AS supervisor_id_5,
                   Z.employee_id AS employee_id_5,
                   Z.full_name AS full_name_5
              FROM employee Z,
                   SELECT DISTINCT
                        A.supervisor_id_1,
                        A.employee_id_1,
                        A.full_name_1,
                        A.supervisor_id_2,
                        A.employee_id_2,
                        A.full_name_2,
                        A.supervisor_id_3,
                        A.employee_id_3,
                        A.full_name_3,
                        Z.supervisor_id AS supervisor_id_4,
                        Z.employee_id AS employee_id_4,
                        Z.full_name AS full_name_4
                   FROM employee Z,
                        SELECT DISTINCT
                             A.supervisor_id_1,
                             A.employee_id_1,
                             A.full_name_1,
                             A.supervisor_id_2,
                             A.employee_id_2,
                             A.full_name_2,
                             Z.supervisor_id AS supervisor_id_3,
                             Z.employee_id AS employee_id_3,
                             Z.full_name AS full_name_3
                        FROM employee Z,
                             SELECT DISTINCT
                                  A.supervisor_id_1,
                                  A.employee_id_1,
                                  A.full_name_1,
                                  Z.supervisor_id AS supervisor_id_2,
                                  Z.employee_id AS employee_id_2,
                                  Z.full_name AS full_name_2
                             FROM employee Z,
                                  SELECT DISTINCT
                                       supervisor_id AS supervisor_id_1,
                                       employee_id AS employee_id_1,
                                       full_name AS full_name_1
                                   FROM employee
                                   WHERE supervisor_id = 0 OR supervisor_id IS NULL
                             ) A
                             WHERE A.employee_id_1 = Z.supervisor_id
                        ) A
                        WHERE A.employee_id_2 = Z.supervisor_id
                   ) A
                   WHERE A.employee_id_3 = Z.supervisor_id
              ) A
              WHERE A.employee_id_4 = Z.supervisor_id
         ) A
         WHERE A.employee_id_5 = Z.supervisor_id
    ) A
    WHERE A.employee_id_6 = Z.supervisor_id
    UNION
    SELECT DISTINCT
         A.employee_id_6 AS employee_id,
         A.supervisor_id_1,
         A.employee_id_1,
         A.full_name_1,
         A.supervisor_id_2,
         A.employee_id_2,
         A.full_name_2,
         A.supervisor_id_3,
         A.employee_id_3,
         A.full_name_3,
         A.supervisor_id_4,
         A.employee_id_4,
         A.full_name_4,
         A.supervisor_id_5,
         A.employee_id_5,
         A.full_name_5,
         A.supervisor_id_6,
         A.employee_id_6,
         A.full_name_6,
         NULL AS supervisor_id_7,
         NULL AS employee_id_7,
         NULL AS full_name_7
    FROM employee Z,
         SELECT DISTINCT
              A.supervisor_id_1,
              A.employee_id_1,
              A.full_name_1,
              A.supervisor_id_2,
              A.employee_id_2,
              A.full_name_2,
              A.supervisor_id_3,
              A.employee_id_3,
              A.full_name_3,
              A.supervisor_id_4,
              A.employee_id_4,
              A.full_name_4,
              A.supervisor_id_5,
              A.employee_id_5,
              A.full_name_5,
              Z.supervisor_id AS supervisor_id_6,
              Z.employee_id AS employee_id_6,
              Z.full_name AS full_name_6
         FROM employee Z,
              SELECT DISTINCT
                   A.supervisor_id_1,
                   A.employee_id_1,
                   A.full_name_1,
                   A.supervisor_id_2,
                   A.employee_id_2,
                   A.full_name_2,
                   A.supervisor_id_3,
                   A.employee_id_3,
                   A.full_name_3,
                   A.supervisor_id_4,
                   A.employee_id_4,
                   A.full_name_4,
                   Z.supervisor_id AS supervisor_id_5,
                   Z.employee_id AS employee_id_5,
                   Z.full_name AS full_name_5
              FROM employee Z,
                   SELECT DISTINCT
                        A.supervisor_id_1,
                        A.employee_id_1,
                        A.full_name_1,
                        A.supervisor_id_2,
                        A.employee_id_2,
                        A.full_name_2,
                        A.supervisor_id_3,
                        A.employee_id_3,
                        A.full_name_3,
                        Z.supervisor_id AS supervisor_id_4,
                        Z.employee_id AS employee_id_4,
                        Z.full_name AS full_name_4
                   FROM employee Z,
                        SELECT DISTINCT
                             A.supervisor_id_1,
                             A.employee_id_1,
                             A.full_name_1,
                             A.supervisor_id_2,
                             A.employee_id_2,
                             A.full_name_2,
                             Z.supervisor_id AS supervisor_id_3,
                             Z.employee_id AS employee_id_3,
                             Z.full_name AS full_name_3
                        FROM employee Z,
                             SELECT DISTINCT
                                  A.supervisor_id_1,
                                  A.employee_id_1,
                                  A.full_name_1,
                                  Z.supervisor_id AS supervisor_id_2,
                                  Z.employee_id AS employee_id_2,
                                  Z.full_name AS full_name_2
                             FROM employee Z,
                                  SELECT DISTINCT
                                       supervisor_id AS supervisor_id_1,
                                       employee_id AS employee_id_1,
                                       full_name AS full_name_1
                                   FROM employee
                                   WHERE supervisor_id = 0 OR supervisor_id IS NULL
                             ) A
                             WHERE A.employee_id_1 = Z.supervisor_id
                        ) A
                        WHERE A.employee_id_2 = Z.supervisor_id
                   ) A
                   WHERE A.employee_id_3 = Z.supervisor_id
              ) A
              WHERE A.employee_id_4 = Z.supervisor_id
         ) A
         WHERE A.employee_id_5 = Z.supervisor_id
    ) A
    UNION
    SELECT DISTINCT
         A.employee_id_5 AS employee_id,
         A.supervisor_id_1,
         A.employee_id_1,
         A.full_name_1,
         A.supervisor_id_2,
         A.employee_id_2,
         A.full_name_2,
         A.supervisor_id_3,
         A.employee_id_3,
         A.full_name_3,
         A.supervisor_id_4,
         A.employee_id_4,
         A.full_name_4,
         A.supervisor_id_5,
         A.employee_id_5,
         A.full_name_5,
         NULL AS supervisor_id_6,
         NULL AS employee_id_6,
         NULL AS full_name_6,
         NULL AS supervisor_id_7,
         NULL AS employee_id_7,
         NULL AS full_name_7
    FROM employee Z,
         SELECT DISTINCT
              A.supervisor_id_1,
              A.employee_id_1,
              A.full_name_1,
              A.supervisor_id_2,
              A.employee_id_2,
              A.full_name_2,
              A.supervisor_id_3,
              A.employee_id_3,
              A.full_name_3,
              A.supervisor_id_4,
              A.employee_id_4,
              A.full_name_4,
              Z.supervisor_id AS supervisor_id_5,
              Z.employee_id AS employee_id_5,
              Z.full_name AS full_name_5
         FROM employee Z,
              SELECT DISTINCT
                   A.supervisor_id_1,
                   A.employee_id_1,
                   A.full_name_1,
                   A.supervisor_id_2,
                   A.employee_id_2,
                   A.full_name_2,
                   A.supervisor_id_3,
                   A.employee_id_3,
                   A.full_name_3,
                   Z.supervisor_id AS supervisor_id_4,
                   Z.employee_id AS employee_id_4,
                   Z.full_name AS full_name_4
              FROM employee Z,
                   SELECT DISTINCT
                        A.supervisor_id_1,
                        A.employee_id_1,
                        A.full_name_1,
                        A.supervisor_id_2,
                        A.employee_id_2,
                        A.full_name_2,
                        Z.supervisor_id AS supervisor_id_3,
                        Z.employee_id AS employee_id_3,
                        Z.full_name AS full_name_3
                   FROM employee Z,
                        SELECT DISTINCT
                             A.supervisor_id_1,
                             A.employee_id_1,
                             A.full_name_1,
                             Z.supervisor_id AS supervisor_id_2,
                             Z.employee_id AS employee_id_2,
                             Z.full_name AS full_name_2
                        FROM employee Z,
                             SELECT DISTINCT
                                  supervisor_id AS supervisor_id_1,
                                  employee_id AS employee_id_1,
                                  full_name AS full_name_1
                              FROM employee
                              WHERE supervisor_id = 0 OR supervisor_id IS NULL
                        ) A
                        WHERE A.employee_id_1 = Z.supervisor_id
                   ) A
                   WHERE A.employee_id_2 = Z.supervisor_id
              ) A
              WHERE A.employee_id_3 = Z.supervisor_id
         ) A
         WHERE A.employee_id_4 = Z.supervisor_id
    ) A
    UNION
    SELECT DISTINCT
         A.employee_id_4 AS employee_id,
         A.supervisor_id_1,
         A.employee_id_1,
         A.full_name_1,
         A.supervisor_id_2,
         A.employee_id_2,
         A.full_name_2,
         A.supervisor_id_3,
         A.employee_id_3,
         A.full_name_3,
         A.supervisor_id_4,
         A.employee_id_4,
         A.full_name_4,
         NULL AS supervisor_id_5,
         NULL AS employee_id_5,
         NULL AS full_name_5,
         NULL AS supervisor_id_6,
         NULL AS employee_id_6,
         NULL AS full_name_6,
         NULL AS supervisor_id_7,
         NULL AS employee_id_7,
         NULL AS full_name_7
    FROM employee Z,
         SELECT DISTINCT
              A.supervisor_id_1,
              A.employee_id_1,
              A.full_name_1,
              A.supervisor_id_2,
              A.employee_id_2,
              A.full_name_2,
              A.supervisor_id_3,
              A.employee_id_3,
              A.full_name_3,
              Z.supervisor_id AS supervisor_id_4,
              Z.employee_id AS employee_id_4,
              Z.full_name AS full_name_4
         FROM employee Z,
              SELECT DISTINCT
                   A.supervisor_id_1,
                   A.employee_id_1,
                   A.full_name_1,
                   A.supervisor_id_2,
                   A.employee_id_2,
                   A.full_name_2,
                   Z.supervisor_id AS supervisor_id_3,
                   Z.employee_id AS employee_id_3,
                   Z.full_name AS full_name_3
              FROM employee Z,
                   SELECT DISTINCT
                        A.supervisor_id_1,
                        A.employee_id_1,
                        A.full_name_1,
                        Z.supervisor_id AS supervisor_id_2,
                        Z.employee_id AS employee_id_2,
                        Z.full_name AS full_name_2
                   FROM employee Z,
                        SELECT DISTINCT
                             supervisor_id AS supervisor_id_1,
                             employee_id AS employee_id_1,
                             full_name AS full_name_1
                         FROM employee
                         WHERE supervisor_id = 0 OR supervisor_id IS NULL
                   ) A
                   WHERE A.employee_id_1 = Z.supervisor_id
              ) A
              WHERE A.employee_id_2 = Z.supervisor_id
         ) A
         WHERE A.employee_id_3 = Z.supervisor_id
    ) A
    UNION
    SELECT DISTINCT
         A.employee_id_3 AS employee_id,
         A.supervisor_id_1,
         A.employee_id_1,
         A.full_name_1,
         A.supervisor_id_2,
         A.employee_id_2,
         A.full_name_2,
         A.supervisor_id_3,
         A.employee_id_3,
         A.full_name_3,
         NULL AS supervisor_id_4,
         NULL AS employee_id_4,
         NULL AS full_name_4,
         NULL AS supervisor_id_5,
         NULL AS employee_id_5,
         NULL AS full_name_5,
         NULL AS supervisor_id_6,
         NULL AS employee_id_6,
         NULL AS full_name_6,
         NULL AS supervisor_id_7,
         NULL AS employee_id_7,
         NULL AS full_name_7
    FROM employee Z,
         SELECT DISTINCT
              A.supervisor_id_1,
              A.employee_id_1,
              A.full_name_1,
              A.supervisor_id_2,
              A.employee_id_2,
              A.full_name_2,
              Z.supervisor_id AS supervisor_id_3,
              Z.employee_id AS employee_id_3,
              Z.full_name AS full_name_3
         FROM employee Z,
              SELECT DISTINCT
                   A.supervisor_id_1,
                   A.employee_id_1,
                   A.full_name_1,
                   Z.supervisor_id AS supervisor_id_2,
                   Z.employee_id AS employee_id_2,
                   Z.full_name AS full_name_2
              FROM employee Z,
                   SELECT DISTINCT
                        supervisor_id AS supervisor_id_1,
                        employee_id AS employee_id_1,
                        full_name AS full_name_1
                    FROM employee
                    WHERE supervisor_id = 0 OR supervisor_id IS NULL
              ) A
              WHERE A.employee_id_1 = Z.supervisor_id
         ) A
         WHERE A.employee_id_2 = Z.supervisor_id
    ) A
    UNION
    SELECT DISTINCT
         A.employee_id_2 AS employee_id,
         A.supervisor_id_1,
         A.employee_id_1,
         A.full_name_1,
         A.supervisor_id_2,
         A.employee_id_2,
         A.full_name_2,
         NULL AS supervisor_id_3,
         NULL AS employee_id_3,
         NULL AS full_name_3,
         NULL AS supervisor_id_4,
         NULL AS employee_id_4,
         NULL AS full_name_4,
         NULL AS supervisor_id_5,
         NULL AS employee_id_5,
         NULL AS full_name_5,
         NULL AS supervisor_id_6,
         NULL AS employee_id_6,
         NULL AS full_name_6,
         NULL AS supervisor_id_7,
         NULL AS employee_id_7,
         NULL AS full_name_7
    FROM employee Z,
         SELECT DISTINCT
              A.supervisor_id_1,
              A.employee_id_1,
              A.full_name_1,
              Z.supervisor_id AS supervisor_id_2,
              Z.employee_id AS employee_id_2,
              Z.full_name AS full_name_2
         FROM employee Z,
              SELECT DISTINCT
                   supervisor_id AS supervisor_id_1,
                   employee_id AS employee_id_1,
                   full_name AS full_name_1
               FROM employee
               WHERE supervisor_id = 0 OR supervisor_id IS NULL
         ) A
         WHERE A.employee_id_1 = Z.supervisor_id
    ) A
    UNION
    SELECT DISTINCT
         A.employee_id_1 AS employee_id,
         A.supervisor_id_1,
         A.employee_id_1,
         A.full_name_1,
         NULL AS supervisor_id_2,
         NULL AS employee_id_2,
         NULL AS full_name_2,
         NULL AS supervisor_id_3,
         NULL AS employee_id_3,
         NULL AS full_name_3,
         NULL AS supervisor_id_4,
         NULL AS employee_id_4,
         NULL AS full_name_4,
         NULL AS supervisor_id_5,
         NULL AS employee_id_5,
         NULL AS full_name_5,
         NULL AS supervisor_id_6,
         NULL AS employee_id_6,
         NULL AS full_name_6,
         NULL AS supervisor_id_7,
         NULL AS employee_id_7,
         NULL AS full_name_7
    FROM employee Z,
         SELECT DISTINCT
              supervisor_id AS supervisor_id_1,
              employee_id AS employee_id_1,
              full_name AS full_name_1
          FROM employee
          WHERE supervisor_id = 0 OR supervisor_id IS NULL
    ) A

  • Hide parents in a parent-child hierarchy with dynamic rights

    Hi all,
    I'm facing the following issue with dynamic rights on a parent-child hierarchy:
    scenario:
    - a cube with a company parent-child hierarcy
    - dynamic security on through a role on dimension data based on a list with user (login names) and their
    departments, with Enable
    Visual Total is switched ON 
    - Multiple facts connected to this hierarchy.
    When a user connects to the cube (in this case with Excel or through a dashboard in Performance Point services) he/she is allowed to see the facts belonging to theirs departments and all child departments, so far so good. But the totals of the facts are
    repeated for all higher parents. Now i know thats nog 'wrong' but our users think thats very confusing in some cases, so is there a way
    - to hide the parents in the hierarhcy
    - or to set all the parent measures to null/empty?
    I prefer to make a solution in the cube so that all client programs can benefit from this solution.
    thanx in advance for all input!

     so that User A have scope: [Dimension_Name].[Attribute XYZ] and User B: [Dimension_Name].[Attribute ABC] ?
    Hi Wilfred,
    If I understanding correctly, you want different user can see different dimension attributes based on the different right on role, right? 
    Based on my research, it seems that there is no a directly way to achieve this requirement. What we can do is that "Deselect all members" for each attribute of the dimension in Dimension Data tab, which will hide all members of the dimension for the role.
    Even the dimension metadata is visible in the cube in clients, its members can't be seen. Here are some useful links for your reference.
    http://saysmymind.wordpress.com/2013/01/15/hide-a-specific-attribute-hierarchy-in-role-playing-dimension-ssas-multidimensional/
    http://social.msdn.microsoft.com/Forums/sqlserver/en-US/e2596eec-7c2d-48c0-8e81-538a8c632360/hide-dimension-based-on-roles
    Hope this helps.
    Regards,
    Charlie Liao
    TechNet Community Support

  • Restful: Child lov with parent prompt

    I have 2 dimensions, Parent and Child. The list of values of the Child dimension contains a prompt on the parent. With restful, I want to the the list of values for the child dimension. I've created a webi document with a prompted filter on the Child dimension. So I have 2 prompts one the webi document, one from the Child dimension and one from the list of values of the child dimension.
    A call GET http://{hostname}:6405/biprws/raylight/v1/documents/{documentID}/parameters/{parameterID} for the child prompt returns the expected xml:
    <lov hierarchical="false" refreshable="true">
    <id>UNIVERSELOV_DS0.DO4</id>
    <parameters>
    <id>0</id>
    </parameters>
    </lov>
    where 0 is the id of the parent dimension
    I then use the resful call PUT http://{hostname}:6405/biprws/raylight/v1/documents/{documentID}/parameters/{parameterID} to answer the parent and the child's lov.
    When the prompt on the parent in the list of values is not optional, everything is fine but when the prompt is optional, I get the error :
    Bad Request WSR 00102 - Illegal argument (Suspicious identifier(s): [0])
    In both case, I use the input xml (with true or false value for optional attribute of parameter):
    <parameters>
         <parameter optional="true|false">
              <id>0</id>
              <answer>
                   <values><value id="10" >Parent 10</value></values>
              </answer>
         </parameter>
         <parameter>
              <id>1</id>
              <answer>
                   <info><lov><query intervalId="0" intervalSize="10000" /></lov></info>
              </answer>
         </parameter>
    </parameters>
    If I use the refresh="true" attribute to the query tag, I don't get any value for the child lov only:
    <lov hierarchical="false" refreshable="true">
    <id>UNIVERSELOV_DS0.DO4</id>
    </lov>
    Any ideas?

    Eric,
    I hope it's not an issue but an invalid input XML.
    I just made some good progress. The restful documentation states that "The <info> element is not mandatory in the XML inputs, except in the case of cascading parameters and hierarchical parameters.", so I surround the values tag by a info tag and it almost works in both cases (mandatory and optional parent prompt). The XML input is
    <parameters>
       <parameter>
          <id>0</id>
          <answer>
             <info>
                <lov>
                   <query intervalSize="-1" />
                </lov>
             </info>
             <values>
                <value id="1">Parent 1</value>
                <value id="3">Parent 2</value>
             </values>
          </answer>
       </parameter>
       <parameter>
          <id>1</id>
          <answer>
             <info>
                <lov>
                   <query intervalSize="-1" />
                </lov>
             </info>
          </answer>
       </parameter>
    </parameters>
    But one problem solves, one problem raises. When a answer no parent value (<values></values>), I get in return of a PUT call, the same result as a GET call:
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <parameters>
        <parameter dpId="DP0" type="prompt" optional="false">
            <id>0</id>
            <technicalName>pmParent(s)?</technicalName>
            <name>Parent(s)?</name>
            <answer type="Text" constrained="true">
                <info cardinality="Multiple">
                    <lov refreshable="true" partial="false" hierarchical="false">
                        <id>UNIVERSELOV_DS0.DO1</id>
                        <updated>2014-10-09T12:54:54.000+01:00</updated>
                        <values>
                            <value id="1">Parent 1</value>
                            <value id="2">Parent 2</value>
                            <value id="3">Parent 3</value>
                        </values>
                        <columns mappingId="0">
                            <column type="String" id="0">Parent </column>
                        </columns>
                    </lov>
                    <previous>
                        <value id="1">Parent 1</value>
                        <value id="3">Parent 2</value>
                    </previous>
                </info>
                <values>
                    <value id="1">Parent 1</value>
                    <value id="3">Parent 2</value>
                </values>
            </answer>
        </parameter>
        <parameter dpId="DP0" type="prompt" optional="true">
            <id>1</id>
            <technicalName>pmChild(ren)?</technicalName>
            <name>Child(ren)?</name>
            <answer type="Text" constrained="true">
                <info cardinality="Multiple">
                    <lov refreshable="true" hierarchical="false">
                        <id>UNIVERSELOV_DS0.DO3</id>
                        <parameters>
                            <id>0</id>
                        </parameters>
                    </lov>
                    <previous>
                        <value id="21">Child 21 - 2</value>
                    </previous>
                </info>
                <values>
                    <value id="21">Child 21 - 2</value>
                </values>
            </answer>
        </parameter>
    </parameters>
    Nevertheless, I get a workaround for this situation, instead of not answering the parameter, I have to answer all possible values. It's not a nice solution and I hope a better one exists.
    The results are the same with
    http://{hostname}:6405/biprws/raylight/v1/documents/{documentID}/parameters/{parameterID}/
    and with
    http://{hostname}:6405/biprws/raylight/v1/documents/{documentID}/parameters/
    except, of course that when using first url, the return xml contains only one parameter (the one in the url)
    Regards

  • Dynamic Security in a denormalized Parent-Child dimension Table

    Hi guys, I need your priceless help again:
    I have a parent child relationship in a table with a fixed depth, let´s say Region-->Area-->Country
    I denormalized the table to have something like this
    Then, to implement dynamic security, I think in a bridge table with the userId
    and the CountryId, then with a measure group and a measure which count the combination of user/country I can proof the security using the non empty function.
    My question is how can I also set security for the levels above the leaf members, let´s say, I want to assign an user to the Area level or Region Level. I don't know exactly which key could I include in the bridge table.
    I may want to keep the id´s of the original table in the different levels.
    Any comment will be appreciated.
    Kind Regards,

    Hi Paul,
    According to your description, you want to apply dynamic security on parent-child hierarchy. Right?
    In Analysis Services, when a dimension contains a parent-child hierarchy, we can't set up security directly on the key attribute. Because it will not appear on the dropdown list of Dimension Data Security in Role editor.
    In this scenario, we need to filter on key attribute and not the parent-child hierarchy. Then use Linkmember() to find the equivalent members on the parent-child hierarchy. Please refer to the expression below based on a employee dimension with parent-child
    hierarchy.
    Generate(
     NonEmpty(
      [Employee].[Employee].[Employee].Members,
       [Measures].[Employee Count],
       StrToMember('[User].[User].[' + UserName() + ']')
                 LinkMember(
                     [Employee].[Employee].CurrentMember,
                     [Employee].[Employees]
    Also I suggest an excellent book:
    Expert Cube Development with Microsoft SQL Server 2008 Analysis Services. It talks about this scenario in chap 9.
    Reference:
    SSAS
    Dynamic security - Bridge table (factless) between User dimension and Parent-Child (PC) dimension
    If you have any question, please feel free to ask.
    Best Regards,
    Simon Hou
    TechNet Community Support

  • How to programmatically wait for child LOV to refresh

    Folks, I have a parent/child (i.e., cascading) pair of LOVs; they work great.  But I need to be able to set the values of the two LOVs programmatically w/ JavaScript.  I have the following JS function:
    function setHostID_DatabaseID (aHostID, aDatabaseID)
      $s('P60_HOST_ID', aHostID, undefined, false);
      $s('P60_DATABASE_ID', aDatabaseID, undefined, false);
      alert("host = " + aHostID + " and DB = " + aDatabaseID);
    The two LOVs are:
    P60_HOST_ID (parent)
    P60_DATABASE_ID (child)
    When I call the function, P60_HOST_ID gets set correctly, but P60_DATABASE_ID does not.  If I move the alert() to between the two $s calls, then P60_DATABASE_ID does get set.  So it's a timing issue - the AJAX call to refresh P60_DATABASE_ID doesn't complete before the $s('P60_DATABASE_ID') call is invoked.  Any ideas how to work around this?

    NM - found the answer in https://forums.oracle.com/thread/2461787 Function becomes:
    function setHostID_DatabaseID (aHostID, aDatabaseID)
       apex.jQuery('#P60_DATABASE_ID').bind("apexafterrefresh", function ()
             $s('P60_DATABASE_ID', aDatabaseID, undefined, false);
       $s('P60_HOST_ID', aHostID, undefined, false);
      alert("host = " + aHostID + " and DB = " + aDatabaseID);

  • Multiple regions with parent child info.

    I have the need to display parent-child-details on the same page - but more intuitively in 3 regions of a page.
    As an example, i want the first region to display a list of departments, the second adjacent region to display employess in a department chosen in the first region, and the third should have employee details for a chosen employee in the 2nd region.
    The master details approach may not necessarily fit as an elegant solution.
    Any ideas/suggestions/past apps built that would be similar ?
    Regards,
    Atul

    Docster wrote:
    Hi,
    Do you happen to still have this application? I'd love to see it.You are totally wasting your time. There is no point in posting follow-ups to threads this old in the expectation that the original participants will respond&mdash;watches on threads that will generate email notifications of thread updates last for only a period of a few weeks.
    "Sofie87" is not listening. Gone. An ex-poster. Look at their profile: not posted in *4+ years*.
    Posting follow-ups to ancient threads/departed users is NOT an effective way of getting help:
    <li>Other users may ignore the thread if it is closed.
    <li>Your assumption that the questions are related may be incorrect, leading to confusion about the nature of the problem and potential solutions.
    <li>Watches on the thread will have expired, so the original participants are totally unaware of the new post. They may no longer be active on the forum.
    <li>You have no ability to mark posts as helpful or correct.
    Post your requirements as a new thread, including at least the following information:
    <li>Full APEX version
    <li>Full DB/version/edition/host OS
    <li>Web server architecture (EPG, OHS or APEX listener/host OS)
    <li>Browser(s) and version(s) used
    <li>Links to related posts and threads (using the methods in the FAQ)

  • Cascading child LOVs refresh

    Hello,
    I've a parent LOV that pulls all the campuses of the school as check-boxes.That has a child LOV that pulls buildings according to Parent LOV selection.
    When I click on 'Submit' button, it inserts the record with selected 'Campus' and 'Buildings'.
    Now when I click on 'Update' button after changing my selection, it updates 'Campus' but not 'Buildings' in the table.
    Can you help?
    Thanks,
    H.

    Could you supply a bit more info?
    Version of database, apex, apex listener etc.
    Regards,
    Richard
    blog: http://blog.warp11.nl
    twitter: @rhjmartens
    If this question is answered, please mark the thread as closed and assign points where earned..

  • Problem with saving Parent - Child  View Objects in ADF 11g.

    Hi Every one,
    I have a requirment, something like I will be displaying some data on my jsff screen based on one Transient View Object. Whenever user clicks on Save button, I have to do following steps in my AMImpl.
    -> Preapre dynamically Parent View Object Rows based on some logic
    -> Prepare dynamically Child View object Rows and invoke insertRow method on respective child view object.
    When I say commit() First Parent ViewObject data need to be saved and then Child View object data has to be saved. I am having Parent - Child Key relation ship btw these two ViewObjects. Some how I am populating the Parent Primary key in the Child View Object. Please suggest me If there is any other alternative to this.
    Thanks

    I got the solution, Enabling the check box option for Master - Detail Entity association (CompositionAssociation -> Cascade Update Key Attributes) resolved the issue.
    Thanks

  • ForEach iterator in parent child relation

    Hi,
    How can i use forEach to iterate parent child view object. Issue it is only able to fetch value of parent vo not child view object values, if I use af:iterator instead of af:forEach it works perfectly. So there is no issue with data.
    But I am not able to iterate child VO.
    <af:forEach items="#{bindings.testVO.rangeSet}"
    var="parent" varStatus="parentRow" >
    <af:outputText value="#{parent.Name}"/> -- it works fine prints value
    <af:forEach items="#{parentRow.childVO.rangeSet}"
    var="child" varStatus="childRow" >
    <af:outputText value="#{child.subject}"/> ---> It doesn't work
    </af:forEach>
    </af:forEach>
    If i use iterator it works fine... But I have to use forEach to generate dynamic id for each component in forEach Loop

    I tried to use af:iterator first but the problem is it is not able to handle dynamic id generation for each component:
    <af:iterator value="#{bindings.companyVO.collectionModel}"
    var="company" varStatus="companyStatus"
    rows="#{bindings.companyVO.rangeSize}">
    <af:iterator value="#{company.employeeVO}"
    var="employee" varStatus ="employeeStatus">
    <af:outputLabel id="emp${companyStatus.index}${employeeStatus.index}" value="#{employeee.empId}"/> ->>> here id is always emp it is not able to get index value and if i used the same code in forLopp it works it is able to fetch dynamic id based on index like emp12 emp13 emp14 etc...
    </af:iterator>
    </af:iterator>

Maybe you are looking for