Dynamic Validation Entities

I have an FDM Location that a lot of companies will be loading through. Rather than setting up seperate locations / validation entities for each company, I was hoping to use an Event Script which changes the Validation Entity as the data is being processed.
Does anyone have the sample script for this?
Much Appreciated,
Mike

This code can be put on any method (including event handlers) since it doesn't need a reference to the view (thus not forcing you to use WDDOMODIFYVIEW), it sets the required flag based on the binded context attribute:
  DATA:
    lr_elem       TYPE REF TO if_wd_context_element.
  lr_elem = wd_context->path_get_element(
              path = wd_this->wdctx_header
  lr_elem->set_attribute_property(
      attribute_name = 'BNDDT'
      property       = lr_elem->e_property-required
      value          = iv_active_flag   "Boolean parameter i.e. TYPE WDY_BOOLEAN
So, in your event handler for the ONENTER action in your inputfield, you decide if the flag is set as true or false depending on the entered value.
Then you can call in WDDOBEFOREACTION the method cl_wd_dynamic_tool=>check_mandatory_attr_on_view to issue a message in case the field was not populated.
Hope this helps.

Similar Messages

  • Dynamic validation of Business Rules

    Who has a good thought/example about a principle of dynamically validating Business Rules without coding every time each BR?
    I am thinking about a table where I can enter the expressions like:
    - <p1> is not Null
    - <p1> not in (select 'x' from <table>)
    - <p1> < 2000
    This logically, simple expressions should return a boolean expression (true or false).

    First, in a well designed data model, I'm not sure I see the need for data validation logic to change regularly. If a particular column cannot be NULL today, it would be rather unlikely that it would somehow need to be NULL tomorrow.
    Second, I'm not sure I see what this approach buys you over the much simpler approach of adding and removing check constraints if the data model changes. Adding and removing a constraint is pretty trivial-- orders of magnitude less difficult than doing the analysis to determine what constraint needs to change and what impact that has downstream.
    Third, I would suspect that if you need to encode these sorts of constrains in a table, your system will kill downstream systems with regularity. If p1 is NOT NULL today, but tomorrow it suddenly allows NULL values, a consumer application might well break (or worse, silently return incorrect results). Data changes should not be able to screw up downstream systems.
    Fourth, if you did build such a system, you would have to build your own constraint validator, rather than being able to rely on Oracle's (unless you wrote code to create and drop Oracle constraints based on values in a table, but that seems rather convoluted). Given that Oracle's constraint validation engine is highly optimmized and highly accurate, a home grown engine isn't going to look particularly good in comparison.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Dynamic validation of a struts application

    Using AVK 5, I'm trying to perform the dynamic validation portion of the process on my struts-based app, however none of my JSPs are marked as "called" even after they are forwarded to - is this a known issue? Is there any workaround?
    Thanks
    PS:
    The servlets are listed in the report as having a context root of /[appname], whereas the JSPs just have the context root /
    Is this normal?
    Edited by: cc_fo on Mar 26, 2009 1:57 AM

    Hi,
    try the following Code to get the WD application URL
    // Get name of deployable object this component belongs to
    String deployableObjectName =
    wdComponentAPI.getDeployableObjectPart().getDeployableObjectName();
    try {
    // Get deployable object part of the application.
    // Web Dynpro Project (Deployable Object)
    WDDeployableObjectPart deployableObjectPart =
    WDDeployableObject.getDeployableObjectPart(
    deployableObjectName,
    <Application Name>,
    WDDeployableObjectPartType.APPLICATION);
    url = WDURLGenerator.getApplicationURL(deployableObjectPart);
    Siddharth

  • How to set a dynamic validation message in javascript

    Hi,
    I am using the "validate" event on a field, along with the "script message" field, to make a validation and send a message to the user if the test fails.
    - Is it possible to define parameters in this message, for example "field &1 is invalid" where we replace &1 by the name of a field?
    - Is it possible to send 2 different messages (I guess it's like using a message &1)?
    - What is the best practice according to your experience?
    Notes:
    - I am aware of the xfa.host.messageBox, but I'd like to keep Adobe logic for validations (am I wrong? why?)
    - I also saw the possibility of binding a field from the context, to the message field, but I found that it was not very clean to do this way (if even possible)
    Thx !

    According to the tests I did since yesterday, it is very difficult to use the "validation script message" (in the "value" tab of a "text input" field, within a dynamic table), for sending a dynamic message.
    I abandon, and prefer to use use
    xfa.host.messageBox( "dynamic message text" )
    For information, I could change the message during "validate" event, with a rather complex algorithm.
    Unfortunately, when a table row is just added (dynamically, with a button), though the message has been changed, it displays the original value. When I change the field again, the changed validation message is taken into account. I don't know why.
    Edited by: Sandra Rossi on Jul 24, 2009 9:01 AM : it's only to say that since then, this was the only solution! Question closed

  • Dynamically validating datatable elements using javascript

    Hai, iam using jsf, and having Xml mapping to the form elements to display the data . Iam using <h:datatable> inside which iam haveing repeated elements, i need to do a javascript validation before displaying the form element present inside the <h:datatable> columns.Iam also using <j4j:idproxy> , the java script is working for 1 iteration but it is the dataof the form element is not getting overridden in the 2nd iteration, It is somethinglike this below.
    <TR id="buiCoverRowId" style="display:none;">
    <TD height="9" width="200"></f:verbatim> <h:outputText
    styleClass="outputText" id="text7"
    value="Buildings Cover"></h:outputText><f:verbatim></TD>
    <TD height="9" width="516"></f:verbatim> <h:outputText
    styleClass="outputText" id="buildCoverId"
    value="#{pathPart.xpathMap['./BuildingsCover/CoverDetail/SumInsured/Amount']}">
    </h:outputText> <f:verbatim></TD>
    </TR>
    <TR>
    <TD></f:verbatim><f:verbatim>
    <h:inputHidden id="hidBuiCoverId"
    value="#{pathPart.xpathMap['./BuildingsCover/CoverDetail/SumInsured/Amount']}">
    <j4j:idProxy id="hidBuiCoverId_" />
    </h:inputHidden>
    </f:verbatim><f:verbatim></TD>
    <TD></f:verbatim><f:verbatim>
    <h:inputHidden id="hidExBuiCoverId"
    value="#{pathPart.xpathMap['./BuildingsCover/ExcludedInd/Value']}">
    <j4j:idProxy id="hidExBuiCoverId_" />
    </h:inputHidden>
    </f:verbatim><f:verbatim></TD>
    </TR>
    <SCRIPT>
    alert("HAI");
    var buidcover = document.getElementById('hidExBuiCoverId_').title;
    var buidcoverR =document.getElementById(buidcover).value;
    alert("the value of buildcover----->"+buidcoverR);
    var buId =document.getElementById('hidBuiCoverId_').title;
    var entitybuId1 = document.getElementById(buId).value;
    entitybuIdT1 = trim(entitybuId1);
    alert("entitybuIdT1"+entitybuIdT1);
    var buExId = document.getElementById('hidExBuiCoverId_').title;
    var entitybuExId1 = document.getElementById(buExId).value;
    entitybuExIdT1 = trim(entitybuExId1);
    entitybuExIdU1 = entitybuExIdT1.toUpperCase();
    alert("entitybuExIdU1"+entitybuExIdU1);
    if(!(entitybuIdT1 == null || entitybuIdT1 == '') && ((entitybuIdT1 == "0")) && (entitybuExIdU1 == 'FALSE'))
    document.getElementById("buiCoverRowId").style.display="block";
    </SCRIPT>
    The form element is mapped to the xml. the above code is written within a datatable, iam using javascrpt within this to display the datat or not, it is working for first iteration but its not working for second iteration. Plz help me with this . Is there any way that i can use javascript so that it vvalidates the form elements even for the 2 iteration of the datattable. I am having thesame values (of the 1iteration) even during the 2 iteration. Plz help me with this asap.

    Got the solution.
    $("div.ms-acal-rootdiv div div div a").html().replace('Replace this text only.','Replaced Text');

  • Retrieve imported and validated Entities for further ESSBASE calc Script

    Hi folks,
    once the FDM processing is finished:
    The Event Script AftConsolidate is executed.
    It is retrieving all unique Entity entries (trialbalance command), Period (POV), Scenario (POV) etc. and is bulding a dynamic ESSBAE calc script command which is afterwards executed to ensure that even the leaf member are correctly transferred to ESSBASE, the nodes are refreshed/aggregated as well.
    This works perfectly ;-)
    MY ISSUE:
    I want to clone this logic into a custom web script which then can be executed adhoc via webfrontend / Task Flow.
    I tried to copy the AftCondolidate Script into this custom web script. UNFORTUNATELY i get an error: saying DATA ACCESS ERROR
    My assumption is, that the trialbalance command does not work wit the custom web scripts.
    Is that right? Are there any workarounds how to retrieve out of a custom web script the entity dimension and store the unique entity entries in an array?
    regards
    Hau

    You don't need a custom script. FDM has functionality to call the consolidate action only, check the activities menu

  • ALSB 2.6 Dynamic Schema Validation

    ALSB 2.6 has a validation stage (Schema or WSDL), but requires a type to be selected during development. It would be nice if a WSDL based proxy could recognize the correct input message on an operational branch and dynamically choose the correct validation type.
    However, I have not been able to find anything to allow dynamic validation and thus a WSDL based proxy that has multiple operations requires the validation stage and error handling implementation to be repeated many times. Is there a better way?

    you can use if condition and choose the validation based on that condition whether its is aganst xsd/wsdl

  • How to implement Dynamic form validation

    Hello,
    I've been reading up on the forums about using the htmldb.item package to dynamically create form elements using a SQL query. Assuming I can generate the form dynamically, what approaches/options are available for implementing dynamic validation of the form elements themselves?
    Thanks in advance

    You could write a page-level 'PL/SQL Function Body returning error text' validation where you loop over your dynamic form elements (htmldb_application.g_fnn), check the values and raise errors as needed.

  • Where will we find dynamic option in web forms

    Hi, Gurus
    1.where will we find dynamic option in web forms?
    regards
    Taruni

    If you're talking about the dynamic POV in web forms introduced in 11.1.2.2.302, documentation only exists in the patch readme at this time. I've pasted it below.
    Support for Dynamic POV Member Lists in Web Data Forms
    This release provides support for dynamic POV member lists in Web Data Forms. You can create dynamic POV member lists to display dimension members that meet specific criteria. Dynamic POV member lists are created dynamically at runtime, based on the current POV member of one or more dimensions.
    Using dynamic POV member lists in data forms enables you to quickly populate rows and columns with valid members, depending on what has been selected in the POV. For example, you can create a dynamic POV member list that defines valid entities per year. When you select a year in the data form, the system displays only the valid entities that were defined in the member list for that year.
    Example:
    YearPOV = HS.MemberListYear
    If HS.MemberListID = 12 Then
    If YearPOV = 2011Then
    HS.AddEntityToList "Group", "CORP_OPS"
    ElseIf YearPOV = 2012 Then
    HS.AddEntityToList "Group", "CORP_OPS"
    HS.AddEntityToList "Group", "CHINA"
    HS.AddEntityToList "Group", "GERMANY"
    HS.AddEntityToList "Group", "UK"
    End if
    The basis on which the dynamic POV member lists can be created are Scenario, Year, Period, Entity, but member lists can now be created for any dimension. For example, you can create Year lists based on Entity, Custom lists based on Scenario and Entity, Account lists based on Period, and so on. The dimension on which to base the list (Scenario, Year, Period, Entity) must be in the form POV to be effective. If the dimension is not in the form POV, then the HS.MemberList<object> rule returns an empty string.
    Administrators define dynamic POV member lists in application member list files. Dynamic POV member lists are identified with the (@POV) suffix, for example, <ValidForEntity>(@POV). Each member list file must include an EnumMemberLists subroutine to specify which dimensions have dynamic POV member lists, the number of lists for each dimension, and the name of each member list. The member list file must also include an EnumMembersInList subroutine to define the members in the list.
    Administrators can then add dynamic POV member lists to a form when they define the data form, in the same way that they add other member lists.
    In an application that has dynamic POV member lists defined, users can then use the Form Designer to select member lists for the rows and columns of the form. From the Member Selection dialog box, the valid dynamic POV member lists for the current dimension are displayed with an @POV suffix at the bottom of the dialog box, and users can select them in the same way as other members.

  • Validation Entity Manipulation

    Does anyone have the code or know how this was done (See below)? I found it in a presentation that Pfizer did a few years ago at the Hyperion Conference. I can't figure out how you can manipulate the validation entities from fdm code.
    Any ideas?
    Greatly Appreciated,
    Mike
    PS The full presention can be found at: http://www.finitsolutions.com/docs/Presentation-ComplexDataSubmission.pdf
    Event Scripts – Validation
    Entities
    �� The Validation Entities groups inside Hyperion FDM control the
    entities that should be force calculated (optional), force translated
    (optional) or consolidated inside HFM after the data has been
    loaded. It is also used to display entities on the FDM Check
    Report.
    �� Out of the box, entities need to be specifically hard coded into the
    Validation entity group table. With such a large number of
    locations, Pfizer would have to spend a lot of time updating these.
    �� A script was developed in the AftLoad event to dynamically build
    the Validation Entity table based upon the entities that were
    loaded to HFM. The AftLoad event runs after the data is loaded
    into HFM. The admin’s never needs to touch the Validation Entity
    group now for any active location.
    Edited by: user8030589 on Apr 21, 2009 11:03 AM

    Hi Mike,
    This is a complex script as you have to do a few things such as determine the entities that loaded through that location, lookup the HFM parent of each entity that loaded, clear and then write back to the tBhvValEntItem table. I also had to build in some other checks in this script you referenced and subsequent scripts to handle situations where you wanted to keep a high-level parent entity in the group to run a consolidation on.
    The script is about 150 lines and I can't just paste an entire script in a forum when clients have paid for it to be developed. If you or your client would like to discuss consulting assistance with getting this into your environment, I'd be more than happy to speak with you. If you'd like to work on it your own, I'd suggest just trying to break it down into each component outlined above section by section.
    Regards,
    Rob Cybulski, CPA
    Finit Solutions
    [email protected]

  • Any help with dynamically updating spry attributes?

    I am trying to use Spry validation fields for a dynamically
    validated form using javascript. I have two key problems:
    1. The .reset() method for spry fields seems to work only if
    invoked from a function associated with the onclick handler of a
    form button: if I call the method from a function triggered by the
    onblur handler of a field it has no effect.. strange!
    2. I can find no way to change whether a spry field is
    mandatory without reloading the page and invoking the constuctor
    again.
    If anyone has any ideas to tackle either issue I would be
    extremely grateful!!
    Jon

    Right, I realize that now, but that would require deleting the current dynamically linked After Effects project, right?
    Also, I think the solution to my problem would be found if I could find a way to remove the dynamic link between After Effects and Premiere. Any ideas?

  • DynaValidatorForm Validation Problem

    Hi ,
    I am developing a struts1.1 webapplication where i am using the struts DynaValidatorForm to validate the form post.I have configured the struts-config.xml and validation.xml files. But still it seems the dynamic validation is not working. I don't know where is the problem.
    Here is my portion of the xml files,
    struts-config.xml
    <struts-config>
    <form-beans>
         <form-bean name="projectform"
              type="org.apache.struts.validator.DynaValidatorForm"
              dynamic="true">
         <!-- specify the dynamic properties of the form -->     
              <form-property name="name" type="java.lang.String"/>
              <form-property name="department" type="java.lang.String"/>
              <form-property name="businessAreaManager" type="java.lang.String"/>
              <form-property name="referenceNumber" type="java.lang.Long"/>
              <form-property name="budget" type="java.lang.Float"/>
              <form-property name="sponsor" type="java.lang.String"/>
              <form-property name="startDate" type="java.lang.String"/>
              <form-property name="endDate" type="java.lang.String"/>
              <form-property name="manager" type="java.lang.String"/>
              <form-property name="taskName" type="java.lang.String"/>
              <form-property name="description" type="java.lang.String"/>
              <form-property name="plannedHours" type="java.lang.Float"/>
              <form-property name="actualHours" type="java.lang.Float"/>
              <form-property name="taskStartDate" type="java.lang.String"/>
              <form-property name="taskEndDate" type="java.lang.String"/>
         </form-bean>
         <form-bean name="resourceform" type="com.heb.pmtool.bean.ResourceForm"/>
    </form-beans>     
    <action path="/createProject" name="projectform" input="/createproject.jsp" parameter="method" scope="request" type="com.heb.pmtool.action.ProjectActions" validate="true">
         <forward name="success" path="/viewProject.do" redirect="false"/>
    </action>
    </struts-config>
    <!--------------------End of struts-config.xml ------------------>
    validation.xml
    <form-validation>
    <form-set>
    <form name="projectform">
    <field property="name"     
         depends="required,mask">
    <var>
         <var-name>mask</var-name>
         <var-value>^[a-zA-Z]*$</var-value>
    </var>      
    </field>
    </form>
    </form-set>     
    </form-validation>     
    <!--------------------End of validation.xml ------------------>
    The xml files are not the complete one. I have clipped and pasted the neccessary info.
    When i submit the form with no values in the field name, it is not reporting any errors.
    I am not sure whether validation is taking place.
    Please help me in fixing this problem.
    Thanks,
    Mohideen.

    Hi,
    I still couldn't find a solution for this problem. Could anyone can give a priority to solve this?
    Thanks,
    Mohideen.

  • How to make a dynamic function call from within a package procedure

    Hi:
    I need to call a function dynamically (name and parameters determined at run time, but return value is known:always an integer). I can build the call and place it in a dynamic sql using dbms_sql. But the function is inside a package and is not public.
    So, if I issue:
    dbms_sql.parse( cur,'SELECT '||call||' FROM dual', dbms_sql.v7 )
    where call is "DOS(234,'V')"
    I get:
    ORA-00904: "DOS": invalid identifier
    If I make the function ("DOS") public and "call" equals "pack.DOS(234,'V')", it works fine, but I don't want to make it public.
    Is there a solution?
    Thanks in advance
    RuBeck

    Hi, Kamal:
    Calling from outside of the owner package is not possible if it is not public.The calls are from inside the package. It looks like the dynamic select is executed "outside" the package, so the private function is unknown
    Make it available in the package headerLooks like it's the only solution
    How often this will be executed?This is a library for loading files into tables and executing dynamic validation procedures.
    Here's an example of the mechanics:
    create or replace package mypack as
         function one return number ; -- public function
         procedure execute_it( p_name VARCHAR2 ) ;
    end ;
    create or replace package body mypack as
    function one return number is
    begin
    return 1 ;
    end ;
    function two( i number, s varchar2 ) return number is -- private function
    begin
    return 2 ;
    end ;
    procedure execute_it( p_name VARCHAR2 ) is
    select_str VARCHAR2( 1000 ) ;
    v_num NUMBER ;
    cur NUMBER ;
    nf NUMBER ;
    begin
    select_str := 'SELECT '||p_name||' FROM dual' ;
    cur := dbms_sql.open_cursor ;
    dbms_sql.parse( cur,select_str,dbms_sql.v7 ) ;
    dbms_sql.define_column( cur,1, v_num ) ;
    nf := dbms_sql.execute( cur ) ;
    IF dbms_sql.fetch_rows( cur ) = 0 THEN
    RAISE no_data_found ;
    END IF ;
    dbms_sql.column_value( cur, 1, v_numero ) ;
    dbms_output.put_line( p_name||' returns '||v_num ) ;
    dbms_sql.close_cursor( cur ) ;
    end ;
    end ;
    begin
    mypack.execute_it( 'mypack.one' ) ; -- Call public function: Works fine
    mypack.execute_it( 'two(234,''v'')' ) ; -- Call private function: error 0904
    end ;
    Thanks for your hints
    RuBeck
    PS: The indentation is lost when I post the message! I wrote it indented!

  • Indexes for group by query on table with 5million records

    Hi,
    Here is my query which is taking ages to run :
         SELECT approved.budgetReferenceno
                   , approved.projects
                   , approved.allocations
                   , rptgen4
                         , financialyear
                   , cashclass
                   , SUM(nvl(approved.FullYear,0)) as FullYear
              FROM   approved
              JOIN   rpt_entity ON rpt_entity.level0 = approved.entity
              JOIN   cashclasses     ON accountcode    = approved.account
        where budgetreferenceno = refno    
        and
            entity in ( 
               (select Level0 from rpt_entity   where   
               (   entityparent in (select * from table(split(userid)))    or   rptgen5 in (select * from table(split(userid)))   )   ) 
         and
           ccs in (select level0 from rpt_ccs where rptgen4 in (select * from table(split(userid)))) or
           ccs in (select level0 from rpt_ccs where rptgen5 in (select * from table(split(userid)))) or
           ccs in (select level0 from rpt_ccs where rptgen6 in (select * from table(split(userid)))) or
           ccs in (select level0 from rpt_ccs where rptgen7 in (select * from table(split(userid))) ) or
           ccs in (select distinct(substr(column_value,2,length(column_value)-2)) from table(split_comma(userid)) )
              GROUP BY approved.budgetReferenceno
                   , approved.projects
                   , approved.allocations
                   , rptgen4
                         , financialyear
                   , cashclass
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 4074481161
    | Id  | Operation                                | Name            | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT                         |                 | 31234 |  3660K|       | 86141   (1)| 00:17:14 |
    |   1 |  HASH GROUP BY                           |                 | 31234 |  3660K|    17M| 86141   (1)| 00:17:14 |
    |*  2 |   FILTER                                 |                 |       |       |       |            |          |
    |*  3 |    HASH JOIN                             |                 |   138K|    15M|       | 82427   (1)| 00:16:30 |
    |   4 |     TABLE ACCESS FULL                    | CASHCLASSES     |  2875 | 48875 |       |     5   (0)| 00:00:01 |
    |*  5 |     HASH JOIN                            |                 |   138K|    13M|       | 82420   (1)| 00:16:30 |
    PLAN_TABLE_OUTPUT
    |   6 |      TABLE ACCESS FULL                   | RPT_entity  |   725 | 10875 |       |    11   (0)| 00:00:01 |
    |*  7 |      HASH JOIN RIGHT SEMI                |                 |   138K|    11M|       | 82408   (1)| 00:16:29 |
    |   8 |       VIEW                               | VW_NSO_1        |    71 |   568 |       |    11   (0)| 00:00:01 |
    |*  9 |        FILTER                            |                 |       |       |       |            |          |
    |  10 |         TABLE ACCESS FULL                | RPT_entity  |   725 | 17400 |       |    11   (0)| 00:00:01 |
    |* 11 |         COLLECTION ITERATOR PICKLER FETCH| SPLIT           |       |       |       |            |          |
    |* 12 |         COLLECTION ITERATOR PICKLER FETCH| SPLIT           |       |       |       |            |          |
    |* 13 |       TABLE ACCESS FULL                  | approved        |  1170K|    89M|       | 82389   (1)| 00:16:29 |
    |  14 |    NESTED LOOPS                          |                 |     1 |    18 |       |    46   (0)| 00:00:01 |
    |  15 |     COLLECTION ITERATOR PICKLER FETCH    | SPLIT           |       |       |       |            |          |
    |* 16 |     INDEX RANGE SCAN                     | CC_INDEX1       |     1 |    16 |       |     1   (0)| 00:00:01 |
    PLAN_TABLE_OUTPUT
    |  17 |    NESTED LOOPS                          |                 |     2 |    46 |       |    51   (2)| 00:00:01 |
    |* 18 |     INDEX FAST FULL SCAN                 | CC_INDEX2       |     1 |    21 |       |    46   (3)| 00:00:01 |
    |* 19 |     COLLECTION ITERATOR PICKLER FETCH    | SPLIT           |       |       |       |            |          |
    |  20 |    NESTED LOOPS                          |                 |     1 |    24 |       |    52   (0)| 00:00:01 |
    |  21 |     TABLE ACCESS BY INDEX ROWID          | RPT_ccs |     1 |    22 |       |    46   (0)| 00:00:01 |
    |* 22 |      INDEX SKIP SCAN                     | CC_INDEX1       |     1 |       |       |    45   (0)| 00:00:01 |
    |* 23 |     COLLECTION ITERATOR PICKLER FETCH    | SPLIT           |       |       |       |            |          |
    |  24 |    NESTED LOOPS                          |                 |     2 |    50 |       |    60   (0)| 00:00:01 |
    |  25 |     TABLE ACCESS BY INDEX ROWID          | RPT_ccs |     1 |    23 |       |    46   (0)| 00:00:01 |
    |* 26 |      INDEX SKIP SCAN                     | CC_INDEX1       |     1 |       |       |    45   (0)| 00:00:01 |
    |* 27 |     COLLECTION ITERATOR PICKLER FETCH    | SPLIT           |       |       |       |            |          |
    PLAN_TABLE_OUTPUT
    |* 28 |    COLLECTION ITERATOR PICKLER FETCH     | SPLIT_COMMA     |       |       |       |            |          |
    Predicate Information (identified by operation id):
       2 - filter( EXISTS (SELECT 0 FROM "RPT_ccs" "RPT_ccs",TABLE() "KOKBF$" WHERE
                  "LEVEL0"=:B1 AND "RPTGEN4"=VALUE(KOKBF$)) OR  EXISTS (SELECT 0 FROM "RPT_ccs"
                  "RPT_ccs",TABLE() "KOKBF$" WHERE "RPTGEN5"=VALUE(KOKBF$) AND "LEVEL0"=:B2) OR  EXISTS (SELECT 0
                  FROM "RPT_ccs" "RPT_ccs",TABLE() "KOKBF$" WHERE "RPTGEN6"=VALUE(KOKBF$) AND "LEVEL0"=:B3)
                  OR  EXISTS (SELECT 0 FROM "RPT_ccs" "RPT_ccs",TABLE() "KOKBF$" WHERE
    PLAN_TABLE_OUTPUT
                  "RPTGEN7"=VALUE(KOKBF$) AND "LEVEL0"=:B4) OR  EXISTS (SELECT 0 FROM TABLE() "KOKBF$" WHERE
                  SUBSTR(VALUE(KOKBF$),2,LENGTH(VALUE(KOKBF$))-2)=:B5))
       3 - access("ACCOUNTCODE"="approved"."ACCOUNT")
       5 - access("RPT_entity"."LEVEL0"="approved"."entity")
       7 - access("approved"."entity"="LEVEL0")
       9 - filter( EXISTS (SELECT 0 FROM TABLE() "KOKBF$" WHERE VALUE(KOKBF$)=:B1) OR  EXISTS (SELECT 0 FROM
                  TABLE() "KOKBF$" WHERE VALUE(KOKBF$)=:B2))
      11 - filter(VALUE(KOKBF$)=:B1)
      12 - filter(VALUE(KOKBF$)=:B1)
      13 - filter("approved"."BUDGETREFERENCENO"='BASE')
      16 - access("RPTGEN4"=VALUE(KOKBF$) AND "LEVEL0"=:B1)
    PLAN_TABLE_OUTPUT
      18 - filter("LEVEL0"=:B1)
      19 - filter("RPTGEN5"=VALUE(KOKBF$))
      22 - access("LEVEL0"=:B1)
           filter("LEVEL0"=:B1)
      23 - filter("RPTGEN6"=VALUE(KOKBF$))
      26 - access("LEVEL0"=:B1)
           filter("LEVEL0"=:B1)
      27 - filter("RPTGEN7"=VALUE(KOKBF$))
      28 - filter(SUBSTR(VALUE(KOKBF$),2,LENGTH(VALUE(KOKBF$))-2)=:B1)
    64 rows selected.
    SQL> select * from v$version;
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
    PL/SQL Release 11.1.0.7.0 - Production
    CORE    11.1.0.7.0      Production
    TNS for IBM/AIX RISC System/6000: Version 11.1.0.7.0 - Production
    NLSRTL Version 11.1.0.7.0 - ProductionThe table has 28 columns none indexed the columns mentioned here have non unique values.
    The table approved has more than 10million records and the query is taking a huge time.
    The query first tries to restrict the search to only valid entities and cc (already indexed and working fine).
    The cardinality of allocations, projects is around 1000, entity is 3000, and cc is around 50,000, reference number = 2000, financialyear = 4
    Please suggest which index would be best to use on these columns given that there will no updations but frequent insertions.
    If nothing else works than I will need to change it to pre aggregated data for overnight run .
    Thanks,
    Neetesh
    Edited by: user13312817 on Nov 16, 2011 11:05 AM
    Edited by: user13312817 on Nov 16, 2011 11:36 AM
    Edited by: user13312817 on Nov 16, 2011 11:38 AM
    Edited by: user13312817 on Nov 16, 2011 12:02 PM

    Hello Adam,
    Tried this but still not much of a difference.
    create index test_index on approved (budgetreferenceno,projects,allocations,financialyear,entity,ccs,FullYear) compress 6;
    SQL> select * from table(dbms_xplan.display);
    PLAN_TABLE_OUTPUT
    Plan hash value: 2463060356
    | Id  | Operation                               | Name            | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT                        |                 | 25030 |  4644K|       | 70852   (1)| 00:14:11 |
    |   1 |  TABLE ACCESS BY INDEX ROWID            | FEGEN4          |     1 |    13 |       |     2   (0)| 00:00:01 |
    |*  2 |   INDEX UNIQUE SCAN                     | INDEX1          |     1 |       |       |     1   (0)| 00:00:01 |
    |   3 |  TABLE ACCESS BY INDEX ROWID            | CASHCLASSES     |     1 |    17 |       |     2   (0)| 00:00:01 |
    |*  4 |   INDEX UNIQUE SCAN                     | CASHCLASSES_PK  |     1 |       |       |     1   (0)| 00:00:01 |
    |   5 |  HASH GROUP BY                          |                 | 25030 |  4644K|    21M| 70852   (1)| 00:14:11 |
    PLAN_TABLE_OUTPUT
    |   6 |   VIEW                                  |                 |   109K|    19M|       | 68578   (1)| 00:13:43 |
    |*  7 |    FILTER                               |                 |       |       |       |            |          |
    |*  8 |     HASH JOIN RIGHT SEMI                |                 |   484K|    99M|       | 68578   (1)| 00:13:43 |
    |   9 |      VIEW                               | VW_NSO_1        |    71 |  7242 |       |    11   (0)| 00:00:01 |
    |* 10 |       FILTER                            |                 |       |       |       |            |          |
    |  11 |        TABLE ACCESS FULL                | RPT_entity  |   725 | 17400 |       |    11   (0)| 00:00:01 |
    |* 12 |        COLLECTION ITERATOR PICKLER FETCH| SPLIT           |       |       |       |            |          |
    |* 13 |        COLLECTION ITERATOR PICKLER FETCH| SPLIT           |       |       |       |            |          |
    |* 14 |      TABLE ACCESS FULL                  | approved         |   982K|   106M|       | 68560   (1)| 00:13:43 |
    |  15 |     NESTED LOOPS                        |                 |     1 |    18 |       |    46   (0)| 00:00:01 |
    |  16 |      COLLECTION ITERATOR PICKLER FETCH  | SPLIT           |       |       |       |            |          |
    PLAN_TABLE_OUTPUT
    |* 17 |      INDEX RANGE SCAN                   | CC_INDEX1       |     1 |    16 |       |     1   (0)| 00:00:01 |
    |  18 |     NESTED LOOPS                        |                 |     2 |    46 |       |    51   (2)| 00:00:01 |
    |* 19 |      INDEX FAST FULL SCAN               | CC_INDEX2       |     1 |    21 |       |    46   (3)| 00:00:01 |
    |* 20 |      COLLECTION ITERATOR PICKLER FETCH  | SPLIT           |       |       |       |            |          |
    |  21 |     NESTED LOOPS                        |                 |     1 |    24 |       |    52   (0)| 00:00:01 |
    |  22 |      TABLE ACCESS BY INDEX ROWID        | RPT_ccs |     1 |    22 |       |    46   (0)| 00:00:01 |
    |* 23 |       INDEX SKIP SCAN                   | CC_INDEX1       |     1 |       |       |    45   (0)| 00:00:01 |
    |* 24 |      COLLECTION ITERATOR PICKLER FETCH  | SPLIT           |       |       |       |            |          |
    |  25 |     NESTED LOOPS                        |                 |     2 |    50 |       |    60   (0)| 00:00:01 |
    |  26 |      TABLE ACCESS BY INDEX ROWID        | RPT_ccs |     1 |    23 |       |    46   (0)| 00:00:01 |
    |* 27 |       INDEX SKIP SCAN                   | CC_INDEX1       |     1 |       |       |    45   (0)| 00:00:01 |
    PLAN_TABLE_OUTPUT
    |* 28 |      COLLECTION ITERATOR PICKLER FETCH  | SPLIT           |       |       |       |            |          |
    |* 29 |     COLLECTION ITERATOR PICKLER FETCH   | SPLIT_COMMA     |       |       |       |            |          |
    Predicate Information (identified by operation id):
       2 - access("LEVEL0"=:B1)
       4 - access("ACCOUNTCODE"=:B1)
       7 - filter( EXISTS (SELECT 0 FROM "RPT_ccs" "RPT_ccs",TABLE() "KOKBF$" WHERE
                  "LEVEL0"=:B1 AND "RPTGEN4"=VALUE(KOKBF$)) OR  EXISTS (SELECT 0 FROM "RPT_ccs"
    PLAN_TABLE_OUTPUT
                  "RPT_ccs",TABLE() "KOKBF$" WHERE "RPTGEN5"=VALUE(KOKBF$) AND "LEVEL0"=:B2) OR  EXISTS (SELECT 0
                  FROM "RPT_ccs" "RPT_ccs",TABLE() "KOKBF$" WHERE "RPTGEN6"=VALUE(KOKBF$) AND "LEVEL0"=:B3)
                  OR  EXISTS (SELECT 0 FROM "RPT_ccs" "RPT_ccs",TABLE() "KOKBF$" WHERE
                  "RPTGEN7"=VALUE(KOKBF$) AND "LEVEL0"=:B4) OR  EXISTS (SELECT 0 FROM TABLE() "KOKBF$" WHERE
                  SUBSTR(VALUE(KOKBF$),2,LENGTH(VALUE(KOKBF$))-2)=:B5))
       8 - access("entity"="LEVEL0")
      10 - filter( EXISTS (SELECT 0 FROM TABLE() "KOKBF$" WHERE VALUE(KOKBF$)=:B1) OR  EXISTS (SELECT 0 FROM
                  TABLE() "KOKBF$" WHERE VALUE(KOKBF$)=:B2))
      12 - filter(VALUE(KOKBF$)=:B1)
      13 - filter(VALUE(KOKBF$)=:B1)
      14 - filter("BUDGETREFERENCENO"='BASE')
    PLAN_TABLE_OUTPUT
      17 - access("RPTGEN4"=VALUE(KOKBF$) AND "LEVEL0"=:B1)
      19 - filter("LEVEL0"=:B1)
      20 - filter("RPTGEN5"=VALUE(KOKBF$))
      23 - access("LEVEL0"=:B1)
           filter("LEVEL0"=:B1)
      24 - filter("RPTGEN6"=VALUE(KOKBF$))
      27 - access("LEVEL0"=:B1)
           filter("LEVEL0"=:B1)
      28 - filter("RPTGEN7"=VALUE(KOKBF$))
      29 - filter(SUBSTR(VALUE(KOKBF$),2,LENGTH(VALUE(KOKBF$))-2)=:B1)
    PLAN_TABLE_OUTPUT
    Note
       - dynamic sampling used for this statement
    69 rows selected.Thanks,
    Neetesh
    Edited by: user13312817 on Nov 17, 2011 7:04 AM

  • JoinFieldValue for Revenue

    Hello,
    I am trying to put together a Field Validation on the Opportunity object that will throw an error when a checkbox on the product-revenue object is set to 'Y'.
    The requirement for this is that we want to be able to select a product called 'new product' when the product is not yet known within CRM. When this product is selected, a checkbox (new product) will be set to 'Y'. When the opportunity is nearing the final sales stages I would like to force the user to change the product to a real product name when the new product checkbox is 'Y'. As it is not possible to add field validations on the sales stage field, and we are using a dynamic layout which is getting triggered via the sales stages, I was thinking of adding a field validation on the Opportunity Type field (values are: Opportunity, Offer, Contract Preparation, Contract).
    I was thinking about combining an IIf statement with a JoinFieldValue to get the checkbox value from the revenue object, but it is not yet working.
    Does anybody has a clue on how to solve this requirement?
    Kind regards,
    Niels Rekers

    The documentation I have suggests that this is not possible. The only valid entities for SR are Account, Asset, Contact, Dealer, User, and Product. It seems that you can use JoinedFieldValue from Custom Objects to other entities, but not the other way around. This is also supported by the fact that the Custom Object Id is not stored on the SR record. Only the Custom Object Name is stored, and so your example fails because CustomObject1Id does not exist on SR. I also tried to test to see if it would work with Name and not ID and it did not work.
    I recommend that you create an SR for Oracle, but it would likely be an enhancement.
    Thom

Maybe you are looking for

  • Can not view photos on Windows Live Skydrive - Just see gray boxes

    After uploading photos I am unable to view them. All I see are gray squares. Have addressed this with Windows Live Skydrive Help and they have suggested optimizing Firefox. How, I am not sure. I do not have this problem with IE, but I want to use Fir

  • Win7 problem with Telnet with IE8 (32 bit version)

    We are not able to run Telnet in Win7 (64bit)  with IE8 (32 bit ) (example: telnet://ip), but it works with 64bit IE8. Any solution? Thanks Bahram

  • Mac book air infected

    my mac book air is infected, getting frustrated how do i get rid of these dam pop ups?

  • XI Mapping problem?

    Hi Can some one help me on this issue My source file out put is like this : <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">    <so

  • Script for current date

    I have a document javascript that used to work. It prints the current date upon first opening the PDF into a field called Today. Thereafter, the date does not change no matter how many more times the PDF is opened. var f = this.getField("Today"); if