tag:blogger.com,1999:blog-55731613118504214592024-02-19T04:14:32.577+01:00PADoraDer PADora Blog wird von Consultants des Softwareunternehmens TEAM geschrieben. Die Inhalte drehen sich rund um die Technologien von Oracle. Es gibt dort Tipps und Tricks, Wissenswertes und Hilfestellungen.Markus Klenkehttp://www.blogger.com/profile/02343002789283818840noreply@blogger.comBlogger170125tag:blogger.com,1999:blog-5573161311850421459.post-17178787893746410892018-12-10T11:10:00.000+01:002018-12-10T11:24:57.912+01:00JasperReports und REF_CURSOR<div class="separator" style="clear: both; text-align: left;">
In vielen Reports zu JasperReports Migrationsprojekten werden die Daten per REF_CURSOR dem Report zur verfügung gestellt.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Wie diese Cursor in JasperReports verwendet werden möchte ich hier zeigen:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<h2 style="clear: both; text-align: left;">
1. Die Beispiel-Routine in der Datenbank:</h2>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<pre class="brush: sql">CREATE OR REPLACE PROCEDURE emps_holen(emp_cursor OUT sys_refcursor,anzahl in number) IS
BEGIN
OPEN emp_cursor FOR
SELECT first_name,last_name,email
FROM employees
WHERE rownum < anzahl;
END;
</pre>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<h2>
2. Report anlegen</h2>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUSw8O4tPV90DclGk8dCTKAdMPBr-97y_zFqt5iT5eOWfw4zzpX71NdpwwZIKgn3IeuJjzCoFrlk065Lh0nfoB0E3lG1wXI0_zepRROTAAMdIsQRN6ygyMMVe4J30pvjIDsa6kt6_-XSQ/s1600/002002+-+VirtualBox+-+e2018.12.10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="599" data-original-width="724" height="330" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUSw8O4tPV90DclGk8dCTKAdMPBr-97y_zFqt5iT5eOWfw4zzpX71NdpwwZIKgn3IeuJjzCoFrlk065Lh0nfoB0E3lG1wXI0_zepRROTAAMdIsQRN6ygyMMVe4J30pvjIDsa6kt6_-XSQ/s400/002002+-+VirtualBox+-+e2018.12.10.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitq9rrTjj3tfaOk10PjLCtHxZI4Y3K2WeejYoIiVWF2ARp6C7t1eE-UBIIrd6odHyp3QSOchYPpV5EPO41UxH7NElk0wqcqiI3tQ-VsgosBuxZG1DRF61wBSiEnmecEDdC7ZlUaqiUhHM/s1600/002003+-+VirtualBox+-+e2018.12.10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="598" data-original-width="726" height="328" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitq9rrTjj3tfaOk10PjLCtHxZI4Y3K2WeejYoIiVWF2ARp6C7t1eE-UBIIrd6odHyp3QSOchYPpV5EPO41UxH7NElk0wqcqiI3tQ-VsgosBuxZG1DRF61wBSiEnmecEDdC7ZlUaqiUhHM/s400/002003+-+VirtualBox+-+e2018.12.10.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div style="text-align: center;">
<div style="text-align: left;">
als Platzhalter ein <b>select * from dual</b></div>
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxMEu6Ye2fEfjuXA2TCh1JhDthMBR0Gnkr0Vee4V-ZR-_-Z2qMgU5hN6J1Q3ztLURn37z-UiXcdrluKD_rmq34C_HnfsHGZVSZpNPJOZktWOop37aywQuw9JI9qUnSRZKBi0z8m-XclTI/s1600/002004+-+VirtualBox+-+e2018.12.10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="599" data-original-width="724" height="330" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxMEu6Ye2fEfjuXA2TCh1JhDthMBR0Gnkr0Vee4V-ZR-_-Z2qMgU5hN6J1Q3ztLURn37z-UiXcdrluKD_rmq34C_HnfsHGZVSZpNPJOZktWOop37aywQuw9JI9qUnSRZKBi0z8m-XclTI/s400/002004+-+VirtualBox+-+e2018.12.10.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: center;">
<div style="text-align: left;">
und speichern (Finish)</div>
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZbbRw9JQVsSw86e2K7CDUd5JSkS_GKbWIa1DiBu8rA4GgT1MhmpMNaX_WyamkgBLTuJUZZxPfeQDhyphenhyphenu4yVdZuIzyK5V0SBJUAnrA0OKrmMka8fodQV0zvNpC4jqPgCwxXESjl89TNX6Y/s1600/002006+-+VirtualBox+-+e2018.12.10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="599" data-original-width="778" height="307" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZbbRw9JQVsSw86e2K7CDUd5JSkS_GKbWIa1DiBu8rA4GgT1MhmpMNaX_WyamkgBLTuJUZZxPfeQDhyphenhyphenu4yVdZuIzyK5V0SBJUAnrA0OKrmMka8fodQV0zvNpC4jqPgCwxXESjl89TNX6Y/s400/002006+-+VirtualBox+-+e2018.12.10.png" width="400" /></a></div>
<br />
<h2>
3. REF_CURSOR Aufruf einfügen</h2>
<div style="text-align: center;">
<div style="text-align: left;">
Wieder den Query-Editor öffnen </div>
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdaTAktivRdcM2BfN97ylf8hsZHkvExoEwRfJWHuxvIN1CCQFXgGqL871UOSDlInSF3LkiQ5ZXGIEo3Ya2eSqUqTDjVxR_a2Igr8nxfwu5LTCj1-kg4gaIGS13dhVLoSCvfbTz9T7m4nQ/s1600/002007+-+VirtualBox+-+e2018.12.10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="761" data-original-width="1062" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdaTAktivRdcM2BfN97ylf8hsZHkvExoEwRfJWHuxvIN1CCQFXgGqL871UOSDlInSF3LkiQ5ZXGIEo3Ya2eSqUqTDjVxR_a2Igr8nxfwu5LTCj1-kg4gaIGS13dhVLoSCvfbTz9T7m4nQ/s400/002007+-+VirtualBox+-+e2018.12.10.png" width="400" /></a></div>
<div style="text-align: center;">
<div style="text-align: left;">
<br /></div>
</div>
<div style="text-align: center;">
<div style="text-align: left;">
Language auf plsql umstellen und folgenden Code hinzufügen:</div>
</div>
<div style="text-align: center;">
<div style="text-align: left;">
<br /></div>
</div>
<pre class="brush: sql">{
call emps_holen($P{ORACLE_REF_CURSOR},$P{anzahl})
}
</pre>
<div style="text-align: center;">
<div style="text-align: left;">
<br /></div>
</div>
<div style="text-align: center;">
<div style="text-align: left;">
Danach wieder den Dialog schließen</div>
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqWGgvG3_y5T3jCmHNfp824uAKH1hGqqqdB9Hp74znUsbWjj6wBgsEJQ3lPxqosKIv0uuKf0FG5rxNppFD4G7QF-WUFtCYUc__VvNcjlcyufSsQvq17YD_6ydwMxVPqm8EYMC3XPt4Wos/s1600/002008+-+VirtualBox+-+e2018.12.10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="761" data-original-width="1062" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqWGgvG3_y5T3jCmHNfp824uAKH1hGqqqdB9Hp74znUsbWjj6wBgsEJQ3lPxqosKIv0uuKf0FG5rxNppFD4G7QF-WUFtCYUc__VvNcjlcyufSsQvq17YD_6ydwMxVPqm8EYMC3XPt4Wos/s400/002008+-+VirtualBox+-+e2018.12.10.png" width="400" /></a></div>
<br />
<div style="text-align: center;">
<div style="text-align: left;">
und neu öffnen. Durch das Schließen wird der Parameter automatisch angelegt. </div>
</div>
<div style="text-align: center;">
<div style="text-align: left;">
<br /></div>
</div>
<div style="text-align: center;">
<div style="text-align: left;">
Hinweis: Wenn man den Parameter von Hand anlegt, kommt beim Schließen eine Meldung, dass man einen eindeutigen Parameternamen eingeben soll. Um die Meldung zu vermeiden das Schließen und wieder Öffnen.</div>
</div>
<div style="text-align: center;">
<div style="text-align: left;">
<br /></div>
</div>
<div style="text-align: center;">
<div style="text-align: left;">
Nun können über Read Fields die Felder eingelesen werden.</div>
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6zi3Pw8EurfmXRBuIOJ4AxhL3X87B0iVuEkxfnWgisb_TGN9E8N0aJY-j2cg2_qtlC328sZ3i0d3FLpIqrXUxQQICZSRzAEQkTRtq8meXSaTZkb9mlgxacRY0NET6vay-jFSJlytx54M/s1600/002009+-+VirtualBox+-+e2018.12.10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="761" data-original-width="1062" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6zi3Pw8EurfmXRBuIOJ4AxhL3X87B0iVuEkxfnWgisb_TGN9E8N0aJY-j2cg2_qtlC328sZ3i0d3FLpIqrXUxQQICZSRzAEQkTRtq8meXSaTZkb9mlgxacRY0NET6vay-jFSJlytx54M/s400/002009+-+VirtualBox+-+e2018.12.10.png" width="400" /></a></div>
<br />
<div style="text-align: center;">
<div style="text-align: left;">
Zur Demonstration wie man mit Parametern für die PL/SQL-Funktion umgeht legen wir den Zusätzlichen Parameter <b>anzahl </b>an, der an die PL/SQL-Prozedur übergeben wird.</div>
</div>
<div style="text-align: center;">
<div style="text-align: left;">
Dann schließen wir den Query-Editor.</div>
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEharLa1UE9RohDkMpjXZX1EwYv3yCn28pWsM-Q-3lim1TTnH6xKrWkhwvJi3TLxljBuA-_-sCsK2zbYRWkuqSZrFl_vfI1my9PBOP2a-AYk6ZboJ7M5W55XlNqFErklU6Usyx_gABgp23g/s1600/002010+-+VirtualBox+-+e2018.12.10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="761" data-original-width="1062" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEharLa1UE9RohDkMpjXZX1EwYv3yCn28pWsM-Q-3lim1TTnH6xKrWkhwvJi3TLxljBuA-_-sCsK2zbYRWkuqSZrFl_vfI1my9PBOP2a-AYk6ZboJ7M5W55XlNqFErklU6Usyx_gABgp23g/s400/002010+-+VirtualBox+-+e2018.12.10.png" width="400" /></a></div>
<br />
<h2>
4. Report erstellen</h2>
<div style="text-align: center;">
<div style="text-align: left;">
Hier die Felder</div>
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7iKbhMGpdP9F_T3Y_d1X78paqmDx2k1F9YAlinf89agUtf5nHGtqKscO1crwqg4YzFI_JM-YWYtR3oG5423ohS6VwNXTHGH0835yW_N_rjACyvpxPeBuIxHq04tN9GcCvd-c8F_0AgO0/s1600/002011+-+VirtualBox+-+e2018.12.10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="283" data-original-width="466" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7iKbhMGpdP9F_T3Y_d1X78paqmDx2k1F9YAlinf89agUtf5nHGtqKscO1crwqg4YzFI_JM-YWYtR3oG5423ohS6VwNXTHGH0835yW_N_rjACyvpxPeBuIxHq04tN9GcCvd-c8F_0AgO0/s400/002011+-+VirtualBox+-+e2018.12.10.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div style="text-align: center;">
<div style="text-align: left;">
(Wunderschönen) Report erstellen</div>
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpQVUVFMR88a2lAepckZsFcmLQDTEp-MNMyCbE9wYMTTJ_0zWrsnnpZGKLK_LXB5aF_P_mThI_HhW3OZw-oziapzlhEXHx8EQPJVsgjKcyC5GMq6aGjOEgupehk60TKtMnGFWIo2sfp-o/s1600/002012+-+VirtualBox+-+e2018.12.10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="267" data-original-width="636" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpQVUVFMR88a2lAepckZsFcmLQDTEp-MNMyCbE9wYMTTJ_0zWrsnnpZGKLK_LXB5aF_P_mThI_HhW3OZw-oziapzlhEXHx8EQPJVsgjKcyC5GMq6aGjOEgupehk60TKtMnGFWIo2sfp-o/s400/002012+-+VirtualBox+-+e2018.12.10.png" width="400" /></a></div>
<br />
<div style="text-align: center;">
<div style="text-align: left;">
Ausführen</div>
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNjrdwgKPFhTwv471C6ZdFYJLlXleSqIpM2U5K1CYET9LOAtVZwCM6TkMWMmKfdlpy6fKyptc9WUtqvlzzB8TX524FLdj8JhAt6VHia5Hx0AmOuGmS4Jmo-qG6Mcd5Faj0_VTP0fAKJPs/s1600/002013+-+VirtualBox+-+e2018.12.10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="573" data-original-width="605" height="378" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNjrdwgKPFhTwv471C6ZdFYJLlXleSqIpM2U5K1CYET9LOAtVZwCM6TkMWMmKfdlpy6fKyptc9WUtqvlzzB8TX524FLdj8JhAt6VHia5Hx0AmOuGmS4Jmo-qG6Mcd5Faj0_VTP0fAKJPs/s400/002013+-+VirtualBox+-+e2018.12.10.png" width="400" /></a></div>
<br />
<div style="text-align: center;">
<div style="text-align: left;">
Fertig!</div>
</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1DozhDN8vdqFmwjL0EqZ1_-58x1YGviM5F0cPWecURNWknP9yu-jbEYGyVH6CTEoK_SdbSf0oG_X7ggcmuclkq4BnKt3wlNO44Cb7OEgq3xxIDo3QeYShlxvmK9du48ik2wsSThBWknI/s1600/002014+-+VirtualBox+-+e2018.12.10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="522" data-original-width="874" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1DozhDN8vdqFmwjL0EqZ1_-58x1YGviM5F0cPWecURNWknP9yu-jbEYGyVH6CTEoK_SdbSf0oG_X7ggcmuclkq4BnKt3wlNO44Cb7OEgq3xxIDo3QeYShlxvmK9du48ik2wsSThBWknI/s400/002014+-+VirtualBox+-+e2018.12.10.png" width="400" /></a></div>
<br />Wolf G. Beckmannhttp://www.blogger.com/profile/09088644260287050666noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-65426077199940734982018-12-03T16:30:00.001+01:002018-12-04T06:13:27.519+01:00Solving Integrated Weblogic Coherence Issue in JDeveloper 12.2.1.3Recently after a java update (Oracle JDK 1.8.0_144) and reinstallation of a oracle virtual box version (5.2.18 r), I stumbled across as severe issue regarding my integrated weblogic server as it would not start anymore. Instead it would repeatedly print the following lines:
<code>
<br />
<br />
<03.12.2018 14:51 Uhr MEZ> <Warning> <com.oracle.coherence> <BEA-000000> <2018-12-03 14:51:03.621/41.438 Oracle Coherence GE 12.2.1.3.0 <Warning> (thread=Cluster, member=n/a): This Member(Id=0, Timestamp=2018-12-03 14:50:32.801, Address=xxx.xxx.xxx.xxx:61846, MachineId=27972, Location=site:team-pb.de,machine:pcteam114,process:7564,member:DefaultServer, Role=WeblogicServer) has been attempting to join the cluster using WKA list [/xxx.xxx.xxx.xxx:7574] for 30 seconds without success; this could indicate a mis-configured WKA, or it may simply be the result of a busy cluster or active failover.><br />
<br />
<03.12.2018 14:53 Uhr MEZ> <Warning> <com.oracle.coherence> <BEA-000000> <2018-12-03 14:53:26.720/184.537 Oracle Coherence GE 12.2.1.3.0 <Warning> (thread=Cluster, member=n/a): Delaying formation of a new cluster; unicast networking appears to be inoperable on interface xxx.xxx.xxx.xxx as this process isn't receiving even its own transmissions; consider switching network interfaces><br />
</code><br />
<div>
<code><br /></code></div>
<code>
</code>
which stated that the technologically mapped coherence cluster (which consists of only the DefaultServer) was not getting any responses (and thus could not connect to the cluster itself). As there is only one server in our coherence cluster, it will be always the unicast-master and thus needs to check initial pings on itself (as others would ping it in this scenario).<br />
<br />
To fix this issue, you could do the following:
<br />
<ol>
<li>Remove the coherence cluster as a whole (as this is the integrated WLS, it seems irrelevant for most cases anyway)</li>
<li>Set the coherence cluster to be in multicast mode. This would lead to n:m pinging in the cluster, but as there is only one server, it does not bring performance issues as you might get in a real Worldwide clustered environment </li>
</ol>
<div>
<h3>
Solution 1:</h3>
</div>
<div>
To remove the coherence cluster awareness of the default server, you just have to remove the coherence-cluster-system-resource tag from the domains <code>config.xml</code> file (which resides in your <code>$DOMAIN_HOME/config</code> folder).<br />
<br /></div>
<code>
<server>
<br />
<name>DefaultServer</name><br />
…
<br />
<b> <coherence-cluster-system-resource>defaultCoherenceCluster</coherence-cluster-system-resource></b><br />
</server><br />
</code>
<br />
Just remove the highlighted entry and the server should start (without any awareness of coherence).
<br />
<div>
<h3>
Solution 2:</h3>
</div>
<div>
To change the type of coherence the cluster is using, you have to add a property inside the CoherenceSystemResource config file (which is located in the <code>$DOMAIN_HOME/config/coherence</code> folder). The correct <code>*-coherence.xml</code> is the one with the same name as the coherence systemResource as seen in Solution 1 (by default: <code>defaultCoherenceCluster-coherence.xml</code>).</div>
<div>
<br /></div>
<div>
Just add the following highlighted line in the coherence-cluster-params element-tag:</div>
<div>
<br /></div>
<code>
<div class="MsoNormal">
<span lang="EN-US"> <coherence-cluster-params><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">
<cluster-listen-port>7574</cluster-listen-port><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"> <b><clustering-mode>multicast</clustering-mode><o:p></o:p></b></span></div>
<div class="MsoNormal">
<span lang="EN-US"> </span></coherence-cluster-params></div>
<br />
<div>
</code>
This also should lead to the server starting again.</div>
<div>
<br /></div>
<div>
Cheers!</div>
Markus Klenkehttp://www.blogger.com/profile/02343002789283818840noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-81474815087960088382018-04-13T14:16:00.000+02:002018-04-13T14:29:01.095+02:00Solving the "file too large" issue for oracle 12c db docker image<h3>
Prerequisites:</h3>
The challenge was to install a docker image with Oracle 12.2.0.1 Database Standard Edition to a OEL 7 server. The following prerequisites were set:
<br />
<ul>
<li>OEL 7.4</li>
<li>DOCKER 17.12</li>
<li>Openshift Origin v3-latest</li>
</ul>
For the Openshift cluster, the docker storage-type was set to 'overlay2' (which is the
recommended setting). Construction of the image has been done via README.md given by
<br /><br />
<a href="https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance" target="_blank">Oracle official Docker-Images</a>
<br /><br />
<h3>
Issue:</h3>
Running through the issue, the following exception occured on step 7/17 of the Dockerfile:
<pre class="brush: bash">chown: changing ownership of '/opt/oracle/install/linuxx64_12201_database.zip': File too large
Removing intermediate container d581497c401d
The command '/bin/sh -c chmod ug+x $INSTALL_DIR/*.sh && sync &&
$INSTALL_DIR/$CHECK_SPACE_FILE && $INSTALL_DIR/$SETUP_LINUX_FILE' returned a non-zero code: 1</pre>
<h3>
Solution:</h3>
<p>There seems to be an issue with the storage-type overlay2 and large files on OEL. Thus the first idea was to change the storage-type from 'overlay2' to 'devicemapper'.
But this is not recommended for production-like environments. A more serious issue was that the openshift cluster was not able to start up anymore after changing the docker storage type.</p>
<p>Thus we tried another approach. Sometimes Docker locks up files (for chowning) that were introduced via COPY task in previous steps of the Dockerfile. A common workaround for this issue is to make a copy of an issued file, removing the original, doing the chown and moving the copy back to the original.
This approach worked in this case. The problematic command can be found in the file</p>
<code><Dockerfile-Home>/<Version_of_DB>/setupLinuxEnv.sh</code>
<br />
change the line
<pre class="brush: bash">chown -R oracle:dba $ORACLE_BASE
</pre>
to
<pre class="brush: bash">cp $ORACLE_BASE/install/linuxx64_12201_database.zip $ORACLE_BASE/install/rename.zip
rm $ORACLE_BASE/install/linuxx64_12201_database.zip
chown -R oracle:dba $ORACLE_BASE
mv $ORACLE_BASE/install/rename.zip $ORACLE_BASE/install/linuxx64_12201_database.zip
</pre>
This solves the issue and the docker build should run through.
<br />
Cheers!
Markus Klenkehttp://www.blogger.com/profile/02343002789283818840noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-44201224860897969982017-08-24T09:55:00.000+02:002017-08-24T09:55:56.904+02:00SQL "with"-Statements auf JasperServerMöchte man in JasperReports with-Statements im Query verwenden, funktioniert das im Studio problemlos, deployed man den Report allerdings auf den Server liefert dieser beim Ausführen eine Security-Exception.<br />
<br />
Hintergrund ist das Sicherheitskonzept des JasperServers, welches verhindern soll, dass etwa durch SQL-Injections Schaden an der Datenbank entstehen kann. Leider ist die Validator-Regel zunächst aber etwas zu restriktiv. Zum Glück kann man diese anpassen:<br />
<br />
In der Datei<br />
<br />
<code>...\jasperserver\WEB-INF\classes\esapi\validation.properties</code><br />
<br />
die Zeile<br />
<br />
<code>Validator.ValidSQL=(?is)^\\s*(select|call)\\s+[^;]+;?\\s*$</code><br />
<br />
ersetzen durch<br />
<br />
<code>Validator.ValidSQL=(?is)^\\s*(select|call|with)\\s+[^;]+;?\\s*$ </code><br />
<br />Anonymoushttp://www.blogger.com/profile/12161364241277706839noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-84070871206896444312017-08-10T12:17:00.002+02:002017-08-10T12:30:43.801+02:00Fixing Currency Behaviour in JDeveloper / ADF 12cAs many questions regarding Currency fields in ADF have come to me lately, let me just give you an example of how to tackle these.<br />
<div>
<br /></div>
<div>
It seems, that there is a common error in ADF for German users (or to any other language,where the decimal and grouping delimiter is exactly switched to the English definition).</div>
<div>
<br /></div>
<div>
English (US) Format: $ #<span style="color: red;">,</span>###<span style="color: red;">.</span>##</div>
<div>
<br /></div>
<div>
German Format #<span style="color: red;">.</span>###<span style="color: red;">,</span>##€</div>
<div>
<br /></div>
<div>
As you see, for germans the ',' is changing places wit the '.'</div>
<div>
<br /></div>
<div>
Normally, this would not be much of a deal, but in ADF there seems to be a "hard coded" interpretation somewhere.<br />
<br />
So in a simple form, let us type in a salary of 9.999,99 which is a correct entry for the salary field in German.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXXw8mVp2uOztjNqrfoVAeNu5niz9CC1iEAmfzizgkY3966c4KBGWMEuhyn9QVBndLn7D5SA0GCOzMQvv0YeZSSJDvdL1RAOGT2y1eu3AHtwK46zwoFTcEA-SKQwZ87uZrCFfsH9nr0-Y/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="295" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXXw8mVp2uOztjNqrfoVAeNu5niz9CC1iEAmfzizgkY3966c4KBGWMEuhyn9QVBndLn7D5SA0GCOzMQvv0YeZSSJDvdL1RAOGT2y1eu3AHtwK46zwoFTcEA-SKQwZ87uZrCFfsH9nr0-Y/s400/1.jpg" width="400" /></a></div>
<br />
In case you enter it as the hint provides (that means including the currency symbol) everything seems to work. But for many cases, users are not accustomed to entering the currency symbol.<br />
<br />
So let us create our own converter class to fix this issue:<br />
<br />
At first, create a java class that is implementing the javax.faces.convert.Converter Interface. This should be annotated by the FacesConverter tag to make it selectable in the UIComponents properties afterwards and removes the requirement to handle the faces-config.xml tracking.<br />
<br />
<br />
<pre class="brush: java">package de.teampb.conv;
import java.math.BigDecimal;
import java.text.DecimalFormatSymbols;
import java.text.NumberFormat;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;
import oracle.adf.share.logging.ADFLogger;
/**
* Custom JSF Faces Converter to convert entries in Currency Input Texts in a correct way. Oracle ADF seems to be a bit
* confused, if the grouping character in a Locale is '.' and the decimal delimiter is '.' (for example in Germany).
*/
@FacesConverter("de.teampb.conv.CurrencyConverter")
public class CurrencyConverter implements Converter {
/**
* Class logger.
*/
private static final ADFLogger LOG = ADFLogger.createADFLogger(CurrencyConverter.class.getName());
/**
* Converter method from UI Entry to data value. Takes an Input String from the UI Component and converts it to a
* BigDecimal value for data changes.
*
* @param facesContext current JSF Context
* @param uIComponent Component that has a new value
* @param string Entered String value (may contain groupings, delimiter or currency symbol)
* @return correctly converted BigDecimal object for the given input
*/
@Override
public Object getAsObject(FacesContext facesContext, UIComponent uIComponent, String string) {
LOG.entering("CurrencyConverter", "getAsObject", new Object[] { uIComponent, string });
BigDecimal result;
final Locale locale = facesContext.getViewRoot().getLocale();
LOG.finest("Locale for Conversion: " + locale.getLanguage());
if (string != null && !string.isEmpty()) {
LOG.finest("Parsing numeric sanity of string...");
Pattern regex = Pattern.compile("[&:;=?@#|]|[a-zA-Z]");
Matcher matcher = regex.matcher(string);
if (matcher.find()) {
NumberFormat f = NumberFormat.getCurrencyInstance(locale);
throw new ConverterException(f.format(123456.78));
}
LOG.finest("...done");
String res = string;
DecimalFormatSymbols symbols = new DecimalFormatSymbols(locale);
// get Locale specific grouping and decimal seperators
char sep = symbols.getDecimalSeparator();
LOG.finest("Decimal Separator used: " + sep);
char grp = symbols.getGroupingSeparator();
LOG.finest("Grouping Separator used: " + grp);
// remove groupings
String valueConverted = string.replace(grp, Character.MIN_VALUE);
LOG.finest("String removed of groups:" + valueConverted);
// change decimal seperator to "US" standards
valueConverted = valueConverted.replace(sep, ".".charAt(0));
LOG.finest("String with changed decimal separator:" + valueConverted);
// throw away any non numeric stuff
res = valueConverted.replaceAll("[^\\d.]+", "");
LOG.finest("Expected result:" + res);
result = new BigDecimal(res);
} else {
LOG.finest("Input was empty, so create a zero object");
// this is of course project specific, can also return null etc.
result = new BigDecimal(0);
}
LOG.exiting("CurrencyConverter", "getAsObject", result);
return result;
}
/**
* Converter method to create a correct currency String for a given data object.
*
* @param facesContext current JSF Context
* @param uIComponent UI Component that will get the String value
* @param object data value that shall be converted
* @return correct String representation of data to a set Locale
*/
@Override
public String getAsString(FacesContext facesContext, UIComponent uIComponent, Object object) {
LOG.entering("CurrencyConverter", "getAsString", object);
final Locale locale = facesContext.getViewRoot().getLocale();
LOG.finest("Locale for Conversion: " + locale.getLanguage());
NumberFormat f = NumberFormat.getCurrencyInstance(locale);
String res = f.format(object);
LOG.exiting("CurrencyConverter", "getAsString", res);
return res;
}
}
</pre>
<h4>
Hint: As you can see from the source code, the converter uses the Locale's specific grouping and decimal seperators, so this converter should be working for any given locale and currency representation.</h4>
</div>
<div>
Next, add this converter to a converter component inside the UI Field that should use this converter:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWsxGnyDaa785iF34pGxxboh5x4xs6c7TwBCD7GrryP2QkAFiI4I5UPE_i5Ft84nt5w591dy_y0RqA3bxm4uueuqpGkKd_eCqrSJSDbpT44jnnmB0jVYZ3QoWO957Bfdd0O8nQleis5gw/s1600/3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="76" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWsxGnyDaa785iF34pGxxboh5x4xs6c7TwBCD7GrryP2QkAFiI4I5UPE_i5Ft84nt5w591dy_y0RqA3bxm4uueuqpGkKd_eCqrSJSDbpT44jnnmB0jVYZ3QoWO957Bfdd0O8nQleis5gw/s400/3.jpg" width="400" /></a></div>
<br />
<br />
That's it, we can now just enter the values in simple fashion.<br />
<br />
If we enter the value 9999,99 once again, we will see the estimated behaviour.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz1nUm1rr6rK8pyIBRijhsqUJ8dD1INGaGIR0aCdb64bD9Oj5-JGn-aKS_SKkpVbSvjDpz2qfZw6DBhMhtlD79ezYZr07x_Dnmd3VFpe6wrxYUvZnZLYz-QoSgMxEJIQSAXYTRb1qLfQU/s1600/4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgz1nUm1rr6rK8pyIBRijhsqUJ8dD1INGaGIR0aCdb64bD9Oj5-JGn-aKS_SKkpVbSvjDpz2qfZw6DBhMhtlD79ezYZr07x_Dnmd3VFpe6wrxYUvZnZLYz-QoSgMxEJIQSAXYTRb1qLfQU/s400/4.jpg" width="360" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNrED5il9nwAPJa26bZaLUFtJCnPnfBSGpC6qJwZBIXiBAUNU-wMT5LUPjI4AXTjD0qFNpBM49PlNOeWTcJKkznnK5iCLdJKAApP1cSFNtfalOyo0hbHwcvZBth6QK22heRmeuoc1kV4Y/s1600/5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNrED5il9nwAPJa26bZaLUFtJCnPnfBSGpC6qJwZBIXiBAUNU-wMT5LUPjI4AXTjD0qFNpBM49PlNOeWTcJKkznnK5iCLdJKAApP1cSFNtfalOyo0hbHwcvZBth6QK22heRmeuoc1kV4Y/s400/5.jpg" width="378" /></a></div>
<br />
<br />
This entry shows, how easy it is to create a converter to a RichUIInput component, another nice use case could be, that you enter a value with a currency and then use the converter to calculate the currency exchange rate and thus convert it to the databases default currency.<br />
<br />
Feel free to check out an example project from the German ADF Community (a subgroup of the <a href="https://community.oracle.com/community/other-languages/deutsche-oracle-entwickler-community/adf-mobile-cloud-space" target="_blank">German Enterprise Application Development Group</a>) github:<br />
<br />
<a href="https://github.com/ADFCommunityDE/ADFCustomCurrencyConverter.git" target="_blank">ADFCommunityDE/ADFCustomCurrencyConverter</a><br />
<br />
Thanks for the read, cheers!<br />
<br /></div>
Markus Klenkehttp://www.blogger.com/profile/02343002789283818840noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-133922961224591522017-03-14T22:54:00.000+01:002017-03-14T22:54:03.611+01:00TAKE Four - Amazon Echo (Alexa) mit PL/SQL<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYQnybaMhQKwKPmffLOZXgOulSE3-_OcXLgxYSjZuaUBiGtGPyXPfHyegg9p03J6eZDOC-pIj8fudTamZS2xaeVi_ry8Ae4bUIktcRaVWdKWYZnRUBKDISSiC5XOIxW23IzUADNHbOchA/s1600/Unbenannt.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYQnybaMhQKwKPmffLOZXgOulSE3-_OcXLgxYSjZuaUBiGtGPyXPfHyegg9p03J6eZDOC-pIj8fudTamZS2xaeVi_ry8Ae4bUIktcRaVWdKWYZnRUBKDISSiC5XOIxW23IzUADNHbOchA/s400/Unbenannt.png" width="400" /></a></div>
<br />
<br />
Es ist wieder soweit, TEAM lädt zum vierten <span style="color: red;">TAKE</span> (TEAM After Work Knowledge). Wer sich schon immer Oracle Datenbank-orientiert mit dem Thema "Sprachgesteuerte Anwendungen mit Amazon Echo" auseinandersetzen oder generell einen Einblick in das Erstellen von Amazon Anwendungen (Skills) erhalten wollte ist hier genau richtig. Das Beste daran? Es ist vollkommen kostenfrei und sie dürfen selbst Hand an legen.<br />
<br />
Was erwartet Sie genauer?<br />
<br />
<div style="margin: 0px;">
<span style="font-family: Times New Roman,serif; font-size: small;"><span style="font-size: 12pt;"><span style="font-family: Calibri,sans-serif;">Lassen Sie sich schon vorab mit</span><span style="font-family: Calibri,sans-serif;"> </span><a href="http://www.team-pb.de/take-4/" target="_blank"><span style="font-family: Calibri,sans-serif;"><span style="color: purple;">diesem Video</span></span></a><span style="font-family: Calibri,sans-serif;"> </span><span style="font-family: Calibri,sans-serif;">von Wolf G. Beckmann in das Thema</span><span style="font-family: Calibri,sans-serif;"><b> </b></span><span style="font-family: Calibri,sans-serif;"><b>Amazon Echo (Alexa) mit PL/SQL</b></span><span style="font-family: Calibri,sans-serif;"> </span><span style="font-family: Calibri,sans-serif;">einführen.</span></span></span></div>
<div style="margin: 0px;">
<span style="font-family: Times New Roman,serif; font-size: small;"><span style="font-size: 12pt;"><span style="font-family: Calibri,sans-serif;"><b> </b></span></span></span></div>
<div style="margin: 0px;">
<span style="font-family: Times New Roman,serif; font-size: small;"><span style="font-size: 12pt;"><span style="font-family: Calibri,sans-serif;">Mit Amazon Echo steuern Sie über die Spracherkennung Alexa Ihr Smart Home und alle damit verbundenen Geräte.</span><span style="font-family: Calibri,sans-serif;"> </span><span style="font-family: Calibri,sans-serif;"><b>Amazon Echo lässt sich aber auch für das eigene Unternehmen einsetzen – speziell mit der Oracle Datenbank-Welt.</b></span></span></span></div>
<div style="margin: 0px;">
<span style="font-family: Times New Roman,serif; font-size: small;"><span style="font-size: 12pt;"><span style="font-family: Calibri,sans-serif;"> </span></span></span></div>
<div style="margin: 0px;">
<span style="font-family: Times New Roman,serif; font-size: small;"><span style="font-size: 12pt;"><span style="font-family: Calibri,sans-serif;">Bei <span style="color: red;">TAKE four</span> schreiben wir einen</span><span style="font-family: Calibri,sans-serif;"> </span><span style="font-family: Calibri,sans-serif;"><b>Skill in PL/SQL</b></span><span style="font-family: Calibri,sans-serif;">, da Amazon Echo hervorragend und direkt mit der Oracle-Datenbank zusammen arbeitet.</span></span></span></div>
<div style="margin: 0px;">
<span style="font-family: Times New Roman,serif; font-size: small;"><span style="font-size: 12pt;"><span style="font-family: Calibri,sans-serif;"> </span></span></span></div>
<div style="margin: 0px;">
<span style="font-family: Times New Roman,serif; font-size: small;"><span style="font-size: 12pt;"><span style="font-family: Calibri,sans-serif;">Lassen Sie sich die Chance für Ihr Business nicht entgehen:</span><span style="font-family: Calibri,sans-serif;"> </span><a href="http://www.team-pb.de/take-4/" target="_blank"><span style="font-family: Arial,sans-serif; font-size: x-small;"><span style="font-size: 11pt;"><span style="color: purple; font-family: Calibri,sans-serif; font-size: small;"><span style="font-size: 12pt;">Zur Agenda und Anmeldung</span></span></span></span></a></span></span></div>
<div style="margin: 0px;">
<span style="font-family: Times New Roman,serif; font-size: small;"><span style="font-size: 12pt;"><span style="font-family: Calibri,sans-serif;"> </span></span></span></div>
<div style="margin: 0px 0px 12pt 35.4pt;">
<span style="font-family: Times New Roman,serif; font-size: small;"><span style="font-size: 12pt;"><span style="font-family: Calibri,sans-serif;"><b>TAKE four – „Amazon Echo (Alexa) mit PL/SQL"</b></span><span style="font-family: Calibri,sans-serif;"><b><br /> Dienstag, 28.03.17 bei TEAM in Paderborn</b></span><span style="font-family: Calibri,sans-serif;"><b><br /> Beginn: 17:00 Uhr | Ende: 19:30 Uhr</b></span></span></span></div>
<div style="margin: 0px;">
<span style="font-family: Times New Roman,serif; font-size: small;"><span style="font-size: 12pt;"><span style="font-family: Calibri,sans-serif;">Bitte bringen Sie zur Veranstaltung Ihren eigenen Laptop mit.</span></span></span></div>
<div style="margin: 0px;">
<span style="font-family: Times New Roman,serif; font-size: small;"><span style="font-size: 12pt;"><span style="font-family: Calibri,sans-serif;"> </span></span></span></div>
<div style="margin: 0px;">
<span style="font-family: Times New Roman,serif; font-size: small;"><span style="font-size: 12pt;"><span style="font-family: Calibri,sans-serif;">Wir freuen uns auf Ihr Kommen zu TAKE four!</span></span></span></div>
Markus Klenkehttp://www.blogger.com/profile/02343002789283818840noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-24524697865635897872017-02-28T17:20:00.000+01:002017-02-28T17:31:08.776+01:00Delaying Attribute Validations in ADF for LOV-based fields until commitI think many ADF developers have encountered the unlazy validation of JSF components during their UI implementations. Especially when creating a new record, the auto submit / partial trigger reactions are quite unpleasant for users. Take this for example:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwDsplfU69h7E2lHgpde5FfDuTBwPrWqOHEcH5HF3-ZKNL4ZLtMTIYKxHCaMg1FyIMLmhZS7pw4sJoemcyXaV7ltrYF4xx1pUJnNPqvPdcwwp9XTXytekt4199rmZ46J7NPRHGv6Eo-pA/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="288" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwDsplfU69h7E2lHgpde5FfDuTBwPrWqOHEcH5HF3-ZKNL4ZLtMTIYKxHCaMg1FyIMLmhZS7pw4sJoemcyXaV7ltrYF4xx1pUJnNPqvPdcwwp9XTXytekt4199rmZ46J7NPRHGv6Eo-pA/s640/1.jpg" width="640" /></a></div>
<br />
In this, the user inserted the fields in tab-order. After leaving the field salary (doing a auto submit, triggering the job field), the job validator executes and marks a red border to inform the user of the issue. As the user has never inserted the field up to this point, this is not very nice. One valid change is to remove the mandatory flag from the attribute and delegate the validation towards entity level. But then, you will lose the "red border at attribute" response and get a FacesMessage leaving the user in question, which attribute to change to solve the invalid entity.<br />
<br />
Andrejus Baranovskis has written a nice article, how to solve this issue when encountering attributes on the same entity, the validation is occuring on:<br />
<br />
<a href="http://andrejusb.blogspot.de/2017/02/setting-invalid-fields-for-ui-in-adf-bc.html" target="_blank">http://andrejusb.blogspot.de/2017/02/setting-invalid-fields-for-ui-in-adf-bc.html</a><br />
<br />
So let us extend the usecase a bit.<br />
<br />
<b>Issue:</b><br />
<br />
For many List of Value components, users do not want to see the key (for example JobId) in the input text, but the looked up value (JobTitle in this case).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2LlOVN27BitoABPfcRlV5VTUuG0Bj9vNh9qCD9Nzla1iIeRk_UjvjzCNnPN-r8W364VqWsmWsHSJw2Mgo1r5qE6YkHeMNkgn_9SnyTYKSUnrN21s0XeSrV8mzSSH5o1k1-MmHEk8EW5s/s1600/14.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2LlOVN27BitoABPfcRlV5VTUuG0Bj9vNh9qCD9Nzla1iIeRk_UjvjzCNnPN-r8W364VqWsmWsHSJw2Mgo1r5qE6YkHeMNkgn_9SnyTYKSUnrN21s0XeSrV8mzSSH5o1k1-MmHEk8EW5s/s640/14.jpg" width="640" /></a></div>
<br />
<br />
To implement this, there are many options to take. To combine the lov requirement and the delayed attribute validation, let me show you one implementation, that works and is quite declarative.<br />
<br />
Define the following use cases:<br />
<br />
<ul>
<li>Users want to be able to change the Job of an employee using a list of values showing the title, not the id of the job</li>
<li>When changing the salary of an employee, the job will be nullified</li>
<li>An empty job leads to a validation, but this should only occur on save button or navigation</li>
</ul>
<br />
The second use case defines the usage of partial triggers / auto submit on JSF side later on.<br />
<br />
<b>Solution:</b><br />
<br />
To start, we need the base Entity (Employees), a View Object on that entitity (EmployeesView) and a Lookup View Object (JobsLookupView).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxBiECQSNdZmdoPhIC4IYOqztUdBLakxwNwhzB5p31z6c_esBYzRzLmH_yRcfsrA3rqs6saZDwDn4mJIaVglOywBaIuAraAEhltxo_nh2wQTwV9AeBOZ7F3iil6gp1VHuWV3DDrBXkkM0/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxBiECQSNdZmdoPhIC4IYOqztUdBLakxwNwhzB5p31z6c_esBYzRzLmH_yRcfsrA3rqs6saZDwDn4mJIaVglOywBaIuAraAEhltxo_nh2wQTwV9AeBOZ7F3iil6gp1VHuWV3DDrBXkkM0/s320/2.jpg" width="320" /></a></div>
<br />
Next create a Transient Attribute on Employees Entity, representing the JobName. This will be the target Attribute for the delayed validation and is the base attribute for the lov.<br />
<br />
This Attribute uses an expression referring a ViewAccessor on JobsLookupView:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXTpiJDUWr_SvClzdEhrcqk4gKo6c77J7Bi65fPjiNbrQen5AMiJJ75bSCCQ4t3FAue4zHd-VRD8n0p3U0BhUUQgjnuhiLvhvaxfyYtdjeQqiHTTH1bnN83Q6BXOWEInbyigMZoKA-Alk/s1600/3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="334" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXTpiJDUWr_SvClzdEhrcqk4gKo6c77J7Bi65fPjiNbrQen5AMiJJ75bSCCQ4t3FAue4zHd-VRD8n0p3U0BhUUQgjnuhiLvhvaxfyYtdjeQqiHTTH1bnN83Q6BXOWEInbyigMZoKA-Alk/s640/3.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUZpCMkYj7O5E92xR2dwgCHQ9mcuCl57G-me38cC0B-flx4A0joD5MXijmX7e8nnHy3XRuonHUH4oKGruzHOnNQ1GEvGWJZXDL00epp3BfXLD4rsNJv8mbdLsmPFHG1mH_5Bae-o6O2hs/s1600/4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="409" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUZpCMkYj7O5E92xR2dwgCHQ9mcuCl57G-me38cC0B-flx4A0joD5MXijmX7e8nnHy3XRuonHUH4oKGruzHOnNQ1GEvGWJZXDL00epp3BfXLD4rsNJv8mbdLsmPFHG1mH_5Bae-o6O2hs/s640/4.jpg" width="640" /></a></div>
<br />
<br />
Expression:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">JobId != null ? JobsLookupView.getAllRowsInRange().find{it['jobId']==JobId}['jobTitle'] : null</span><br />
<br />
Next, we will add the entity validation (referring Andrejus' blog entry):<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXEz5vMzcE1LPhNmTMDZ4BGJhcuDkzorrI2aD84nYeaxoUfy0MtoYQ_-LbINjPQfSsa0F-4FqrBWXuv_fMdslgrkrzfIWHLquSPt5dHLewTCwAHS742fb8j86-H-QAhG_luQBgH1NVR_g/s1600/5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXEz5vMzcE1LPhNmTMDZ4BGJhcuDkzorrI2aD84nYeaxoUfy0MtoYQ_-LbINjPQfSsa0F-4FqrBWXuv_fMdslgrkrzfIWHLquSPt5dHLewTCwAHS742fb8j86-H-QAhG_luQBgH1NVR_g/s400/5.jpg" width="367" /></a></div>
<br />
(opt. add failure message)<br />
<br />
Add dependencies on Entity attributes:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGutEYSL-tAn5a40kJ5oZ9wEG-bbSb4rRo_G1fIvT-G-L8LYHxYA_t7PzeAgqL5nrocuw83bElhSoYn4EfNSVluTFFp1qYKaEY74Sc7LqFJnUkbnPPjLinmvui7GsGKkhWgeOek5oZRzc/s1600/6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGutEYSL-tAn5a40kJ5oZ9wEG-bbSb4rRo_G1fIvT-G-L8LYHxYA_t7PzeAgqL5nrocuw83bElhSoYn4EfNSVluTFFp1qYKaEY74Sc7LqFJnUkbnPPjLinmvui7GsGKkhWgeOek5oZRzc/s640/6.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpjfyAc4xbTwG0_CTe-K2ZnRisFNnMGWKP5yTApPPufJSq_nmrbh-tWh4yYhioXXQWHQ0MrZny5wOkpbUf63zOPXVha4jYyS5H49i4HKmyDgtBxTsg4DGwp2DT-Kn26vOowqL46Y3W65M/s1600/7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpjfyAc4xbTwG0_CTe-K2ZnRisFNnMGWKP5yTApPPufJSq_nmrbh-tWh4yYhioXXQWHQ0MrZny5wOkpbUf63zOPXVha4jYyS5H49i4HKmyDgtBxTsg4DGwp2DT-Kn26vOowqL46Y3W65M/s640/7.jpg" width="640" /></a></div>
<br />
Additionally remove the mandatory flag from the JobId Attribute (to allow entity validation to do the not null check)<br />
<br />
Add LOV to EmployeesView JobName Attribute:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjudhbPU28J-i8JQedCk1RUFDK27wDXsFdu7xdq3MDasvy-0dEKyWPDjFapSiovLTJc_r5hEb5MFHZixaXjoXVDOTMm_B1LX4HjIlXO2uoP62rW5NiNsj60pXqj0cQfPpFpZ7G74hl3zfc/s1600/8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjudhbPU28J-i8JQedCk1RUFDK27wDXsFdu7xdq3MDasvy-0dEKyWPDjFapSiovLTJc_r5hEb5MFHZixaXjoXVDOTMm_B1LX4HjIlXO2uoP62rW5NiNsj60pXqj0cQfPpFpZ7G74hl3zfc/s640/8.jpg" width="640" /></a></div>
<br />
(rem: We can use the Employee-level view accessor in this case because we do not use dynamic query components in this example, so no additional view object instances needed).<br />
<br />
Create UI<br />
<br />
Finally just create a simple Form Layout on a page, removing the JobId Attribute and ensuring the InputListOfValues Component for JobName.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5P2iI3mLJ_U2uxK34y57I6wKJFMUDjIprJ6_SRnopego2TsHKuhyE7qY25MO_DeDraATUfWY0X3QwTxXe4wO2gfV1NsniYUv2noiggQtfwSkreehjvUNXIAWtc3ZF1aO5dqYpn_smxLk/s1600/9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5P2iI3mLJ_U2uxK34y57I6wKJFMUDjIprJ6_SRnopego2TsHKuhyE7qY25MO_DeDraATUfWY0X3QwTxXe4wO2gfV1NsniYUv2noiggQtfwSkreehjvUNXIAWtc3ZF1aO5dqYpn_smxLk/s1600/9.jpg" /></a></div>
<br />
<br />
Then update the following attributes for Salary resp. JobName Components:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdufkrfK7FKYJ5y84zgVKv4fjGCXEKAeoTFZouZ6-I8csqZsbz_RrlCK10XBz6PB9de2pz48jT-opkaNXBifdKXyzJ4XQplODYC68SsYDNVU8RuFF1lWU4HLV2zooxEEWYTJkBCeol4Ls/s1600/10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="138" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdufkrfK7FKYJ5y84zgVKv4fjGCXEKAeoTFZouZ6-I8csqZsbz_RrlCK10XBz6PB9de2pz48jT-opkaNXBifdKXyzJ4XQplODYC68SsYDNVU8RuFF1lWU4HLV2zooxEEWYTJkBCeol4Ls/s640/10.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfJHmRdB0QdkTFekhn_927QRg7HRDrun2Tf2J7zgCXJGrkkniHwolMoa3SiRPLJguryxiFnViKyDeSDB0rT7NLNQX2WfsqN3HnH9hIs3OxPBbfeE65c1oerjELl09vPOkaITSj2OR_nVQ/s1600/11.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="164" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfJHmRdB0QdkTFekhn_927QRg7HRDrun2Tf2J7zgCXJGrkkniHwolMoa3SiRPLJguryxiFnViKyDeSDB0rT7NLNQX2WfsqN3HnH9hIs3OxPBbfeE65c1oerjELl09vPOkaITSj2OR_nVQ/s640/11.jpg" width="640" /></a></div>
<br />
Additionally, drag the CreateInsert Operation onto the page, to create a new record.<br />
<br />
When running the app, and creating a new employee again tabbing through the form, we will see, there is no validation when tabbing out of the salary field (because the showRequired=true instead of mandatory=true).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEWEsMc5neblVA1fjU9BjXge8KWwXgns0RBlgEXc8ZW0JmVfVeEuJWXytmWIRyxtaaHUsU8D8ojCBi6r6hCZX3dj91mO-erMLFIoDHm1CBu6JDGtAuit831DW7BQ_CRJfh98nmaRUmRRE/s1600/12.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEWEsMc5neblVA1fjU9BjXge8KWwXgns0RBlgEXc8ZW0JmVfVeEuJWXytmWIRyxtaaHUsU8D8ojCBi6r6hCZX3dj91mO-erMLFIoDHm1CBu6JDGtAuit831DW7BQ_CRJfh98nmaRUmRRE/s640/12.jpg" width="640" /></a></div>
<br />
<br />
When commit or navigation is triggered, the entity validation will fire, but because of the special validation attribute, we will see this on the single attribute instead of a FacesMessage.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv5Zm726jaY9kET4eXHIVv1La6F-gqlHG4sNKDqT3U2mGeGZSg76crPpWO813sF7g11rSlPuYbbpo8SqjOkOS6Wc5OVJCdYl0rQBmnphoE52oFDl-eLXk_gpCqJgkTFmpg3fHFrXoZzDU/s1600/13.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv5Zm726jaY9kET4eXHIVv1La6F-gqlHG4sNKDqT3U2mGeGZSg76crPpWO813sF7g11rSlPuYbbpo8SqjOkOS6Wc5OVJCdYl0rQBmnphoE52oFDl-eLXk_gpCqJgkTFmpg3fHFrXoZzDU/s640/13.jpg" width="640" /></a></div>
<br />
This is especially helpful, if you are editing data inside a popup.<br />
<br />
<br />
<b>TL;DR / Result:</b><br />
<br />
Please feel free to checkout a demo application implementing the shown at the german ADFCommunity github repository<br />
<br />
<a href="https://github.com/ADFCommunityDE/DelayedAttributeValidationOnLookup.git" target="_blank">https://github.com/ADFCommunityDE/DelayedAttributeValidationOnLookup.git</a><br />
<br />
Any questions regarding this topic or want to see a feature/idea implemented in ADF? Just send me a message ;)<br />
<br />
mail: <a href="mailto:mke@team-pb.de" target="_blank">mke@team-pb.de</a><br />
twitter: <a href="https://twitter.com/MarkusKlenke" target="_blank">@MarkusKlenke</a><br />
<br />
Cheers!Markus Klenkehttp://www.blogger.com/profile/02343002789283818840noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-47172595163358745642017-02-13T15:17:00.000+01:002017-08-10T12:24:27.518+02:00Individual Frame Layout in ADF 12c via custom RichRenderer ClassIn one of our Forms to ADF modernization projects, one of our customers wanted to keep the UI structure more or less the same. For many components, there are best practices to map one Oracle Forms UI Component to ADF Structures, but in our case, we had to provide a solution to the following UI-Container Pattern:
<br />
<br />
<<NamedFramePattern>><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://docs.oracle.com/cd/A97335_02/apps.102/a73073/gifs/dev2k06a.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="378" src="https://docs.oracle.com/cd/A97335_02/apps.102/a73073/gifs/dev2k06a.gif" width="640" /></a></div>
The idea of this pattern is to provide help for the user to see a categorization of UI Items. In general ADF, this might be done via UI Categorization via UI Hints at View Object Level. Unfortunately, this resolves into af:group containers on UI, which are interpreted by the parent container to make sense out of the items. So all in all, we are limited by the frameworks default implementations.<br />
<br />
To solve the problem, we thought about the general solution in free html/css context. Here the problem is easy to solve. See<br />
<br />
<a href="http://jsfiddle.net/ZgEMM/685/" target="_blank">http://jsfiddle.net/ZgEMM/685/</a><br />
<br />
for a sample solution. To reach the explicit HTML code you need out of JSF components is (in most cases) not possible.<br />
<br />
Again, ADF supports the creation of own declarative components, but typically we just join other JSF compontents to our liking.<br />
<br />
So we have to go one step further. The next steps show you how to create a "component/renderer" mashup to achieve the NamedFramePattern in ADF.<br />
<br />
1. Create a declarative container component that has only a panel group layout and a content facetRef. Be sure to add a ComponentClass to your Declarative component for easier access and uniqueness afterwards.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFXtTZQfGCYtRCY_6gkVvSaGdWO0uhPfpYIaDYGHIm6j42j-ZtlntTD-8_DLM3xtP_RkQWQYRuOwDV_RAIAf0wfUgBUJNkTCXNxnhQQvNoYSQ6BPT_EAicXgGuoNCDNsTvA1p1GbU_lT0/s1600/2017_02_13_14_16_07_Cortana.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFXtTZQfGCYtRCY_6gkVvSaGdWO0uhPfpYIaDYGHIm6j42j-ZtlntTD-8_DLM3xtP_RkQWQYRuOwDV_RAIAf0wfUgBUJNkTCXNxnhQQvNoYSQ6BPT_EAicXgGuoNCDNsTvA1p1GbU_lT0/s400/2017_02_13_14_16_07_Cortana.jpg" width="400" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHxc5dc5cMZuOmGcw5hHoj8fZbY6MSa1yir9ibvCLuX8YAjoCazcnhym9ZS7VTVXJ8D3xHq02gNksOOWJviSe31FtnBz9xmg3AF6pmxMRnTy2j2yLKFlrmFVFmwr2qHjR9BkV0TgHMFr8/s1600/2017_02_13_14_14_41_Neue_Benachrichtigung.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHxc5dc5cMZuOmGcw5hHoj8fZbY6MSa1yir9ibvCLuX8YAjoCazcnhym9ZS7VTVXJ8D3xHq02gNksOOWJviSe31FtnBz9xmg3AF6pmxMRnTy2j2yLKFlrmFVFmwr2qHjR9BkV0TgHMFr8/s400/2017_02_13_14_14_41_Neue_Benachrichtigung.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3PeqtnZOb1pe-Ed5jtczEvsr-zL4PQiWpAnF9WRPQ8cFkrYgzCbWIgGZBdjkKKDrIRKPkgxOwQHTYYW7dBBJBEmrEwPeQxdRYxJ4DWwnjNXiHQr7eVInt9kRUVZlBbSPuqmbEkocipYY/s1600/attrs.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3PeqtnZOb1pe-Ed5jtczEvsr-zL4PQiWpAnF9WRPQ8cFkrYgzCbWIgGZBdjkKKDrIRKPkgxOwQHTYYW7dBBJBEmrEwPeQxdRYxJ4DWwnjNXiHQr7eVInt9kRUVZlBbSPuqmbEkocipYY/s400/attrs.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDUYe0QgucLV9BstHad0cM5KNVSLUXIEhMJhrDsWWpNewLzdMCzFgMRwAlb0cr_vIP9A0BA8KjK8qCY1Yw-8YPmO6o-5MyE-pkUN_1AI-5lHqgZyuB3UJtnYVNKGekZJvzQpF9aJQnxJk/s1600/pgl_def.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="65" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDUYe0QgucLV9BstHad0cM5KNVSLUXIEhMJhrDsWWpNewLzdMCzFgMRwAlb0cr_vIP9A0BA8KjK8qCY1Yw-8YPmO6o-5MyE-pkUN_1AI-5lHqgZyuB3UJtnYVNKGekZJvzQpF9aJQnxJk/s640/pgl_def.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
(The Group layout inside is necessary, since all declarative components are not rendered per definition of the UIXBaseComponent-Renderer because it is only a reference for a JSF include).<br />
<br />
2. Create a RichRenderer that is based on the renderer for ADF Group Layouts and add additional HTML code to the rendered feature. This can be done by overriding the encodeAll(...) method of the parent class.<br />
<br />
<br />
<pre class="brush:java;">package de.teampb.ir.templates.nf;
import java.io.IOException;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import oracle.adf.view.rich.component.rich.fragment.RichDeclarativeComponent;
import oracle.adf.view.rich.component.rich.layout.RichPanelFormLayout;
import oracle.adf.view.rich.render.ClientComponent;
import oracle.adf.view.rich.render.RichRenderer;
import oracle.adfinternal.view.faces.renderkit.rich.DeclarativeComponentRenderer;
import org.apache.myfaces.trinidad.bean.FacesBean;
import org.apache.myfaces.trinidad.context.RenderingContext;
import org.apache.myfaces.trinidad.render.CoreRenderer;
import oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer;
public class NamedFrameRenderer extends PanelGroupLayoutRenderer {
public NamedFrameRenderer() {
super();
}
private static final String DEFAULT_COLOR = "#AAAAAA";
private static final String IMPORTANT_COLOR = "#FFAAAA";
@Override
protected void encodeAll(FacesContext facesContext, RenderingContext renderingContext, UIComponent uIComponent,
ClientComponent clientComponent, FacesBean facesBean) throws IOException {
ResponseWriter rw = facesContext.getResponseWriter();
if (uIComponent.getParent() instanceof NamedFrame) {
NamedFrame nf = (NamedFrame) uIComponent.getParent();
rw.startElement("div", null);
rw.writeAttribute("style", "border: 2px solid " + getColor(nf) + "; margin: 5px; padding: 5px", null);
rw.startElement("h2", null);
rw.writeAttribute("style",
"text-indent: 30px;\n" + " margin-top: -10px;\n" + " height: 10px;\n" +
" line-height: 20px;\n" + " font-size: 15px;", null);
rw.startElement("span", null);
rw.writeAttribute("style", "background-color:#FFFFFF; color:#000000;", null);
rw.writeText(nf.getTitle(), null);
rw.endElement("span");
rw.endElement("h2");
super.encodeAll(facesContext, renderingContext, uIComponent, clientComponent, facesBean);
rw.endElement("div");
} else
super.encodeAll(facesContext, renderingContext, uIComponent, clientComponent, facesBean);
}
private String getColor(NamedFrame nf) {
if ("important".equals(nf.getType())) {
return IMPORTANT_COLOR;
} else
return DEFAULT_COLOR;
}
}
</pre>
<br />
The idea is that the renderer overrides the default Renderer for Panel Group layouts. So we have to keep the default implementation (the inside super.encodeAll line).<br />
<br />
(The HTML code could be beautified by using classes instead of inline style, but I think you get the idea)<br />
<br />
3. Add renderer to faces-Config.xml in the consuming ViewController Project.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgojlNA6LdKk-KPUuNsnYVrE8IMYUxq1ZTWTwDJ0N0aC9s-B_YSdmO6ZXR2bO30GvqSJZlg7Hz7rGVK0mFNfREITmwqQgKDspJBymmpLJsh7K0fClvny6qeVhzXjS1OC-74-gbolFmRmaI/s1600/faces-config.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgojlNA6LdKk-KPUuNsnYVrE8IMYUxq1ZTWTwDJ0N0aC9s-B_YSdmO6ZXR2bO30GvqSJZlg7Hz7rGVK0mFNfREITmwqQgKDspJBymmpLJsh7K0fClvny6qeVhzXjS1OC-74-gbolFmRmaI/s640/faces-config.jpg" width="640" /></a></div>
<br />
4. Use declarative component as usual to achieve the layout addition by the renderer.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicq0rXZ0fTQWEtIT0_LODuJzgzoy_lbuk9_lis-h42cAwS5taR2XGloXfs1QCL7bss7iQ6s4upDDSexaLbOtiaYfGORYgoQ3xQu5OpwQzjV9f81LoaDANX71EIVQpzvB4OGtFwuzh_LKI/s1600/usage_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="111" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicq0rXZ0fTQWEtIT0_LODuJzgzoy_lbuk9_lis-h42cAwS5taR2XGloXfs1QCL7bss7iQ6s4upDDSexaLbOtiaYfGORYgoQ3xQu5OpwQzjV9f81LoaDANX71EIVQpzvB4OGtFwuzh_LKI/s400/usage_1.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1S8UYeQ27hiseGJVWGRPLKgDH5SDwwCa7woq1_ruWFwdlOO010Qmqowf3kP3VhyDXA1VAiSD_R1dtPGhHF-TP3N2Zmh25NbyIjscInhOlVVLxbvb-1cXIDxNhSZTlARdAAif4JXenfsY/s1600/usage_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1S8UYeQ27hiseGJVWGRPLKgDH5SDwwCa7woq1_ruWFwdlOO010Qmqowf3kP3VhyDXA1VAiSD_R1dtPGhHF-TP3N2Zmh25NbyIjscInhOlVVLxbvb-1cXIDxNhSZTlARdAAif4JXenfsY/s400/usage_2.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm1h75IgdB-wnkP_jLPA5FxhetT_y4FSOyjlzcHsyZLzzXdlTDQB6ErsOuTdfZb9LH3Dz2qMUz3i1VhdSfrNebr-ixj5k2e1rlrbJMRRzOJaTa9oWbo1YLR-HRXDFnmQoZHuI08Tsb0R0/s1600/usage_3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="327" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm1h75IgdB-wnkP_jLPA5FxhetT_y4FSOyjlzcHsyZLzzXdlTDQB6ErsOuTdfZb9LH3Dz2qMUz3i1VhdSfrNebr-ixj5k2e1rlrbJMRRzOJaTa9oWbo1YLR-HRXDFnmQoZHuI08Tsb0R0/s400/usage_3.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
As you can see from the last image, since the JDeveloper design view uses the internal renderer classes we also get the advantage of what-you-see-is-what-you-get development. The resulting ADF application then looks as follows:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhni55zc2hcHFmT13C0W2RhiserYrS3a-1M9EENp7dJ2Nf-ULZ8P1EeTted0STnrxTXG09EUWIMxKbcbceOD2324D2JNfLdrLRlK6TQsQEklAaWyur7rWJb_MHhiqHu1iuZb2v66NUyVAY/s1600/result.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhni55zc2hcHFmT13C0W2RhiserYrS3a-1M9EENp7dJ2Nf-ULZ8P1EeTted0STnrxTXG09EUWIMxKbcbceOD2324D2JNfLdrLRlK6TQsQEklAaWyur7rWJb_MHhiqHu1iuZb2v66NUyVAY/s400/result.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDbyR-uyGW2par7JkN0RQ0vV2fbjN4i2Dj09xm2AcEkVpctPQTbBhSEBWkgh9G3qX4TzdOYBXFwEQsKE0J0E8XxuDtBPseiw5CZrE19CHEp8dBcuIxt_d9zbtaomd_MHE9nKrTws3ajPo/s1600/result_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDbyR-uyGW2par7JkN0RQ0vV2fbjN4i2Dj09xm2AcEkVpctPQTbBhSEBWkgh9G3qX4TzdOYBXFwEQsKE0J0E8XxuDtBPseiw5CZrE19CHEp8dBcuIxt_d9zbtaomd_MHE9nKrTws3ajPo/s640/result_2.jpg" width="640" /></a></div>
<br />
<br />
Please feel free to download the sources at<br />
<br />
<a href="https://github.com/TEAMPB/ADF_POC.git">https://github.com/TEAMPB/ADF_POC.git</a><br />
<br />
and pull the sources. To run the application, you need access to an HR schema. Then Run the hr-main.xml Task-Flow.<br />
<br />
Cheers!Markus Klenkehttp://www.blogger.com/profile/02343002789283818840noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-74419651006226436702016-09-13T12:34:00.001+02:002016-09-13T12:51:26.125+02:00Oracle JET 2.1.0. missing --web=true serve parameter in hybrid grunt templateMany developers try to work WYSIWYG-style on their projects. Especially in mobile/hybrid projects, many times it comes in handy to develop against a web browser instead of a mobile phone or emulator.<br />
<div>
<br /></div>
<div>
In Oracle JET 2.0.1 it was possible to develop a JET Hybrid application and serve the app via </div>
<div>
<br /></div>
<div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">grunt serve --platform=android --web=true</span></blockquote>
</div>
<div>
<br /></div>
<div>
which would prebuild the sources for android devices but create a local nodeJS server that runs the application. This meant very fast development, especially in trial and error phases of development.</div>
<div>
<br /></div>
<div>
Since Version 2.1.0 Oracle turned grunt tasks towards own oraclejet grunt tasks (coming with the npm package grunt-oraclejet), which seem not to work well with the old parameters. So the given command results in:</div>
<div>
<br /></div>
<div>
<blockquote class="tr_bq">
<span style="color: orange; font-family: "courier new" , "courier" , monospace;">Warning: Flag 'web' not supported! Use --force to continue</span><br />
<span style="color: red; font-family: "courier new" , "courier" , monospace;">Aborted due to warnings.</span></blockquote>
</div>
<div>
<br /></div>
<div>
Even forcing does not change anything to this matter. There might be a "parameter passing" option to the oraclejet grunt build file, but I did not find anything like that. So to keep up the style of developing, we just want to create a new grunt task.</div>
<div>
<br /></div>
<div>
First, we need to use some additional npm packages:</div>
<div>
<br /></div>
<div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">grunt-contrib-connect</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">grunt-open</span></blockquote>
</div>
<div>
<br /></div>
<div>
You may need to install the packages via </div>
<div>
<br /></div>
<div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">npm install grunt-contrib-connect --save-dev</span></blockquote>
</div>
<div>
<br /></div>
<div>
resp.</div>
<div>
<br /></div>
<div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">npm install grunt-open --save-dev</span></blockquote>
</div>
<div>
<br /></div>
<div>
You can then change the Gruntfile.js of your project to be the following:</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">
</span>
<br />
<pre class="jscript"><span style="font-family: "courier new" , "courier" , monospace;">'use strict';
var path = require('path');
module.exports = function(grunt) {
require("load-grunt-config")(grunt,
{
configPath: path.join(process.cwd(), "scripts/grunt/config")
});
grunt.loadNpmTasks("grunt-oraclejet");
grunt.loadNpmTasks('grunt-contrib-connect');
grunt.loadNpmTasks('grunt-open');
grunt.initConfig({
connect: {
dev: {
options: {
port: 8090,
base: 'hybrid/www',
keepalive: true
}
}
},
open : {
dev : {
path: 'http://localhost:8090',
}
}
});
grunt.registerTask("build", (buildType) => {
grunt.task.run([`oraclejet-build:${buildType}`]);
});
grunt.registerTask("serve", (buildType) => {
grunt.task.run([`oraclejet-serve:${buildType}`]);
});
grunt.registerTask("test", (buildType) => {
grunt.task.run(["build","open:dev"]);
})
grunt.registerTask("startServer",(buildType) => {
grunt.task.run(["connect:dev"]);
})
};</span></pre>
</div>
</div>
<div>
<br /></div>
<div>
With this gruntfile you can start a local nodeJS Server on your "hardcoded-but-default" web-target folder (hybrid/www) via </div>
<div>
<br /></div>
<div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">grunt startServer</span></blockquote>
</div>
<div>
<br /></div>
<div>
The command </div>
<div>
<br /></div>
<div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">grund test</span></blockquote>
</div>
<div>
<br /></div>
<div>
will clean and build your sources in the default platform (android for hybrid apps in OracleJET 2.1.0) and then open your default browser to load the newly build page. </div>
<div>
<br /></div>
<div>
This is by far not as effective as the --web=true serve-parameter, but it is better than nothing ;)</div>
<div>
<br /></div>
<div>
Have fun to try it yourself, just scaffold your hybrid app (eg: yo oraclejet:hybrid app --appName="Sample Oracle JET App" --template=navdrawer --platforms=android) and change the gruntfile.js.</div>
<div>
<br /></div>
<div>
Happy Coding! </div>
<div>
<br /></div>
Markus Klenkehttp://www.blogger.com/profile/02343002789283818840noreply@blogger.com2tag:blogger.com,1999:blog-5573161311850421459.post-8616012050955913222016-08-17T09:15:00.002+02:002016-08-17T09:19:36.111+02:00Oracle JET Open Online CourseIf you want to get in touch with the new Oracle Java-Script Framework to create some fancy user experience focused applications or want to see how easy it is to create hybrid mobile applications to your complex backend, you might want to enroll to the <br />
<a href="https://apexapps.oracle.com/pls/apex/f?p=44785:145:0::::P145_EVENT_ID,P145_PREV_PAGE:5278,143" target="_blank">Oracle JET MOOC</a><br />
<br />
This online course (beginning August 22nd - ending September 12th) offers some video exercises a week, so it is your chance to keep up with a new Oracle Framework even after work. Some of the Features to be shown include:<br />
<ul>
<li>Apply basic JET principles to create Oracle JET application including JET modules, layouts and components</li>
<li>Apply more advanced JET functionality, including navigation, routing, validation, layouts, and responsive design.</li>
<li>Create hybrid mobile applications with Cordova in combination with Oracle JET.</li>
<li>Integrate with the world outside Oracle JET, e.g., JQuery components and the Oracle Cloud.</li>
<li>Deal with the remaining enterprise-level challenges, i.e., internationalization, accessibility, and security.</li>
</ul>
<br />
So there should be some content for everybody out there. Hope to see you in class!Markus Klenkehttp://www.blogger.com/profile/02343002789283818840noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-11630529908407839482016-05-31T23:46:00.000+02:002016-05-31T23:48:33.289+02:00LOV from Shared Application Modules with a different data source - table or view not foundIn many cases lookups are being used to create a readable image of a key column inside a database table. Many of these lookups are globally defined for many applications inside the company. So in general it is a good idea to generate a base package / project containing business components for these lookup references.<br />
<br />
<b><u>Preparation:</u></b><br />
<br />
A sampe project setup could look something like this.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFX7grZ_tg9iNccBxrIoPQNt6oGQC0AEnZNebaW-RmsuMvnBN1rbxzyhgABJ51-TGb9XtDbhtR9f2fnrp0PWuJVuayvUgaWQlWz61G2RdOYbxrD4Df6TMMNYuGh2R6yn_KqRe-DIQlgDs/s1600/2016-05-31+22_11_24-Oracle+JDeveloper+12c+Development+Build+-+SharedApplicationModuleMultiDbSource.j.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFX7grZ_tg9iNccBxrIoPQNt6oGQC0AEnZNebaW-RmsuMvnBN1rbxzyhgABJ51-TGb9XtDbhtR9f2fnrp0PWuJVuayvUgaWQlWz61G2RdOYbxrD4Df6TMMNYuGh2R6yn_KqRe-DIQlgDs/s400/2016-05-31+22_11_24-Oracle+JDeveloper+12c+Development+Build+-+SharedApplicationModuleMultiDbSource.j.jpg" width="275" /></a></div>
<br />
<br />
In this case, we used one project for two application modules, the SharedModule stating the (session) shared application module from the base packages. This allows to use the same view object instances across a user session:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgVSmioR73XuXTUlfjqmori6M72WwZ-Hb727IIVhN35MR5EFUd6aFkxc2NOgZBb2z1AMGxdMaBxGs-Iacq4DQolV0zLSm1JiEqGAtRqmmqK402D8jBLMZlcoEoPitamvxbIIedeQjtnqA/s1600/2016-05-31+23_17_20-Oracle+JDeveloper+12c+Development+Build+-+SharedApplicationModuleMultiDbSource.j.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="352" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgVSmioR73XuXTUlfjqmori6M72WwZ-Hb727IIVhN35MR5EFUd6aFkxc2NOgZBb2z1AMGxdMaBxGs-Iacq4DQolV0zLSm1JiEqGAtRqmmqK402D8jBLMZlcoEoPitamvxbIIedeQjtnqA/s640/2016-05-31+23_17_20-Oracle+JDeveloper+12c+Development+Build+-+SharedApplicationModuleMultiDbSource.j.jpg" width="640" /></a></div>
<br />
<br />
It references the oracle schema Salary with the table SALARY_STEPS (table def can be found in the database project, just import it to a different schema than HR).<br />
<br />
The main data ApplicationModule HRService connects to the oracle default HR schema. Inside the ViewObject EmployeesView and a list of values is defined on the attribute Salary using the ViewObject instance from shared am instance:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWd38FAZ1WiYanA_QkXvp9vveg2k8iVKZq0xStznY92oq_0ptbxPMGfOPlBk0fcewSvvyta7apbg-SDxg7-yUzaculWDuW0hZ4dmj9j5RmI7WZ12fxTquiYRaUxzvgoCsnmBvCaPjFFV4/s1600/2016-05-31+23_18_42-Oracle+JDeveloper+12c+Development+Build+-+SharedApplicationModuleMultiDbSource.j.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="398" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWd38FAZ1WiYanA_QkXvp9vveg2k8iVKZq0xStznY92oq_0ptbxPMGfOPlBk0fcewSvvyta7apbg-SDxg7-yUzaculWDuW0hZ4dmj9j5RmI7WZ12fxTquiYRaUxzvgoCsnmBvCaPjFFV4/s640/2016-05-31+23_18_42-Oracle+JDeveloper+12c+Development+Build+-+SharedApplicationModuleMultiDbSource.j.jpg" width="640" /></a></div>
<br />
<br />
<b><u>Issue:</u></b><br />
<br />
When starting the HRService Application Module with the AM-Tester (right-click -> run), the simple data model is shown.<br />
<br />
<img alt="" height="237" src="data:image/jpeg;base64,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" width="320" /><br />
<br />
Double clicking the EmployeesView Instance we will receive a ORA exception that the SALARY_STEPS table is not found and we see, that the lov of the Salary attribute is empty<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3dR-d_Z2dz6RyiJ4rkWxOU5R7KSDVaG_JRo_fojZjDh4o-vdPIeQwQcV_ZK2zl8Tf3m3ZP66N0Yg_7kjBzbBwbWqiytEmWZnjV0pcdot179m88Eg07DTIqxzQRjs42oS4i-0JCtqQR1I/s1600/2016-05-31+23_23_23-Oracle+ADF+Model+Tester+%2528HRServiceLocal-Local%2529.jpg" imageanchor="1"><img border="0" height="69" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3dR-d_Z2dz6RyiJ4rkWxOU5R7KSDVaG_JRo_fojZjDh4o-vdPIeQwQcV_ZK2zl8Tf3m3ZP66N0Yg_7kjBzbBwbWqiytEmWZnjV0pcdot179m88Eg07DTIqxzQRjs42oS4i-0JCtqQR1I/s320/2016-05-31+23_23_23-Oracle+ADF+Model+Tester+%2528HRServiceLocal-Local%2529.jpg" width="320" /></a><br />
<br />
<b><u>Analysis:</u></b><br />
<br />
The main issue is, that the Application Module SharedModule uses the same connection as the HRService, since (as a session shared application module) it is always nested inside the Root Application Module of the View Object that uses a view object instance as a view accessor from the shared AM. So per definition of session shared application modules, it is not possible declaratively to use a different data source to the main data source.<br />
<br />
<u><b>Solution:</b></u><br />
<br />
If we go back to the Model.jpx and change the type of the shared application module from session scoped to application scoped, the behaviour of the shared module changes drastically.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMIyDENzw7nrTQO4KUI7DYU7hwHn0b_gJHVZ5GH48cxxVveRXXvM5GROn6dGO3TffE95x-1khzNlHgh6PZ3ipxcFGG2brQmZI8l-D8Pvm0w_Cduv6EPUarJuFMzVBH2EvUGad-MFI2-G4/s1600/2016-05-31+23_25_20-Oracle+JDeveloper+12c+Development+Build+-+SharedApplicationModuleMultiDbSource.j.jpg" imageanchor="1"><img border="0" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMIyDENzw7nrTQO4KUI7DYU7hwHn0b_gJHVZ5GH48cxxVveRXXvM5GROn6dGO3TffE95x-1khzNlHgh6PZ3ipxcFGG2brQmZI8l-D8Pvm0w_Cduv6EPUarJuFMzVBH2EvUGad-MFI2-G4/s400/2016-05-31+23_25_20-Oracle+JDeveloper+12c+Development+Build+-+SharedApplicationModuleMultiDbSource.j.jpg" width="400" /></a><br />
<br />
Each shared application module in this scope will provide a separate singleton root application module, so one database connection will be opened for each shared application module. But this feature is necessary for declarative lov definition on shared application modules. So running the HRService with this settings, we see that the LOV is correctly defined and we can use it as any other LOV View Accessor<br />
<br />
<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpY-NOs3cloEbyFG8T_Z4ybD-oUCLJP3Q4SAou8ev2Ml7cLyZL9XZocgiL9a1dZvwKEb88gl__Hg-KbH7kW6dazFt86ZPYEDc9npvUjLjhG0-FuqosHIO9ozZTudL-0B-rMY2vBR9FaP4/s1600/2016-05-31+23_26_16-Oracle+ADF+Model+Tester+%2528HRServiceLocal-Local%2529.jpg" imageanchor="1"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpY-NOs3cloEbyFG8T_Z4ybD-oUCLJP3Q4SAou8ev2Ml7cLyZL9XZocgiL9a1dZvwKEb88gl__Hg-KbH7kW6dazFt86ZPYEDc9npvUjLjhG0-FuqosHIO9ozZTudL-0B-rMY2vBR9FaP4/s320/2016-05-31+23_26_16-Oracle+ADF+Model+Tester+%2528HRServiceLocal-Local%2529.jpg" width="320" /></a> <br />
<br />
<br />
So even if you do only use one data source, it might come in handy to use a shared application module view object instance for your lookups, especially when encountering large result sets for the lov, which could be stored in memory for each user session or even across the whole application.<br />
<br />
If you want to give it a try, head over to the new German ADFCommunity github [<a href="https://github.com/ADFCommunityDE/SharedAMMultiDataSource.git">https://github.com/ADFCommunityDE/SharedAMMultiDataSource.git</a>] and pull the sources :)<br />
<br />
By the way, this Application was created using JDeveloper 12.2.1 but the topic is useable for 11g R1 and R2 as well!<br />
<br />
Cheers!Markus Klenkehttp://www.blogger.com/profile/02343002789283818840noreply@blogger.com2tag:blogger.com,1999:blog-5573161311850421459.post-66477418309090081972016-04-29T14:12:00.002+02:002016-04-29T14:19:46.560+02:00Handling very slow execution of CreateInsert in JDeveloper 12.2.1Many of you might encounter a serious performance issue with the createInsert functionality of ADF in 12.2.1. In detail:<br />
<br />
If you have a large result set after a query (ex. a master data dialog) and you want to create a new record, the framework executes the findByKey method as many as four times as there are records in the result set of the query (check Andrejus Baranovski's blog entry: <a href="http://andrejusb.blogspot.de/2013/10/evil-behind-changeeventpolicy-ppr-in.html">Evil behind the ChangeEventPolicy PPR</a>). This only happens, if you did not fetch all data up to the point of inserting a new row (so having -1 as range size will fix this, although querying many thousands of rows to create one seems not to be a good idea ;) ).<br />
<br />
As we faced the same issue for a customer project, we tried to find out, what exactly is the issue here.<br />
<br />
<u><b>Preparation:</b></u><br />
<br />
In our test we have the following conditions - A Table containing ~ 70000 entries with randomly generated Char content in each column. For this, we created the default BC, so an Entity Object with the default settings, a corresponding default View Object and an Application Module.<br />
<br />
On View Controller side, we have just a plain page with an af:table created by drag and drop from data controls. On the table, we set the following properties:<br />
<br />
contentDelivery="immediate"<br />
autoHeightRows="10"<br />
rangeSize=13 -> leads to property change of iterator in page definition<br />
<br />
For completion of the preparation, we add the navigation and crud buttons to the ui.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhRNySdmYyrRy7wS6IbcRfbnDZpub4KnA_WlcPKY-JREssDDYa9FDXm4Ug6cPXC6UgU7QHkXXHK__b0FltgBQYFuB9ib5Q1CLtSVYhFocm56MCLx1zoVEc9uwEdC2L4ppnWMEa2qViLJo/s1600/2016-04-29+13_38_33-Oracle+JDeveloper+12c+Development+Build+-+CreateInsertExample.jws+_+ViewControll.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhRNySdmYyrRy7wS6IbcRfbnDZpub4KnA_WlcPKY-JREssDDYa9FDXm4Ug6cPXC6UgU7QHkXXHK__b0FltgBQYFuB9ib5Q1CLtSVYhFocm56MCLx1zoVEc9uwEdC2L4ppnWMEa2qViLJo/s640/2016-04-29+13_38_33-Oracle+JDeveloper+12c+Development+Build+-+CreateInsertExample.jws+_+ViewControll.jpg" width="640" /></a></div>
<br />
<br />
When running the page and clicking on CreateInsert, we see, that this takes a long time (it can get significantly worse for real data).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo_fkIbO6tkn1wRKADpIcFxuYZ-6qCfkTEuY4NkkJORXN-7EXdIYBQPq8HvIw6IWAwOFS0amT4niNhZst8EmY70c47G24QOmlzHl0qAzj8O7sfmdEGnjuO0KS3x-UUpVPln7JyrZTA-xE/s1600/2016-04-29+13_40_41-randomEntriesMasterData.jsf.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="435" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo_fkIbO6tkn1wRKADpIcFxuYZ-6qCfkTEuY4NkkJORXN-7EXdIYBQPq8HvIw6IWAwOFS0amT4niNhZst8EmY70c47G24QOmlzHl0qAzj8O7sfmdEGnjuO0KS3x-UUpVPln7JyrZTA-xE/s640/2016-04-29+13_40_41-randomEntriesMasterData.jsf.jpg" width="640" /></a></div>
<br />
<br />
On a second run (make sure a new session is built up), click last first and then the create insert. This takes some time for the last-button click, but the insert afterwards is done immediately. So what happens?<br />
<br />
<u><b>Problem description:</b></u><br />
<br />
The newest version of ADF has some changes in the Key mechanism. The most important (in general but also in our case) is that a key of a newly created row is not null itself, but a Key Object containing null values, which seems like a good idea in most cases.<br />
<br />
This change has a serious impact on the retrieveByKey in the ViewObject method, which seems to check if(key == null), which is never true in the new Version (since we always have a Key object at hand).<br />
<br />
In case the data is not already fully fetched from the database, ADF creates a new RecordSet for the find by key method (which makes sense in case you are searching for a row that might not be already in the fetched Rows). In general this new View Object uses the constraints of the original View Object, but in most cases for master data dialogs, there are no real constraints in the first place.<br />
<br />
In case of the insert, a findByKey is executed (coming from the af:table, which is refreshed by ppr; again, see the post of Andrejus), coming with a key that is not null, but contains only null values. Since the fetch size is obviously not reached (we have 13 rows out of 70000), a new View Object is created in background and executed for the findByKey, which never will be finding any Row. Strangely, this seems to be executed for each row that is in the range and before the currently inserted row. So in worst case, the query would be executed up to 12 times in the example.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZqSo9aOhZ2hrpC0qqw_U82DberWf1AyRzFRzsSfqQFZ-Ci71gZFG7ITgP-QWdrCw6ONh0ANzzFGQl3j8M0b_WBa9_Om5ll3dSm8MeFw0WAGim71kkiupUeqst8Xs-FGphLBA2MYl7TFY/s1600/2016-04-29+13_52_33-Oracle+JDeveloper+12c+Development+Build+-+CreateInsertExample.jws+_+ViewControll.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZqSo9aOhZ2hrpC0qqw_U82DberWf1AyRzFRzsSfqQFZ-Ci71gZFG7ITgP-QWdrCw6ONh0ANzzFGQl3j8M0b_WBa9_Om5ll3dSm8MeFw0WAGim71kkiupUeqst8Xs-FGphLBA2MYl7TFY/s640/2016-04-29+13_52_33-Oracle+JDeveloper+12c+Development+Build+-+CreateInsertExample.jws+_+ViewControll.jpg" width="640" /></a></div>
<br />
<br />
<u><b>Solution:</b></u><br />
<br />
Personally, I think, Oracle must take a look at this and maybe change some implementations at this part. But as we know, it might take a while until fixing the issue. So here is a workaround. In your ViewObjectImpl (better, a base ViewObjectImpl that is superclass of all your View Objects) override the following method:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<code>
@Override<br /> protected Row[] retrieveByKey(ViewRowSetImpl rs, String keyName, Key key, int maxNumOfRows, boolean skipWhere) {<br /> if (!key.isNull() || keyName != null) {<br /> return super.retrieveByKey(rs, keyName, key, maxNumOfRows, skipWhere);<br /> }<br /> return new Row[0];<br /> }</code><br />
<code> </code>
<br />
This is just a safety fallback, that if all of the key columns are null the findByKey mechanism is not executed at all. In all other cases (i.e. you really want to search a row by its key or part of its key), the framework default will do its job.<br />
<br />
In the Example, we created the same UI with a View Object that has the fix (FixedRandomEntriesView). In this case, the create is done immediately, even if the fetch does not have all rows, wich solves our problem.<br />
<br />
One should state, that this solution is only applicable for blank inserts (i.e. no DBSequences etc.). In this case, you have to put some further effort to the overriden method to check if you are in insert mode or search mode. <br />
<br />
<span id="goog_1317509008"></span><span id="goog_1317509009"></span><br />
<br />
You can download the sample app here: <a href="https://drive.google.com/file/d/0BzLLZgTr5UuxWERHLVI4b1NkLXc/view?usp=sharing">CreateInsert12211 Example</a><br />
To work with our example data, you can use this sql script to create the table and insert data: <a href="https://drive.google.com/file/d/0BzLLZgTr5UuxUVhyUDNZUE0zN1E/view?usp=sharing">Random_Entries.sql</a><br />
<br />Markus Klenkehttp://www.blogger.com/profile/02343002789283818840noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-11435629454468624602016-03-21T12:36:00.001+01:002016-08-09T10:43:28.690+02:00SelectOneChoice im JDeveloper 12.2.1<div>
Im JDeveloper 12.2.1 hat sich ein Stylingingfehler bei der Komponente SelectOneChoice eingeschlichen.</div>
<div>
In einem Formular rutschen die Inhalte nach oben, sowohl im Read-Only als auch im Auswahl-Fall. Im Rahmen einer Tabelle fällt das Verhalten nicht auf, da dort der Inhalt zentriert wird.</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div>
Hier die Beispiele (Felder JobId, ManagerId und BepartmentId):</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT81EdthfqxL8GVNID0Z0s1NqczhbAF3rzbz6uYu0EB6de9S4lebPYTpJ8h7yoVTSm51KBI7j30NwNo6cXEa-qfPsFc27RS15RGB5PqU99PZZqmzo8doCN1BWMIusFrLNmjCAwNOvgzQ8/s1600/000313-000183-untitled1.jsf-20160310_1845-20160321_1230.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiT81EdthfqxL8GVNID0Z0s1NqczhbAF3rzbz6uYu0EB6de9S4lebPYTpJ8h7yoVTSm51KBI7j30NwNo6cXEa-qfPsFc27RS15RGB5PqU99PZZqmzo8doCN1BWMIusFrLNmjCAwNOvgzQ8/s640/000313-000183-untitled1.jsf-20160310_1845-20160321_1230.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkTh3EYc9C66ZPpvPWL2Fu1J9oRtZ6BoySWciwllITmWXyTYjlV3IEhmsVsCQT7xGQ3ol2P9qYrmbMsLPGxySqTqW3i0KNIm1QB5nL1vHVsOvYcrHo9hckNfseWxE63P_Mu3wLwiw7sdI/s1600/000314-000184-untitled1.jsf-20160310_1845-20160321_1233.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="198" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkTh3EYc9C66ZPpvPWL2Fu1J9oRtZ6BoySWciwllITmWXyTYjlV3IEhmsVsCQT7xGQ3ol2P9qYrmbMsLPGxySqTqW3i0KNIm1QB5nL1vHVsOvYcrHo9hckNfseWxE63P_Mu3wLwiw7sdI/s640/000314-000184-untitled1.jsf-20160310_1845-20160321_1233.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Um den Fehler zu korrigieren müssen wir den Skin anpassen.<br />
<div>
Dazu erstellen wir einen Skin:</div>
<div>
<br /></div>
<div>
Im ViewControler-Projekt New > From Gallery wählen</div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOsHnF50C2fXjLmjaGJFjzjtmFjtJuPG0_2bC7c5RDCmdk8sc_8unmbzznqS3C1OkSlQmov7hYwYLKR7qjEXoRMoVv6PsFC3FyJ5Eptuy5cM0Gtfo-RU1z6NXM4byQGTli6QdA7cJL31M/s1600/000185-Oracle+JDeveloper+12c+Development+Build+-+padOraSOCExample.jws+_+ViewController.-20160310_1922.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOsHnF50C2fXjLmjaGJFjzjtmFjtJuPG0_2bC7c5RDCmdk8sc_8unmbzznqS3C1OkSlQmov7hYwYLKR7qjEXoRMoVv6PsFC3FyJ5Eptuy5cM0Gtfo-RU1z6NXM4byQGTli6QdA7cJL31M/s640/000185-Oracle+JDeveloper+12c+Development+Build+-+padOraSOCExample.jws+_+ViewController.-20160310_1922.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
"ADF Skin" wählen:<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoEgUP0UYEwum4Pk_VB5r_lC612o4m8VyyDxVw0gtY4exHvDMnblW2qGaFvLJ6T7qR_DYWZEgPlxb2Wrf9l_TVVSP_-gy4doed8ODJCghyBross6oC8RfNzyqUtPNGyD1vwiqkeL_Sym8/s1600/000186-New+Gallery-20160310_1922.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="361" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoEgUP0UYEwum4Pk_VB5r_lC612o4m8VyyDxVw0gtY4exHvDMnblW2qGaFvLJ6T7qR_DYWZEgPlxb2Wrf9l_TVVSP_-gy4doed8ODJCghyBross6oC8RfNzyqUtPNGyD1vwiqkeL_Sym8/s640/000186-New+Gallery-20160310_1922.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Wir wählen einen schönen Namen:<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzGTDnfwLKHgo3y9uhC9FJBm6SH28tbAkKn7zXa9rB5AIXI92L_c4wwlk41Qnhz16lc7E_unJE5dO2-g2Fae_Dj37IlwUl-mlu24t9POmIgv6nQGR2Sb-RdtROGLJ3fN4HQZ07ep8dFuM/s1600/000187-Create+ADF+Skin+-+Step+1+of+2-20160310_1923.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzGTDnfwLKHgo3y9uhC9FJBm6SH28tbAkKn7zXa9rB5AIXI92L_c4wwlk41Qnhz16lc7E_unJE5dO2-g2Fae_Dj37IlwUl-mlu24t9POmIgv6nQGR2Sb-RdtROGLJ3fN4HQZ07ep8dFuM/s640/000187-Create+ADF+Skin+-+Step+1+of+2-20160310_1923.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
und wechseln in den Source-View des Skins und fügen wir folgende Zeilen hinzu:
</div>
<br />
<div style="margin-left: 40px;">
<span style="font-family: "courier new";">af|selectOneChoice .AFPanelFormLayoutContentCell {</span></div>
<div style="margin-left: 40px;">
<span style="font-family: "courier new";"> padding-top : 8px;</span></div>
<div style="margin-left: 40px;">
<span style="font-family: "courier new";">}</span></div>
<div style="margin-left: 40px;">
<span style="font-family: "courier new";"><br /></span></div>
<div style="margin-left: 40px;">
<span style="font-family: "courier new";">af|selectOneChoice af|panelFormLayout::label-cell {</span></div>
<div style="margin-left: 40px;">
<span style="font-family: "courier new";"> padding-top: 8px;</span></div>
<br />
<div style="margin-left: 40px;">
<span style="font-family: "courier new";">}</span></div>
<br />
und erhalten:<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8Ct7Kz_GvnbPjnXTCGhDN6zd8FX3k14MwLQCjpPJPDXIEg8vGhwGuoY_9C5VT45LOlyQgE6HsQ1uXTzy-JQve9eG8_CDCRu6nF5egF9Id61FNa-mOqup8u_0J5JRIsvMYGEYRRhtdFLU/s1600/000189-Oracle+JDeveloper+12c+Development+Build+-+padOraSOCExample.jws+_+ViewController.-20160310_1925.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8Ct7Kz_GvnbPjnXTCGhDN6zd8FX3k14MwLQCjpPJPDXIEg8vGhwGuoY_9C5VT45LOlyQgE6HsQ1uXTzy-JQve9eG8_CDCRu6nF5egF9Id61FNa-mOqup8u_0J5JRIsvMYGEYRRhtdFLU/s640/000189-Oracle+JDeveloper+12c+Development+Build+-+padOraSOCExample.jws+_+ViewController.-20160310_1925.png" width="640" /></a></div>
<br />
<br />
Damit die Anzeige klappt, einmal die Applikation undeployen und neu starten und schon erhalten wir:
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7GOyZZ3EJ4Q58oEu0KhekaHtsla_5_9OB4dPtTl6BlwclECEYmBmhkW_PSs7YulnvlB6H_B0A4XYNyKKZEPE2XdiS3_1MhyXFASghL7LtYQErVL_viviGgzQT4LuWxqc8mxAqeTeaN5s/s1600/000190-untitled1.jsf-20160310_1927.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7GOyZZ3EJ4Q58oEu0KhekaHtsla_5_9OB4dPtTl6BlwclECEYmBmhkW_PSs7YulnvlB6H_B0A4XYNyKKZEPE2XdiS3_1MhyXFASghL7LtYQErVL_viviGgzQT4LuWxqc8mxAqeTeaN5s/s640/000190-untitled1.jsf-20160310_1927.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirFAFMrWT5bGFILYIbBEY2Oht8kCMjpesE3qvsQcIFDszkRFsYmuLSxNd4WwlublVmm0rwLebNF5RteMkBK_g_L_9vV_W8jxhGKp_3Gey1wbIb23t9C-rOi7zPw3JfKm15_u3OxTM0lxs/s1600/000191-untitled1.jsf-20160310_1927.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirFAFMrWT5bGFILYIbBEY2Oht8kCMjpesE3qvsQcIFDszkRFsYmuLSxNd4WwlublVmm0rwLebNF5RteMkBK_g_L_9vV_W8jxhGKp_3Gey1wbIb23t9C-rOi7zPw3JfKm15_u3OxTM0lxs/s640/000191-untitled1.jsf-20160310_1927.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />Wolf G. Beckmannhttp://www.blogger.com/profile/09088644260287050666noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-64669554924463301312016-02-23T19:36:00.003+01:002016-02-23T19:39:44.355+01:00TEAM After Work Knowledge - JasperReports und PL/SQL<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6lDLIxnn8-ONvMic87umVf0XatFOSr5UdBDAc1cWcrvm2udv2v6WVpi7RwJbM_c1EandW4CztGDnxBTigCYKv5SNbVzCEkKrLMGO1B3OMZi_Rd5Fl8Ck32NlYduxngQJP3D34BP7DICg/s1600/Vorlage_eMail-Head_TAKE032016.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6lDLIxnn8-ONvMic87umVf0XatFOSr5UdBDAc1cWcrvm2udv2v6WVpi7RwJbM_c1EandW4CztGDnxBTigCYKv5SNbVzCEkKrLMGO1B3OMZi_Rd5Fl8Ck32NlYduxngQJP3D34BP7DICg/s400/Vorlage_eMail-Head_TAKE032016.jpg" width="400" /></a></div>
<br />
<br />
Haben Sie sich schon immer die Frage gestellt: Wohin geht die Reise nach Oracle Reports? Wir auch - und haben uns in diversen Fallstudien mit verschiedenen Anbietern von Berichterstellungssoftware auseinandergesetzt.<br />
<br />
Da wir wissen, dass nicht jeder die Zeit aufbringen kann, sich tagelang in alle Frameworks einzuarbeiten, haben wir bei TEAM eine neue Veranstaltungsreihe konzipiert. Das <b>TEAM After Work Knowledge</b> - kurz <span style="color: red;"><b>TAKE</b></span>.<br />
<br />
Ziel der Veranstaltungsreihe ist es, praktisches Wissen rund um Oracle Datenbanken und den damit verbundenen Themen Personen mit Entwicklerhintergrund zu vermitteln und das gelernte auch direkt anzuwenden.<br />
<br />
Als Start in die Reihe wollen wir das oben beschriebene brisante Thema aufgreifen und den Workshop <b>JasperReports und PL/SQL am 17.03.2016 bei TEAM in Paderborn</b> durchführen. Man kann an den JasperReports Tutorials aus dem Internet schnell sehen, dass reine SQL Reports ohne große aufwände einfach erstellt werden können. Wenn man aber Berichte erstellt hat, bei denen Informationen über PL/SQL aus der Datenbank abgefragt werden, wird es mit den Basics ungleich komplexer.<br />
<br />
An diesem Abend werden wir nach einer kurzen Einführung in JasperReports einen Weg aufzeigen, wie effektiv und einfach PL/SQL in JasperReports eingebunden werden kann.<br />
<br />
Anschließend haben Sie die Möglichkeit, an Ihrem eigenen mitgebrachen
Laptop im Rahmen einer Übung das Gelernte zu vertiefen. Natürlich wird
zur geistigen Stärkung auch für das leibliche Wohl gesorgt.<br />
<br />
Sollte Ihr Interesse geweckt sein:<br />
<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><b><span style="color: red;">TAKE </span>"JasperReports und PL/SQL"<br />
am Donnerstag, den 17. März 2016 bei TEAM<br />
Beginn: 17:00 Uhr | Ende: 19:30 Uhr.<br />
</b>Die ausführliche Agenda und die Möglichkeit zur direkten Anmeldung finden Sie
<a href="http://www.team-pb.de/veranstaltungen/take.html" target="_blank">hier</a>.</span><br />
<br />
Wir freuen uns sehr auf ihr Kommen zu <span style="color: red;"><b>TAKE</b></span>! Markus Klenkehttp://www.blogger.com/profile/02343002789283818840noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-88647048318594943382015-11-20T14:24:00.001+01:002015-11-27T12:19:16.288+01:00Und es geht doch: Oracle DB unter VMware und dennoch nicht alle Server lizenzieren<p>Die Unconference Sessions gehören ja mittlerweile zum festen und erfolgreichen Bestandteil der DOAG 2015 Konferenz + Ausstellung. Leider etwas untergegangen, da in den täglichen Konferenz-News unerwähnt, ist die letzte Unconference Session in diesem Jahr. Hier hat sich der <a href="https://www.xing.com/profile/Zulfikar_Salehmohamed" target="_blank">Tooling Strategy Programm Manager</a> der <a href="http://www.oracle.com/us/corporate/license-management-services/index.html" target="_blank">LMS - Business Services</a> von Oracle den Fragen zum Thema Lizenzierung gestellt.</p> <p>Wir hatten dann ein sehr intensives Gespräch zu dritt. Ein Ergebnis aus dieser Unconference Session ist, <br />dass <strong>es sehr wohl möglich</strong> ist,</p> <blockquote> <p><strong>Oracle DB in einer virtuellen Maschine unter VMware </strong>zu <strong>betreiben</strong> und <br /><strong>dennoch nicht alle Server lizenzieren </strong>zu müssen</p> </blockquote> <p>und das unabhängig von der VMware vSphere Version. Man muss nur wissen, wie das zu konfigurieren ist und es bedarf dann eines Approval über Oracle LMS. <br />Dazu gibt es auch eine <a href="http://www.doag.org/home/aktuelle-news/article/ein-grosser-schritt-fuer-die-oracle-lizenzierung-in-virtuellen-umgebungen.html" target="_blank">Nachricht von der DOAG</a>, die aber nur einen Teil der Möglichkeiten aufzeigt. Die Varianten sind auf Grund der Vielfalt an möglichen Konfigurationen aber auch zu umfangreich, um sie in ein Pressenachricht oder auch hier im Blog darzustellen.</p> <p>Wir setzen gerne mit Ihnen die korrekte Konfiguration Ihrer Oracle Umgebung unter VMware um und unterstützen Sie beim Approval Prozess. <br />Weitere Informationen über unsere <a href="http://www.team-pb.de/oracle/oracle-lizenzierung.html" target="_blank">Lizenz-Dienstleistungen</a> erhalten Sie von <a href="mailto:kt@team-pb.de" target="_blank">Frau Tiggesmeier</a> oder telefonisch unter +49 (0) 5254 8008 50.</p> Ralf Appelbaumhttp://www.blogger.com/profile/11644702180881016501noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-35552043648829256762015-11-12T23:53:00.001+01:002016-03-11T09:23:13.192+01:00DOAG 2015 Konferenz + Ausstellung, selbstverständlich nicht ohne TEAMAuch in diesem Jahr ist TEAM auf der <a href="http://2015.doag.org/de/home/" target="_blank">DOAG 2015 Konferenz + Ausstellung</a> selbstverständlich mit einem Messestand und gleich mit fünf Vorträgen vertreten. Besuchen Sie uns und lernen Sie das umfassende <a href="http://www.team-pb.de/oracle/oracle-consulting.html" target="_blank">Consulting-Angebot von TEAM</a> kennen. Es gibt jede Menge aktuelle Themenschwerpunkte, über die wir uns gerne mit Ihnen an unserem Stand 204 in der 2. Etage (gelb) unterhalten möchten! <br />
Oder besuchen Sie TEAM bei folgenden, spannenden Vorträgen zu den Streams <br />
<ul>
<li>Strategie & Business Practices </li>
<li>Development </li>
<li>Middleware </li>
<li>Oracle Datenbank </li>
</ul>
einen Querschnitt der Themenfelder aus unserem <a href="http://www.team-pb.de/oracle.html" target="_blank">"Oracle Business"</a> repräsentieren: <br />
<b>Ein Lizenzaudit: Besorgniserregend oder entspannt angehen?</b> <br />Dienstag, 17. November 2015, um 11:00 Uhr im Raum Stockholm <br />Referent: Ralf Appelbaum, TEAM GmbH <br />Detail-Informationen finden Sie <a href="https://www.doag.org/konferenz/konferenzplaner/konferenzplaner_details.php?locS=0&id=473721&vid=504805" target="_blank">hier</a>.<br />
<b>Effiziente Modernisierung von Oracle-Anwendungen auf Alta UI</b> <br />Dienstag, 17. November 2015, um 16:00 Uhr im Raum Hongkong <br />Referenten: Janis Krasemann, enpit consulting OHG; Markus Klenke, TEAM GmbH <br />Detail Informationen finden Sie <a href="https://www.doag.org/konferenz/konferenzplaner/konferenzplaner_details.php?locS=0&id=473721&vid=505530" target="_blank">hier</a>.<br />
<b>Tuning Oracle Web-Applications in WLS 12c</b> <br />Mittwoch, 18. November 2015, um 11:00 Uhr im Raum Prag <br />Referent: Markus Klenke, TEAM GmbH <br />Detail Informationen finden Sie <a href="https://www.doag.org/konferenz/konferenzplaner/konferenzplaner_details.php?locS=0&id=473721&vid=505149" target="_blank">hier</a>.<br />
<b>Oracle Backup & Recovery - Konzepte, Umsetzung, Best Practice</b> <br />Mittwoch, 18. November 2015, um 12:00 Uhr im Raum St. Petersburg <br />Referent: Andreas Kother, TEAM GmbH <br />Detail Informationen finden Sie <a href="https://www.doag.org/konferenz/konferenzplaner/konferenzplaner_details.php?locS=0&id=473721&vid=505017" target="_blank">hier</a>.<br />
<b>Einfach erklärt: RAC Grundlagen für Dummies</b> <br />Donnerstag, 19. November 2015, um 09:00 Uhr im Raum Seoul <br />Referent: Ralf Appelbaum, TEAM GmbH <br />Detail-Informationen finden Sie <a href="https://www.doag.org/konferenz/konferenzplaner/konferenzplaner_details.php?locS=0&id=473721&vid=505013" target="_blank">hier</a>.Ralf Appelbaumhttp://www.blogger.com/profile/11644702180881016501noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-33707870466746323662015-06-16T14:11:00.003+02:002016-09-15T10:17:04.809+02:00Disable Browser Navigation Buttons for ADF 12c Web ApplicationsRecently, we got a request that a customer wanted the browser navigation buttons disabled on his ADF 12c application. As we know, it is not possible to disable the buttons of the browser by default (unless you want to build your own private browser ;)). So we had to find another solution.<br />
<br />
Hence ADF 12c comes with great HTML5 support, we found the solution in the javascript HTML5 history API. With it, it is possible to recreate the last entry of the browser history stack. The idea is fairly simple:<br />
<br />
Browser pops the top stack element with the popstate event; we push the same element on top again, so that the user stays on the same page. Even the code is very short and easy to implement:<br />
<br />
1. Create a <af:resource type="javascript"> tag on your page and add the following content:<br />
<br />
<pre class="jscript"><span style="font-family: "courier new" , "courier" , monospace;">
function onPageEntry(){ </span>
<span style="font-family: "courier new" , "courier" , monospace; font-size: small;"> //push the initial state first, to keep the current state named and referencable
history.pushState(null, null, 'name-of-your-page');</span>
<span style="font-family: "courier new" , "courier" , monospace; font-size: small;"> //if popstate is fired, add the push to the event queue
window.addEventListener('popstate', function(event) {
history.pushState(null, null, 'name-of-your-page');
});
}</span>
</pre>
2. create a client listener at document-on-load level, that references the javascript function:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;"><af:document title="PageTitle" id="d1"></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> <... many more tags></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> <af:clientListener method="onPageEntry" type="load"/></span><br />
<span style="font-family: "courier new" , "courier" , monospace;"></af:document></span><br />
<br />
That's it. One might say, that this is a very crude way to "disable" the functionality, but as it is still possible to rightclick the buttons and navigate back to your older history, I think this is a nice safety-approach for ADF applications, that does not affect the browser in general.Markus Klenkehttp://www.blogger.com/profile/02343002789283818840noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-9409982866187006472014-07-02T12:44:00.003+02:002016-03-11T09:25:22.816+01:00Forms2ADF mal anders: Wie aus einer Oracle-Vision Praxis wirdSollte der Film im letzten Post noch nicht detailliert genug beschrieben haben, wie eine Modernisierung von Forms zu ADF bei TEAM aussieht, so kann der Artikel<br />
<br />
<h3>
<span style="font-family: inherit;"><i><b><a href="http://www.team-pb.de/images/files/Presse/Artikel_Forms2ADF.pdf">Forms2ADF mal anders: Wie aus einer Oracle-Vision Praxis wird</a></b></i></span></h3>
<br />
aus der aktuellen DOAG News weiterhelfen.<br />
<br />
Dort beschreibt TEAM wie genau eine Modernisierung modellgetrieben durchgeführt werden sollte, um ein qualitativ hochwertiges und erweiterbares Ergebnis zu erzielen.PADORAhttp://www.blogger.com/profile/02559299557118507156noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-81103009991912635982014-05-02T15:32:00.000+02:002014-05-02T15:32:53.887+02:00TEAM - Wir migrieren anders<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/LsD8z3goycc?list=UUG--IXMl8YhnjDh983Tnzsw" width="560"></iframe><br />
<br />
So macht eine Forms-Anwendung wieder Spaß </div>
PADORAhttp://www.blogger.com/profile/02559299557118507156noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-4046985941667018162014-04-30T08:51:00.002+02:002016-03-11T09:25:38.977+01:00Forms Migration Services - The clever way of Forms modernization<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:HyphenationZone>21</w:HyphenationZone>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>DE</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 />
<div class="MsoNormal">
<b><span lang="EN-US" style="color: #1f497d; font-family: "arial" , "sans-serif"; font-size: 10.0pt;">After several years of intensive
research in cooperation with s-lab, a special interest group of the University of
Paderborn supporting industrial partners in developing new technologies, TEAM
proudly presents the Forms Migration Services – a process to take your Forms
application to the next level using a model driven migration approach containing the TEAM Migration Assistant - a toolset for semi-automatic modernizations. Do the results justify all the effort?
Yes, definitively!</span></b></div>
<div class="MsoNormal">
<br /></div>
<span lang="EN-US" style="color: #1f497d; font-family: "arial" , "sans-serif"; font-size: 10.0pt;">In accordance with the objective to
transform a Forms application into a maintainable ADF application, the project
team initially followed the approach of a fully automated migration. This
initial idea had to be revised, however, due to the technical differences
between the two platforms Forms and ADF. A wider approach had to be taken in
order to achieve appropriate/satisfactory results. Migrating a Forms
application using a single blue print which transforms dialogue by dialogue and
even generates a "Forms-Runtime" in ADF may represent a viable method
to generate a running ADF application; however, this application would neither
be maintainable nor would it offer any extension points to allow progression of
the application. Thus it was obvious that a more sophisticated and abstract way
of thinking was needed to solve the issues a 1:1 migration brings along.</span><br />
<br />
<div class="MsoNormal">
<span lang="EN-US" style="color: #1f497d; font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Keeping that in mind, the project team,
consisting of TEAM developers and s-lab members, developed a new
approach to transforming and, at the same time, modernizing a Forms application
into a “true” ADF application. A major challenge in this process was the fact
that most Forms applications have been developed with a company specific Forms
framework (i.e. functions and objects extending the original Oracle Forms
framework). The new migration method is based on a multilevel modernization
process. By using tools for source code analysis, knowledge and patterns for
the specific Forms application are recognized and transformation rules can be
established. These rules provide project specific patterns to the TEAM
Migration Assistent which then generates the ADF application iteratively. Each
iterative step is to be finished manually. After each step, our migration
experts and the development team come together to discuss the lessons learned
and whether or not recent development steps or code fragments can be automated
in the next iteration step. This procedure ensures that the following iteration
steps can be finished a lot quicker.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US" style="color: #1f497d; font-family: "arial" , "sans-serif"; font-size: 10.0pt;"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwoVoGnVGABZ6UwYC82JRlD-ZG_ceNOSPu5LLaTQSCdMLuTi_lfXFcso46SevvX598URvFIjo86AXOwbWWoPhPqUYmb6MrAI0SPLGLFmG69_HlJGrXyOTJ1G-4u9i0JLS5_TYVIBcC1gNI/s1600/arrow.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwoVoGnVGABZ6UwYC82JRlD-ZG_ceNOSPu5LLaTQSCdMLuTi_lfXFcso46SevvX598URvFIjo86AXOwbWWoPhPqUYmb6MrAI0SPLGLFmG69_HlJGrXyOTJ1G-4u9i0JLS5_TYVIBcC1gNI/s1600/arrow.jpg" width="400" /></a></div>
<br />
<div class="MsoNormal">
<br /></div>
<span lang="EN-US" style="color: #1f497d; font-family: "arial" , "sans-serif"; font-size: 10.0pt;">The Forms Migration Services offered by TEAM provide a novel
integrated concept to modernize your Oracle Forms application to a
"true" ADF application that is maintainable, great looking and
enabled for future implementations!</span><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:"Normale Tabelle";
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:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
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]-->PADORAhttp://www.blogger.com/profile/02559299557118507156noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-33103440841725564072014-02-07T08:08:00.000+01:002016-03-11T09:25:59.128+01:00Forms - Quo VadisMit Oracle
Forms werden seit Jahrzehnten Datenbankanwendungen entwickelt. Oracle
hat versucht, Forms immer wieder an den Stand der Technik anzupassen.<br />
<br />
Doch
spätestens seit dem "Statement of Direction"
im März 2012 hat Oracle klar aufgezeigt, dass neue Technologien nicht
mehr mit Forms realisiert werden können. Stattdessen hat Oracle das
Application Development Framework (ADF) entwickelt, um den neuen
technologischen Aufgaben gewachsen zu sein. Wenn Oracle-basierte
Applikationen webfähig gemacht, erweitert, integriert oder ersetzt
werden sollen, führt heute kein zukunftsorientierter Weg an Oracle ADF
vorbei.<br />
<br />
Sie fragen sich, ob es sinnvoll ist, Ihre Forms Applikation nach ADF
zu migrieren oder welcher Weg der Migration der richtige ist? Lassen Sie
sich am 18. März 2014 durch diese kostenlose Veranstaltung auf den
neuesten Stand bringen!<br />
<br />
Speziell ausgebildete und projekterfahrene
TEAM-Mitarbeiter zeigen Ihnen, unter anderem anhand einer Live-Demo, ob
und wie eine Migration von Forms zu ADF sinnvoll durchgeführt
werden kann.<br />
Erfahren Sie alles Wissenswerte zu den Themen Migrationsstrategien,
Projektvorgehen und welchen Mehrwert Sie durch eine Migration von Forms
zu ADF erhalten können.<br />
<br />
<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:"Normale Tabelle";
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:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
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 />
<b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Agenda:</span></b><br />
<table border="0" cellpadding="0" class="MsoNormalTable" style="height: 384px; mso-cellspacing: 1.5pt; mso-yfti-tbllook: 1184; width: 599px;">
<tbody>
<tr style="height: 18.75pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;">
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt; width: 37.5pt;" valign="top" width="50"><div class="MsoNormal">
<b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">13:00</span></b><span style="mso-fareast-font-family: "Times New Roman";"></span></div>
</td>
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal">
<b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Registrierung und gemeinsamer
Imbiss</span></b><b><span style="mso-fareast-font-family: "Times New Roman";">
</span></b><span style="mso-fareast-font-family: "Times New Roman";"></span></div>
</td>
</tr>
<tr style="height: 18.75pt; mso-yfti-irow: 1;">
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt; width: 37.5pt;" valign="top" width="50"><div class="MsoNormal">
<b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">13:45</span></b><span style="mso-fareast-font-family: "Times New Roman";"></span></div>
</td>
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt;" valign="top"><b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Begrüßung
und Vorstellung TEAM</span></b><br />
<i><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Harry
Jules Mayo, TEAM GmbH</span></i></td>
</tr>
<tr style="height: 18.75pt; mso-yfti-irow: 2;">
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt; width: 37.5pt;" valign="top" width="50"><div class="MsoNormal">
<b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">14:00</span></b><b><span style="mso-fareast-font-family: "Times New Roman";"> </span></b><span style="mso-fareast-font-family: "Times New Roman";"></span></div>
</td>
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt;" valign="top"><b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Aufbruch
in eine neue Welt</span></b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">:
Warum Oracle den Wechsel von Forms zu ADF vollzogen hat<br />
<i>Jürgen Menge, ORACLE Deutschland B.V. & Co. KG </i></span></td>
</tr>
<tr style="height: 18.75pt; mso-yfti-irow: 3;">
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt; width: 37.5pt;" valign="top" width="50"><div class="MsoNormal">
<b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">14:30</span></b><span style="mso-fareast-font-family: "Times New Roman";"></span></div>
</td>
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt;" valign="top"><b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Wenn
eine "Migration nach Kochrezept" keinen Sinn macht<br />
</span></b><i><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Marvin
Grieger, s-lab, Universität Paderborn</span></i><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;"> </span></td>
</tr>
<tr style="height: 18.75pt; mso-yfti-irow: 4;">
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt; width: 37.5pt;" valign="top" width="50"><div class="MsoNormal">
<b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">15:00</span></b><span style="mso-fareast-font-family: "Times New Roman";"></span></div>
</td>
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal">
<b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Kaffeepause</span></b><span style="mso-fareast-font-family: "Times New Roman";"></span></div>
</td>
</tr>
<tr style="height: 18.75pt; mso-yfti-irow: 5;">
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt; width: 37.5pt;" valign="top" width="50"><div class="MsoNormal">
<b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">15:15</span></b><span style="mso-fareast-font-family: "Times New Roman";"></span></div>
</td>
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt;" valign="top"><b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Von
Forms zur erweiterbaren ADF-Anwendung: </span></b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Der TEAM Migration Assistant<br />
<i>Markus Klenke, TEAM GmbH </i></span></td>
</tr>
<tr style="height: 18.75pt; mso-yfti-irow: 6;">
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt; width: 37.5pt;" valign="top" width="50"><div class="MsoNormal">
<b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">16:15</span></b><span style="mso-fareast-font-family: "Times New Roman";"></span></div>
</td>
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal">
<b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Mit der neuen ADF Applikation in
die Zukunft: </span></b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Die TEAM ADF-Tools<br />
<i>Christian Kunzmann, TEAM GmbH </i></span><span style="mso-fareast-font-family: "Times New Roman";"></span></div>
</td>
</tr>
<tr style="height: 18.75pt; mso-yfti-irow: 7;">
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt; width: 37.5pt;" valign="top" width="50"><div class="MsoNormal">
<b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">16:35</span></b><span style="mso-fareast-font-family: "Times New Roman";"></span></div>
</td>
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal">
<b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Migration im Projekt: </span></b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Von der Analyse bis zur ADF-Anwendung<br />
<i>Wolf G. Beckmann und Harry Jules Mayo, TEAM GmbH </i></span><span style="mso-fareast-font-family: "Times New Roman";"></span></div>
</td>
</tr>
<tr style="height: 18.75pt; mso-yfti-irow: 8; mso-yfti-lastrow: yes;">
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt; width: 37.5pt;" valign="top" width="50"><div class="MsoNormal">
<b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">17:00</span></b><span style="mso-fareast-font-family: "Times New Roman";"></span></div>
</td>
<td style="height: 18.75pt; padding: .75pt .75pt .75pt .75pt;" valign="top"><div class="MsoNormal">
<b><span style="font-family: "arial" , "sans-serif"; font-size: 10.0pt;">Ende der Veranstaltung</span></b><span style="mso-fareast-font-family: "Times New Roman";"></span></div>
</td>
</tr>
</tbody></table>
<br />
<br />
Haben wir Ihr Interesse geweckt? Dann laden Sie hier den Einladungsflyer zur Veranstaltung "<a -="" adf="" forms="" href="http://www.team-pb.de/images/files/Veranstaltungen/Einladung_Informationsveranstaltung-Form-ADF_18_03_14.pdf" migration="" oracle="" quot="" target="_blank" title="Einladung" uo="" vadis="" veranstaltung="" zu="" zur="">Forms Quo Vadis</a>" inklusive Anmeldeformular herunter. <br />
<br />PADORAhttp://www.blogger.com/profile/02559299557118507156noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-57683222364548180252013-12-13T12:05:00.001+01:002016-03-11T09:26:33.180+01:00Programmatic full-reset of adf input components contained in af:switcher<b>Task</b>: Reset each and every input component on a page after some action took place.<br />
<br />
<b>Solution</b>: First of all requery the data that is used inside the ui input components. <br />
<br />
Then access the Faces Context and set the ViewRoot to a newly created UiView. This can be found in the utility Java Class JSFUtils provided by Duncan Mills and Steve Muench. As an excerpt:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: small;"> public static final void refreshCurrentPage() {<br /> FacesContext context = getFacesContext();<br /> String currentView = getRootViewId();<br /> ViewHandler vh = context.getApplication().getViewHandler();<br /> UIViewRoot x = vh.createView(context, currentView);<br /> x.setViewId(currentView);<br /> context.setViewRoot(x);<br /> }</span><br />
<br />
<b>Issue</b>: This does not seem to refresh components, that are dynamically generated inside an af:switcher. After recursive logging of the components that are refreshed, it seems to be that the org.apache.myfaces.trinidad.component.UIXSwitcher children are not accessed.<br />
<br />
<b>Solution 2</b>: I assume that internally the "refreshCurrentPage" uses the same functionality, that is used by the getChildren() method derived by the javax.faces.component.UIComponent class. Unfortunetaly this method returns null for the UIXSwitcher component. Therefore you should use the getFacetsAndChildren() method (which works for the UIXSwitcher since there are only facet subnodes) and write your own refresh code that could look something like this:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: small;"> private void resetValueInputItems(AdfFacesContext adfFacesContext,<br /> UIComponent component) {<br /> <br /> Iterator<UIComponent> items = component.<span style="color: red;">getFacetsAndChildren()</span>;<br /> while(items.hasNext()){<br /> <br /> UIComponent item = items.next();<br /> <br /> resetValueInputItems(adfFacesContext, item);<br /><br /> if (item instanceof RichInputText) {<br /> RichInputText input = (RichInputText)item;<br /> if (!input.isDisabled()) {<br /> input.resetValue();<br /> adfFacesContext.addPartialTarget(input);<br /> }<br /> } else if (item instanceof RichInputDate) {<br /> RichInputDate input = (RichInputDate)item;<br /> if (!input.isDisabled()) {<br /> input.resetValue();<br /> adfFacesContext.addPartialTarget(input);<br /> }<br /> } else if (item instanceof RichSelectOneChoice){<br /> RichSelectOneChoice lov = (RichSelectOneChoice) item;<br /> if (!lov.isDisabled()) {<br /> lov.resetValue();<br /> adfFacesContext.addPartialTarget(lov);<br /> }<br /> }<br /> }<br /> AdfFacesContext.getCurrentInstance().addPartialTarget(component);<br /> }</span><br />
<br />
<b>Result:</b> Each component resets its Value, even those that are contained inside a af:switcher component.<br />
<br />Markus Klenkehttp://www.blogger.com/profile/02343002789283818840noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-9916518666663087872013-11-25T12:03:00.000+01:002013-11-25T12:04:21.520+01:00Titel: Segen oder Fluch? – Oracle Trace- und Logdateien!<p>Trace- und Logdateien sind ein Segen, wenn man nach der Ursache für Probleme in Datenbank, Net Services, Applicationserver oder anderen Oracle Komponenten sucht. Sie können aber auch zum Fluch werden, wenn man sie gar nicht benötigt. Unablässig protokolliert die Oracle-Software alle Aktivitäten. Die Dateien füllen langsam und unmerklich den Plattenplatz. Und dann steht plötzlich die Datenbank wegen „no space left on device“ oder der Applicationserver hängt, weil die Logdatei zu groß geworden ist. <br />Mit Einführung des Automatic Diagnostic Repositories (ADR) für die Datenbanksysteme hat Oracle einen Anfang gemacht Log- und Tracedateien automatisch zu kürzen bzw. aufzuräumen. <br />Doch die Gefahr ist nicht gebannt: Längst nicht alle Logdateien werden zentral im ADR abgelegt. Auch an anderen Speicherorten finden sich Logdateien, die nicht durch Oracle Prozesse aufgeräumt werden. Und selbst im ADR bleiben einige Logdateien ungekürzt oder werden zu lange vorgehalten.</p> <p>Ein einleitendes Manuskript ist zu finden unter: <a href="https://drive.google.com/file/d/0BzK82yFfiVGDZnQ5TUh2N2RmdUE/edit?usp=sharing"><u>2013-K-DB-Appelbaum-Segen oder Fluch-Oracle Log&Tracedateien -Manuskript.pdf</u></a></p> <p>Im Vortrag auf der DOAG 2013 Konferenz habe ich aus unseren Erfahrungen im Rahmen unserer Oracle Administration Services wichtige Best Practices an die Hand dargestellt, wo welche Dateien zu finden sind und wie für diese Rotation und Löschen eingerichtet werden können. <br />Ich habe Trace- und Logdatein und ebenso die Auditdateien bei Datenbank, Listener, Grid/Cloud Control, Agent, Application-/Weblogicserver und bei anderen Oracle Komponenten betrachtet. Erforderliche Skripte habe ich sowohl für Unix/Linux als auch für Windows Installationen vorgestellt.</p> <p>Die Präsentation ist zu finden unter: <a href="https://drive.google.com/file/d/0BzK82yFfiVGDMzRJNGpNaC01VjQ/edit?usp=sharing"><u>2013-K-DB-Appelbaum-Segen oder Fluch-Oracle Log&Tracedateien-Präsentation.pdf</u></a></p> <p>Bei Interesse an den Skripten können Sie mich gerne kontaktieren.</p> Ralf Appelbaumhttp://www.blogger.com/profile/11644702180881016501noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-28071469980528624372013-11-18T00:23:00.001+01:002013-11-18T00:25:20.637+01:00Man trifft sich, auf der DOAG 2013 Konferenz<p><strong></strong></p> <p>Die Oracle Community trifft sich und auch TEAM ist mit einem Stand und zwei Vorträgen wieder dabei! Besuchen Sie uns und lernen Sie das umfassende Consulting-Angebot von TEAM kennen. Es gibt jede Menge aktuelle Themenschwerpunkte, über die wir uns gerne mit Ihnen an unserem <a href="http://www.doag.org/de/events/konferenzen/doag-2013/der-ausstellerkatalog.html#41">Stand 204 in der 2. Etage (gelb)</a> unterhalten möchten!</p> <p>Auch zum immer wieder brisanten Thema Lizenz-Compliance, dem sich die DOAG ganz aktuell mit einem <a href="http://www.doag.org/home/aktuelle-news/article/lizenz-compliance-wurde-bisher-in-vielen-unternehmen-nicht-mit-der-prioritaet-behandelt-die-notw.html">digitalen Lizenzguide</a> widmet, sind wir als offizieller Oracle LMS JPE Partner sicher ein qualifizierter Ansprechpartner. Als in Oracle LMS Audits erfahrener und von Oracle qualifizierter Mitarbeiter diskutiere ich, Ralf Appelbaum, gerne mit Ihnen an unserem Messestand als Hersteller unabhängiger Berater Ihre Vorbehalte zu diesem Thema.</p> <p>Besuchen Sie TEAM bei folgenden, spannenden Vorträgen zum Stream - Middleware & SOA sowie Oracle Datenbank:</p> <p><strong>Migration auf Knopfdruck – Macht das überhaupt Sinn?</strong> <br />Donnerstag, 21. November 2013, um 12:00 Uhr im Raum 5 <br />Referent: Markus Klenke, TEAM GmbH <br />Detail Informationen finden Sie<a href="http://www.doag.org/konferenz/vortrag_details.php?tag=&kid=441438&id=465849"><strong> hier</strong></a>.</p> <p><strong>Segen oder Fluch? – Oracle Trace- und Logdateien!</strong> <br />Donnerstag, 21. November 2013, um 10:00 Uhr im Raum 19 <br />Referent: Ralf Appelbaum, TEAM GmbH <br />Detail-Informationen finden Sie<a href="http://www.doag.org/konferenz/vortrag_details.php?tag=&kid=441438&id=464296"><strong> hier</strong></a>.</p> <p>Wer nicht recht weiß, welche Vorträge er auf der <a href="http://www.doag.org/events/konferenzen/doag-2013.html">Doag 2013</a> sonst noch besuchen soll, nutze doch einfach den <br /><strong><a href="http://iconfguide.doag.org/">iConfGuide</a> von TEAM, der bringt den Überblick</strong> <br />Mit dem von TEAM auf Basis von Oracle ADF entwickelten iConfGuide stellen Sie ganz bequem aus 400 Vorträgen Ihr ganz persönliches Programm zusammen - und das auf Ihrem iPhone (optimiert) oder SmartPhone! Schauen Sie rein: <a href="http://iconfguide.doag.org/">iconfguide.doag.org</a></p> Ralf Appelbaumhttp://www.blogger.com/profile/11644702180881016501noreply@blogger.com0tag:blogger.com,1999:blog-5573161311850421459.post-29387310707438558762013-10-10T09:56:00.002+02:002013-10-10T10:01:15.663+02:00Tooltips vom Converter bei ADF af:inputText Feldern unterdrückenEigentlich machen die Tooltips von Convertern auf Eingabefeldern ja durchaus Sinn, denn sie helfen dabei, mögliche Fehleingaben zu verhindern.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZdbcNZa1jhep3lqh56ccSHX-Tk84QjM-LnPVRcWMJC2oCNS9ExYzK_eU6GiMIm9xpMqN4rfWkc1YWrCnLTieRGiIsVJyfOZnqBlXdnQAlcAxwb2lOMHkLfSX7XX_fedcEWEyZYQbq44i-/s1600/converter_tooltip.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="64" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZdbcNZa1jhep3lqh56ccSHX-Tk84QjM-LnPVRcWMJC2oCNS9ExYzK_eU6GiMIm9xpMqN4rfWkc1YWrCnLTieRGiIsVJyfOZnqBlXdnQAlcAxwb2lOMHkLfSX7XX_fedcEWEyZYQbq44i-/s320/converter_tooltip.png" width="320" /></a></div>
Wenn der Kunde aber wünscht "<span style="font-family: inherit;">...bitte nicht anzeigen, die Benutzer wissen, was sie da eintragen...</span>" ist uns das Befehl.<br />
<br />
Dieses Posting im Oracle Forum zeigt den Weg, wie es auf <i>af:inputDate</i> Feldern mit dem automatisch gesetzten <i>convertDateTime</i> Converter funktioniert: <a href="https://forums.oracle.com/message/10101349#10101349">https://forums.oracle.com/message/10101349#10101349</a><br />
<br />
Das funktioniert analog natürlich auch z.B. für ein <i>af:inputText</i> Feld, auf dem ein Converter manuell eingestellt wurde!<br />
<br />
1.) Javascript Funktion in den Code<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;"><?xml version='1.0' encoding='UTF-8'?><br /><jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"<br /> xmlns:af="http://xmlns.oracle.com/adf/faces/rich"<br /> xmlns:f="http://java.sun.com/jsf/core"<br /> xmlns:c="http://java.sun.com/jsp/jstl/core"><br /><br /><span style="color: red;"> <af:resource type="javascript"><br /> function blockHint(event) {<br /> var source = event.getSource();<br /> source.getPeer().ShouldShowHint = function() { <br /> return false;<br /> }</span></span><br />
<span style="color: red;"><span style="font-family: "Courier New",Courier,monospace;"> }<br /> </af:resource></span></span><br />
<span style="font-family: "Courier New",Courier,monospace;">...</span><br />
<br />
2.) Funktion innerhalb des <i>af:inputText</i> mit einem <i>af:clientListener</i> auf den Typ <i>focus</i> aufrufen lassen.<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">...</span><br />
<span style="font-family: "Courier New",Courier,monospace;"><af:inputText id="it6"</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> simple="true"</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> rows="1"<br /> columns="#{row.length.value}"<br /> maximumLength="#{row.length.value}"<br /> value="#{row.zahl}"<br /> contentStyle="text-align:right;"><br /><span style="color: red;"> <af:clientListener method="blockHint"</span></span><br />
<span style="font-family: "Courier New",Courier,monospace;"><span style="color: red;"> type="focus"/></span><br /> <f:convertNumber pattern="#"<br /> type="number"/><br /></af:inputText></span><br />
<span style="font-family: "Courier New",Courier,monospace;">...</span><br />
<br />
Fertig.Marius Koehlerhttp://www.blogger.com/profile/09649272785228665395noreply@blogger.com0