tag:blogger.com,1999:blog-76752764199152844012024-02-07T11:18:15.618-08:00Oracle ADF 11g TipsOracle Application Development Framework using JdeveloperDon Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.comBlogger34125tag:blogger.com,1999:blog-7675276419915284401.post-65722010368184826992016-03-22T19:33:00.000-07:002016-03-22T19:37:22.558-07:00How to fix java.lang.OutOfMemoryError: PermGen space” error when running BC testerWhen I upgraded from jdeveloper 11.1.1.4 to 11.1.1.7 I started getting<br /><br /><br />java.lang.OutOfMemoryError: PermGen space when running the BC tester.<br /><br />The BC tester is run by right clicking on an application module and selecting "Run" or "Debug"<br /><br /><br />To fix this, right click on the Model project and select Project Properties.<br /><br />Then select Run/Debug/Profile and edit Default Run Configuration<br /><br />In the Java options box add<br /><br />XX:MaxPermSize=512m -Xmx1000M<br /><br />default size was 128m<br /><br /><br />This setting is only used when running the BC tester. When you start up the application a similar setting in the ViewController Project is used.<br />
<br />
<br />
<a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><img alt="" height="284" src="data:image/png;base64,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" width="400" /><br />
<br />
<br />
<br />Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-25725019675043373962016-03-22T10:49:00.002-07:002016-03-22T17:05:07.979-07:00How to connect to localhost jdeveloper mbean server using jconsole<br />
Weblogic runs a built-in JMX server. You can also add your own mbeans for managing your application.<br />
<br />
JConsole is a JMX browser that comes with Java.<br />
<br />
<br />
Here is the command line that I use to connect to the integrated web logic server running with jdeveloper. You will need to adjust the parameters for your own JDK and Jdeveloper installation.<br />
<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">jconsole -J-Djava.class.path=c:/java/jdks/jdk1.7.0_51/lib/jconsole.jar;c:/java/jdks/jdk1.7.0_51/lib/tools.jar;C:/java/ide/JDev11.1.1.7/wlserver_10.3/server/lib/wljmxclient.jar -J-Djmx.remote.protocol.provider.pkgs=weblogic.management.remote</span><br />
<br />
When you run this you will get connection dialog<br />
<br />
In Remote Process Enter<br />
service:jmx:rmi:///jndi/iiop://localhost:7101/weblogic.management.mbeanservers.runtime <br />
For username/password enter the values you configured for the integrated weblogic server when you installed jdeveloper<br />
<br />
<br />
<br />
<br />
<img alt="" src="data:image/png;base64,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" /><br />
<br />
<br />
You may get Connection failed because it attempts to connect over secure connection. Click the "Insecure" button and you should connect and see the page below<br />
<br />
<br />
<br />
<img alt="" src="data:image/png;base64,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" /><br />
<br />
<img alt="" src="data:image/png;base64,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" /> Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-66401384670827316442015-04-03T11:59:00.003-07:002015-04-03T13:30:50.246-07:00How to Add QBE Operators to Date column of tableThe QBE “Query By Example” (as they are called by Oracle)
table filters support the following operators. <br />
<a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><br />
<table border="0" cellpadding="0" class="MsoNormalTable" style="mso-cellspacing: 1.5pt; mso-padding-alt: 0in 0in 0in 0in; mso-yfti-tbllook: 1184;" summary="QBE operators" title="Query-by-Example Search Criteria Operators">
<thead>
<tr style="mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="padding: .75pt .75pt .75pt .75pt;"><div align="center" class="MsoNormal" style="text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt;">Operator</span></b></div>
</td>
<td style="padding: .75pt .75pt .75pt .75pt;"><div align="center" class="MsoNormal" style="text-align: center;">
<b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt;">Description</span></b></div>
</td>
</tr>
</thead>
<tbody>
<tr style="mso-yfti-irow: 1;">
<td style="padding: .75pt .75pt .75pt .75pt;"><div align="center" class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<b><span style="font-family: "Courier New"; font-size: 10.0pt;">></span></b><b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt;"> </span></b></div>
</td>
<td style="padding: .75pt .75pt .75pt .75pt;"><div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt;">Greater than</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="padding: .75pt .75pt .75pt .75pt;"><div align="center" class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<b><span style="font-family: "Courier New"; font-size: 10.0pt;"><</span></b><b><span style="font-family: "Times New Roman","serif"; font-size: 12.0pt;"> </span></b></div>
</td>
<td style="padding: .75pt .75pt .75pt .75pt;"><div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt;">Less than</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td style="padding: .75pt .75pt .75pt .75pt;"><div align="center" class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<b><span style="font-family: "Courier New"; font-size: 10.0pt;">>=</span></b></div>
</td>
<td style="padding: .75pt .75pt .75pt .75pt;"><div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt;">Greater than
or equal to</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 4;">
<td style="padding: .75pt .75pt .75pt .75pt;"><div align="center" class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<b><span style="font-family: "Courier New"; font-size: 10.0pt;"><=</span></b></div>
</td>
<td style="padding: .75pt .75pt .75pt .75pt;"><div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt;">Less than or
equal to</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 5;">
<td style="padding: .75pt .75pt .75pt .75pt;"><div align="center" class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<b><span style="font-family: "Courier New"; font-size: 10.0pt;">AND</span></b></div>
</td>
<td style="padding: .75pt .75pt .75pt .75pt;"><div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt;">And</span></div>
</td>
</tr>
<tr style="mso-yfti-irow: 6; mso-yfti-lastrow: yes;">
<td style="padding: .75pt .75pt .75pt .75pt;"><div align="center" class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; text-align: center;">
<b><span style="font-family: "Courier New"; font-size: 10.0pt;">OR</span></b></div>
</td>
<td style="padding: .75pt .75pt .75pt .75pt;"><div class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: "Times New Roman","serif"; font-size: 12.0pt;">Or</span></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a>So you can do things like this</div>
<div class="MsoNormal">
>2000 and < 6000</div>
<div class="MsoNormal">
L or A or F</div>
<br />
<br />
This works for number and string fields only not for date fields.<br />
This is how I implemented support for date fields. The result looks like this<br />
<img alt="" src="data:image/png;base64,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" /><br />
<br />
<br />
This example presumes you already have a table with filterable columns.<br />
You should have a search region in your bindings executable list. Mine is called resolutionTargetQuery. You will need to replace that value in the code below with whatever the name of your query is.<br />
The first thing you need to do is add a calculated column to your view object that returns the numeric value of the date. You need to get the java Date.getTime() numeric value. This will be the column used to filter the date on. There are several ways to create this column. If your date column is of type oracle.jbo.domain.Date then you can use an expression like shown below for your calculated column<br />
<a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><br />
<img alt="" src="data:image/png;base64,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" /> <br />
<br />
After you have the new column, edit the table tree binding and shuttle the the new column to the right to make it available for usage on the page.<br />
<br />
Now we add a queryListener to the backing bean. This will get called anytime you filter on the table. In the queryListener we detect if the date field is being filtered and if so we switch it to filter on the numeric date column instead of the actual date column, pre-pending the value with the operator selected from the dropdown. Remember, numeric columns support the operator but date columns do not.<br />
Then we execute the query<br />
After executing the query we need to put back the original date values so they don't get removed from the table header bar.<br />
<br />
<br />
<br />
<br />
In the jspx, on the af:table add queryListener property<br />
queryListener="#{pageFlowScope.backing_bean.processQuery}"<br />
<br />
This gets called anytime you filter the table<br />
<br />
In the Table Column definition add a toolbar to the filter facet containing the dropdown and date input field<br />
<div style="border: 1px solid black; overflow: auto;">
<pre>
<af:column align="center" filterable="true" headertext="Effective Start Date" sortable="true" sortproperty="targetEffectiveDate" width="130">
<f:facet name="filter">
<af:toolbar id="t1">
<af:selectonechoice rendered="true" value="#{pageFlowScope.backing_bean.startDateOperator}">
<af:selectitem label="=" value="">
<af:selectitem label="&gt;" value="&gt;">
<af:selectitem label="&gt;=" value="&gt;=">
<af:selectitem label="&lt;" value="&lt;">
<af:selectitem label="&lt;=" value="&lt;=">
</af:selectitem></af:selectitem></af:selectitem></af:selectitem></af:selectitem></af:selectonechoice>
<af:inputdate columns="8" value="#{vs.filterCriteria.targetEffectiveDate}">
</af:inputdate></af:toolbar>
</f:facet>
<af:inputdate label=" " required="true" value="#{row.bindings.targetEffectiveDate.inputValue}">
<af:convertdatetime pattern="#{bindings.resolutionTargets.hints.targetEffectiveDate.format}">
</af:convertdatetime></af:inputdate>
</af:column>
</pre>
</div>
<br />
<br />
In the backing bean add your queryListener<br />
<div style="border: 1px solid black; overflow: auto;">
<pre>// class properties with getters and setters </pre>
<pre> String startDateOperator="";
String endDateOperator=""; </pre>
<pre> </pre>
<pre> </pre>
<pre><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a> private void processQuery(QueryEvent queryEvent) {
try{
RichTable table = (RichTable)queryEvent.getComponent();
FilterableQueryDescriptor filterQD = (FilterableQueryDescriptor)table.getFilterModel();
Map filterCriteria = filterQD.getFilterCriteria();
Date start = (Date)filterCriteria.get("targetEffectiveDate");
Date end = (Date)filterCriteria.get("targetEndDate");
// get time from Date object and filter on different column
// containing long value of date instead of Date
if (start != null){
long tm = start.getTime();
filterCriteria.put("targetEffectiveDateLong",startDateOperator+tm); // sorting on this column instead
filterCriteria.put("targetEffectiveDate", null); // origianl column sort value must be null or will fail
} else{
filterCriteria.put("targetEffectiveDateLong", null);
filterCriteria.put("targetEffectiveDate", null);
}
if (end != null){
long tm = end.getTime();
filterCriteria.put("targetEndDateLong", endDateOperator+tm); // sorting on this column instead
filterCriteria.put("targetEndDate", null); // this must be null or will fail
}else{
filterCriteria.put("targetEndDateLong", null);
filterCriteria.put("targetEndDate", null);
}
DCBindingContainer bc = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
Object execBinding = bc.findExecutableBinding("resolutionTargetsQuery");
// if table editingMode mode propery is set to clickToEdit and
// if you have a selected row when you filter the table and the filter removes the selected row
// you will get an exception when you select a new row because it can't find the previous selected row and will get
// JBO-25006: Value oracle.adf.model.bean.DCDataRow passed as parameter row to method ViewRowSetIteratorImpl.scrollRangeTo is invalid: not in the row set.
// calling this function will unselect all selected rows prior to filtering to fix that problem.
ADFUtils.resetRichTableSelection(table); // de-select any selected rows.
// not suppose to cast to internal oracle class but other technique commented out below
// doesn't work with POJO data control. It may work work normal view object
// execute filter
((FacesCtrlSearchBinding) execBinding).processQuery(queryEvent);
// this will fail
// invokeQueryEventMethodExpression("#{bindings.allEmployeeesQuery.processQuery}",queryEvent);
// restore original filter date values so they continues to display in the QBE bar
filterCriteria.put("targetEffectiveDate", start); // restore original
filterCriteria.put("targetEffectiveDateLong", null); //
filterCriteria.put("targetEndDate", end); // restore original
filterCriteria.put("targetEndDateLong", null);
} catch (Exception e){
e.printStackTrace();
}
}
</pre>
</div>
<div style="border: 1px solid black; overflow: auto;">
<pre></pre>
</div>
<br />
<a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"> </a><a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"> </a>With a little more work you could support a between operator. This expression works on numbers<br />
<100000 and >25000. So add two date input fields and show the second one with a partial trigger when you select "between" from the dropdown. Then in your query listener set the appropriate filter statement using the value of the two dates.<br />
<br />
Here is a <a href="http://www.oracle.com/technetwork/developer-tools/adf/learnmore/59-table-filter-by-data-range-176653.pdf" target="_blank">link to another implementation</a><br />
<br />
<br />
<br />
<br />
<br />
<br />Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-64564947304175452572015-02-11T10:54:00.002-08:002015-02-11T11:06:22.844-08:00How to Handle Http Session Expiration on Login Page<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<br />
<div class="MsoPlainText">
We had a problem where if you sat on the login page for
longer than the http session timeout period and then entered your
username/password and attempted to login, you would get redirected back to the
login page and have to enter it a 2nd time.<span style="mso-spacerun: yes;">
</span>This got annoying so to fix this we added code to our custom exception
handler to catch the ViewExpiredException.<span style="mso-spacerun: yes;">
</span>A custom exception handler will catch all uncaught exceptions and is
useful for displaying a generic "Something went wrong" page.<span style="mso-spacerun: yes;"> </span>For information on how to set up a custom
Exception handler see <a href="https://blogs.oracle.com/jdevotnharvest/entry/extending_the_adf_controller_exception_handler" target="_blank">this blog by Frank Nimphius</a></div>
<div class="MsoPlainText">
</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
The relevant part of the code I added to this exception
handler is shown below. It performs these steps</div>
<ul>
<li>Retrieve username & password from request</li>
<li>Log user in</li>
<li>redirect to home page</li>
</ul>
<div class="MsoPlainText">
If the user entered an incorrect username/password
then redirecting to home page will actually redirect back to the login page
because the home page requires authentication and a valid login to access.</div>
<div class="MsoPlainText">
<br />
<span style="font-size: xx-small;">if (throwable instanceof ViewExpiredException) {</span></div>
<span style="font-size: xx-small;"> ExternalContext extContext = FacesContext.getCurrentInstance().getExternalContext();<br /> String pathInfo = extContext.getRequestPathInfo();<br /> if (pathInfo.equals("/login")) {<br /> String username = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("usernameInput");<br /> String password = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("passwordInput");<br /> Login login = new Login();<br /> String action = login.login(username, password); // login the user even though the http session was expired.<br /> extContext.redirect(extContext.getRequestContextPath());<br /> context.responseComplete();<br /> return;<br /> }</span><br />
<span style="font-size: xx-small;">} </span><br />
<br />
<div class="MsoPlainText">
The Login class is our own managed bean that is used by
the login page. It performs a bunch of thing, including creating a login
history record among others, but the pertinent thing it does to actually login
the user is this line </div>
<div class="MsoPlainText">
authSuccess = ServletAuthentication.login(user, pw, request, response);</div>
<div class="MsoPlainText">
<br /></div>
<div class="MsoPlainText">
Our login page has a number of hidden fields that
also need to be accessed during login and if you need to retrieve extra fields
you can retrieve them the same way as shown above for the username and password
fields.</div>
<div class="MsoPlainText">
<br /></div>
Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-44461085654076193802014-10-15T09:35:00.004-07:002014-11-21T15:43:50.341-08:00What is the Entity Cache?<div class="MsoNormal">
</div>
The ADF model layer uses an Entity Cache to manage updates to the database. This feature is one of the more misunderstood areas of the ADF framework because it’s not something you need a real good understanding of to create an ADF application. Here is a simple way to think about how the entity cache works.<br />
<br />
<div class="MsoNormal">
If you are familiar with how the database command line works
you know that you can insert or update rows in the database and until you
commit, no one else accessing the system will see your changes until you commit
them.<span style="mso-spacerun: yes;"> </span>You can update a row, insert a
row, delete a row and then re-query the tables you’ve changed and you will see
your changes but no one else will.<span style="mso-spacerun: yes;"> </span>This
relates to the isolation transactional property of the <b>ACID</b> (<i><a href="http://en.wikipedia.org/wiki/Atomicity_%28database_systems%29" target="_blank">Atomicity</a>, <a href="http://en.wikipedia.org/wiki/Consistency_%28database_systems%29" target="_blank">Consistency</a>, <a href="http://en.wikipedia.org/wiki/Isolation_%28database_systems%29" target="_blank">Isolation</a>, <a href="http://en.wikipedia.org/wiki/Durability_%28database_systems%29" target="_blank">Durability</a></i>) <span style="mso-spacerun: yes;"> </span>features of modern databases.<span style="mso-spacerun: yes;"> </span>You should not use the feature in a web
application because you should never post data without immediately following up
with a commit in the same request.<span style="mso-spacerun: yes;"> </span>Since
the request is coming from a web page if you were to post without committing
you run the risk of never completing the commit and leaving the table with
locked rows.<span style="mso-spacerun: yes;"> </span><br />
<br />
In ADF this problem is
solved using the Entity Cache.<span style="mso-spacerun: yes;"> </span>We can
think of the Entity cache as a work area containing pending changes but the
changes do not hold a lock in the database.<span style="mso-spacerun: yes;">
</span>The cache adds an additional layer between the database session and the
pending changes.<span style="mso-spacerun: yes;"> </span>These pending changes
never get posted to the database until a commit is performed.<span style="mso-spacerun: yes;"> </span>In addition when you run a entity based
query, after executing the query,<span style="mso-spacerun: yes;"> </span>the
framework will look in the Entity cache to see if any of the rows returned have
pending changes and will merge the pending changes with the results just
retrieved.<span style="mso-spacerun: yes;"> </span>This simulates the behavior
of a post without a commit.<span style="mso-spacerun: yes;"> </span>Only the specific
user sees their own pending changes but it does this without ever posting the
changes so no lock is created on the table <i>(Assuming jbo.locking.mode is set to the default optimistic setting not pessimistic).</i><br />
<br />
The entity cache allows one view object to
display uncommitted rows that were updated in another view object (within the same application module) that is using
one or more of the same entities.<span style="mso-spacerun: yes;"> </span>It
also allows changes to be propagated across these view objects without ever
communicating with the database. For example, if the user updates a UI field linked to one view object and somewhere else on the page, a different view object using that same entity is displaying that value, All you need to do is refresh that other part of the page and you will see the pending change.<br />
<br /></div>
<div class="MsoNormal">
Every entity has its own entity cache.<span style="mso-spacerun: yes;"> </span>The cache will contain rows to update, rows
to add and rows to delete for a single table.<span style="mso-spacerun: yes;">
</span>When it is time to commit, the framework simply has to look in the
entity caches, post each entity change and then perform a single commit.<br />
<br />
<br />
Because the rows were not locked, it is possible that another user or process could have updated the same row. The framework will compare the original values that are also stored in the entity cache with the values currently in the database and if they differ you will get an error "JBO-25014: Another user has changed the row with primary key oracle.jbo.Key". Also see <a href="http://www.jobinesh.com/2011/02/yet-another-reason-for-jbo-25014.html" target="_blank">yet-another-reason-for-jbo-25014</a>.<br />
<br />
There is a lot more to the entity cache but hopeful this simple explanation will help. For more in-depth information on the Entity Cache See<br />
<br />
<h2 class="sect2" id="autoId20">
<span style="font-size: small;"><a href="http://docs.oracle.com/cd/E28280_01/web.1111/b31974/bcqueryresults.htm#autoId20" target="_blank">What Happens at Runtime: When View Objects and Entity Objects Cooperate</a></span></h2>
<span style="font-size: small;">And</span></div>
<div class="MsoNormal">
<h2 class="sect3" id="autoId30">
<span style="font-size: small;"><a href="http://docs.oracle.com/cd/E28280_01/web.1111/b31974/bcqueryresults.htm#ADFFD1580" target="_blank">The Role of the Entity Cache in the Transaction</a></span></h2>
<br />
<br /></div>
Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com4tag:blogger.com,1999:blog-7675276419915284401.post-34664778927054363872014-08-29T12:15:00.000-07:002014-09-03T12:09:33.804-07:00Adding a regex QBE validator for numeric columns<a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a>I had a table containing a column that was a Number type. If you tried to filter on a non numeric value a <a href="https://community.oracle.com/thread/2398705?tstart=0" target="_blank">ConverterException </a>would be thrown. That was fixed by putting a Number converter on the filter input text to allow only numbers. That worked except now you couldn't use the Query by Example (QBE) Search criteria Operators. <br />
<img alt="" src="data:image/png;base64,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" /> <br />
<a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><br />
<a href="https://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"></a><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
These are the supported operators<br />
<br />
<table border="1" cellpadding="3" cellspacing="0" class="Formal" dir="ltr" frame="hsides" rules="groups" style="width: 100%px;" summary="QBE operators" title="Query-by-Example Search Criteria Operators"><thead>
<tr align="left" valign="top"><th align="left" id="r1c1-t5" valign="bottom">Operator</th>
<th align="left" id="r1c2-t5" valign="bottom">Description</th>
</tr>
</thead>
<tbody>
<tr align="left" valign="top">
<td align="left" headers="r1c1-t5" id="r2c1-t5"><code>></code></td>
<td align="left" headers="r2c1-t5 r1c2-t5">Greater than</td>
</tr>
<tr align="left" valign="top">
<td align="left" headers="r1c1-t5" id="r3c1-t5"><code><</code></td>
<td align="left" headers="r3c1-t5 r1c2-t5">Less than</td>
</tr>
<tr align="left" valign="top">
<td align="left" headers="r1c1-t5" id="r4c1-t5"><code>>=</code></td>
<td align="left" headers="r4c1-t5 r1c2-t5">Greater than or equal to</td>
</tr>
<tr align="left" valign="top">
<td align="left" headers="r1c1-t5" id="r5c1-t5"><code><=</code></td>
<td align="left" headers="r5c1-t5 r1c2-t5">Less than or equal to</td>
</tr>
<tr align="left" valign="top">
<td align="left" headers="r1c1-t5" id="r6c1-t5"><code>AND</code></td>
<td align="left" headers="r6c1-t5 r1c2-t5">And</td>
</tr>
<tr align="left" valign="top">
<td align="left" headers="r1c1-t5" id="r7c1-t5"><code>OR</code></td>
<td align="left" headers="r7c1-t5 r1c2-t5">Or</td></tr>
</tbody></table>
<br />
<br />
<br />
<br />
You can write a custom <a href="http://radio-weblogs.com/0118231/stories/2003/07/11/implementingAViewCriteriaAdapterToCustomizeQueryByExampleFunctionality.html" target="_blank">QBE adapter</a> to fix this but that seemed like overkill. <br />
<br />
To fix this I changed the filter to be an input text and added a regular expression validator to allow these operators. The pattern I used is below. I didn't find a regex example for QBE Numeric filtering and I'm not a regex expert (is anyone?) so it took a while to get the regex string just right. Hopefully this will save someone some time.<br />
Here's the pattern<br />
<span style="font-size: x-small;">^[ ]*[<>]?([<=]|[>=])?[ ]*[0-9]+[ ]?(?i)([ ]+AND[ ]+[<>]?[ ]*[0-9]*|[ ]+OR[ ]+[<>]?[ ]*[0-9]*)?[ ]*$</span><br />
<br />
<br />
<span style="font-size: xx-small;"><af:column sortProperty="Count" filterable="true" headerText="Count" id="c6"><br /> </span><span style="font-size: xx-small;"><span style="font-size: xx-small;"><</span>f:facet name="filter"><br /> </span><span style="font-size: xx-small;"><span style="font-size: xx-small;"><</span>af:inputText value="#{vs.filterCriteria.Count}" columns="8" id="Count"> <br /> </span><span style="font-size: xx-small;"><span style="font-size: xx-small;"><</span>af:validateRegExp pattern="^[ ]*[<>]?([<=]|[>=])?[ ]*[0-9]+[ ]?(?i)([ ]+AND[ ]+[<>]?[ ]*[0-9]*|[ ]+OR[ ]+[<>]?[ ]*[0-9]*)?[ ]*$" </span><br />
<span style="font-size: xx-small;"> messageDetailNoMatch="Please Enter Number Only"/><br /> </span><span style="font-size: xx-small;"><span style="font-size: xx-small;"><</span>/af:inputText> <br /> </span><span style="font-size: xx-small;"><span style="font-size: xx-small;"><</span>/f:facet> <br /> <br /> </span><span style="font-size: xx-small;"><span style="font-size: xx-small;"><</span>af:outputText value="#{row.Count}" id="ot7" /> </span><br />
<span style="font-size: xx-small;"> </span><span style="font-size: xx-small;"><span style="font-size: xx-small;"><</span>af:column></span><br />
<br />
Examples of Things you can put in the filter<br />
10<br />
50 <br />
> 10<br />
>10 AND < 50<!--50--><br />
<!--50--> > 10 and < 50<br />
10 or 50<br />
<br />
If the column is a String type (even through it might contain numbers) you don't have this problem and wouldn't need to add a regex Validator. <br />
<br />
<br />
<br />
<!--50--><!--50-->Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-62905652246374911012013-12-18T14:28:00.004-08:002013-12-18T14:31:59.604-08:00How to View Service Proxy Request/Response message in JdeveloperIn order to view the XML SOAP envelope of an ADF service Proxy, add this line to your server startup and the XML will be dumped the jdeveloper console output. <br />
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
</style>
<![endif]-->
<br />
<blockquote class="tr_bq">
<div class="MsoNormal">
-Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true </div>
</blockquote>
<div class="MsoNormal">
In Jdeveloper, the server startup command line is accessed from</div>
<div class="MsoNormal">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--></div>
<br />
<div class="MsoNormal">
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
</style>
<![endif]-->
</div>
<div class="MsoNormal">
Run Menu</div>
<div class="MsoNormal">
Choose Active Run Configuration</div>
<div class="MsoNormal">
Manage Run Configurations </div>
<div class="MsoNormal">
Edit Default</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Add the line to the end of the Java Options.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Also if you see a large <span style="font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ansi-language: EN-US; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">work:WorkContext </span><work:workcontext adding="" as="" br="" by="" can="" get="" header="" in="" line="" nbsp="" of="" rid="" soap="" that="" the="" this="" well="" you=""></work:workcontext>section in the SOAP header, you can remove that by adding this line to the startup.</div>
<div class="MsoNormal">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--></div>
<div class="MsoNormal">
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
</style>
<![endif]-->
</div>
<blockquote class="tr_bq">
<div class="MsoNormal">
-Dweblogic.wsee.workarea.skipWorkAreaHeader=true</div>
</blockquote>
<div class="MsoNormal">
</div>
<br />
<br />
<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<br />
<br />Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-77497212361844316252013-10-31T09:57:00.000-07:002013-10-31T10:22:21.110-07:00How to make popup that can be dragged past edge of browser window.I had a large dialog that I wanted to be able to move out of the way so that I could see what was behind it without closing it. Normally any part of the dialog cannot be dragged off the edge of the browser window. Configuring this turned out to be pretty simple. Just add an inline style for the margin and give negative numbers to the sides you want to drag off the edge of the screen. In the example below I don't want the top to be draggable past the top edge (because the top bar wouldn't be visible to drag it back down) The left and right I set to -200 so that I could drag it 200 pixels to the left or right of the windows edge and 300 pixels past the bottom of the window. This allows me to move it mostly out of the way without having to close it.<br />
<br />
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><br />
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> <af:popup clientcomponent="true" id="ppcal"><af:popup id="ppcal" clientComponent="true"><br /> </af:popup></span></span><af:popup clientcomponent="true" id="ppcal"><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><af:dialog id="d1" title="Calculator"<br /> modal="false" type="ok"<br /> styleClass="AFStretchWidth"<br /> inlineStyle="width:450px; <span style="color: red;">margin:0px -200px -300px; padding:-200.0px</span>></span></span><af:dialog br="" id="d1" title="Calculator"><br /></af:dialog></af:popup>Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-63740576720877831612013-09-10T13:15:00.000-07:002013-09-10T13:41:13.945-07:00Displaying external content in a IFRAME within a popup dialogI recently had a requirement to display some non ADF content inside a popup dialog. There are a number of blogs on how to do this (<a href="http://lucbors.blogspot.com/2010/04/adf-11g-popup-and-panelwindow-open.html" target="_blank">see this one</a>) so I won't rehash them here. I did however run into one problem in that when you drag the dialog around on the page and the mouse cursor slips into the frame containing the external content, the mouse events get captured by the frame and the dialog stops dragging. Then if you release the mouse button and move outside of the frame, the dialog is now stuck to the end of your mouse cursor because the page lost the mouse up event and still thinks the mouse button is pressed. To fix this I had to write a javascript mouse event handler and attach it to the frame to propagate mouse events in the frame to the parent page. <br />
<br />
I found the basis for my solution here. <a href="http://stackoverflow.com/questions/5645485/detect-mousemove-when-over-an-iframe" target="_blank">mousemove-when-over-an-iframe</a><br />
<br />
I modified this slightly in that my particular page didn't need to save the original onMouseMove and onMouseUp handlers.<br />
<br />
<br />
To wire this up add a client listener to the popup<br />
<span style="font-family: inherit; font-size: small;"> <af:clientListener type="popupOpened" method="popupOpened"/></span><br />
<pre> </pre>
<br />
<div style="border: 1px solid black; overflow: auto;">
<pre></pre>
<pre> </pre>
<pre>// This method attaches the frame with id of "fid" to the mouse event handler</pre>
<pre></pre>
<pre> function popupOpened(e){
var frame = document.getElementById( e.getSource().findComponent("fid").getClientId()+'::f');
bubbleIframeMouseMove(frame);
}
</pre>
// iframe causes the page to lose the mouse events when dragging the dialog<br />
// this fixes it by propagating mouse events in the iframe to the parent page<br />
<br />
<pre>function bubbleIframeMouseMove(iframe){
iframe.contentWindow.onmousemove = propagateToParent;
iframe.contentWindow.onmouseup = propagateToParent;
function propagateToParent(e){
// Create a new event for the this window
var evt = document.createEvent("MouseEvents");
// We'll need this to offset the mouse move appropriately
var boundingClientRect = iframe.getBoundingClientRect();
// Initialize the event, copying exiting event values
// for the most part
evt.initMouseEvent(
e.type,
true, // bubbles
false, // not cancelable
window,
e.detail,
e.screenX,
e.screenY,
e.clientX + boundingClientRect.left,
e.clientY + boundingClientRect.top,
e.ctrlKey,
e.altKey,
e.shiftKey,
e.metaKey,
e.button,
null // no related element
);
// Dispatch the mousemove event on the iframe element
iframe.dispatchEvent(evt);
};
}
</pre>
</div>
<br />Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-41269205128625674452013-07-19T11:45:00.001-07:002013-07-19T11:57:21.187-07:00Using XML data in ADF View ObjectI recently was tasked with creating a generic preferences table that can be used to story any type of web site preference. This needed to be generic enough so that new types of preferences can be added without requiring a data model change. Using XML in the value column was the perfect solution for this.<br />
<br />
This is how the table is defined <br />
<br />
<br />
CREATE TABLE "USER_PREFERENCE" <br />
(<br />
"USER_PREFERENCE_ID" NUMBER(38,0) NOT NULL ENABLE, <br />
"USER_ID" NUMBER(38,0) NOT NULL ENABLE, <br />
"PREFERENCE" VARCHAR2(40 BYTE) NOT NULL ENABLE, <br />
"VALUE" VARCHAR2(4000 BYTE) NOT NULL ENABLE<br />
} <br />
<br />
The first type of preference I needed to add was a URL link. I defined this in XML<br />
<br />
<br />
<url><sortorder><url ><br /> </sortorder></url><url><sortorder><label</sortorder></url><url><sortorder>>Yahoo </label></sortorder></url><br />
<url><sortorder> </sortorder></url><url><sortorder><location</sortorder></url><url><sortorder>>http://yahoo.com/location</sortorder></url>><url><sortorder> </sortorder></url><br />
<url><sortorder> <open</sortorder></url><url><sortorder>>defaultBrowser</sortorder></url><url><sortorder></open</sortorder></url>><br />
<sortorder>1</sortorder> <br />
<url><sortorder></url</sortorder></url><url><sortorder>> </sortorder></url><br />
<br />
I insert this xml into the value column and "CUSTOMLINK" into the preference column along with the USER_ID and primary key USER_PREFERENCE_ID sequence.<br />
<br />
<br />
Here is the query I used to retrieve my custom url links. Notice that I'm not actually returning any column from the table. All of the columns returned are coming from the xml nodes in the value column. This query uses a feature of Oracle available since 10.2 (<a href="http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions228.htm" target="_blank">XMLTABLE</a>). You can think of it as a table within a column that the row is being joined to. "url "is the alias for this table containing all of the xml elements as table columns.<br />
<br />
<br />
<br />
SELECT <br />
url.label,<br />
url.location,<br />
url.open,<br />
url.sortorder<br />
FROM USER_PREFERENCE ,<br />
-- XMLTable defines a join with contents of value column treating it like a table<br />
XMLTable('url'<br />
PASSING XMLTYPE(USER_PREFERENCE.value) <br />
COLUMNS<br />
label VARCHAR2(40) PATH 'label', <br />
location VARCHAR2(1025) PATH 'location',<br />
open VARCHAR2(40) PATH 'open',<br />
sortorder VARCHAR2(4) PATH 'sortorder',<br />
permission VARCHAR2(40) PATH 'permission'<br />
) as url<br />
<br />
WHERE PREFERENCE = 'CUSTOMLINK'<br />
AND USER_ID = :UserIdBind<br />
order by sortorder<br />
<br />
<br />
<br />
<br />
I used a read only view object for this. I could have created a entity based view object and use expert mode to insert similar sql. For storing and committing data in the value column I would need to add custom code to the setters for the 4 xml based columns and there construct the xml containing the values from all of these columns and then set that xml into the value column. <br />
<br />
This gives me great flexibility for adding additional columns to my query without making any changes to the data model. Querying XML will probably not perform well if you have a huge result sets but is a great solution for queries that return a small number of rows as this one does.<br />
<br />Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com2tag:blogger.com,1999:blog-7675276419915284401.post-11891178611212290702013-05-02T16:23:00.003-07:002013-10-30T15:44:00.044-07:00Hot deploy in R1ADF Release 1 of jdeveloper has limited support for hot deploying java code. When running the integrated Weblogic server in debug mode, JSPX/JSFF files will hot deploy as soon as you save and reload the page. You are also allowed to make changes to java methods as long as you don't change the structure of the class. This means you can't add or remove methods, change method signatures or add or remove class properties or static members but you can change the code inside a method and instantly deploy the change while the server is running. To do this hit CTRL+SHFT+F9 key combination. This will compile and deploy the single java class that has been changed. If it is successful you will see the message<br />
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]--><b><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Times New Roman"; mso-bidi-language: AR-SA; mso-fareast-font-family: Calibri; mso-fareast-language: EN-US; mso-fareast-theme-font: minor-latin;">"Redefined all recompiled classes that are loaded
in the debuggee process.” </span></b><br />
<br />
For a long time I had been using CTRL+F9 which performs a full build and hot deploy of the application. Our application is very large and this would take over a minute to complete but CTRL+SHFT+F9 will hot deploy a single file in about 1 second. I don't know why this key combination is not front and center on the build menu (since CTRL+F9 is). It is listed in the context menu that displays when you right click on a Page. (see image) but I never noticed that the "Make" on the context menu was different than the "Make" on the Build menu so didn't pay attention to the hot keys listed. It is a huge time saver but the only way to learn that this is a "single file" make command is to browse the Tools Menu (Preferences/Shortcut Keys) to find it. CTRL+SHFT+F9 is now my most favorite keystroke.<br />
<br />
Release 2 has much betters support for hot deploy. I'm not using release 2 yet but here is blog that describes <a href="http://www.jobinesh.com/2011/09/hot-deployment-what-works-what-doesnt.html" target="_blank">What works and what doesn't.</a><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioHDSy8jboB0QK9R-gXrhaE3zGFVkIHnw70VwyNqYfnqnWhSgH1rKBIMS2nMrsAoneLGVp-j9S8SBGafnzBPbSbpGIaCvS_7zosoYlMkv_FqVirnKog4q3L6Z0bCK0_CRUYHsb2lTHCfI/s1600/context.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioHDSy8jboB0QK9R-gXrhaE3zGFVkIHnw70VwyNqYfnqnWhSgH1rKBIMS2nMrsAoneLGVp-j9S8SBGafnzBPbSbpGIaCvS_7zosoYlMkv_FqVirnKog4q3L6Z0bCK0_CRUYHsb2lTHCfI/s320/context.png" width="159" /></a></div>
<br />
<br />Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-29590108916738509592013-04-02T09:40:00.000-07:002013-04-02T10:04:40.889-07:00How to make each item in stragg list display on separate line<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
The stragg database function is useful for converting a subquery returning multiple rows into a single column containing a comma separated list of values. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I often use this function to display one of the columns in a row of data. I recently had to format this so that each stragged item in the list displayed on it's own line.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This
is the technique I used </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;">The example subquery below will return a comma separated list of labels for a customer. I'm only showing this one column selected for brevity but this would be one of many in the select clause.</span></div>
<div class="MsoNormal">
<span style="font-family: inherit;"></span></div>
<div class="MsoNormal">
<span style="font-family: inherit;">The code in red was added to append a line feed character "chr(10)" to the beginning of each element in the list. The substr(val,2) removes it
from the 1<sup>st</sup> element so that it doesn’t begin with a line feed.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><br /></span></span></div>
<div class="MsoNormal">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">SELECT.... </span></span></div>
<div class="MsoNormal">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"></span></span></div>
<div class="MsoNormal">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">(SELECT <span style="color: red;">substr</span>(stragg(<span style="color: red;">chr(10) || <span style="color: black;">label</span></span> )<span style="color: red;">,2)</span></span></span></div>
<div class="MsoNormal">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> FROM<span style="color: #1f497d;"> customer_label</span></span></span></div>
<div class="MsoNormal">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> WHERE <span style="color: #1f497d;">customer</span>_label.account_id = account.account_id</span></span></div>
<div class="MsoNormal">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> <span style="color: #1f497d;">) <span style="color: black;">labels</span></span>,</span></span></div>
<div class="MsoNormal">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> .... </span></span></div>
<span style="font-family: Arial,Helvetica,sans-serif;"></span><br />
<div class="MsoNormal">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"></span></span></div>
<div class="MsoNormal">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="color: #1f497d;"> </span><span style="color: #1f497d; font-family: "Arial","sans-serif"; font-size: 9.0pt; mso-themecolor: dark2;">FROM .... </span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="color: #1f497d; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-bidi-font-family: "Times New Roman"; mso-bidi-theme-font: minor-bidi; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-themecolor: dark2;"> </span></b></div>
<div class="MsoNormal">
Line feed characters are normally ignored in html but you
can force them to be honored by applying a style of “white-space: pre-line”</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
add a style of pre to your output text within your table column</div>
<div class="MsoNormal">
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:DoNotOptimizeForBrowser/>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><span style="font-size: x-small;"></span>
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]-->
<br />
<div class="MsoPlainText">
<span style="font-family: "Courier New",Courier,monospace;"><span style="font-size: x-small;"> <span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> <af:outputText
value="#{row.label} styleClass="pre" /></span></span></span></span></div>
<br />
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
</style>
<![endif]--><br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
The pre style is defined in SkinBasic.css (or whatever name is your custom skin)<br />
<br /></div>
<div class="MsoNormal">
<span style="color: navy; font-family: "Arial","sans-serif"; font-size: 9.0pt;">/*** make line feed characters wrap. For displaying line feed in
table column ***/</span></div>
<div class="MsoNormal">
<span style="color: navy; font-family: "Arial","sans-serif"; font-size: 9.0pt;">.pre </span></div>
<div class="MsoNormal">
<span style="color: navy; font-family: "Arial","sans-serif"; font-size: 9.0pt;">{</span></div>
<div class="MsoNormal">
<span style="color: navy; font-family: "Arial","sans-serif"; font-size: 9.0pt;"> white-space: pre-line;</span></div>
<div class="MsoNormal">
<span style="color: navy; font-family: "Arial","sans-serif"; font-size: 9.0pt;">}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: navy; font-family: "Arial","sans-serif"; font-size: small;">You could have also used inline style </span></div>
<div class="MsoNormal">
<span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> <af:outputText
value="#{row.label} <span style="mso-spacerun: yes;">inlineStyle</span>="white-space: pre-line;" /></span></span><br />
<div class="MsoNormal">
<br /></div>
<span style="color: navy; font-family: "Arial","sans-serif"; font-size: 9.0pt;"></span><br />
<span style="color: navy; font-family: "Arial","sans-serif"; font-size: 9.0pt;"> </span></div>
<div class="MsoNormal">
<br /></div>
Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-44620463093277110822013-03-07T15:38:00.001-08:002013-03-13T07:42:49.785-07:00How to Filter a table (QBE) using javascriptI recently had a requirement to double click some text on the page that would cause a table elsewhere on the page to populate one of the table column headers (Query by example) inputs and filter the table. This can be done programmatically in a backing bean. <a href="https://cn.forums.oracle.com/forums/thread.jspa?messageID=9650945" target="_blank">Here is a link to a forum thread</a> for doing that and a sample can be <a href="http://java.net/projects/smuenchadf/pages/ADFSamplesGeneric/revisions/34#SMU146" target="_blank">downloaded from this page</a> or directly with this link <span style="font-size: small;"><a class="external" href="http://java.net/projects/smuenchadf/sources/samples/content/ClearTableColumnFilterFields.zip" style="font-family: inherit;">Programmatically Manipulating a Table's QBE Filter Fields</a><span style="font-family: inherit;">. </span> </span> A different solution I came up with performs this action on the client side and was pretty simple to implement. I was able to add the code for doing this to the jspx file while the server was running and test it without even having to restart the server. I performed the following steps<br />
<br />
<ul>
<li>Create a filter facet for the column you need to populate. Add an inputText inside this facet and set it to be a clientComponent so that you can retrieve it on the clientSide by Id. (example)<br /><br /><span style="font-size: x-small;"> <f:facet name="filter"></span><span style="font-size: x-small;"><br />
</span><span style="font-size: x-small;"> </span><span style="font-size: x-small;"><</span><span style="font-size: x-small;">af:inputText value="#{vs.filterCriteria.MyColumnName}"</span><br />
<div style="margin-left: 40px; text-align: left;">
<span style="font-size: x-small;"> simple="true"</span><br />
<span style="font-size: x-small;"> binding="#{requestScope.myColumnName}"</span><br />
<span style="font-size: x-small;"> id="ncode" clientComponent="true"/></span><br />
<span style="font-size: x-small;"><</span><span style="font-size: x-small;">/f:facet></span></div>
</li>
<li>Add javascript method to a .js file loaded by your page that looks like this <br /><br /><span style="font-size: x-small;">function filterByValue(){<br />
var flter= AdfPage.PAGE.findComponent(</span><span style="font-size: x-small;">myColumnName</span><span style="font-size: x-small;">); // retrieve filter input text<br />
flter.setValue("SomeValue")' // populate the filter with your value<br /> // parent of the filter component is the table component<br />
flter.getParent().getPeer()._handleFilterCellAction(); // this submits the value (like hitting enter)<br />
}</span>
<br />
</li>
<li>The above code assumes there is a variable on the page named myColumnName contain the full component id of the inputText you are populating. There are various ways to get this ID. I used the technique described in my<a href="http://dkleppinger.blogspot.com/2010/12/accessing-adf-components-using-client.html" target="_blank"> other blog posting here</a> and set it using this script at the top of the page. Note that <span style="font-size: x-small;"><span style="font-size: small;">ColumnName is an arbitrary name given to the component binding and is bound to requestScope so that it can be set into this javascript variable when the page loads.</span><br /><br /><trh:script text="var </span><span style="font-size: x-small;">myColumnName</span><span style="font-size: x-small;">= '#{ClientIdMap['requestScope.</span><span style="font-size: x-small;">myColumnName</span><span style="font-size: x-small;">']}';" /></span> </li>
<li>Add a client listener to the component that you want to double click on<br /><span style="font-size: x-small;"><br /><</span><span style="font-size: x-small;">af:clientListener method="filterCollectorComments" type="dblClick"</span><span style="font-size: x-small;"> /></span> <span style="font-size: x-small;"></span></li>
</ul>
That's is everything needed. Double clicking the component will populate my filter table header and submit it.<br />
<br />Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-76336326813053065022013-03-04T14:50:00.002-08:002013-03-04T14:50:39.620-08:00Debugging tipI have noticed that sometimes when stepping through ADF code in the debugger, there is a long lag of 2-5 seconds each time I step. Other times it is snappy and I can quickly step over each line of code with no delay. I recently discovered that this lag is caused by having the ADF Structure Panel visible (See Image). This panel in the lower left corner contains some useful information if you need to look at it but if visible it takes a long time to refresh each time you stop at a breakpoint,. So to speed up your debugging simply switch to another tab so that the ADF structure Panel is not visible and you can step through code a whole lot smoother. You may not notice this if you have a simple structure but our page had a number of nested regions that was causing delays when stepping through code.<br />
<br />
<img alt="" src="data:image/png;base64,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" />Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-71444106022648573062013-03-01T21:05:00.001-08:002013-03-01T21:38:02.329-08:00Working with multiple branches of your code baseIt's often necessary to run a different branch of your code base in Jdeveloper. For very large projects it is problematic to use the same installation of Jdeveloper for this because after you close your project and load the project for the other branch you must perform a full clean and build because the project will have the same name and deployment location. This can be a time consuming process. Even after this is done I have seen cases where Jdeveloper uses cached classes or meta data from the other project which makes me feel uncomfortable that I am truly running all code from the new branch. To get around this in the past I've installed a separate instance of Jdeveloper for each code base that I might need to run. When you do this you must make sure the new installation does not share the System directory with the original installation or you will have the same problem. The System directory. (the one with a name like system11.1.1.4.37.59.23) contains the Weblogic instance and deployment files. It gets generated the first time you start up the server. Deleting the System directory is one way to get your jdev installation back to a good state if it's configuration somehow gets messed up and is quicker than reinstalling. The System directory will be placed in the location defined in an environment variable or else by default in your windows user profile. See<a href="http://docs.oracle.com/cd/E35521_01/install.111230/e17074/ojdig.htm#BDCJCHDF" target="_blank"> Oracle's documentation here </a>on how to do that. Another way to assure the system directory is unique is to edit the startup shortcut and add the -su parameter to the command line startup (i.e Jdeveloper.exe -su). This causes the system directory to be placed in the same directory where Jdeveloper is installed. I've used the -su parameter forever on all of my installations because it makes it easy to find the system directory for any particular installation. If you only need two instances of Jdeveloper you can get away with using one installation and two shortcuts, one with -su and one without and you will be using two different system directories. Starting up Jdeveloper with either shortcut will load the project you last had open using that shortcut and the system directory will contain a separate build so you won't need to perform a clean and rebuild all each time you switch branches. Just close Jdeveloper and run the other one.<br />
<br />
Instead of installing extra jdeveloper installations I recently discovered (as mentioned in the linked documentation above) that I can specify the system directory on the command line. So I created a separate shortcut for each branch and they all use the same jdeveloper installation but different system directories <br />
<br />
<br />
The link looks like this.<br />
C:\JDev11g\jdeveloper\jdev\bin\jdev.exe -J-Dide.user.dir=c:/mywork/system/dev<br />
<br />
Another link might look like this <br />
C:\JDev11g\jdeveloper\jdev\bin\jdev.exe -J-Dide.user.dir=c:/mywork/system/qaDon Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-59161193710563510392013-02-19T12:00:00.001-08:002013-02-19T13:49:01.071-08:00Spell checking input fieldsMost browsers now (except for IE) have a built in spell checker that underlines unrecognized words as you type. Firefox by default only underlines words in multi-line input fields but you can always right click and select spell check from the context menu to spell check a single line af:inputText element. There is a <a href="http://www.lancelhoff.com/firefox-inline-spell-checker/" target="_blank">configuration setting</a> in firefox that can be turned on to enable spell checking on single line input fields but it's not easily accessed and since single line inputs are often used for common names, addresses, products etc that are not in the dictionary you may not want this turned on globally. These browsers now support the <a href="http://www.w3schools.com/tags/att_global_spellcheck.asp" target="_blank">spellcheck attribute</a> on the html input element that you can use to force a field to be spell checked or else turn off spell checking. We had a need to turn this on for a single line input field in firefox so I was able to make it work by adding a client listener to the af:inputText element that calls a javascript function when the element gets focus that sets the spellcheck attribute to true. The client listener looks like this.<br />
<br />
<span style="font-size: small;"><af:clientlistener br="" method="(function(evt){evt.getSource().getPeer().getDomElement().setAttribute('spellcheck','true');})"><af:clientListener </af:clientlistener></span><br />
<div style="font-family: inherit;">
<b><span style="font-size: x-small;"><af:clientlistener br="" method="(function(evt){evt.getSource().getPeer().getDomElement().setAttribute('spellcheck','true');})">method="(function(evt){evt.getSource().getPeer().getDomElement().setAttribute('spellcheck','true');})"</af:clientlistener></span></b></div>
<span style="font-size: small;"><af:clientlistener br="" method="(function(evt){evt.getSource().getPeer().getDomElement().setAttribute('spellcheck','true');})"> type="focus" /></af:clientlistener></span><br />
<br />
Note that I used an inline function but you should put this in a .js file to reduce page size, especially if it is used for more than one input element on the page.Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-89909088210968209862013-02-18T20:20:00.002-08:002013-07-15T15:12:40.611-07:00Using ANSI Joins with ADF business components<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:DontVertAlignCellWithSp/>
<w:DontBreakConstrainedForcedTables/>
<w:DontVertAlignInTxbx/>
<w:Word11KerningPairs/>
<w:CachedColBalance/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
If you select the Model project and bring up project
properties, there is a project setting (under business components/View Objects) you can change to make entity based view
objects use ANSI style joins instead of the Oracle style. </div>
<div class="MsoNormal">
i.e. </div>
<div class="MsoNormal">
instead of having this in the where clause</div>
<div class="MsoNormal" style="text-indent: .5in;">
<span style="font-size: small;">AND (XrefSalesTransactionAccount.ACCOUNT_ID
= Account.ACCOUNT_ID(+))</span></div>
<div class="MsoNormal">
You would have this join clause predicate </div>
<div class="MsoNormal" style="text-indent: .5in;">
<span style="font-size: x-small;">LEFT OUTER JOIN ACCOUNT Account ON
(XrefSalesTransactionAccount.ACCOUNT_ID = Account.ACCOUNT_ID)</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I see three advantages to using ANSI style joins. <span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font: 7.0pt "Times New Roman";"> </span></span></span></div>
<ul>
<li><span style="font-family: Symbol;"><span style="font: 7pt "Times New Roman";"> </span></span>They are clearer and easier to read<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"><span style="font: 7.0pt "Times New Roman";"> </span></span></span></li>
<li><span style="font-family: Symbol;"><span style="font: 7pt "Times New Roman";"></span></span>They give separation between the table joins
and the where clause criteria so that when you add extra where clause criteria
it doesn’t get mixed in with the table join criteria, so is easier to change in
the future. i.e. everything in the query clauses input box will be
custom sql added by the developer, not mixed in with the join criteria put
there by jdeveloper.<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;"> </span></span></li>
<li><span style="font-family: Symbol;"><span style="font: 7.0pt "Times New Roman";"> </span></span>If you add new entities to the view in the
future, jdeveloper won’t have to update the where clause so it will be easier
to keep the original where clause intact when you get the message “<i>The query
has a custom where clause. Would you like to overwrite the
customized where clause by the default where clause? If not you may need
to manually add a join clause for the new entity in the where clause</i>”.
There seems to be a bug in jdeveloper in that if you select “No” it still
deletes the custom where clause, except now you can save off the whole thing
and paste it back in without having to separate the custom part from the
generated part.</li>
</ul>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
One problem you may discover after changing this setting is that if you open
any pre-existing view object and edit anything (including hint text), it will convert it to
use ANSI joins, however it will leave the original "where" clause predicates in place
containing the old join sequence. The query may still work unless it contained outer joins but
there will be redundant criteria in the "where" clause that should be deleted to
make it clean.<br />
<br />
Also if you have a view links that was customized to contain the Oracle outer join (+) syntax. This type of view link won't work if the view being linked uses ANSI joins because the link is created using bind variables in the where clause and you can't combine Oracle and ANSI joins. You could potentially use this type of link to a ANSI style view if the view uses expert mode and wraps the entire query in a extra select clause so that the where clause created by the link is added outside of the inner query but I don't recommend using Expert mode.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I discovered one bug when using ANSI joins that occurs when you attempt to create a view object containing a Many-to-Many association between two entities. A Many-to-Many association is when you have a intersecting xref table that joins the two tables together. ADF will generate invalid SQL when you attempt to use this association in your view object and you will get <br />
<span style="text-align: left; width: 575px;">(java.sql.SQLSyntaxErrorException) ORA-00933: SQL command not properly ended</span>. <br />
The work-around is to include the intersecting entity in your view object and use a "one to many" association instead of "many to many". I have reported this bug to Oracle and verified it exists in 11.1.1.4 and 11.1.1.6<br />
<span class="x1a" id="pt1:r1:0:pg19"><span style="font-size: x-small;"><span class="xq" id="pt1:r1:0:ol913" style="color: #333333; font-family: Helvetica,sans-serif;"><span style="font-family: inherit;">update<span style="font-size: x-small;">: </span>Oracle has confirmed and opened Bug 16781328 : ERROR ORA-00933 USING ANSI JOIN IN BUSINESS COMPONENTS.</span></span></span><span class="xq" id="pt1:r1:0:ol913" style="color: #333333; font-family: Helvetica, sans-serif; font-size: 130%; font-weight: bold;"><br /></span></span><br />
<br />
I don't like the fact that the ANSI join style is a project setting and not a view object setting. I think the determination of style should be on a case by case basis to mitigate the problems described above. It's easy enough to switch the setting on and off but I shouldn't have to.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I would be interested to hear from others who have used ANSI joins in ADF so please reply to this posting if you've had any experience or problems using them.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmZ_waXPFag-sSpwhkfG8fZoiXhzhGqhWaitT1smdk4hdzV_ZcLsdU7KQxqCu2Ir730I2-rsipQlx0J6wa6wbn2JviG5szRgSmXzmLbLGEoEOkz_O0URiT9yegVyVqpBd2rfWm1cO16ww/s1600/ANSI.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="285" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmZ_waXPFag-sSpwhkfG8fZoiXhzhGqhWaitT1smdk4hdzV_ZcLsdU7KQxqCu2Ir730I2-rsipQlx0J6wa6wbn2JviG5szRgSmXzmLbLGEoEOkz_O0URiT9yegVyVqpBd2rfWm1cO16ww/s400/ANSI.PNG" width="400" /></a></div>
</div>
Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-11800161046525626882013-01-29T12:35:00.001-08:002013-03-01T19:29:26.980-08:00Should you use entity based views for read only queries?<br />
Oracle documentation states under section<br />
<div class="sect2">
<a href="http://docs.oracle.com/cd/E21043_01/web.1111/b31974/bcadvvo.htm#sm0342" target="_blank"><span class="secnum">39.2.2</span> Consider Using Entity-Based View Objects for Read-Only Data</a></div>
<div class="sect2">
<br /></div>
<div class="notep1">
<span style="font-size: small;"><i>"Best Practice:</i></span></div>
<span style="font-size: small;"><i><a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" id="sthref3139" name="sthref3139"></a><a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" id="sthref3140" name="sthref3140"></a>When you need to create a read-only view object for data lookup, you should use the entity-based view object and deselect the <span class="bold">Updatable</span>
option in the Entity Objects page of the view object overview editor.
The approach benefits from the design time editors which aid in
generating the SQL query. The alternative of creating an expert-mode
view object requires writing a SQL query. Expert mode queries are still
useful for cases where Unions and Group By queries cannot be expressed
using entity objects."</i></span><br />
<div class="sect2">
</div>
<br />
We've been using ADF 11g since it was in alpha releases and were given the same advice from Oracle at the time. After several years of use I have come to the conclusion that I disagree with this advice. We often have to refactor queries due to data model changes and in our agile process when it comes to sizing a user story we generally triple the size for refactoring a view object that is entity based over one that is a read only query. Many times the result columns did not change, only the query or tables being joined. If it's a read only query, you just go in and update the SQL and you're done. When it's a Entity based view more often than not, the developer struggles because it breaks things when you replace one entity with another or change the association between entities. ADF does not have a refactor option that lets you swap out a view attribute keeping the same name with one in a different entity. The view might contains a dozen entities each with their own association to other entities and selecting the correct relationship and verifying the desired query is more time consuming than updating the sql yourself. You always have to double check the sql it generated to make sure it was what you wanted so there's not much advantage to having ADF generate the query for you. Also the query may have some extra parameters added to the where clause. When you change any entity in your view, the custom where clause gets dropped, requiring you to save it off before hand and do some comparisons after the change to add the custom "where" clause back. This requires you to eyeball the "where" clause to determine which part was generated and which part was custom. The next problem is if there are generated Impl classes for the entity or view object, sometimes these have to be regenerated from scratch because when you change entity relationships the Impl's don't always update correctly and you have to delete them and let ADF recreate them. Then you must add back any custom code that was added. For these reasons I now always define the view as non-entity based when creating a read-only query.<br />
<br />
Secondly, for updatable entity based view objects I try to steer clear of using expert mode. It may be a little harder to create the desired query using normal mode but most queries can be constructed without resorting to expert mode. We've had view objects using expert mode that have gotten in a broken state when trying to refactor. The sql works correctly when you run it externally but the attributes don't display their values when used in the UI. Changing the view back to normal mode did not fix it and the view object had to be rebuilt from scratch to fix. A time consuming task for large complicated queries containing dozens of columns.<br />
<br />
My quote for the day:<br />
The advantage of using a large framework like ADF is that it does a lot of stuff for you.<br />
The disadvantage of using a large framework like ADF is that it does a lot of stuff for you. (meaning... when it doesn't do it right its hard to fix)<br />
<br />Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com1tag:blogger.com,1999:blog-7675276419915284401.post-846687552655289052012-12-18T22:01:00.002-08:002012-12-28T22:40:10.069-08:00Add an isDirty attribute to your entity<div class="separator" style="clear: both; text-align: center;">
</div>
Here is a useful Groovy expression that can be used to add a transient
attribute to your Entity that will return true if any attribute in
your entity is new or has been modified<br />
<br />
(entityState != 1)<br />
<br />
See Image below<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="" border="0" height="400" src="data:image/png;base64,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" style="cursor: move;" width="400" /></a><a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a><a href="http://www.blogger.com/blogger.g?blogID=7675276419915284401" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
Then add this attribute to your view object and use it in an expression
to highlight rows that have been modified and not yet commited,.<br />
<br />
inlineStyle="#{row.isDirty ? 'background-color:#FFF9B3;' : ''}" <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Here's another Groovy expression that will display the original posted value of any attribute in your entity that has been modified but not yet posted<br />
<br />
adf.object.getPostedAttribute(adf.object.getAttributeIndexOf("Name"))<br />
<br />
For an overview of using Groovy expression in ADF see this <a href="http://www.oracle.com/technetwork/developer-tools/jdev/introduction-to-groovy-128837.pdf" target="_blank">white paper by Grant Ronald </a><br />
<br />
<br />Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com2tag:blogger.com,1999:blog-7675276419915284401.post-91360314987689160172012-11-27T09:41:00.002-08:002013-05-23T10:32:20.913-07:00How to cancel a long running query (Part 2)<div style="font-family: inherit;">
Earlier this year I wrote about a possible way to cancel a long running query from the UI</div>
<div class="post-title entry-title" itemprop="name" style="font-family: inherit;">
see <a href="http://dkleppinger.blogspot.com/2012/01/how-to-cancel-long-running-query-from.html">How to cancel a long running query from the UI</a></div>
<div class="post-title entry-title" itemprop="name" style="font-family: inherit;">
I finally got around to experimenting with this more and have created a sample app that can be <a href="http://java.net/projects/smuenchadf/sources/samples/content/DynamicViewWithCancel.zip" target="_blank">downloaded from here </a> </div>
<div class="post-title entry-title" itemprop="name" style="font-family: inherit;">
<br /></div>
<div class="post-title entry-title" itemprop="name" style="font-family: inherit;">
<br /></div>
<div class="post-title entry-title" itemprop="name">
<span style="font-family: inherit;">A screenshot is below. </span>The sample was created with jdev 11.1.1.4 but It should work with 11.1.1.6 without any problems. <span style="font-family: inherit;">This demonstrates the creation of a dynamic view displayed in a dynamic table and includes the cancel button. You can type any valid sql into the input box and the table will display all of the columns returned. If you create a particularly slow query you can test the cancel query button and you should get the error message displayed below. Obviously you wouldn't want to give the user the ability to provide the SQL for the dynamic query but it makes for a good example of how a dynamic query can be created and displayed.</span></div>
<div class="post-title entry-title" itemprop="name">
<span style="font-family: inherit;">Since ADF blocks all requests going through the faces servlet while the server is processing the query, I implemented the cancel button using a client listener that cancels the event then creates it's own ajax call to a plain old servlet. That servlet retrieves the view object (if it exists) from a transient map object stored on the session by the CustomViewObjectImpl class and calls cancelQuery() on it. If the cancel is successful the executeQuery method will throw an exception that is displayed in the UI. </span><br />
<br />
<span style="font-family: inherit;">When you set a query timeout on the view object,
ADF will spawn a monitor thread that sleeps for the timeout period.
When the thread wakes up it calls cancelQuery() on the ViewObject.
This is the very same thing the servlet is doing except it is initiated
by the user instead of the monitor thread. </span><br />
<span style="font-family: inherit;"> </span><br />
<span style="font-family: inherit;">The view object is stored in a transient map so that Serialization will not be attempted however the
view object is only stored on the Session for the duration of the
execute method and then removed so it should never attempt serialization anyway. <br />
</span><br />
<br />
<span style="font-family: inherit;">Note this will not work in a clustered environment not configured for sticky load balancing. Obviously the
request must make it to the same server where the query is running in
order to cancel it. I don't know of an easy way around that. Ideally
it would be nice if you could<a href="http://blog.tanelpoder.com/2010/02/17/how-to-cancel-a-query-running-in-another-session/" target="_blank"> send a command to the database</a> containing a key to the session needing it's query canceled then it wouldn't matter which server the cancel request arrived on. That feature is not available apart from the Linux command line.</span><br />
<br />
<br />
<span style="font-family: inherit;">This sample app will cancel all queries running on the users session if for example the user had multiple windows/tabs open, each running their own queries (not too likely) but you can pass up a key on the cancel request if you want to limit the cancel to a specific query. </span></div>
<div class="post-title entry-title" itemprop="name">
<br />
<span style="font-family: inherit;">Note: I initially could not get the cancel to work when running on Windows with the integrated development environment. It ran fine however when I deployed it to the server running Linux. </span><br />
<span style="font-family: inherit;">The query timeout setting was also not being honored when running under Windows. I know this used to work for me so I'm thinking there must have been a network configuration change or upgrade that broke it. I then discovered that I could get the cancel to run under Windows by adding the following JVM startup parameter to the "Launch Settings"</span></div>
<div class="post-title entry-title" itemprop="name">
<span style="font-family: inherit;"><br /></span></div>
<div class="post-title entry-title" itemprop="name">
<span style="font-family: inherit;"> -Doracle.net.disableOob=true </span></div>
<div class="post-title entry-title" itemprop="name">
<span style="font-family: inherit;"><br /></span></div>
<div class="post-title entry-title" itemprop="name">
<span style="font-family: inherit;">This disables "<a href="http://docs.oracle.com/cd/A57673_01/DOC/server/doc/A48506/network.htm#1559" target="_blank">Out of Band</a>" breaks and instead uses "In Band" Breaks. The sample app is configured this way but you may or may not need it depending on your network drivers and configuration.</span><br />
<br />
<span style="font-family: inherit;"><br /></span></div>
<div class="post-title entry-title" itemprop="name">
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Feel free to comment if you find this useful.</span></div>
<div class="post-title entry-title" itemprop="name">
<span style="font-family: inherit;">To progress this concept further I would like to add a page to our monitoring application that will iterate over the sessions and display a list of all long running queries and the users that are running them.</span></div>
<div class="post-title entry-title" itemprop="name">
<span style="font-family: inherit;"><br /></span></div>
<div class="post-title entry-title" itemprop="name">
<span style="font-family: inherit;"><br /></span></div>
<div class="post-title entry-title" itemprop="name">
<br /></div>
<div class="post-title entry-title" itemprop="name">
</div>
<h3 class="post-title entry-title" itemprop="name">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC5BT3iyTqu7AXe5p9qn7l4w313k2AHHIPnomUK7GHaJts0xPGQh1GqSKwU0YPkrALnTL9nAiCvyFbS_OFmf9wDkBP2CDZdYoeM9aCeHKLaNBNdw5hcKLFJ_sPTt04hAEd7eS82B1UUfI/s1600/CANCEL.PNG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="241" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC5BT3iyTqu7AXe5p9qn7l4w313k2AHHIPnomUK7GHaJts0xPGQh1GqSKwU0YPkrALnTL9nAiCvyFbS_OFmf9wDkBP2CDZdYoeM9aCeHKLaNBNdw5hcKLFJ_sPTt04hAEd7eS82B1UUfI/s640/CANCEL.PNG" width="640" /></a> </h3>
<h3 class="post-title entry-title" itemprop="name">
</h3>
<h3 class="post-title entry-title" itemprop="name">
</h3>
Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com3tag:blogger.com,1999:blog-7675276419915284401.post-27098110078373571312012-10-26T10:05:00.000-07:002012-10-26T11:04:59.264-07:00Allowing Read-Only Access to your applicationWe recently had a requirement to allow user logins with any assigned role but with read only access to the application. User should be able to login and see all of the pages associated with the assigned role but cannot do anything that will add or change data in the database. This turned out to be fairly simple to implement. We created a new role "readOnlyAccessAllowed". We already have a custom base Application Module class that all of our Application Modules extend. So the change was simply to override the beforeCommit method, check if the user has the read only access role and throw an exception if so. We also display a tag on the home page to assure the user that they have read only access.<br />
<br />
If you do not already have a base class defined for your application modules, this is done by editing the Model.jpr project properties. Under Business Components/Base Classes you define a base class for your View Objects and Application Modules. If you do this after your application modules have been defined and your app module has a java implementation, you will need to edit those java implementations and verify that they extend your new base app module. Newly created app modules will automatically extend your base app module.<br />
<br />
Below is sample code showing the implementation. The were 2 or 3 app modules used for storing user preferences, saved
searches and login history that we still wanted to be allowed so I excluded those. I also added a method allowOneTimeCommitForReadOnlyUser that can be called in the code immediately before calling commit() to allow for other exceptions to the rule.<br />
<br />
<br />
<br />
<div style="border: 1px solid black; overflow: auto;">
<pre> </pre>
<pre><span style="font-size: x-small;"><span style="font-family: Arial,Helvetica,sans-serif;"> /* overriden in order to prevent commiting data when user has read only user role
* beforeCommit is called for both the root app module and the app module
* containing the view object being commited.
*/
@Override
public void beforeCommit(TransactionEvent e) {
boolean isReadOnlyAccess = getDBTransaction().getSession().isUserInRole("readOnlyAccessAllowed");
String appModuleName = this.getRootApplicationModule().getName();
// allow commits for login history, performance monitorng and user preferences
boolean allowCommit=(!isReadOnlyAccess ||
"AppCtrlAM".equals(appModuleName) ||
"SearchAM".equals(appModuleName) ); // allow readOnlyAccess users to save searches criteria
// this is used to allow writing the account audit info for USER_ACTIVITY table
if (allowOneTimeCommitForReadOnlyUser){
allowCommit=true;
allowOneTimeCommitForReadOnlyUser=false;
}
if(!allowCommit){
displayReadOnlyMessage();
<b> throw new ReadOnlyAttrException(0,"","",this.getName(),"");</b>
}
super.beforeCommit(e);
}
public static void displayReadOnlyMessage(){
FacesContext context = FacesContext.getCurrentInstance();
FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_ERROR,"Read Only","You are allowed read only access. Data cannot be added or changed.");
context.addMessage(null, fm);
}
public void allowOneTimeCommitForReadOnlyUser() {
ApplicationModule am = this.getRootApplicationModule();
if (am instanceof CAAppModuleImpl){
((CAAppModuleImpl)am).allowOneTimeCommitForReadOnlyUser = true;
}
this.allowOneTimeCommitForReadOnlyUser = true;
}</span></span></pre>
</div>
<br />
<a href="http://andrejusb.blogspot.com/2012/08/solution-to-control-global.html" target="_blank">Here's a link to another solution</a>. That solution makes input fields display as read-only output fields.<br />
We didn't do that because we didn't want to change the Application look in any way because we use Selenium non-invasive tests to regression test our pages in production so we want the page to look the same as it does for a normal user but still prevent the test or user from committing data.<br />
<br />
<br />Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-67225923910661743692012-09-06T15:32:00.000-07:002013-01-18T14:07:50.301-08:00Selenium WebDriver utility for determining when page has finished rendering<span style="font-size: small;">We are using Selenium for automated testing of our web app. We use the new Selenium <a href="http://seleniumhq.org/projects/webdriver/" target="_blank">WebDriver </a>API to create java based unit tests for interfacing with the UI. One problem we had was determining when the page had completely finished rendering as the page may still be in the process up updating after the initial page is loaded. There is an ADF javascript function for checking this</span><br />
<div style="font-family: inherit;">
<span style="font-size: small;">"<a href="http://docs.oracle.com/cd/E16162_01/apirefs.1112/e17489/oracle/adf/view/js/base/AdfPage.html#isSynchronizedWithServer__" target="_blank">AdfPage.PAGE.isSynchronizedWithServer()</a>" so </span></div>
<span style="font-size: small;">the helper method below can be called by the test class to determine when the page is fully synchronized with the server and the next action can be performed.</span><br />
<br />
<br />
<br />
<span style="font-family: "Trebuchet MS",sans-serif; font-size: x-small;">public static void waitForPageToFinishRendering(WebDriver oDriver, int timeout) {<br /> ExpectedCondition<boolean> e = new ExpectedCondition<boolean>() { <br /> public Boolean apply(WebDriver d) { <br /> JavascriptExecutor js = (JavascriptExecutor) d;<br /> Boolean isReady = (Boolean)js.executeScript("return AdfPage.PAGE.isSynchronizedWithServer()");<br /> return isReady;<br /> } <br /> }; <br /> WebDriverWait w = new WebDriverWait(oDriver, </boolean></boolean></span><span style="font-family: "Trebuchet MS",sans-serif; font-size: x-small;">timeout</span><span style="font-family: "Trebuchet MS",sans-serif; font-size: x-small;"><boolean><boolean>,100); <br /> w.until(e); <br /> }</boolean></boolean></span><br />
<br />
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;"><boolean><boolean>For a Good overview of using Selenium with ADF see </boolean></boolean></span></div>
<div style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: small;"><a href="http://www.oracle.com/technetwork/articles/adf/part6-094560.html"><boolean><boolean>http://www.oracle.com/technetwork/articles/adf/part6-094560.html</boolean></boolean></a></span><br />
<span style="font-size: small;"><boolean><boolean>That article talks about using waitForElementPresent before performing the next action but I have found using the technique above to be more reliable. Especially for complex pages where there is a lot of lazy loading going on. </boolean></boolean></span></div>
Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com11tag:blogger.com,1999:blog-7675276419915284401.post-52251857063117579472012-04-24T17:29:00.001-07:002014-02-21T09:32:11.963-08:00The danger of using the default settings of a view object for committing data<div style="font-family: Arial,Helvetica,sans-serif;">
We recently had a problem in production where the weblogic servers randomly ( once or twice per day) became extremely slow (basically unusable) for a period of time before recovering. We discovered that the server was running low in memory causing a perpetual garbage collection cycle to occur. This begin occurring after loading a large amount of data (several million rows) that was transferred from our old application. Up until this point the system had been humming along fine. An analysis of the thread dump showed that during this time of crisis the server was looping in the following code.</div>
<br />
<br />
<div class="MsoNormal">
<span style="font-size: xx-small;"><span style="font-family: Arial,Helvetica,sans-serif;"> <span style="font-size: xx-small;">
oracle.jbo.server.QueryCollection.hasNextInResultSet(QueryCollection.java:4611)</span></span></span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.ViewObjectImpl.hasNextForCollection(ViewObjectImpl.java:6899)F</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.QueryCollection.hasNext(QueryCollection.java:4579)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:3553)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:3387)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.QueryCollection.get(QueryCollection.java:2188)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:5016)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
<span style="color: red;">oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:3242) </span></span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.ViewObjectImpl.<span style="color: black;">activateTransients</span>(ViewObjectImpl.java:18328)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.ViewObjectImpl.activateTransients(ViewObjectImpl.java:18289)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.ViewObjectImpl.activateState(ViewObjectImpl.java:18512)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.ViewObjectImpl.activateState(ViewObjectImpl.java:18407)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.ViewRowSetIteratorImpl.activateIteratorState(ViewRowSetIteratorImpl.java:4025)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.ViewRowSetImpl.activateIteratorState(ViewRowSetImpl.java:7235)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.ViewObjectImpl.activateIteratorState(ViewObjectImpl.java:18742)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.ApplicationModuleImpl.activateVOs(ApplicationModuleImpl.java:8172)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.ApplicationModuleImpl.doActivateState(ApplicationModuleImpl.java:7918)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.ApplicationModuleImpl.doActivateAMState(ApplicationModuleImpl.java:7884)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.Serializer.activate(Serializer.java:296)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.DBSerializer.activateRootAM(DBSerializer.java:330)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;">
oracle.jbo.server.ApplicationModuleImpl.activateState(ApplicationModuleImpl.java:6207)</span></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: xx-small;"> </span>The looping was occuring in the getRow method of ViewRowSetImpl. The stack trace also shows that the looping is occuring as the result of a activation event to restore a previously passivated application module. This demonstrates the importance of testing code with the jbo.ampooling=false setting in order to test for passivation problems. In this case however we still might not have notice this problem because it requires both a large table and a specific sequence of user actions in order to reproduce. </div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
Here is the getRow method from ViewRowSetImpl. The section in red was where the looping was occuring</div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
public Row getRow(Key key)</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
{</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
Row row;</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
if (key != null)</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
{</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
Object keyHandle = key.getRowHandle();</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
if (keyHandle != null && mQRef.getSignature() == key.getSignature())</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
{</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
row = getRowFromHandle(keyHandle);</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
if (row != null && key.equals(row.getKey()))</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
{</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
return row;</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
}</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
}</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
//if there are rows in the collection, then match those before calling execute.</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
if (getFetchedRowCount() > 0)</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
{</span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Calibri","sans-serif"; font-size: 8pt;"> for (int j = 0;
(row = getRow(j)) != null; j++)</span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Calibri","sans-serif"; font-size: 8pt;"> {</span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Calibri","sans-serif"; font-size: 8pt;">
if (key == null || row.getKey().equals(key))</span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Calibri","sans-serif"; font-size: 8pt;"> {</span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Calibri","sans-serif"; font-size: 8pt;">
return row;</span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Calibri","sans-serif"; font-size: 8pt;"> }</span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Calibri","sans-serif"; font-size: 8pt;"> }</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
//make sure that the query is executed before calling getRow(int);</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
if (!isExecuted())</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
{</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
synchronized(getSyncLock())</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
{</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
execute(false /*force*/, false /*notify*/); //no need for eventing here.</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
}</span></div>
<div class="MsoNormal">
<span style="color: red; font-family: "Calibri","sans-serif"; font-size: 8pt;"> }</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="font-family: "Calibri","sans-serif"; font-size: 8pt;"> for
(int j = 0; (row = getRow(j)) != null; j++)</span></b></div>
<div class="MsoNormal">
<b><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 8pt;"> {</span></b></div>
<div class="MsoNormal">
<b><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 8pt;"> if (key == null
|| row.getKey().equals(key))</span></b></div>
<div class="MsoNormal">
<b><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 8pt;"> {</span></b></div>
<div class="MsoNormal">
<b><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 8pt;">
return row;</span></b></div>
<div class="MsoNormal">
<b><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 8pt;"> }</span></b></div>
<div class="MsoNormal">
<b><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 8pt;"> }</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
return null;</span></div>
<div class="MsoNormal">
<span style="font-family: "Calibri","sans-serif"; font-size: 8pt;">
}</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 11pt;">Here is what I did to duplicate the problem on my local jdeveloper instance.</span></div>
<div class="MsoNormal">
<br /></div>
<ul>
<li><span style="color: #1f497d; font-family: Symbol; font-size: 11pt;"><span style="font: 7pt "Times New Roman";"></span></span><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 11pt;">We have an entity based view object to a table that contains a
large (2+ million) row set. The view object was unbounded (no bind variables) </span></li>
<li><span style="color: #1f497d; font-family: Symbol; font-size: 11pt;"><span style="font: 7pt "Times New Roman";"></span></span><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 11pt;">The range size was set to 15.</span><span style="color: #1f497d; font-family: Symbol; font-size: 11pt;"><span style="font: 7pt "Times New Roman";"> </span></span></li>
<li><span style="color: #1f497d; font-family: Symbol; font-size: 11pt;"><span style="font: 7pt "Times New Roman";"> </span></span><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 11pt;">There is an iterator binding on the page bound to this view that
is bound to a popup form for adding or inserting one row of data.</span><span style="color: #1f497d; font-family: Symbol; font-size: 11pt;"><span style="font: 7pt "Times New Roman";"> </span></span></li>
<li><span style="color: #1f497d; font-family: Symbol; font-size: 11pt;"><span style="font: 7pt "Times New Roman";"> </span></span><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 11pt;">When the popup displays the unbounded query executes because the
iterator executes when first used (the default setting). This may not be good for database
performance (which was taking ~3 seconds) but it only retrieves the 1st
range of 15 rows from the database into memory and this did not normally cause a problem so was not noticed.</span><span style="color: #1f497d; font-family: Symbol; font-size: 11pt;"><span style="font: 7pt "Times New Roman";"></span></span></li>
<li><span style="color: #1f497d; font-family: Symbol; font-size: 11pt;"><span style="font: 7pt "Times New Roman";"> </span></span><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 11pt;">The data was entered on the form and a button “save and add
another” is clicked which commits the current row and advances the form to a
new row ready for input.</span><span style="color: #1f497d; font-family: Symbol; font-size: 11pt;"><span style="font: 7pt "Times New Roman";"> </span></span></li>
<li><span style="color: #1f497d; font-family: Symbol; font-size: 11pt;"><span style="font: 7pt "Times New Roman";"> </span></span><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 11pt;">At this point we have a view object that contains 1 range of rows (15) that were returned by the orignal query plus the newly inserted row that we just committed (16 rows in total).</span></li>
<li><span style="color: #1f497d; font-family: Symbol; font-size: 11pt;"><span style="font: 7pt "Times New Roman";"> </span></span><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 11pt;">Now to duplicate the problem we force a passivation of this users app
module. We did this by setting the pool size to 1 and opening up the same
page in another browser window.</span></li>
<li><span style="color: #1f497d; font-family: Symbol; font-size: 11pt;"><span style="font: 7pt "Times New Roman";">
</span></span><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 11pt;">We then cancel out of the form popup. Before the form
closes it presents an “Are you sure?” dialog and it must re-activate the
app module it is bound to. During activation the listed getRow()
method in ViewRowSetImpl is called in order to find and sync up all of the 16 rows that
were in the view when it was passivated. Since there was a
newly inserted row it may be located near the end of the result set that
would be returned by the unbounded query. (there was no sort order)
The loop in red is the problem. <b>The ADF framework was searching for this row
by retrieving one row at a time from the database</b>. It basically had to go
through all 2 million rows and pull them into memory before it would find
it. On my local debug machine this was happening extremely slow.
(About 50 per second) and I would run out of memory before it finished (and
there was only 390,000 rows in our dev database)</span><span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 11pt;"> </span></li>
</ul>
<div class="MsoListParagraph">
<span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 11pt;">This could have been instantaneous if ADF would run a
query with the ID to retrieve it, instead of searching for it row by row. I really think this is a serious design flaw but the feedback from Oracle was that this was working as designed. I don't understand why the activation process event needs to find the rows from the database. It's purpose is to restore the state of the view object to what it was prior to passivation so why not just read the passivation record and be done with it? This problem could occur on any large table that is used for both scrolling through the data and inserting rows using the same view object. </span></div>
<div class="MsoListParagraph">
<span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 11pt;"><br /></span></div>
<div class="MsoListParagraph">
<span style="font-size: small;"><b><span style="color: #1f497d; font-family: "Calibri","sans-serif";">Bottom Line and Lessons Learned.</span></b></span></div>
<ol>
<li style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="color: #1f497d;">If you have a view object that is only used for inserting rows, make sure that you set the Tuning parameter to Retrieve from the Database "No Rows" or "At Most One Row" </span></span></li>
<li style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="color: #1f497d;">If you do need to display a table that can filter and scroll over a very large result set and also insert new rows, use a read-only view object for displaying the data and a separate Entity based view object for inserting new rows. </span></span></li>
<li style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="color: #1f497d;">If the view object had had a sort order that caused newly inserted rows to appear at the beginning of the result set, we wouldn't have noticed this problem. </span></span></li>
<li><span style="font-size: small;"><span style="color: #1f497d; font-family: "Calibri","sans-serif";">This shows how critical it is to set the tuning parameters appropriately when dealing with large tables. In our case this was a hidden time bomb waiting to happen. </span><b><span style="color: #1f497d; font-family: "Calibri","sans-serif";"><br /></span></b></span></li>
</ol>
<div class="MsoListParagraph">
</div>
<div class="MsoListParagraph">
<span style="color: #1f497d; font-family: "Calibri","sans-serif"; font-size: 11pt;"><br /></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
<div class="MsoNormal" style="font-family: Arial,Helvetica,sans-serif;">
<br /></div>
Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com0tag:blogger.com,1999:blog-7675276419915284401.post-68115649144319999122012-01-24T12:23:00.000-08:002012-01-24T12:23:45.623-08:00Executing iterator binding in deferred Mode when there are required bind variable parametersAn iterator binding can be set to execute in "deferred" mode. This is the default behavior if you don't change it. What this means is that the query will not execute unless the page needs to display it's data. This is great for use on a page that doesn't initially display the data to the user, like in a popup or tab that is not initially disclosed. If the popup is displayed or the tab is disclosed, then and only then will the query be executed. Also for tables that are set to lazy load (retrieve it's data after the page initially loads) this prevents the query from executing until the page is first displayed and the "Fetching data..." message is displayed over the table. A problem arises when the view object requires named bind variables. The bind variables do not get set unless you add an ExecuteWithParams action binding to the task flow. Calling an ExecuteWithParams will execute the query but that defeats the value of setting the iterator binding to "deferred" So how do I set the bind variables without executing the query?<br />
<br />
Here is one technique:<br />
<ul><li>Edit the View object, select the Java panel and check the "Generate View Object Class" and "Include bind_variable accessors. </li>
<li>Edit the Client Interface and add the setMyValueBind() method to the interface.</li>
<li>Select the Data Control panel and click the refresh icon to refresh the data controls.</li>
<li>Find your view object in the data controls panel and expand it. You should see the setMyValueBind method under the list of attributes.</li>
<li>Drag the method call over onto your task flow and add an EL expression to set the bind variables value.</li>
<li>insert the method call into the chain of operations that execute prior to displaying the page.</li>
</ul>That is all that is needed. The first time the data is displayed, the iterator binding will execute the query using the set bind parameters and if the user never displays the popup or tab that displays the data, the query will not need to be executed.Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com3tag:blogger.com,1999:blog-7675276419915284401.post-78791221734324473732012-01-13T15:14:00.000-08:002013-02-19T09:29:04.792-08:00How to cancel a long running query from the UI (part 1)I've long wondered if there was any way to cancel a query that is taking too long to complete from the page where the query is being run, similar to hitting the cancel button in SQL Developer. I noticed that the view object class has a cancelQuery() method on it but how do you call that when the thread is busy running the query. <span class="msg">The javadoc on the cancelQuery function says it can be called from another thread and this is what happens when you set a timeout value on the view object. ADF spawns a monitor thread that will cancel the query after the timeout elapses.</span> I did some experimenting and found that if I overrode the executeQuery method in the view and saved the view object on the session I could then use that to cancel the query from another task flow running in another tab or browser window.<br />
Here is the code<br />
<span style="font-size: x-small;"><span style="font-family: "Courier New",Courier,monospace;">@Override</span><br style="font-family: "Courier New",Courier,monospace;" /><span style="font-family: "Courier New",Courier,monospace;"> public void executeQuery() {</span></span><br />
<div style="font-family: "Courier New",Courier,monospace;">
<span style="font-size: x-small;"> Map sessionScope = </span><br />
<span style="font-size: x-small;"> ADFContext.getCurrent().getSessionScope();<br />
sessionScope.put("MyQuery",this);<br />
try{</span></div>
<div style="font-family: "Courier New",Courier,monospace;">
<span style="font-size: x-small;"> super.executeQuery();</span></div>
<div style="font-family: "Courier New",Courier,monospace;">
<span style="font-size: x-small;"> } finally{</span></div>
<div style="font-family: "Courier New",Courier,monospace;">
<span style="font-size: x-small;"> // only keep on the Session </span><br />
<span style="font-size: x-small;"> //for the duration of the query <br />
sessionScope.remove("MyQuery");</span></div>
<div style="font-family: "Courier New",Courier,monospace;">
<span style="font-size: x-small;"> }</span></div>
<br />
On a different page put a button for canceling the query that calls this action method<br />
<span style="font-family: "Courier New",Courier,monospace; font-size: x-small;"> </span><br />
<span style="font-family: "Courier New",Courier,monospace; font-size: x-small;">public void cancelQueries(ActionEvent actionEvent) {<br />
Map sessionScope = ADFContext.getCurrent().getSessionScope();<br />
ViewObjectImpl vo = (ViewObjectImpl)sessionScope.get("MyQuery");<br />
if (vo!=null){<br />
if (vo.isDead()==false){<br />
vo.cancelQuery(); </span><br />
<span style="font-family: "Courier New",Courier,monospace; font-size: x-small;"> }<br />
sessionScope.remove("MyQuery");<br />
}</span><br />
<span style="font-family: "Courier New",Courier,monospace; font-size: x-small;">}</span><br />
<span style="font-family: "Courier New",Courier,monospace; font-size: x-small;"> </span><br />
This will cause the query to throw a "JBO-27126<span class="msg"> Long running query has been canceled" Exception.</span><br />
<span class="msg">In order to prevent the page from becoming broken you must catch this exception in the executeQueryForCollection method and re-throw a new JboException which will be displayed to the user. See <a href="http://andrejusb.blogspot.com/2011/08/how-to-control-long-sql-execution-time.html">this blog </a>for an example of that.</span><br />
<span class="msg"><br />
</span><br />
<span class="msg">This seems to work fine, at least on 11G database. According to <a href="http://theblasfrompas.blogspot.com/2008/02/cancelling-long-running-queries-with.html" target="_blank">this blog </a>there my be problems making it work with the 10G drivers. The next question is how would I put a button on the same browser tab as the one running the query. I haven't implemented that but I can think of a couple of ways that might be done. One would be to have the button call a javascript method that makes a custom AJAX call back to a plain old servlet that retrieves the users session and calls the cancelQuery method. Another might be to add an inline frame that has a URL to a different task flow and page containing only the single button. ADF doesn't let you submit a button on the same page until the page is no longer busy but using an inline frame is the same as running the task flow on another tab so concurrent requests could be made. </span><br />
<span class="msg"><br />
</span><br />
<span class="msg"><br />
</span>Don Kleppingerhttp://www.blogger.com/profile/02266023115878336856noreply@blogger.com2