Business Rule - Problem with Validation Execution
I'm running into an issue where conditional Validation Execution is not working as expected. The background is that i have an Entity Object containing a few string attributes on which i must apply Regular Expression business rules to make sure only characters in a certain range is set. I am using a Not Matches regex on the following:
.*[^\u0020-\uD7FF].*1 attribute is required, 2 are optional. The problem I am experiencing is with the 2 optional attributes.
Since these are optional, I intended to use the Validation Execution tab so that the Rule is executed only when the attribute is not null. For example, here is what i tried for an attribute named Comments:
Comments != nullNo validation occurred when I entered an invalid value, such as a string containing line breaks, in a corresponding ADF Faces page. For the heck of it, i experimented by setting the validation execution to the opposite of what i should be - in other words, trigger validation if the attribute is null, such as:
Comments == nullWith this, the validation occurred as expected.
Is this a bug, or am I misunderstanding something? I'm not particularly good with RegEx - is it possible this is due to some nuance of the expression?
Version: JDeveloper 11.1.1.6.
Thanks-
-george
i'm not sure if this is the correct answer or a workaround to the issue i had asked about. Given that caveat, if anyone else ever runs across this thread, what i found worked was to not use the attribute name in the Validation Execution tab's expression, but instead to just newValue as in the following:
newValue != null
Similar Messages
-
Business rule problem with association
Hi,
i am facing an issue with business rules am not able to associate with planning outline in AAS console
RamHi Ram,
Navigate to
1. C:\Hyperion\AnalyticAdministrationServices\storage\easusers\users.xml
2. Edit users.xml file
3. Update admin to "true" and save file.
4. For example,
EASUsers><EASUser directory="admin" email="[[email protected]]" external="true" fullName="EAS Administrator" id="1" isMigrated="false" password="A627FC9A6DEA834C1FA7772..........." roles="roles" supervisor="true" username="admin"/>
This should help you
5. After this, you restart RMI, AAS and planning services.
6. Now, it should work
Sandeep Reddy Enti
HCC
http://hyperionconsultancy.com/ -
How to Migrate Business rules along with access privileges
Hi All,
I migrated business rules from prod to dev using lcm. The business rules got migrated correctly, but the access privileges did not. I tried exporting from EAS and import. Even then the access privileges were not migrated.How do we migrate business rules along with access privileges? Quick help is much appreciated.
We are on hyp. planning 11.1.1.3. and we use classic planning applications.
Thanks
LakshmiIf they are native users/groups then it may be down to the ID for the users/groups being different across environments, this has always been a problem with business rules, with planning applications then there is the updateusers utility to sync up the ID with shared services.
Cheers
John
http://john-goodwin.blogspot.com/ -
One year ago i installed Elements 12 on my PC with a serial number and it was OK.
Today i have installed Elements 12 also on my laptop.
But,...there is a problem with validation of the serial number on my laptop. Is there a need to validate Elements or will this program real disapeare in 7 days?
HansHi,
Since you already have one copy activated the serial number must be logged in your account details - I would first check that the one logged and the one you are attempting to enter are the same.
You can check your account details by going to www.adobe.com and clicking on Manage Account. You need to sign in with your Adobe Id and then click on View All under Plans & Products. Next click on View your products and after a while it should produce your list.
If there is a problem with the serial number, only Adobe can help you there (we are just users). Please see the response in this thread
First of all, I would have to say that getting in touch with you is a nightmare and I am not at all happy that I can't just email or live chat with someone who can help! I am not a technical person, I just want to be able to use Photoshop Elements and ge
Brian -
Apex 4 , problem with collection executions
Hi ,
I am having the following problem with the execution of one collection :
Reference thread : Re: APEX 4 , executing a remote procedure and populating data using collection
DBNAME ---> list item which I build from the DB links which I built ( as dynamic query in the shared components from a local table which holds entries of dblink names )
USERLIST --> list item of users which should display dynamicaly the users of that db link I choose in DBNAME ( based on a collection )
buttons CANCEL and SUBMIT
4- Initial COLLECTION page process which is calculated before Header :
DECLARE
q varchar2(4000);
BEGIN
IF APEX_COLLECTION.COLLECTION_EXISTS(P_COLLECTION_NAME => 'QRY1') THEN
APEX_COLLECTION.DELETE_COLLECTION(P_COLLECTION_NAME => 'QRY1');
END IF;
q := 'SELECT username , username FROM sys.dba_users@'||:P23_DBNAME ;
APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY_B(
P_COLLECTION_NAME => 'QRY1',
P_QUERY => Q);
END;
For USERLIST list item I am using the following in LIST OF VALUES DEFINITION :
SELECT C001, C002 FROM APEX_COLLECTIONS WHERE COLLECTION_NAME='QRY1'
5 - to submit the values from the screen to the remote database procedure I am using the following submit process ON SUBMIT AFTER CALCULATIONS:
DECLARE
v_statement varchar2(255);
BEGIN
v_statement := 'begin
Lock_User@&P24_DBNAME.(''&P24_USERLIST.'');
insert into log values (1,''user locked'') ;
commit ;
end;';
EXECUTE IMMEDIATE v_statement;
END;
The problem :
The form runs sucessfully , where I the USERLIST changes dynamicaly when I change the DBNAME values , but as soon as I logout and login with another user1 , the collection does not execute and i get "ORA-01729: database link name expected".
I login with user1 in edit mode and recreate the collection , run again , the collection executes successfuly .
If I create a new user2 ( using the sample application pages ) and login with the new user2 , i have the same problem , thus I ho login with user2 in edit mode and try to run the collection .
How can I control the collection to execute regardless of the application user logged in ??
thanks in advance
yousefHi ,
I am having the following problem with the execution of one collection :
Reference thread : Re: APEX 4 , executing a remote procedure and populating data using collection
DBNAME ---> list item which I build from the DB links which I built ( as dynamic query in the shared components from a local table which holds entries of dblink names )
USERLIST --> list item of users which should display dynamicaly the users of that db link I choose in DBNAME ( based on a collection )
buttons CANCEL and SUBMIT
4- Initial COLLECTION page process which is calculated before Header :
DECLARE
q varchar2(4000);
BEGIN
IF APEX_COLLECTION.COLLECTION_EXISTS(P_COLLECTION_NAME => 'QRY1') THEN
APEX_COLLECTION.DELETE_COLLECTION(P_COLLECTION_NAME => 'QRY1');
END IF;
q := 'SELECT username , username FROM sys.dba_users@'||:P23_DBNAME ;
APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY_B(
P_COLLECTION_NAME => 'QRY1',
P_QUERY => Q);
END;
For USERLIST list item I am using the following in LIST OF VALUES DEFINITION :
SELECT C001, C002 FROM APEX_COLLECTIONS WHERE COLLECTION_NAME='QRY1'
5 - to submit the values from the screen to the remote database procedure I am using the following submit process ON SUBMIT AFTER CALCULATIONS:
DECLARE
v_statement varchar2(255);
BEGIN
v_statement := 'begin
Lock_User@&P24_DBNAME.(''&P24_USERLIST.'');
insert into log values (1,''user locked'') ;
commit ;
end;';
EXECUTE IMMEDIATE v_statement;
END;
The problem :
The form runs sucessfully , where I the USERLIST changes dynamicaly when I change the DBNAME values , but as soon as I logout and login with another user1 , the collection does not execute and i get "ORA-01729: database link name expected".
I login with user1 in edit mode and recreate the collection , run again , the collection executes successfuly .
If I create a new user2 ( using the sample application pages ) and login with the new user2 , i have the same problem , thus I ho login with user2 in edit mode and try to run the collection .
How can I control the collection to execute regardless of the application user logged in ??
thanks in advance
yousef -
Validation Business Rule Problem
Hi Community
I´m working with SAP BPC 7.0 NW SP09 Consolidation, the problem I have is when I execute the validation package, the result of the Validation Rule because the business rule don´t respect the number sign of the value calculated.
For example I try to confirm this formula ASSETS = LIABILITIES + EQUITY
ASSETS AST 1000
LIABILITIES LEQ 800
EQUITY LEQ 400
RESULT -200
BUSINESS RULE 200
I was investigating all the posible combinations of dimensions, and I found it could be possible that this error occurs when (Liabilities + Equity) > Asset.
Rule
VAL01 ASSETS=LIABILITIES
Rule Details
Validation Account Account 1 Flow 1 Sign 1 Account 2 Flow 2 Sign 2 REMARK
VAL01 ASSETS F_CLO 1 LIABILITIES F_CLO 1
ASSETS and LIABILITIES are configures as part of dimlist property, where Liabilities have all the equity accounts too.
Hope anyone help me with this problem
Thanks in advanceHello Ruben
If Account: VAL01 is 'AST' account than Validation Business Rule will give 200 as the result.For 'LEQ' result will be -200.
I think the business rule is working as expected.
Hope this help.
Regards
Venkatesh KPS -
Hi Guys
I have BEFORE INSERT OR UPDATE ON ASSESSMENTS for each row which is doing some sort of validation for date.
IF INSERTING OR UPDATING then
v_involv_identifier := NVL(:new.identifier,:old.identifier);
IF :new.start_date is not null THEN
BEGIN
SELECT MIN(irole.start_date)
INTO v_irole_start
FROM involvement_roles irole
WHERE irole.involv_identifier = v_involv_identifier;
IF trunc(:new.start_date) > trunc(v_irole_start)
THEN
raise_application_error(-20103, 'SSL-13085');
END IF;
EXCEPTION
when no_data_found then
null;
END;
END IF;
IF :new.end_date is not null
THEN
BEGIN
SELECT MAX(irole.end_date)
INTO v_irole_end
FROM involvement_roles irole
WHERE irole.involv_identifier = v_involv_identifier;
IF v_irole_end is not null
AND trunc(v_irole_end) > trunc(:new.end_date)
THEN
raise_application_error(-20103, 'SSL-13085');
END IF;
EXCEPTION
when no_data_found then
null;
End;
BEGIN
SELECT MAX(irole.start_date)
INTO v_irole_start
FROM involvement_roles irole
WHERE irole.involv_identifier = v_involv_identifier;
IF v_irole_start is not null
AND v_irole_start > :new.end_date
THEN
raise_application_error(-20103, 'SSL-13085');
END IF;
EXCEPTION
when no_data_found then
null;
END;
END IF;
END IF;
Now in AFTER INSERT OR UPDATE ON ASSESSMENTS for each row
I am updating the values of Involvement_role(irole.start_date, irole.end_date) and
Involments(start_date, end_date ) to temporary table and from there to respective table to avoid
mutation.It works fine as expected in all cases.
But I am unable to update when both InvolvementRole enddate and Invovement enddate are updated at same
(Both are same date)or InvolvementRole startdate and Invovement startdate are updated at same time
(Both are same date) because of business rule implemented.But from user prspect it should be able to
update at the same time.
After analysising I think it happening because of the max value of v_irole_end & v_irole_start which i m
getting using the select statement which still coantain the old value.
Say for example currenlty the InvolvementRole enddate=4/9/2009 and Invovement enddate=4/9/2009
Now I m updating with value say InvolvementRole enddate=3/9/2009 and Invovement enddate=3/9/2009
Now with select stm. the max value of v_irole_end=4/9/20099 (say)
so this rule apply
IF v_irole_end is not null
AND trunc(v_irole_end) > trunc(:new.end_date)
THEN
raise_application_error(-20103, 'SSL-13085');
END IF;
and it will not allow to update .
but if you update separately it will not cause any problem as the value of InvolvementRole enddate is
already modifes and contain the new value (3/9/2009)
Now question is it's frustrating to user.Can any one suggest how to over and allow user to update
simulteneouly without violating B-Rules.
For information I m updating the Involvement Role table before and then InvolvementTable.1. db details
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for 64-bit Windows: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
2.
for dml u can look into which updating ----
FOR c IN c_temp_id LOOP
IF c.action_ind = 'R' THEN
dbms_output.put_line('updating role for involvement '||c.identifier||
' to end on '||c.date_param1);
UPDATE involvement_roles
SET end_date = c.date_param1
WHERE involv_identifier = c.identifier;
-- AND end_date IS NULL;
end if ;
IF c.action_ind = 'Q' THEN
update INVOLVEMENTS
set end_date=c.date_param1
WHERE identifier = c.identifier;
End if;
END LOOP;
3. In after statement trigger
procedure is a called to update both table
IF UPDATING THEN
v_db_mode := 'U';
END IF;
involv_asprc(v_db_mode);
code inside procedure involv_asprc look like-----------------------
CURSOR v_del_record IS
select identifier involv_identifier
,action_ind
,text_param1 corgan_code
,text_param2 corgan_mapping_code
,numb_param1 person_identifier
,numb_param2 ounit_identifier_inv
from temporary_identifiers
where session_identifier = v_session
and target_tablename = 'INVOLV_EDIN'
and action_ind = 'D';
v_corgan_code VARCHAR2(4);
ounit_id VARCHAR2(30);
v_count NUMBER;
v_id NUMBER(10);
v_max_date DATE;
v_end_date DATE;
v_per_record NUMBER;
v_excep_desc VARCHAR2(1000);
v_name1 VARCHAR2(10);
v_person_id NUMBER(10);
--End JG167184
BEGIN
--Rc
FOR c IN c_temp_id LOOP
IF c.action_ind = 'R' THEN
dbms_output.put_line('updating role for involvement '||c.identifier||
' to end on '||c.date_param1);
UPDATE involvement_roles
SET end_date = c.date_param1
WHERE involv_identifier = c.identifier;
-- AND end_date IS NULL;
end if ;
IF c.action_ind = 'Q' THEN
update INVOLVEMENTS
set end_date=c.date_param1
WHERE identifier = c.identifier;
End if;
END LOOP;
end; -
Here is a problem I am not quite sure how to solve.
Given a collection of objects of type X, find out if there are two objects in that collection that meet certain criteria. For example, find out if there are two objects X1 and X2 such that X1.city=X2.city.
How does one go about writing a rule for this?
Thank you all,<p>Thank you!</p><p>I try, try, and try again and finally I solved the problem!:-)</p><p> </p><p>I remember POV axis contains another information aboutversion.</p><p>In detail, I have two form (A and B) identical except twoparameter: version in PAGE axis and account information in POVaxis.</p><p>FormA contains "Mem1_A" in POV and version"Ver_A" in POV, while</p><p>FormB contains "Mem1_B" in POV and version"Ver_B" in POV.</p><p> </p><p>At this point, I can retrieve correctly "Mem1_A" or"Mem1_B", through run-time prompt with local variablecalled "FirstMember". I added another local variable,called "SecondMember", with feature "use byvalue" and set-up with a value. I added following code atbusiness rule:</p><p> </p><p>[FirstMember] (</p><p> IF (@ISMBR("Ver_A"))</p><p> [SecondMember] ="Mem2_A";</p><p> ELSEIF (@ISMBR("Ver_B"))</p><p> [SecondMember] ="Mem2_B";</p><p> ELSE</p><p> ... at thispoint you can't arrive... if you set in PAGE axis only the versionsused in IF...ELSEIF</p><p> ENDIF</p><p>)</p><p> </p><p>In this way business rule retrieve correct value for FirstMemberand set-up correct value for SecondMember. In business rule code"core" I used only FirstMember and SecondMember to referaccount dimension.</p><p> </p><p>I hope this explanation is clear enough... I don't speak aperfect English :-(</p>
-
Other Delete Business Rule Problem
Hello everybody
I have a problem with Oher delete business rules and the problem is for getting rowid for a deleted row and it causes ther error : no data found.
I solved this problem in this way
qms_transaction_mgt.process_rule_violation
( p_br_name => 'BR_TEAM004_DEL'
, p_msg_code => 'MS-00184'
, p_display_label => display_label
, p_table_name => 'ms_teams'
, p_table_rowid => null /* get_rowid */
In fact, I use null instead of get_rowid for this kind of rull. Is it a good way? Have every body any better way?
Thanks
HassanHassan,
This is a known bug in the original Headstart 6i release. This bug was corrected in Headstart Patch 6.5.2.1 which is available via the Headstart Supplement Option. The Supplement Option can be purchase via your local consulting organization or the Oracle store. You will be given access to a portal from which you can download patches.
Regards,
Lauri -
Cannot publish Business Rules because supposedly Validation is still running
Hi All
I am trying to exclude business rules (ticking the Exclude flag on the UI) on a certain entity. When I try to publish the changes the message that I'm greeted with states:
"Business rules cannot be published or refreshed while validation is running for the entity's model. Wait until validation is completed then republish the rules".
The entity is validated when new data is staged in via stored procedures that run on a schedule in SQL Agent. I have turned SQL Agent off to halt any data updates/validation. I still get this message.
What tells it that validation is still running. Is there a flag in the database that could be corrupted? Or a suspended instance perhaps? Has anyone else encountered such as error?
Any help is appreciated.
Thanks, MihirIs the version large enough that validation can take more time. Can you check if any validation is running by executing
[mdm].[udpValidationIsRunning]
Also can you confirm validation process is running in Service Broker by checking
SELECT 1 FROM sys.dm_broker_activated_tasks WHERE procedure_name = N'[mdm].[udpValidationQueueActivate]'
-Nithesh Shetty Software Engineer, C & E -> IMML -> MDS, Microsoft. -
Problem with Validation in Struts
Dear All,
I am facing a proble with validation in struts.
I have got this code in my action class
//Initial Code...
ArrayList branches=new ArrayList();
branches.add("B01", "Main Branch");
branches.add("B02", "Second Branch");
branches.add("B03", "Third Branch");
DynaValidatorForm memberForm=(DynaValidatorForm)form;
memberForm.set(branches);
//Finalizing code.....This form is getting validated in validation.xml.
This action is being forwarded to folllowing JSP.
//Initial Code...
<tr>
<td align="right"><strong>Branch Name </strong></td>
<td> </td>
<td align="left">
<html:select property="branid">
<html:optionsCollection name="memberForm" property="branches" value="key" label="value"/>
</html:select>
</td>
</tr>
//Later code...I have action mapping as..
<action path="/member/save" input="member.page" name="memberForm" validate="true"
scope="request" type="com.mlm.action.MemberAction" parameter="action">
<forward name="success" path="/show.do?action=member" redirect="true"/>
</action>Now, the problem is that when the form doesn't pass the validation then it gives an exception that..
Can't find collection 'branches' in beansauanu wrote:
Ok, now I am giving full code of my module...
Form-bean
<form-beans>
<form-bean name="memberForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="id" type="java.lang.String"/>
<form-property name="membname" type="java.lang.String"/>
<form-property name="address" type="java.lang.String"/>
<form-property name="branid" type="java.lang.String"/>
<form-property name="branches" type="java.util.ArrayList"/>
</form-bean>
</form-beans>Validation is being done for all fileds except "branches". Validation type is "requried"
My Jsp....
<html:form action="/member/save?action=save">
<html:hidden property="id"/>
<tr>
<td align="right"><strong>Member Name </strong></td>
<td> </td>
<td align="left">
<html:text property="membname"/>
</td>
</tr>
<tr>
<td align="right"><strong>Address</strong></td>
<td> </td>
<td align="left">
<html:text property="address"/>
</td>
</tr>
<tr>
<td align="right"><strong>Branch Name </strong></td>
<td> </td>
<td align="left">
<html:select property="branid">
<html:optionsCollection name="memberForm" property="branches" />
</html:select>
</td>
</tr>
<tr>
<td align="right">
<html:submit/>
</td>
<b><td> </td></b>
<td>
<html:button value="Cancel" onclick="javascript:history.go(-1)" property="cancel"/>
</td>
</tr>
</html:form>This is the code..
I tried to find out the problem and I found that.. when the form does not pass the validation its input page gets displayed..
Now, when the input is getting displayed.. "branches" field of the form contains null???Why?
Edited by: sauanu on ?? ??????, ???? ??:?? ?????????Forget,about Validations.
Who is forwarding the control to this JSP page or view ??
Is it Action method code which metioned earlier doing it ??
Or some other Action is involved if it is some other action please intialize Values of branches component in the respective action.
Also,
Also,
ArrayList branches=new ArrayList();
branches.add("B01", "Main Branch");
branches.add("B02", "Second Branch");
branches.add("B03", "Third Branch"); I believe you need to get a good understanding of Java Collection classes aswell.
You can add things as entities in the above case lets create a simple java bean named Option.
public class Option implements Serializable{
private String label;
private String value;
public void setValue(String value){this.value = value;};
public String getValue(){return this.value;}
public void setLabel(String label){this.label = label;}
public String getLabel(){return this.label;}
} and inside the action which is forwarding to the respective view
ArrayList branches=new ArrayList();
Option option = new Option();
option.setValue("B01");
option.setLabel("Main Branch");
branches.add(option);
option = new Option();
option.setValue("B02");
option.setLabel("Second Branch");
branches.add(option);
option = new Option();
option.setValue("B03");
option.setLabel("Third Branch");
branches.add(option);
<html:select property="branid">
<html:options name="memberForm" collection="branches" value="value" label="label" />
</html:select>and one more thing is is that after the validation if it is not validated it'd be sent back to input page which destorys the request therefore try making scope of "memberForm" to session in your action mappings and check.
Hope this might help :)
REGARDS,
RaHuL -
Problem with slow execution on a cFP-2120
I have an application that runs on a cFP-2120, using web interface for the user to interact with the program.
I have noticed that in order to get the web interface to get updated I have to use property nodes and write to the value property, see this article:
http://digital.ni.com/public.nsf/allkb/FC5024A5DD6344C886256C8C0054689B?OpenDocument
However, this seems to give me a serious performance hit, as described here:
http://forums.ni.com/ni/board/message?board.id=170&thread.id=153531&view=by_date_ascending&page=1
I have tested with this code, and with my LV 8.2 a loop that uses 277ms to complete when writing directly to a indicator will use 203159ms when using a property node.
So, I need to update several front panel objects using the value property, but can't afford the cpu time. Does anyone have a suggestion how to do this as efficiently as possible? The problem is apparantly that using the value property requires the front panel to be loaded - can I for instance avoid doing this once for each variable?I've changed the vi now so it only writes to value property when a value has changed. This has cut execution time in half, from 500ms to 250ms. I still think this is quite a lot...
To give you an indication of "size", the executeable is 1210kb with 2 dll's of 872 and 168kb.
I've not tried deploying a smaller (cut down?) version - what exactly do you mean?
With regards to writing to value instead of locals or directly - I've had problems with the values not updating - but not always - and the first link does suggest a bugfix. I'd like to know why wiring to value property is sometimes needed and sometimes not. -
PostCode - problem with validation
Hello,
I have problem with codes in Netbeans.I Have two code.
The first is to mask formatter and i put in on Post int code
try
MaskFormatter PostCode = new MaskFormatter("##-###");
PostCode.setValidCharacters("0123456789");
RegisterPostCode = new JFormattedTextField(PostCode);
catch (ParseException e) {
}The Second check, the RegisterPostCode is not null
class Steps implements ActionListener{
int step = 0;
public void actionPerformed(ActionEvent e) {
if (step == 0){
String NotEmptyPostCode = RegisterPostCode.getText();
if(NotEmptyPostCode == null || NotEmptyPostCode.length() == 0) {
jLabel4.setText("This Field is empty");
return;
step++;
}Problem is the second code doesnt work and I dont now how to create code to check the JFormatterField is compatible with the first code
Please help.Hi! I have an HTML region and on my "before header process" I fetch only one record (the data is got from a package I've created on the DB).
This region has a few items and when I press the save button (I created on the screen) the value of all the items are cleared if the validation ocurrs, I don't know why, is this because the page doesn;t perfom again my "before header process"?
Thanks! -
Problem with different execution paths in hierarchical query
Hello,
I have problems with the following query:
SELECT DISTINCT P.ID FROM PRODUCTELEMENTIMPL P WHERE ( ( LABEL = 'SomeLabel' AND PRODUCTELEMENTTYPE = 'SomeText' AND ( STATE = 'created' OR STATE = 'stored' OR STATE = 'archived' OR STATE = 'archivedRestored' ) ) ) START WITH P.ID = 42 CONNECT BY PRIOR P.ID = P.PARENT
We have two databases (an Oracle 10g XE and Oracle10g Enterprise). In the XE Database the query is executed very fast, but in the main installation it takes minutes. If I "explain" the query I get two different execution paths:
The fast:
ID PARENT_ID LEVEL SQL Kosten Anzahl Zeilen
0 - 1 SELECT STATEMENT 20 49
1 0 2 HASH UNIQUE 20 49
2 1 3 FILTER - -
3 2 4 CONNECT BY WITH FILTERING - -
4 3 5 TABLE ACCESS BY INDEX ROWID PRODUCTELEMENTIMPL (TABLE) - -
5 4 6 INDEX UNIQUE SCAN SYS_C0072201 (INDEX (UNIQUE)) 2 1
6 3 5 NESTED LOOPS - -
7 6 6 BUFFER SORT - -
8 7 7 CONNECT BY PUMP - -
9 6 6 TABLE ACCESS BY INDEX ROWID PRODUCTELEMENTIMPL (TABLE) 19 49
10 9 7 INDEX RANGE SCAN PRODUCTELEMENTIMPL_IDX1 (INDEX) 3 49
11 3 5 TABLE ACCESS FULL PRODUCTELEMENTIMPL (TABLE) 19 49
Slow:
ID PARENT_ID LEVEL SQL Kosten Anzahl Zeilen
0 1 SELECT STATEMENT 1 1
1 0 2 HASH UNIQUE 1 1
2 1 3 FILTER
3 2 4 CONNECT BY WITHOUT FILTERING
4 3 5 TABLE ACCESS BY INDEX ROW 3 1
ID PRODUCTELEMENTIMPL (TABLE)
5 4 6 INDEX UNIQUE SCAN SYS_C0 2 1
020528 (INDEX (UNIQUE))
6 3 5 TABLE ACCESS FULL PRODUCT 6628 1100613
ELEMENTIMPL (TABLE)
Any ideas how to avoid this full table scan?
bye
Roland SpatzeneggerHello,
thank you for your replies. The indices and table schemas are the "same", but only the content for the tables was mirrored.
We made some tests with dropping and/or analyzing the tables, but it didn't change anything.
The main problem is that the query takes 33s in the productive environment for searching in a couple of rows. At the moment it's faster to make
SELECT DISTINCT P.ID, P.STATE FROM PRODUCTELEMENTIMPL P WHERE ( ( LABEL = 'SomeLabel' AND PRODUCTELEMENTTYPE = 'SomeText' ) ) START WITH P.ID = 42 CONNECT BY PRIOR P.ID = P.PARENT
and to test in the application if the state-values match ;-)
If I add the hint /*+ no_filtering */ in the test environment, I get the same "slow" execution path as in the production environment. So the question is, what prevents the filtering in "connect by"?
(I think in the fast version it filters only the results of the hierarchical query, in the slow version it first filters the whole table and joins/merge it with the hierachical result).
bye
Roland Spatzenegger -
Rules Problem with multiple XSD
Hi,
I've done a jdev project for SOA Suite 11g including only one Business Rules which could be call by a Webservice.
When I used 2 differents XSD to define 1 input fact and 1 output fact, the rule engine failed with an UNEXPECTED element Error
<fault>
<faultType>0</faultType>
<operationErroredFault>
<part name="payload">
<errorInfo>
<errorMessage>unexpected element (uri:"http://www.arvato.fr/formatPivot", local:"CUSTOMER"). Expected elements are <{http://www.arvato.fr/formatPivot}ADDRESS>,<{http://www.arvato.fr/formatPivot}DedoublonnageRule>,<{http://www.arvato.fr/formatPivot}StatusRule></errorMessage>
</errorInfo>
</part>
</operationErroredFault>
</fault>
When I use only one XSD file in my facts fou my input and outpout values. It runs Well.
Here are the facts definition with Multiple XSD FIle :
http://lh5.ggpht.com/_noQvj60LDl4/S4-J8DcFEkI/AAAAAAAAAKU/fAtlSMgFS_8/separatedSchemas.png
Here are the facts definition with Single XSD FIle :
http://lh6.ggpht.com/_noQvj60LDl4/S4-J78qnj0I/AAAAAAAAAKQ/U1JNnaJyK50/includedSchema.png
Could you please answer me how to use multiple xsd file in facts ?
Regards,
Jerome.Hi,
Does anybody have any idea ?
Regards,
Jerome
Maybe you are looking for
-
How to export individual sheets in numbers
I have an account spredsheet that sheets are done monthly but kept in their years. How can I share either PDF or other ways individual months. Some people I dont want to have a full year of records, just individual months. thank you DL
-
What is the correct device to use for content/application routing/switching?
We currently have 2 data centres and traffic from anywhere is sent from our customers to a Windows cluster IP and TCP port number. Its old and unreliable and unwieldy. What i am looking for is a device that sits one network hop up from our 2 data cen
-
ABAP/4 processor: UNCAUGHT_EXCEPTION - Activation job cancelled short dump
Hi All, I loaded data to the new table of ODS successfully. But the data is not available for reporting. When i try to activate the request,it shows no error bt neither does data *** to active table .I checkd in sm37 for logs, it shows ABAP/4 process
-
CCMS agents, alert monitoring, SNMP traps
Hi Guys, I have a question. There is a requirement about monitoring. Any documenation or links will be really appreciated. My client needs me to use CCMS agents, alert monitoring for both ABAP and JAVA stacks, SNMP traps, sending SNMP traps, interfac
-
Can anyone tell me how to get audiobooks already included in the library (MP3s) to list/display under the Audiobook folder in the left pane? Neither drag & drop nor ensuring the tags are set as "Audiobook" seems to achieve this.