tag:blogger.com,1999:blog-65097795870609864182024-03-05T05:37:18.657-08:00Anil's Oracle Application Framework BlogSharing learning with wider audienceAnil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.comBlogger99125tag:blogger.com,1999:blog-6509779587060986418.post-119415636573098962020-01-22T15:37:00.005-08:002020-01-22T15:40:46.163-08:00Import Database Connections into Oracle SQL Developer<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
These screenshot are from JDevelopers - 12c</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
1. Click on Window - Resources</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1IjBMQlLMrusCWCzUPdVAC8QMMnCuEdSdsLxK1WKsDbh9u6Bbp5jT66X2Zq73eF-d7naA8_9Qz0KIFGYKiwYWmRJRWsfsxZJv3hA947Lk2WlDbGIfRXVQAk39c1YDOvNL-NWIAQFqsww/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="600" data-original-width="800" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1IjBMQlLMrusCWCzUPdVAC8QMMnCuEdSdsLxK1WKsDbh9u6Bbp5jT66X2Zq73eF-d7naA8_9Qz0KIFGYKiwYWmRJRWsfsxZJv3hA947Lk2WlDbGIfRXVQAk39c1YDOvNL-NWIAQFqsww/s640/1.png" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
2. In the Resources pallet - Click on Import to open the 'Import Catalogs and Connections' window.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4UnhTD86Q3o9zplwfAAosDA9ePZlZRMYSUgxQm-povNpoCnekUiFWw5RUnEz3qZClNtXkfYRY_dCivFWLizRy1O5mRYX2NqbNNE856LtXTMCE1hBh7jOOE0gZPwdxUy0mIoTSpXLh5BI/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="208" data-original-width="340" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4UnhTD86Q3o9zplwfAAosDA9ePZlZRMYSUgxQm-povNpoCnekUiFWw5RUnEz3qZClNtXkfYRY_dCivFWLizRy1O5mRYX2NqbNNE856LtXTMCE1hBh7jOOE0gZPwdxUy0mIoTSpXLh5BI/s1600/2.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
3. Now browse to locate the *.rcx file containing connection details.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaWoNDLROPtsjp7UPkkNmGln6lw-w94jDQZzjkXyrRR5rT2IzwdbvlQFRuEOwZv0gvll1PRpUmcMHqNnH-cCGqFzQjHImYGw1NZ_zWAm24TwIEJx0u6RLWRv4jBuyAOKJ8tdg8iqQjOjw/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="610" data-original-width="956" height="408" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaWoNDLROPtsjp7UPkkNmGln6lw-w94jDQZzjkXyrRR5rT2IzwdbvlQFRuEOwZv0gvll1PRpUmcMHqNnH-cCGqFzQjHImYGw1NZ_zWAm24TwIEJx0u6RLWRv4jBuyAOKJ8tdg8iqQjOjw/s640/3.png" 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>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
4. Then click on Import to import the connections.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqKALj6O7Kiwgz8YWSWe2f2m9McQKY-vVJmtdFSulJfkezZd1w-zFKgACLFHRf3ehDCftCgj8fy2gWXZuuOmluwJBL9ilyIe2o0FItQts81z0gIfx87gEPxhFcZoB2uXRiTCqoRaVA8KA/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="496" data-original-width="694" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqKALj6O7Kiwgz8YWSWe2f2m9McQKY-vVJmtdFSulJfkezZd1w-zFKgACLFHRf3ehDCftCgj8fy2gWXZuuOmluwJBL9ilyIe2o0FItQts81z0gIfx87gEPxhFcZoB2uXRiTCqoRaVA8KA/s1600/4.png" /></a></div>
<br /></div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-47474806997988753462019-12-04T15:19:00.002-08:002019-12-04T15:19:36.429-08:00SOA 12C Instance Auto Recovery<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Instance Auto recovery is the functionality to recover the failed instances with in a stipulated time period. The Instances which are faulted and marked to be recovered can be recovered in a particular time.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
At sometime it's a disadvantage if your instances are falling which might lead increase table spaces issue in soa-infra.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
To overcome this, we need to change the recoveryConfig property as mentioned below:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<u>STEPS</u></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Login to Enterprise Manager and Go to SOA Administrator - BPEL Properties.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg636mKO2w7wbj2rELe6pzJAs2fjjKhW_TLP8RxAC-1fpZwa56YZUnuX4QITBrU-R3rczVfXRWJJCXn1Zo5teYq_SL5xsyHnPe5QzTII2yzHFszXREeDrRmOCPj57CqlUP_BIfSLSZtBdg/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="675" data-original-width="614" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg636mKO2w7wbj2rELe6pzJAs2fjjKhW_TLP8RxAC-1fpZwa56YZUnuX4QITBrU-R3rczVfXRWJJCXn1Zo5teYq_SL5xsyHnPe5QzTII2yzHFszXREeDrRmOCPj57CqlUP_BIfSLSZtBdg/s400/1.jpg" width="363" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
2. Click on 'More BPEL Configuration Properties'</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja-IZ7Gaagz0K6lBq7P-V94RmoliRU-AaqAvwfZQpW2VT4kn2o9froKsvpE4EX_08kbU6lq9_sR6dFw8j_RR63sCu8a1vua_jHyix4PsomSz7TjnWevuiAHwiHTvVvK-fXQIQzEFoZrVI/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="389" data-original-width="490" height="317" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEja-IZ7Gaagz0K6lBq7P-V94RmoliRU-AaqAvwfZQpW2VT4kn2o9froKsvpE4EX_08kbU6lq9_sR6dFw8j_RR63sCu8a1vua_jHyix4PsomSz7TjnWevuiAHwiHTvVvK-fXQIQzEFoZrVI/s400/2.jpg" width="400" /></a></div>
<br />
3. Under RecoveryConfig --> RecurringScheduleConfig.<br />
<br />
Update the MaxMessageRaiseSize to 0.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifj_RBUhNYk4u18lkRVFYl9WaOg0jtBgX66YA3coHtQk4VCL-w8wYy0fHWXnGun0T1FX59Puelx29a1sLdOZdLeHQJCHqcBhB1Y8tXB04E4IJib_ZoJK66GXGvfKTL3rovqCPJ2WlR4Fc/s1600/3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="406" data-original-width="602" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifj_RBUhNYk4u18lkRVFYl9WaOg0jtBgX66YA3coHtQk4VCL-w8wYy0fHWXnGun0T1FX59Puelx29a1sLdOZdLeHQJCHqcBhB1Y8tXB04E4IJib_ZoJK66GXGvfKTL3rovqCPJ2WlR4Fc/s400/3.jpg" width="400" /></a></div>
<br /></div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-72908717726788796082019-09-13T20:04:00.003-07:002019-09-13T20:04:53.427-07:00Deployment over different environments<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="background-color: white;"><span style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"><span style="font-size: 14.85px;"><br /></span></span></span>
<span style="background-color: white;"><span style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"><span style="font-size: 14.85px;">Use ORAMDS for all XSD / WSDL files on the project (oramds:...) in all composite.xml and wrappers in location tag. Doing that you will guarantee that you can deploy anywhere even when you don't have remote access to a environment. </span></span></span><br />
<span style="background-color: white;"><span style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"><span style="font-size: 14.85px;"><br /></span></span></span>
<span style="background-color: white;"><span style="color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"><span style="font-size: 14.85px;">Also, in this way it is not necessary to change endpoints in composite.xml during compilation time (by script for instance) </span></span></span><span style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 14.85px;">then use configuration plans.</span><br />
<span style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 14.85px;"><br /></span>
<span style="background-color: white; color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 14.85px;">Cheers!!</span></div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-24272356858704382482019-09-13T19:30:00.001-07:002019-09-13T20:07:21.862-07:00BPEL Transaction and Delivery Policies<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="background-color: #fafafa; color: #333333; margin: 0.83em 0px; padding: 0px; position: relative; text-align: left;">
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<a href="https://www.blogger.com/u/1/null" name="_GoBack"></a><u><span style="font-family: Arial, sans-serif; font-size: 11pt;">Background</span></u><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; font-family: Arial, sans-serif; font-size: 11pt;">Transaction context between different BPEL services are
controlled by mainly two properties/attributes. Those are Delivery and
Transaction attributes. </span><span style="font-family: Arial, sans-serif; font-size: 11pt;"><o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; font-family: Arial, sans-serif; font-size: 11pt;"><br />
</span><u><span style="font-family: Arial, sans-serif; font-size: 11pt;">Details</span></u><span style="font-family: Arial, sans-serif; font-size: 11pt;"><o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<b><span style="font-family: Arial, sans-serif; font-size: 11pt;">Case 1 :</span></b><span style="font-family: Arial, sans-serif; font-size: 11pt;"> If
BPEL Process is Async or one-way process then, Delivery policy attribute can
have three values. Those are 1)- async.persit 2)- async.cache 3)- sync<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">meaning:<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">-
async.persit: Delivery messages are persisted in the database in table
dlv_message. With this setting, reliability is obtained with some performance
impact on the database. When the client initiates a process instance, an
invocation request is placed in an internal queue. Inside Oracle BPEL Server, a
message-driven bean (MDB), WorkerBean, monitors the queue for invocation
requests. When a message is dequeued, Oracle BPEL Server allocates a thread to
process the message.<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;"> <o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">
<property many="false" name="bpel.config.transaction" type="xs:string">required<o:p></o:p></property></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;"> <o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">
many="false">async.persist<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">-
async.cache : Incoming delivery messages are kept only in the in-memory cache.
If performance is preferred over reliability, this setting should be
considered. Message are not dehydrated into dlv_message table. Rest all is same
as async.persist.<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;"> <o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">
<property many="false" name="bpel.config.transaction" type="xs:string">required<o:p></o:p></property></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;"> <o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">
many="false">async.cache<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">- sync :
Directs Oracle BPEL Server to bypass the scheduling of messages in the invoke
queue, and invokes the BPEL instance synchronously. In some cases this setting
can improve database performance. So there is no role of invoke queue and
worker bean here.<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;"> <o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">
<property many="false" name="bpel.config.transaction" type="xs:string">required<o:p></o:p></property></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;"> <o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">
many="false">sync<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<b><span style="font-family: Arial, sans-serif; font-size: 11pt;">Case 2:</span></b><span style="font-family: Arial, sans-serif; font-size: 11pt;"> If
BPEL Process is Sync process then, transaction context between client and
bpel-process is controlled by "Transaction" Attribute. Values of
these attributes are 1)- Required 2)- Requires New<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">meaning:<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">-
Required : This makes the BPEL process execute as part of the calling
transaction. If no calling transaction exists, it will create a new one.<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">bpel.config.transaction
property is set to requiresNew:<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;"><component name="BPELProcess2" version="1.1"></component>
<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">
<property name="bpel.config.transaction" nbsp="" span="">many="false" type="xs:string">required<o:p></o:p></property></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">-
RequiresNew : This is the default value and makes the BPEL process execute as a
separate transaction. Any existing transaction will be suspended.<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<br /></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">bpel.config.transaction
property is set to requiresNew:<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;"><component name="BPELProcess2" version="1.1"></component>
<o:p></o:p></span></div>
<div style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin: 0cm 0cm 0.0001pt;">
<span style="font-family: Arial, sans-serif; font-size: 11pt;">
<property name="bpel.config.transaction" nbsp="" span="">many="false" type="xs:string">requiresNew<o:p></o:p></property></span></div>
<component name="BPELASynchCall" version="2.0"></component>
<implementation .bpel="" src="BPELASynchCall.bpel"></implementation>
<property name="bpel.config.oneWayDeliveryPolicy" span="" type="xs:string"></property>
<component name="BPELASynchCall" version="2.0"></component>
<implementation .bpel="" src="BPELASynchCall.bpel"></implementation>
<property name="bpel.config.oneWayDeliveryPolicy" span="" type="xs:string"></property>
<component name="BPELTest" version="1.1"></component>
<implementation .bpel="" src="BPELTest.bpel"></implementation>
<property name="bpel.config.oneWayDeliveryPolicy" span="" type="xs:string"></property>
<implementation .bpel="" src="BPELProcess2.bpel"></implementation>
<implementation .bpel="" src="BPELProcess2.bpel"></implementation>
<br />
<div class="MsoNormal">
<br /></div>
</div>
<div style="background-color: #fafafa; color: #333333; font-family: "Helvetica Neue Light", HelveticaNeue-Light, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; margin: 0px; outline: none; padding: 0px;">
<span style="font-family: "helvetica neue" , "arial" , "helvetica" , sans-serif; font-size: xx-small;"></span></div>
</div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-25440795521414960192019-08-21T00:49:00.001-07:002019-08-21T00:49:53.847-07:00SOA Composite Sensors : Good Practice<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="background-color: white; color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px; vertical-align: inherit;"><span style="vertical-align: inherit;">In this article we will see how to stop a running SOA composite process. </span><span style="vertical-align: inherit;">It is normal to stop from Enterprise Manager (http: // {hostname}: {port number} / em), but I thought this was not "user friendly". </span></span><br />
<br style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;" />
<span style="color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px; vertical-align: inherit;">How can I use the API to identify the SOA composite instance ID? </span><span style="color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px; vertical-align: inherit;">It is easiest to incorporate a composite sensor into the SCA composite. </span><span style="color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px; vertical-align: inherit;">With a composite sensor, you can easily retrieve business data from a composite. </span><span style="color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px; vertical-align: inherit;">You can query the composite with the data from this sensor. </span><br />
<br style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;" />
<span style="background-color: white; color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px; vertical-align: inherit;"><span style="vertical-align: inherit;">For example, you might want to create a composite sensor that outputs a primary key (such as orderId) for the composite you created. </span><span style="vertical-align: inherit;">If you need to manipulate or query the composite, you can easily identify the instance ID using the sensor ID. </span></span><br />
<br style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;" />
<span style="background-color: white; color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px; vertical-align: inherit;"><span style="vertical-align: inherit;">For how to create a composite sensor ID, refer to the following document. </span></span><br />
<span style="background-color: white; color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px; vertical-align: inherit;"><span style="vertical-align: inherit;"><br /></span></span>
<span style="background-color: white; color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px; vertical-align: inherit;"><span style="vertical-align: inherit;"><a href="https://docs.oracle.com/cd/E23943_01/dev.1111/e10224/sca_compsensors.htm#SOASE20703">https://docs.oracle.com/cd/E23943_01/dev.1111/e10224/sca_compsensors.htm#SOASE20703</a></span></span><br />
<span style="background-color: white; color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px; vertical-align: inherit;"><br /></span>
<span style="background-color: white; color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px; vertical-align: inherit;">Thanks,</span><br />
<span style="background-color: white; color: #444444; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px; vertical-align: inherit;">Anil</span></div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-22082448844425371022019-08-21T00:45:00.001-07:002019-08-21T00:45:13.616-07:00SOA - Change Logging Level for SOA 11g<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; vertical-align: inherit;"><span style="vertical-align: inherit;">This content has already been introduced in many entries, but I will keep it personally as many people still ask me.</span></span><br />
<ol style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;">
<li style="margin: 0px 0px 0.25em; padding: 0px;"><span style="vertical-align: inherit;">Log in to Enterprise Manager Fusion Middleware Control.</span><br /><blockquote>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://blogs.oracle.com/middleware/resource/WindowsLiveWriter-ChangeLoggingLevelforSOA11g_CA78/image_2.png" imageanchor="1" style="color: #4d469c; margin-left: 1em; margin-right: 1em; text-decoration-line: none;"></a></div>
<b>http: // {host name or IP}: {port number} / em</b></blockquote>
</li>
<li style="margin: 0px 0px 0.25em; padding: 0px;"><span style="vertical-align: inherit;">Open the SOA folder, right click on the soa_infra (soa_server1) folder and select Log> Log Customization.</span><br /><a href="http://blogs.oracle.com/middleware/resource/WindowsLiveWriter-ChangeLoggingLevelforSOA11g_CA78/image_2.png" style="color: #4d469c; margin-left: 1em; margin-right: 1em; text-decoration-line: none;"><br /></a></li>
<li style="margin: 0px 0px 0.25em; padding: 0px;"><span style="vertical-align: inherit;"><span style="vertical-align: inherit;">Change the log level of the component you want to monitor. </span><span style="vertical-align: inherit;">If necessary, you can change the log level of the parent package. </span><span style="vertical-align: inherit;">If you set the parent log level to FINEST, a large amount of logs will be output, so it is not recommended.</span></span></li>
<li style="margin: 0px 0px 0.25em; padding: 0px;"><span style="vertical-align: inherit;">A confirmation message will appear asking whether to apply the change. Set it to Yes before reflecting the change.</span><br /><div>
</div>
</li>
</ol>
<div>
<span style="color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif;"><span style="font-size: 13px;"> Cheers!!</span></span></div>
</div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-4402742860134984472019-08-21T00:42:00.002-07:002019-08-21T00:42:47.161-07:00OSB - Using JSON with Oracle Service Bus REST Services<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; vertical-align: inherit;"><span style="vertical-align: inherit;">Two new Oracle Service Bus samples have been registered on the Oracle Technology Network site. </span><span style="vertical-align: inherit;">The first sample project is osb-205-SimpleREST. </span><span style="vertical-align: inherit;">This demonstrates how to fully implement a REST service in OSB. </span><span style="vertical-align: inherit;">“Complete” means that the following HTTP methods are implemented using OSB.</span></span><br />
<ul style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 1.4; list-style-image: initial; list-style-position: initial; margin: 0.5em 0px; padding: 0px 2.5em;">
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">GET</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">POST</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">PUT</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">DELETE</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">HEAD</li>
<li style="border: none; margin: 0px 0px 0.25em; padding: 0.25em 0px;">OPTIONS</li>
</ul>
<span style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; vertical-align: inherit;"><span style="vertical-align: inherit;">Another REST sample is now over. </span><span style="vertical-align: inherit;">This is an osb-206-JSONREST project, which is an implementation sample for making OSB respond to JSON messages. </span><span style="vertical-align: inherit;">JSON (JavaScript Object Notation) is often used in web browsers. </span><span style="vertical-align: inherit;">Passing XML to a javascript client is not the only communication method. </span><span style="vertical-align: inherit;">JSON is a popular method for exchanging data, especially for web developers. </span><span style="vertical-align: inherit;">The reason for this is that JSON objects are easy to handle for javascript, but more infrastructure on the client side is needed to handle XML responses. </span></span><br style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; vertical-align: inherit;"><span style="vertical-align: inherit;">For reasons of JSON characteristics, the osb-206-JSONREST sample targets HTTP methods GET and POST (both can be executed from a web browser). </span><span style="vertical-align: inherit;">If you move a little, you can create a robust REST service for production environments and process XML and JSON payloads according to the HTTP Header Content-type. </span><span style="vertical-align: inherit;">All OSB samples are uploaded to the SOA Suite sample site. </span><span style="vertical-align: inherit;">The URL is as follows. </span><span style="vertical-align: inherit;">Click the OSB section on the left side of the </span></span><br style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;" /><br style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; vertical-align: inherit;"><span style="vertical-align: inherit;">Official Oracle SOA Suite Samples </span></span><br style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;" /><a href="https://www.oracle.com/downloads/samplecode/service-bus-downloads.html">https://www.oracle.com/downloads/samplecode/service-bus-downloads.html</a><br style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;" /><br style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px;" /><span style="background-color: white; color: #444444; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; vertical-align: inherit;"><span style="vertical-align: inherit;">page to see OSB samples. </span><span style="vertical-align: inherit;">The site also provides samples of other components of the SOA Suite, so it's worth a look. </span></span></div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-88762952713671265312019-08-21T00:08:00.002-07:002019-08-21T00:08:34.283-07:00SOA - DB Adapter performance issue having 1-N Relations Table<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
I faced the problem that it took a long time to execute select in DB Adapter. There were three tables that contained a large amount of data and contained many columns, and these tables were being handled by the DB Adapter.<br />
<br />
The database side configured a primary key / foreign key relationship between the tables and recreated the DB Adapter, but the same problem occurred. The problem occurs when the user edits the SQL on the Define Selection Criteria page of the DB Adapter. Here are some ways to work around this problem:<br />
<br />
Open <dbadapter name=""> -or-mappings.xml file</dbadapter><br />
Find <batch-reading> true </ batch-reading> and change true to false</batch-reading><br />
<br />
Open the DB Adapter wizard again, go to the Define Selection Conditions page, and define the where clause. Check the Return a single result set for both master and detail tables using outer join checkbox. This recreates the SQL.<br />
<br />
Change the where clause of this new SQL statement. Be careful not to change before the From clause.<br />
<br />
Click Finish to deploy the project.<br />
<br />
Test the application.<br />
<br />
For TopLink batch attribute reading (default is true), if this is true and you edit "Selection Condition Definition" in the DB Adapter Wizard, you may scan the entire table with a one-to-many relationship .<br />
To avoid this, batch loading was set to false.<br />
<br />
Cheers!!</div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-31759247246212693482016-03-04T11:03:00.001-08:002017-07-09T09:49:56.843-07:00 Controller Extension in R12.2.x<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="center" style="margin-bottom: .0001pt; margin: 0in; text-align: center;">
<b><span style="background: white; font-family: "arial" , sans-serif; font-size: 11pt;">Deploying Customizations in Oracle E-Business Suite Release
12.2</span></b><span style="font-family: "arial" , sans-serif; font-size: 11pt;"><o:p></o:p></span></div>
<div style="margin: 0in 0in 0.0001pt;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">This article describes how to
deploy customizations in an Oracle E-Business Suite Release 12.2 environment.<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">A<span class="apple-converted-space"> </span><u>little bit background</u><span class="apple-converted-space"> </span>before we move onto the exact steps
required to move the customization.<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">An Oracle E-Business Suite
Release 12.2 installation now includes two editions (versions) of the
application code and seed data.<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">The "<b>Run Edition</b>"
is the code and data used by the running application. As a developer, you will
connect to the Run Edition whenever you are engaged in normal development
activity on the system.<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">The "<b>Patch Edition</b>"
is an alternate copy of Oracle E-Business Suite code and seed data that is
updated by Online Patching. End users cannot access the Oracle E-Business Suite
Patch Edition, but as a developer you may need to connect to the Patch Edition
of a system when applying patches or debugging problems with Online Patch
execution.<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">The Oracle E-Business Suite
application-tier files are installed in a base directory of the customer's
choosing. Within that base directory you will now find three important
sub-directories:<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<b><span style="font-family: "arial" , sans-serif; font-size: 11pt;">fs1</span></b><span class="apple-converted-space"><span style="font-family: "arial" , sans-serif; font-size: 11pt;"> </span></span><span style="font-family: "arial" , sans-serif; font-size: 11pt;">- file system 1 (either run or patch edition)<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<b><span style="font-family: "arial" , sans-serif; font-size: 11pt;">fs2</span></b><span class="apple-converted-space"><span style="font-family: "arial" , sans-serif; font-size: 11pt;"> </span></span><span style="font-family: "arial" , sans-serif; font-size: 11pt;">- file system 2 (alternate of file system 1)<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">fs_ne - non-editioned file
system, for data files<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">The fs1 and fs2 directories
contain the Run Edition and Patch Edition files for Oracle E-Business Suite.
The "run" and "patch" file system designation will switch
back and forth between fs1 and fs2 for each patching cycle.<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<b><u><span style="font-family: "arial" , sans-serif; font-size: 11pt;">Connecting to the Run Edition</span><u1:p></u1:p></u></b><span style="font-family: "arial" , sans-serif; font-size: 11pt;"><o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">Oracle E-Business Suite Release
12.2.2 and higher includes a script to set the run or patch edition environment
by edition type. The script is called "<b>EBSapps.env</b>" and is
found in the base directory of an Oracle E-Business Suite application-tier
installation.<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<b><u><span style="font-family: "arial" , sans-serif; font-size: 11pt;">Login to Putty</span></u></b><span style="font-family: "arial" , sans-serif; font-size: 11pt;">:-<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">1. Connect to the run edition
file system on your development environment. Run EBSapps.env to find the run
instance.<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">$ source
/u01/R122_EBS/EBSapps.env run<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">E-Business Suite Environment
Information<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">----------------------------------------<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">RUN File System : /u01/R122_EBS/<b>fs2</b>/EBSapps/appl<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">PATCH File System : /u01/R122_EBS/<b>fs1</b>/EBSapps/appl<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">Non-Editioned File System :
/u01/R122_EBS/fs_ne<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">DB Host: slc04axp.us.oracle.com
Service/SID: gbzd122x<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;"> </span><span style="font-family: "arial" , sans-serif; font-size: 11pt;">Here you can see that</span><span class="apple-converted-space" style="font-family: "arial" , sans-serif; font-size: 11pt;"> </span><b style="font-family: Arial, sans-serif; font-size: 11pt;">FS2</b><span class="apple-converted-space" style="font-family: "arial" , sans-serif; font-size: 11pt;"> </span><span style="font-family: "arial" , sans-serif; font-size: 11pt;">is the RUN instance so we have to move
our Controller/View Object/Any Java/Xml file to FS2.</span></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">cd /u01/R122_EBS/fs2/EBSapps/appl<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">cd
$JAVA_TOP/xx_top/oracle/apps/fnd/framework/webui/<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">As an instance I am moving
xxEmpCo (Controller) file to above path. Once files is moved you can run JAVAC
to compile the JAVA file.<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">2. After you copy any custom files
under the $JAVA_TOP directory, run the <b>adcgnjar</b>
utility.<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">The adcgnjar utility does not
require any parameters on the command line. When prompted, enter the user name
and password of the APPS user.<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">3.Stop & Start managed
servers using using the command. When prompted enter the weblogic password.<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">$ $ADMIN_SCRIPTS_HOME
admanagedsrvctl.sh stop oacore_server1<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">$ $ADMIN_SCRIPTS_HOME
admanagedsrvctl.sh start oacore_server1<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">Note : If for any reason you have
modified seeded .JSP/XML/JAVA file the we need to run "Generate product
JAR files" from<span class="apple-converted-space"> </span><b><u>adadmin</u></b><span class="apple-converted-space"> </span>which will regenerate product jar
files for Oracle applications.<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">We use the<span class="apple-converted-space"> </span><b><u>adcgnjar</u></b><span class="apple-converted-space"> </span>utility for any custom Java or BC4J
code for Oracle Application Framework, Oracle CRM Technology Foundation (JTT),
Oracle Web Applications Desktop Integrator (BNE), custom servlets, or other
custom Java code. This utility generates and signs a file named customall.jar
file containing the custom Java and BC4J code and extensions.<o:p></o:p></span><u1:p></u1:p></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<br /></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">Thanks,<o:p></o:p></span></div>
<div style="margin-bottom: .0001pt; margin: 0in;">
<span style="font-family: "arial" , sans-serif; font-size: 11pt;">Anil</span></div>
</div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-21064418958595043362016-03-04T03:18:00.000-08:002016-03-04T03:18:30.520-08:00Dynamic View Object through Personalization | R12.2 New Feature<div dir="ltr" style="text-align: left;" trbidi="on">
<div>
<b><u>Create View Object through Personalization</u></b></div>
<div>
<br /></div>
This post will help you to understand on how we can create a view object with the help of OAF personalization.<div>
<br /></div>
<div>
1. Set 'Personalize Self-Service Defn' & 'FND: Personalization Region Link Enabled' Profile options so that you can get the personalization link.</div>
<div>
<br /></div>
<div>
2. In R12.2 we get the personalize link through the Setting icon as seen below.</div>
<div>
<br /></div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7KGBclXxs6-NOps4uccV9GKTWou2ZUDwqKGnnaKuv9Pd4vQrgTIEjm3MfJvqmCfjGR8WoPD_EUVNfjx-p_Tbpd9pRedGifRSy9eP6X_VVP3vo3D5e-SKEs0KV0vgJ_zrlql17aA9rVFs/s1600/0.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="141" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7KGBclXxs6-NOps4uccV9GKTWou2ZUDwqKGnnaKuv9Pd4vQrgTIEjm3MfJvqmCfjGR8WoPD_EUVNfjx-p_Tbpd9pRedGifRSy9eP6X_VVP3vo3D5e-SKEs0KV0vgJ_zrlql17aA9rVFs/s320/0.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
3. Then navigate to any oaf page and click on 'Personalize Page' and then click on 'Model Personalization'</div>
<div>
<br /><div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie-5GSiZq_uOYfpnFHCNP-kvkwU154Hxvfsa9oz0J0I-ax41gMDXg7YHUi3AtPTJEAjAocO3HSRlG2paksdhUWoeK56YwLeoLCdswRaM_5xp5Q8Guvcn6f7yspUwHz1TmqO59Ye9sdBso/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="65" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie-5GSiZq_uOYfpnFHCNP-kvkwU154Hxvfsa9oz0J0I-ax41gMDXg7YHUi3AtPTJEAjAocO3HSRlG2paksdhUWoeK56YwLeoLCdswRaM_5xp5Q8Guvcn6f7yspUwHz1TmqO59Ye9sdBso/s320/1.png" width="320" /></a><br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
4. Click on create button to create a Dynamic View Object. We can only create a dynamic read-only view instance that encapsulates a database query, to the root application module of the
current OA Framework-based page.<br />
<br />
Once you create
a new dynamic view instance, you can also enable, disable, or delete the view instance,
or delete the model personalization from the root application module.<br />
<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/AVvXsEhHBYJQ_mpIdBeHhyphenhyphenibBx3oHvs2IRw8nTzJJsn_KcZX_7lTEBcDjH7jm15yXr43Eufkci6eHqZC5QyRcoD-h_zDLiVCcLS49UaM9R52tFufXQGHb7AESw3GHidEXIRLSh2TSqt8S-PzEbY/s1600/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="113" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHBYJQ_mpIdBeHhyphenhyphenibBx3oHvs2IRw8nTzJJsn_KcZX_7lTEBcDjH7jm15yXr43Eufkci6eHqZC5QyRcoD-h_zDLiVCcLS49UaM9R52tFufXQGHb7AESw3GHidEXIRLSh2TSqt8S-PzEbY/s320/2.png" width="320" /></a></div>
<br />
5. Now specify a name for the view instance and enter the SQL query for the view instance.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNGz8XSPSXujgrrdly4i-TQ64K3ag0z-hJ0angBusEeuOQJozmJTNTl0ESYlcMjNsZYilSXtE3L1xkmnuhAqSH3pv05XgyGp0cfk8z0Htqz8X-TFHZu48rC0nU52j5nrH0xrAJ8JUCqL8/s1600/3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNGz8XSPSXujgrrdly4i-TQ64K3ag0z-hJ0angBusEeuOQJozmJTNTl0ESYlcMjNsZYilSXtE3L1xkmnuhAqSH3pv05XgyGp0cfk8z0Htqz8X-TFHZu48rC0nU52j5nrH0xrAJ8JUCqL8/s320/3.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
6. Select Apply to save the changes.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwRuoJpw-SdYMRksk51WTAt3UxAvC0k9g3eIdX_k9JoX8HcLmkONLotMzFlXSe2swDuwHbKd0j9YGqksxF6i7CGfLLdm8rvOSB3hZ9vElQVp_ikJhuYHJs0N_uur9sP2xtWoM0QM_efT0/s1600/4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="147" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwRuoJpw-SdYMRksk51WTAt3UxAvC0k9g3eIdX_k9JoX8HcLmkONLotMzFlXSe2swDuwHbKd0j9YGqksxF6i7CGfLLdm8rvOSB3hZ9vElQVp_ikJhuYHJs0N_uur9sP2xtWoM0QM_efT0/s320/4.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
7. Then I have created a Advance Table and three columns through personalization only to see the data which I have defined in above view object. Columns are - User Name,<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYbeXpcUoINcDtURx4r1YW2XPpCqtKr4V9GmxpZ_RIioG1DtYRnkK5bY6Lx0P5K1ZW8nji9KY-vxZNGUYpMupzSFg8qHcZju245QXWodjSoxl-apN7AHHW5PThPqCZoFFxcEAIofRoETk/s1600/5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYbeXpcUoINcDtURx4r1YW2XPpCqtKr4V9GmxpZ_RIioG1DtYRnkK5bY6Lx0P5K1ZW8nji9KY-vxZNGUYpMupzSFg8qHcZju245QXWodjSoxl-apN7AHHW5PThPqCZoFFxcEAIofRoETk/s320/5.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
8. Now as per below screenshots you can see that a view only table region get added to existing OAF page and also it is showing the data.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3fgBNzrLat5p63O-J1TcANZQ-0LxP3Qnsir18SpLRdqOTWS9cOSSAAJ_837aZsjKtUcxpEx_xnes6qYNRiCwQ5s-WIp2m_46EjoTlklczzqfKZukvry4RXHX88-rjaMxhReMJVeRhkjA/s1600/6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="174" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3fgBNzrLat5p63O-J1TcANZQ-0LxP3Qnsir18SpLRdqOTWS9cOSSAAJ_837aZsjKtUcxpEx_xnes6qYNRiCwQ5s-WIp2m_46EjoTlklczzqfKZukvry4RXHX88-rjaMxhReMJVeRhkjA/s320/6.png" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0PzzEH8dUhS2hIegpD6jvi_Rw-etqNofykFM4DEt1VWwszDi6bpw_Lo69BJV5k3V7we6hHEIFyCMST9k-iJKqfoPWIpi-XHeRiKMQosbcruzcnhZbePbu3CyT4x06Z5pDE0T9OdYh2f4/s1600/7.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0PzzEH8dUhS2hIegpD6jvi_Rw-etqNofykFM4DEt1VWwszDi6bpw_Lo69BJV5k3V7we6hHEIFyCMST9k-iJKqfoPWIpi-XHeRiKMQosbcruzcnhZbePbu3CyT4x06Z5pDE0T9OdYh2f4/s320/7.png" width="239" /></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;">
<br /></div>
<div>
Thanks,</div>
</div>
<div>
--Anil</div>
</div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-69131412948365627532015-01-11T03:04:00.002-08:002015-01-11T03:04:48.381-08:00Integrate XML Publisher Report with OAF<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
In this example we are going to integrate a simple XML publisher report with OAF. The business scenario is something like that we have a OAF page and on click of "Print" button we want to call a XML publisher report.<br />
<br />
<b><u>Steps</u></b><br />
1. Create a OAF page with table region and print button to call a XML publisher report.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwF4SY1lj9PGfrFok_syqn30FUiPbuUOA2pXdNzUNLl1lTZUokBnebO-aN9YwdivQUad6k540p_kRSjeiepsW9aALnOKGzbAgcCyEs1i7o4WZIpUGrEsH6faqnkZKMWN2l9cEUQ-Ej5GI/s1600/PageScrenshot.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwF4SY1lj9PGfrFok_syqn30FUiPbuUOA2pXdNzUNLl1lTZUokBnebO-aN9YwdivQUad6k540p_kRSjeiepsW9aALnOKGzbAgcCyEs1i7o4WZIpUGrEsH6faqnkZKMWN2l9cEUQ-Ej5GI/s1600/PageScrenshot.bmp" height="320" width="169" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpySnjzVGASF9DINwe1qe8iIzxJzYR9eCKNW63Cjl_4JMbaVDp5299L1ux1qCngNzky9wCEfisuBnsClP8-4sBZ1V1wdk4EvrzWAKVLyIlcA-vAfYyEIb5uewyQEJL9hQk6b-Cr5v1JsU/s1600/PageOutput.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpySnjzVGASF9DINwe1qe8iIzxJzYR9eCKNW63Cjl_4JMbaVDp5299L1ux1qCngNzky9wCEfisuBnsClP8-4sBZ1V1wdk4EvrzWAKVLyIlcA-vAfYyEIb5uewyQEJL9hQk6b-Cr5v1JsU/s1600/PageOutput.bmp" height="290" width="320" /></a></div>
<br />
2. Designed XML report template. here I have not mentioned steps to register the XML report in Oracle apps.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggyTEDBV635XDK6elc_RtIByZLGsj9r-uf4yJZXQLqwtnuwhBiFv68EdQa4oad6SvJmgiAfdaYg1NkIzTX7BUHo2HHFRiWQaL4559yOiPEqZcdf4q_DxzUOyBJ_rY6DiYUC9M7iucIaEk/s1600/RTFScrenshot.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggyTEDBV635XDK6elc_RtIByZLGsj9r-uf4yJZXQLqwtnuwhBiFv68EdQa4oad6SvJmgiAfdaYg1NkIzTX7BUHo2HHFRiWQaL4559yOiPEqZcdf4q_DxzUOyBJ_rY6DiYUC9M7iucIaEk/s320/RTFScrenshot.bmp" /></a></div>
<br />
<br />
<b>Controller Code</b>
<br />
Here we are handling the print button action and calling the XML report.
<br />
<pre class="java:nogutter" name="code"> public void processFormRequest(OAPageContext pageContext,
OAWebBean webBean) {
super.processFormRequest(pageContext, webBean);
if (pageContext.getParameter("Print") != null) {
System.out.println("Print Button clicked");
printReport(pageContext, webBean, "pdf");
}
</pre>
</div>
<pre class="java:nogutter" name="code"> public void printReport(OAPageContext pageContext, OAWebBean webBean,
String outputType) {
OAApplicationModule lo_am = pageContext.getApplicationModule(webBean);
String ls_extensionType = "pdf"; //Setting the output extension type
byte l_outputType = 0;
l_outputType = TemplateHelper.OUTPUT_TYPE_PDF;
DataObject lo_sessionDictionary =
pageContext.getNamedDataObject("_SessionParameters");
HttpServletResponse lo_response =
(HttpServletResponse)lo_sessionDictionary.selectValue(null,
"HttpServletResponse");
try {
ServletOutputStream lo_outputStream =
lo_response.getOutputStream();
// setting the report name & output type
String lo_contentDisposition =
"attachment;filename=OrderDetails." + ls_extensionType;
lo_response.setHeader("Content-Disposition",
lo_contentDisposition);
lo_response.setContentType("application/pdf");
System.out.println("Calling XML generation method");
XMLNode xmlNode =
(XMLNode)lo_am.invokeMethod("getOrderReportDetailsXML");
// Calling getOrderReportDetailsXML method to get the XML for the VO query
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
xmlNode.print(outputStream);
System.out.println("After calling XML generation method" +
outputStream.toString());
//Above sop will return the XML output which will help you in designing the template.
ByteArrayInputStream lo_inputStream =
new ByteArrayInputStream(outputStream.toByteArray());
ByteArrayOutputStream lo_outputFile = new ByteArrayOutputStream();
// Pass the Template code and Application short name
try {
TemplateHelper.processTemplate(((OADBTransactionImpl)pageContext.getApplicationModule(webBean).getOADBTransaction()).getAppsContext(),
"PA", "XX_ORDER_DT",
((OADBTransactionImpl)pageContext.getApplicationModule(webBean).getOADBTransaction()).getUserLocale().getLanguage(),
((OADBTransactionImpl)pageContext.getApplicationModule(webBean).getOADBTransaction()).getUserLocale().getCountry(),
lo_inputStream, l_outputType,
null, lo_outputFile);
} catch (XDOException xe) {
throw new OAException("Exception:" + xe.getMessage());
}
byte[] l_bytes = lo_outputFile.toByteArray();
lo_response.setContentLength(l_bytes.length);
lo_outputStream.write(l_bytes, 0, l_bytes.length);
lo_outputStream.flush();
lo_outputStream.close();
} catch (Exception e) {
lo_response.setContentType("text/html");
throw new OAException(e.getMessage(), OAException.ERROR);
}
pageContext.setDocumentRendered(false);
}
</pre>
<b>Application Module Code</b><br />
<br />
This method will return the XML output of the VO query attached to the page.
<br />
<br />
<pre class="java:nogutter" name="code"> public XMLNode getOrderReportDetailsXML() {
//XMLNode lo_xmlNode;
System.out.println("Inside the AM Method");
OrderReportDetailsVOImpl vo = getOrderReportDetailsVO1();
vo.executeQuery();
XMLNode lo_xmlNode = (XMLNode)vo.writeXML(-1, 0L);
//OL Stands for XMLInterface.XML_OPT_ALL_ROWS which means to includes all rows in the view object's row set in the XML.
return lo_xmlNode;
}
</pre>
<br />
<br />
<b>Report Output</b>
<br />
<b><br /></b>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgceQjkHXdzyfipmsxDBxnkpySdzONyApuOVEA6xH1xJsxllVtDxECxb8Mju1-_WBtpgarE1thOD-HWIA-R-KBGqVdiw-vDux0wCbpktHu2h2b9cWRkJf33bU4n6SfsrB8x5f-gEe0h8RE/s1600/ReportOutput.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgceQjkHXdzyfipmsxDBxnkpySdzONyApuOVEA6xH1xJsxllVtDxECxb8Mju1-_WBtpgarE1thOD-HWIA-R-KBGqVdiw-vDux0wCbpktHu2h2b9cWRkJf33bU4n6SfsrB8x5f-gEe0h8RE/s1600/ReportOutput.bmp" height="209" width="320" /></a></div>
<br />
Thanks,<br />
--Anil</div>Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-64205191639927800672014-12-04T01:09:00.000-08:002017-09-30T03:56:30.616-07:00Another Way : Passing Table Type Object from OAF<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">This article will describe you another way of passing table type object from OAF. I have already posted same article on it in 2010. Here is the link for your reference</span><br />
<br />
<a href="http://oracleanil.blogspot.ae/2010/09/oaf-passing-table-type-object-to-oracle.html" target="_blank">http://oracleanil.blogspot.ae/2010/09/oaf-passing-table-type-object-to-oracle.html </a><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><b><u>Pre steps</u></b></span><br />
<span style="font-family: inherit;"><b><u><br /></u></b></span>
<span style="font-family: inherit;">1. We need to have object Type & Table Type for this.</span><br />
<span style="font-family: inherit;"> a) XX_OM_ORDER_TBL_TYPE</span><br />
<span style="font-family: inherit;"> b) XX_OM_ORDER_REC_TYPE</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="color: #38761d; font-family: inherit;">/* Script for your reference */</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">CREATE OR REPLACE TYPE APPS.XX_OM_ORDER_TBL_TYPE IS TABLE OF XX_OM_ORDER_REC_TYPE;</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">CREATE OR REPLACE TYPE APPS.XX_OM_ORDER_REC_TYPE AS OBJECT (</span><br />
<span style="font-family: inherit;"> ORDER_ID NUMBER,</span><br />
<span style="font-family: inherit;"> ORDER_TYPE VARCHAR2(20),</span><br />
<span style="font-family: inherit;"> ORDER_DATE DATE,</span><br />
<span style="font-family: inherit;"> DESCRIPTION VARCHAR2(200) );</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="color: #38761d; font-family: inherit;">*/ End Here.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">2. Custom Table to insert data.</span><br />
<span style="font-family: inherit;"> a) xx_order_details</span><br />
<span style="font-family: inherit;"> </span><br />
<span style="font-family: inherit;"> <span style="color: #38761d;">/* Script for your reference */</span></span><br />
<span style="font-family: inherit;"> </span><br />
<span style="font-family: inherit;"> CREATE TABLE APPS.XX_ORDER_DETAILS</span><br />
<span style="font-family: inherit;">(</span><br />
<span style="font-family: inherit;"> ORDER_NUMBER VARCHAR2(100 BYTE),</span><br />
<span style="font-family: inherit;"> ORDER_DESCRIPTION VARCHAR2(240 BYTE),</span><br />
<span style="font-family: inherit;"> ORDER_TYPE VARCHAR2(100 BYTE),</span><br />
<span style="font-family: inherit;"> ORDER_DATE DATE</span><br />
<span style="font-family: inherit;">)</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="color: #38761d;">*/ End Here.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"><b><u>OAF Stuff starts here</u></b></span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">1. Here we have to create components like - Controller, Page, AM, VO. </span><br />
<span style="font-family: inherit;">2. Then we have to search for Object & Table type in Jdeveloper so that we can generate JAVA for these objects.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"> Navigation : Connection Navigator --> Database --> DB SID --> Types</span><br />
<span style="font-family: inherit;"> </span><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<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/AVvXsEibWCZDBlQvHKD2GbHnx9Up4wgvjrdPng6SLJKchwv_v4eswo6RzERYVYqnPkqXDKh_qNi1TW-JeD7n6bB4CZYrFxtR1bxqGaDFhR6y2plXJpZ7kiWvd6zlZ6ydJ3mH14itvsPjryHErTI/s1600/1.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibWCZDBlQvHKD2GbHnx9Up4wgvjrdPng6SLJKchwv_v4eswo6RzERYVYqnPkqXDKh_qNi1TW-JeD7n6bB4CZYrFxtR1bxqGaDFhR6y2plXJpZ7kiWvd6zlZ6ydJ3mH14itvsPjryHErTI/s1600/1.bmp" width="310" /></a></div>
<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/AVvXsEidG6pTUSkGz9kUHHNa9kX1h81Vy79dmkuIi5nW9riaU7M6DQPyPVJ2b7_sodVIe-QLHexPn_TiJKP4U2kX1AKUMs2Yy2P7nE1h8nDttOodTxKpTWkB7-m1fyXk9RdPCVHCbwqGREYyOWU/s1600/2.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidG6pTUSkGz9kUHHNa9kX1h81Vy79dmkuIi5nW9riaU7M6DQPyPVJ2b7_sodVIe-QLHexPn_TiJKP4U2kX1AKUMs2Yy2P7nE1h8nDttOodTxKpTWkB7-m1fyXk9RdPCVHCbwqGREYyOWU/s1600/2.bmp" width="360" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjfhrzToW4p0VuLWs7gd9fzMOYxIrSUQhKNiA5olGRmVAEcn3XZeWIGmQbwLAeQjHD49kL0jmxnI6cgmQXAA321PWpdzhsq23IJGRzdA3FvbO2rOe3KmUHQ1xyA2cbHV6AeYXP27tFF3U/s1600/3.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjfhrzToW4p0VuLWs7gd9fzMOYxIrSUQhKNiA5olGRmVAEcn3XZeWIGmQbwLAeQjHD49kL0jmxnI6cgmQXAA321PWpdzhsq23IJGRzdA3FvbO2rOe3KmUHQ1xyA2cbHV6AeYXP27tFF3U/s1600/3.bmp" width="316" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3DYGYjEtFdGPkRX3NhUTKlUR0LtpQJb6M5yEJcpstEWcQp_K075UDZyLXMgN1zb2jAChmZwQw_xBv4M_-qkCkTQQ6sNumIE1XnJZkytVFTgA6e4Kx-DGIRoNkQAfgAGceI7ZM6im3cCA/s1600/4.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3DYGYjEtFdGPkRX3NhUTKlUR0LtpQJb6M5yEJcpstEWcQp_K075UDZyLXMgN1zb2jAChmZwQw_xBv4M_-qkCkTQQ6sNumIE1XnJZkytVFTgA6e4Kx-DGIRoNkQAfgAGceI7ZM6im3cCA/s1600/4.bmp" width="316" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI2d4DrZvudbKjs_ZBDUf7rr3VGR39LmUTNBqusoAlrUA8vyt8GbfqIZbZObfhhY7T9-ewFnrc3nA7iNudUjfBw4vHgzKD67_mlaJhZrcauY1VgALov325tWpv-394X1GYt3gR8RgIJhs/s1600/5.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="303" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI2d4DrZvudbKjs_ZBDUf7rr3VGR39LmUTNBqusoAlrUA8vyt8GbfqIZbZObfhhY7T9-ewFnrc3nA7iNudUjfBw4vHgzKD67_mlaJhZrcauY1VgALov325tWpv-394X1GYt3gR8RgIJhs/s1600/5.bmp" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;"> </span><br />
<span style="font-family: inherit;">3. Back in the Application Navigator window you will find that reference java files are created</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDypbHjHHEdLngxWmcJo5rT3QXZ2nlDVGRzdN5YtETOmDUaJpvk9OD3CQUC8YEXfSQ1Dax2JKGQj8wdIeneVCAhidGU2NO_p_2BvyV8xe-YYiTtZYqPVKKTBQbDjwSaCTbfhdtDu1NoOo/s1600/6.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDypbHjHHEdLngxWmcJo5rT3QXZ2nlDVGRzdN5YtETOmDUaJpvk9OD3CQUC8YEXfSQ1Dax2JKGQj8wdIeneVCAhidGU2NO_p_2BvyV8xe-YYiTtZYqPVKKTBQbDjwSaCTbfhdtDu1NoOo/s1600/6.bmp" width="288" /></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: left;">
4. Order page will have table region and a save button.</div>
<span style="font-family: inherit;"><br /></span>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiISFRrkksUPHKma70Y70jeuUpmv8jcQdk0Pb9kAn7H8i7loQ3xeqRZiRDS1llnNQlXA1_hb1uFgE9ix-dIes_0A1EEFbZFUsYANQsY_EbtgYjZMI-Boa5PslCAqjd2fTBpjtJKurfk_Yw/s1600/7.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiISFRrkksUPHKma70Y70jeuUpmv8jcQdk0Pb9kAn7H8i7loQ3xeqRZiRDS1llnNQlXA1_hb1uFgE9ix-dIes_0A1EEFbZFUsYANQsY_EbtgYjZMI-Boa5PslCAqjd2fTBpjtJKurfk_Yw/s1600/7.bmp" width="188" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<span style="font-family: inherit;">5. </span>Now we will first create blank rows in VO & then handle the event of Save button in Controller and add the logic in AMImpl file<br />
<br />
<span style="color: #38761d;"><b>//Controller code start here</b></span><br />
<br /></div>
<pre class="java:nogutter" name="code">package xx.oracle.apps.ont.order.webui;
import oracle.apps.fnd.common.VersionInfo;
import oracle.apps.fnd.framework.webui.OAControllerImpl;
import oracle.apps.fnd.framework.webui.OAPageContext;
import oracle.apps.fnd.framework.webui.beans.OAWebBean;
/**
* Controller for ...
*/
public class OrderCO extends OAControllerImpl
{
public static final String RCS_ID="$Header$";
public static final boolean RCS_ID_RECORDED =
VersionInfo.recordClassVersion(RCS_ID, "%packagename%");
/**
* Layout and page setup logic for a region.
* @param pageContext the current OA page context
* @param webBean the web bean corresponding to the region
*/
public void processRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processRequest(pageContext, webBean);
//init method to initialize the VO & to create 5 rows in it.
pageContext.getApplicationModule(webBean).invokeMethod("init");
}
/**
* Procedure to handle form submissions for form elements in
* a region.
* @param pageContext the current OA page context
* @param webBean the web bean corresponding to the region
*/
public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processFormRequest(pageContext, webBean);
// AM method to handle the save button logic</pre>
<pre class="java:nogutter" name="code"> pageContext.getApplicationModule(webBean).invokeMethod("saveOrderData");</pre>
<span style="color: #38761d;"><b><br /></b></span>
<span style="color: #38761d;"><b>//Controller code end here</b></span><br />
<b style="color: #38761d;"><br /></b>
<span style="color: #38761d;"><b></b></span><b style="color: #38761d;">//AMImpl code start here</b>
<br />
<pre class="java:nogutter" name="code">package xx.oracle.apps.ont.order.server;
import java.math.BigDecimal;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.sql.Types;
import oracle.apps.fnd.framework.OAException;
import oracle.apps.fnd.framework.server.OAApplicationModuleImpl;
import oracle.apps.fnd.framework.server.OADBTransaction;
import oracle.apps.fnd.framework.server.OAExceptionUtils;
import oracle.jbo.Row;
import oracle.jbo.domain.Number;
import oracle.jdbc.OracleCallableStatement;
import oracle.jdbc.OracleTypes;
import xx.oracle.apps.ont.order.server.OrderVOImpl;</pre>
<pre class="java:nogutter" name="code">/*
* Method to initialize the VO & to create blank rows in VO */
public void init() {
OrderVOImpl vo = getOrderVO1();
if (!vo.isPreparedForExecution()) {
vo.executeQuery();
Row row = null;
for (int i = 0; i <= 5; i++) {
row = vo.createRow();
vo.insertRow(row);
}
row.setNewRowState(Row.STATUS_INITIALIZED);
}
/* Wrapper to save the Order Entry Data. getOrderRecord() method will return the table type. We are getting this data from Order VO and then passing it to the object type.
Further callOmOrderApi is getting called in this method which takes orderRec as a input parameter and calls the Pl/SQL to insert the data into the custom table. */</pre>
</div>
<pre class="java:nogutter" name="code"> public void saveOrderData() {
XxOmOrderTblType orderRec = getOrderRecord();
callOmOrderApi(orderRec);
}
</pre>
<pre class="java:nogutter" name="code"> public XxOmOrderTblType getOrderRecord() {
OrderVOImpl vo = getOrderVO1();
XxOmOrderRecType[] orderRec = null;
boolean l_error = false;
if (vo != null) {
System.out.println("VO is not null");
Row[] vorow = vo.getAllRowsInRange();
orderRec = new XxOmOrderRecType[vorow.length];
for (int i = 0; i < vorow.length; i++)
try {
XxOmOrderRecType recType = new XxOmOrderRecType();
OrderVORowImpl row = (OrderVORowImpl)vorow[i];
BigDecimal bg = new BigDecimal(row.getOrderNumber());
recType.setOrderId(bg);
recType.setOrderType(row.getOrderType());
recType.setDescription(row.getOrderDescription());
oracle.jbo.domain.Date d = row.getOrderDate();
java.sql.Date jd = d.dateValue();
System.out.println("Conv Date" + jd);
java.sql.Timestamp t = new Timestamp(jd.getTime());
System.out.println("Conv Date 1 " + t);
recType.setOrderDate(t);</pre>
<pre class="java:nogutter" name="code"></pre>
<pre class="java:nogutter" name="code"> orderRec[i] = recType;
} catch (Exception e) {
throw new OAException("Error " + e.getMessage());
}
}
XxOmOrderTblType table_row = new XxOmOrderTblType(orderRec);
return table_row;
}</pre>
<pre class="java:nogutter" name="code"></pre>
<pre class="java:nogutter" name="code">/* This method accept table type parameter and calls PL/SQL procedure to write data to DB.</pre>
<pre class="java:nogutter" name="code"> *</pre>
<pre class="java:nogutter" name="code"></pre>
<pre class="java:nogutter" name="code"> public void callOmOrderApi(XxOmOrderTblType issueTable) {
Number lo_count = null;
String lo_status = null;
String ls_msgData = null;
OracleCallableStatement lo_oraclecallablestatement;
OADBTransaction lo_dbtransaction = getOADBTransaction();
System.out.println("Above the callable statement");
lo_oraclecallablestatement = null;
try {
lo_oraclecallablestatement =
(OracleCallableStatement)lo_dbtransaction.createCallableStatement("begin xx_create_order_prc(:1, :2); end;",
1);
lo_oraclecallablestatement.setObject(1, issueTable,
OracleTypes.ARRAY);
lo_oraclecallablestatement.registerOutParameter(2, Types.VARCHAR);
lo_oraclecallablestatement.execute();
lo_status = lo_oraclecallablestatement.getString(2);
if ("S".equalsIgnoreCase(lo_status)) {
lo_dbtransaction.commit();
lo_dbtransaction.putDialogMessage(new OAException("Order Created",
OAException.CONFIRMATION));
} else {
lo_dbtransaction.rollback();
OAExceptionUtils.checkErrors(getOADBTransaction());
}
if (lo_oraclecallablestatement != null)
lo_oraclecallablestatement.close();
} catch (SQLException sqlexception) {
throw new OAException(sqlexception.getMessage());
}
}</pre>
<pre class="java:nogutter" name="code"></pre>
<pre class="java:nogutter" name="code"></pre>
<b><u>PL/SQL Code</u></b><br />
<b><u><br /></u></b>
//This code accept table type parameter then we loop through the records and insert those records to custom table and finally it return back the status as 'E' or 'S'<br />
<br />
CREATE OR REPLACE PROCEDURE APPS.xx_create_order_prc (<br />
p_i_order_tbl XX_OM_ORDER_TBL_TYPE,<br />
p_o_return_status OUT NOCOPY VARCHAR2<br />
)<br />
IS <br />
BEGIN<br />
<br />
FOR i IN p_i_order_tbl.FIRST .. p_i_order_tbl.LAST<br />
LOOP<br />
INSERT into xx_order_details VALUES (<br />
p_i_order_tbl (i).order_id,<br />
p_i_order_tbl (i).description,<br />
p_i_order_tbl (i).order_type,<br />
p_i_order_tbl (i).order_date);<br />
<br />
END LOOP;<br />
<br />
p_o_return_status := 'S';<br />
<br />
EXCEPTION<br />
WHEN OTHERS<br />
THEN<br />
p_o_return_status := 'E';<br />
<br />
END xx_create_order_prc;<br />
<br />
/<br />
<br />
Thanks,<br />
--Anil</div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-10929082588588873512014-08-31T21:39:00.002-07:002014-08-31T21:40:34.259-07:00Find Duplicate Row OR Copy/Clone VO Row<div dir="ltr" style="text-align: left;" trbidi="on">
This article will give you idea on how to restrict user to enter duplicate rows. The requirement came when we want to enhance the user experience by providing the functionality to allow multiple Tools issue at one time.
<br />
<br />
This is applicable to all pages having table region/ advance table region and you want to restrict the user from enetring duplicate row. Here please keep in mind that I am not comparing the VO rows with DB rows.
<br />
<br />
<b><u>Application Module Method
</u></b><br />
<br />
<pre class="java:nogutter" name="code"> public void checkDuplicateRow() {
XxTestToolsVOImpl lo_tools = getXxTestToolsVO(); //Table View Object
XxTestToolsVOImpl clonevo =
(XxTestToolsVOImpl)this.findViewObject("XxTestToolsVO2"); //Dummy VO for check duplicity
if (clonevo == null) {
//Create Dummy VO
clonevo =
(XxTestToolsVOImpl)this.createViewObject("XxTestToolsVO2",
"xxadat.oracle.apps.ahl.tools.server.XxAdatToolsVO");
}
clonevo.clearCache();
Row[] sourceVORows =
lo_tools.getFilteredRows("SelectFlag", "Y"); //Picking only those row where the Checkbox is checked
if (!(clonevo.isPreparedForExecution())) {
clonevo.executeQuery();
}
//Create ClonveVO with SourceVO rows
for (Row row: sourceVORows) {
Row cloneRow = clonevo.createRow();
cloneRow = row;
clonevo.insertRowAtRangeIndex(clonevo.getRangeIndexOf(clonevo.last()) +
1, cloneRow);//Inserting row one after another
}
int i = 0;
int j;
{
for (Row row: sourceVORows) {
j = 0;
for (clonevo.first(); j < clonevo.getFetchedRowCount();
clonevo.next()) {
if (i == j) {
j++;
continue; //Ignore the row where index is same.
}
// This loop compare 1st row with all the rows except 1st then second row will all the rows except 2nd and so on.</pre>
<pre class="java:nogutter" name="code"> if ((row.getAttribute("SerialNumber") +"").equals((clonevo.getCurrentRow().getAttribute("SerialNumber"))+"") && (row.getAttribute("InventoryItemId") + "").equals((clonevo.getCurrentRow().getAttribute("InventoryItemId"))+"") && (row.getAttribute("LotNumber") + "").equals((clonevo.getCurrentRow().getAttribute("LotNumber")) + "") && (row.getAttribute("SubinventoryCode") + "").equals((clonevo.getCurrentRow().getAttribute("SubinventoryCode")) + "") && (row.getAttribute("Locator") + "").equals((clonevo.getCurrentRow().getAttribute("Locator")) + ""))
{
clonevo.remove(); //If the row is duplicate remove the dummy VO
throw new OAException("Row Number " + (i + 1) + " and " + (j + 1) + " is duplicate." + " Please select only unique Tools to issue");
}
j++;
}
i++;
}
lo_tools.first();
clonevo.remove();
}
}
</pre>
Thanks,
--Anil</div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-2419998884340658862014-07-20T02:33:00.001-07:002015-09-09T20:49:46.927-07:00Setting WHO columns in OAF & setting date in custom table<div dir="ltr" style="text-align: left;" trbidi="on">
import java.text.SimpleDateFormat;<br />
import java.sql.PreparedStatement;<br />
import java.sql.Connection;<br />
import java.sql.SQLException;<br />
import java.sql.Timestamp;<br />
<div>
<br /></div>
<b><u>Application Module Code</u></b><br />
<br />
<pre class="java:nogutter" name="code"> public void SettingWhoColumns(String CStringDate) {
java.sql.Date ConvStringDate = null;
try {
Connection conn = getOADBTransaction().getJdbcConnection();
String Query =
"insert into XX_INSERT_WHO_COLUMNS CREATION_DATE, CREATED_BY, LAST_UPDATE_DATE, LAST_UPDATED_BY, LAST_UPDATE_LOGIN values (:1, :2, :3, :4 ,:5)";
PreparedStatement stmt = conn.prepareStatement(Query);
//Creation Date
stmt.setTimestamp(1, new Timestamp(System.currentTimeMillis()));
stmt.setInt(2, getOADBTransaction().getUserId()); // Created by
//Last update date
stmt.setTimestamp(3, new Timestamp(System.currentTimeMillis()));
stmt.setInt(4, getOADBTransaction().getUserId()); // Last updated by
stmt.setInt(5,getOADBTransaction().getLoginId()); // Last updated login
//Who columns setting end here.....
// Getting Date as a String, Converting it to Date format and setting it
if (CStringDate != null & !("".equalsIgnoreCase(CStringDate))) {
SimpleDateFormat dtformatter =
new SimpleDateFormat("dd-MMM-yyyy");
ConvStringDate =
new java.sql.Date(dtformatter.parse(CStringDate).getTime());
dtformatter.format(ConvStringDate);
}
stmt.setDate(6, ConvStringDate);
} catch (Exception e) {
throw new OAException("Exception" + e);
}
}</pre>
<pre class="java:nogutter" name="code"></pre>
<pre class="java:nogutter" name="code">Thanks,
</pre>
--Anil</div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-39632378190672286312014-04-25T04:38:00.000-07:002014-04-25T04:38:30.586-07:00Make OAF page readonly<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
In the Controller process request method just write the below code to make whole page read only in one go.<br />
<br />
<br />
<pre class="java:nogutter" name="code">import com.oaframework.toolkit.util.WebBeanUtil;
public void processRequest(OAPageContext pageContext, OAWebBean webBean) {
super.processRequest(pageContext, webBean);
{
// this class loops all the webbean hierarchy and make read only each and even bean and also sets the CSS accordingly.
WebBeanUtil.setViewOnlyRecursive(pageContext, webBean);
}
</pre>
In case of you are not able to get the WebBeanUtil file then please mail me I will provide you.<br />
<br />
Thanks,<br />
Anil</div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-60979429356638780612014-04-25T01:22:00.000-07:002014-04-25T01:22:09.443-07:00Setting value in specific segment of KFF<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
Hi Friends,<br />
<br />
Recently I got a request from one of my friend to check the feasibility for setting value in one specific segment of KFF.<br />
<br />
I tried a lot and finally I was able to accomplish this. Here is the code which you all can refer if you get this similar kind of requirement.<br />
<br />
Just mentioning the DFF link also, incase you come across similar requirement on DFF.<br />
<a href="http://oracleanil.blogspot.in/2013/04/make-dff-field-required-dynamically.html" target="_blank">Setting value in specific attribute of DFF</a><br />
<br />
<br />
<u><b>Steps</b></u><br />
1. I created a dummy page and add a Flex bean to it.<br />
2. Set few property of KFF as per below screenshot<br />
3. Attached Controller & Application Module to this page.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjvB_qnxbPRUUHg7ZW0fg-xmxXh3ISGQbTrH9uGchqLnv5aQaV_CVO-Sx_aMV30pKHDGb8PWI9McxQyUUk6-hqJ2cotiPnSNnX1QG6LNsRQhAI43jwtIRnsgj8ZwJBPPkYw8HgABad39Y/s1600/KFF.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjvB_qnxbPRUUHg7ZW0fg-xmxXh3ISGQbTrH9uGchqLnv5aQaV_CVO-Sx_aMV30pKHDGb8PWI9McxQyUUk6-hqJ2cotiPnSNnX1QG6LNsRQhAI43jwtIRnsgj8ZwJBPPkYw8HgABad39Y/s1600/KFF.png" height="125" width="320" /></a></div>
<br />
<br />
In this test case, I am setting the value during page load. Hence you can see I have written code in the ProcessRequest method of the Controller.<br />
<br />
However in case you want to set the value based on any event. So you have to capture the event in ProcessFormRequest method and then redirect to same page based on any parameter - HashMap or any session value and write the code in ProcessRequest only.<br />
<br />
This is because when I tried to set the value in PFR method then the changes are not getting displayed.<br />
<br />
<u><b>Controller Code</b></u><br />
<br />
<br />
<pre class="java:nogutter" name="code"> public void processRequest(OAPageContext pageContext, OAWebBean webBean) {
super.processRequest(pageContext, webBean);
OAApplicationModule oaapplicationmodule =
pageContext.getApplicationModule(webBean);
// Executing KFF VO query
oaapplicationmodule.invokeMethod("executeQuery");
//Getting the KFF Bean
OAKeyFlexBean kffId =
(OAKeyFlexBean)webBean.findChildRecursive("kffFlex");
kffId = (OAKeyFlexBean)webBean.findChildRecursive("kffFlex");
kffId.setStructureCode("JOB_FLEXFIELD");
kffId.setCCIDAttributeName("IdFlexNum");
//kffId.setDynamicInsertion(true);
kffId.useCodeCombinationLOV(false);
kffId.processFlex(pageContext);
System.out.println("kff " +
kffId.getIndexedChildCount(pageContext.getRenderingContext()));
int i = kffId.getIndexedChildCount(pageContext.getRenderingContext());
for (int j = 0; j < i; j++) {
System.out.println("Inside the for loop");
oracle.cabo.ui.UINode uinode =
kffId.getIndexedChild(pageContext.getRenderingContext(), j);
if (uinode instanceof OAMessageTextInputBean) {
System.out.println("Inside the MTI");
// ((OAMessageTextInputBean)uinode).setText("message");
// ((OAMessageTextInputBean)uinode).setCSSClass("OraErrorText");
//Setting value in selected KFF Bean (It start from 0, thats why for our case it is kffFlex0)
if ("kffFlex0".equalsIgnoreCase(uinode.getID()))
((OAMessageTextInputBean)uinode).setText("HYLEX");
System.out.println(uinode.getID());
}
}
}</pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0AuJwC6k2CK7RNRJkMQrfTRBJUsWGJmle7LN1IGYA4d54BGtZipL5GRzUxMKangAH461_HQuajtvt_F1qj9vbIbQHjrHvdRyGJdokkhm-tKRwroqTCr4bf38TB8rPL_FU4C4uy_6hqEc/s1600/KFF1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0AuJwC6k2CK7RNRJkMQrfTRBJUsWGJmle7LN1IGYA4d54BGtZipL5GRzUxMKangAH461_HQuajtvt_F1qj9vbIbQHjrHvdRyGJdokkhm-tKRwroqTCr4bf38TB8rPL_FU4C4uy_6hqEc/s1600/KFF1.png" height="70" width="320" /></a></div>
PS: Here I have not mentioned step by step process on how to create KFF.
</div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-51727054645865639672014-04-20T21:58:00.001-07:002014-04-23T20:23:33.246-07:00Create event programatically<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
Use this code to set event (could be FirePartialAction or FireAction) on any field.<br />
<br />
<pre class="java:nogutter" name="code"> public void processRequest(OAPageContext pageContext, OAWebBean webBean) {
super.processRequest(pageContext, webBean);
oracle.cabo.ui.action.FireAction FireActionA = new oracle.cabo.ui.action.FireAction();
FireActionA.setEvent("RevenueEvent"); //Event Name
FireActionA.setUnvalidated(true);
revenuechk.setPrimaryClientAction(FireActionA); //revenuechk is the Id of the field
public void processFormRequest(OAPageContext pageContext, OAWebBean webBean){
super.processFormRequest(pageContext, webBean);
if("RevenueEvent".equals(pageContext.getParameter(SOURCE_PARAM)))
{
//Event handling here
}
</pre>
Thanks,<br />
Anil</div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-36719956591071368432013-11-08T08:45:00.004-08:002013-11-08T08:46:40.310-08:00Oracle R12.2 | Personalization Improvements<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
New improvements have been introduced into OA Personalization Framework:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
• An administrator can create a SQL-based <b><i>read only view object</i> </b>through Personalizations and bind it to new items on a page. This feature lets administrators declaratively add new content from Oracle E-Business Suite tables to an existing page.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
• More item types and layout region types are available to be created and added to a page through Personalizations. Additional layout types supported in this release include header, classic tables, advanced tables, and message component layout. Additional item types supported include submit button, reset button, and rich text editor. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
• You can <b>undo personalizations</b>. The undo features allows administrators to revert the personalizations done in the current browser session if errors are encountered while personalizing the page.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
• You can <b>copy a personalization</b>. This capability allows administrators to rapidly copy a personalization done at a specific level value, such as a responsibility, function, or organization, to other levels such as different responsibilities or different functions.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
Thanks,</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Anil</span></div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-25858056461552939782013-11-08T08:40:00.003-08:002013-11-08T08:47:09.414-08:00Improved Record History | Release R12.2<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Arial, Helvetica, sans-serif;"><u><b><br /></b></u>
<u><b>New in release R12.2</b></u></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Record History now shows user names rather than user IDs for the ‘Last Updated By’ and ‘Created By’ fields.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br />
<b><u>Release 12.1.1</u></b></span><br />
<span style="background-color: white; font-family: Arial, Helvetica, sans-serif;">Record History is a feature that allows a user to see data about a particular record, such as who created the record and when, and who most recently updated the record and when. Record History is now available for Oracle Application Framework based pages.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white;"><br /></span>
</span><br />
<div style="background-color: white;">
<span style="font-family: Arial, Helvetica, sans-serif;">It can be possible by setting Profile "<b>FND: Record History Enabled</b>" to Yes for the Header and Table objects. This allows users to see who created or last updated data.</span></div>
<div style="background-color: white;">
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="background-color: white;">
<span style="font-family: Arial, Helvetica, sans-serif;">However, it has been seen that after implementing these changes, the record history icon will appear in the header sections and as an additional column in tables, but it doesn't work. When users click on the Record History icon, a small window pops up with either an error message, or all values as null. If that is the case then please raise a SR with Oracle.</span></div>
<div style="background-color: white;">
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div style="background-color: white;">
<span style="font-family: Arial, Helvetica, sans-serif;">For eq - The Record History feature requires changes in the java code which have not yet been implemented in the AR/TCA product.</span></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Thanks,</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Anil</span></div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-351165266894784752013-11-08T08:14:00.004-08:002013-11-09T23:06:45.490-08:00ADF Integration with Oracle E-Business Suite<div dir="ltr" style="text-align: left;" trbidi="on">
<b><span style="font-family: Arial, Helvetica, sans-serif;"> <u>ADF Integration with Oracle apps release 12.1.3</u></span></b><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Release 11g applications deployed on an Oracle Fusion Middleware Release 11g container from the Oracle E-Business Suite home page. Each ADF application will have an <b>FND Function</b> of type ‘<i><b>ADFX</b></i>’ defined for it.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">If such a function is granted to a user, then when the user logs in, the home page automatically builds a link to the external ADF application. Note that ADF applications do not support some Oracle E-Business Suite features such as flexfields.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">For more information, see the FAQ for Integration of Oracle E-Business Suite and Oracle Application Development Framework (ADF) Applications (My Oracle Support Knowledge Document 1296491.1)</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">OR</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">write to me I will provide the FAQ.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;">Thanks,</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">Anil</span></div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-56467245435285809792013-06-13T03:32:00.005-07:002013-06-13T03:35:09.429-07:00Oracle E-Business Suite R12 Integration and OA Framework Development and Extension Cookbook - Review<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<br />
In March 2013, First book dedicatedly on OAF was published. This book “<a href="http://www.packtpub.com/oracle-ebusiness-suite-r12-integration-oa-framework-development-and-extension-cookbook/book" style="color: #1155cc;" target="_blank">Oracle E-Business Suite R12 Integration and OA Framework Development and Extension Cookbook</a>” is authored by Andy Penver, who is having around 18 years of experience around Oracle E-Business Suite applications. In this post I will share my review for this book for you.<br />
</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Out of the 8 chapters of the book, five of them are dedicated to Oracle Application Framework’s personalization and customization of OAF pages within E-Business Suite Applications. This book is suitable for both beginners who have little knowledge on OAF as well as for experience developers who wants to know additional advanced OAF features and concept. It provides step to step guide for performing various personalization and customization of E-Business Suite Applications. Here is the list of contents that are covered as part of this book</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<ul style="text-align: left;">
<li><span style="font-family: Symbol;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"> <span class="Apple-converted-space"> </span></span></span><b>Chapter 1, Personalizing OA Framework Pages</b></li>
</ul>
</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Provides detailed and step to step information for performing various personalizations in E-Business Suite Applications. It explains different types of personalizations, its levels, and various profile options that needs to be set for performing personalization. Also, it explains details about responsibilities that are used for administering and migrating personalizations.</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<ul style="text-align: left;">
<li><span style="font-family: Symbol;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"> <span class="Apple-converted-space"> </span></span></span><b>Chapter 2, Getting Started with OA Framework Pages</b></li>
</ul>
</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Gives an overview of the architecture and methodology of OA Framework and various components of OA Framework. It also provides detailed information on setting up the development environment for development of OAF pages. Also, it gives a step to step guide for creating a query page in OAF.</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<ul style="text-align: left;">
<li><span style="font-family: Symbol;"> <span style="font-family: 'Times New Roman'; font-size: 7pt;"><span class="Apple-converted-space"></span></span></span><b>Chapter 3, Creating a Master Detail Page in OA Framework</b></li>
</ul>
</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Explains the concept of Master-Details pages and provides a good understanding on the development of Master Detail page using OA Framework. It explains the deployment process for OAF pages and their registration within E-Business Suite Applications.</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<ul style="text-align: left;">
<li><span style="font-family: Symbol;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"><span class="Apple-converted-space"> </span></span></span><b>Chapter 4, Adding a Creation Page and LOV Region in OA Framework</b></li>
</ul>
</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Focuses on steps involved in creation of a page that allows to insert and update records to the database. It shows how we can write programmatic logic in various classes such as Entity Object Class, Application Module Class etc. It also has a section that explains how we can debug OA pages using Jdeveloper debugger.</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<ul style="text-align: left;">
<li><span style="font-family: Symbol;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"><span class="Apple-converted-space"> </span></span></span><b>Chapter 5, Advanced OA Framework</b></li>
</ul>
</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Is about the advanced features of OA Framework. It explains about programmatic navigation between OAF pages, passing parameters between pages, adding validations to entity object class and calling PLSQL from OAF pages. Another important concept that is explained as part of this chapter is Partial Page Rendering.</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<ul style="text-align: left;">
<li><span style="font-family: Symbol;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><b>Chapter 6, BI Publisher</b></li>
</ul>
</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
This chapter provides an overview on how we can integrate BI Publisher with E-Business Suite Applications. It provides recipes to create report templates, generating XML data and support for different output formats.</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<ul style="text-align: left;">
<li><span style="font-family: Symbol;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"> <span class="Apple-converted-space"></span></span></span><b>Chapter 7, Desktop Integration</b></li>
</ul>
</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
This chapter explains the details about integration of desktop applications such as Microsoft Word, Excel etc. with Oracle Applications using WebADI.</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<ul style="text-align: left;">
<li><span style="font-family: Symbol;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><b>Chapter 8, Utilities</b></li>
</ul>
</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
It explains about some of the utilities provided by oracle for migrating objects between environments. Also, it explains detailed step to step guide on who we can create a custom schema within oracle applications.</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<br /></div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
Overall, “<a href="http://www.packtpub.com/oracle-ebusiness-suite-r12-integration-oa-framework-development-and-extension-cookbook/book" style="color: #1155cc;" target="_blank">Oracle E-Business Suite R12 Integration and OA Framework Development and Extension Cookbook</a>” by Andy Penver is a great book and a must buy for all the E-Business Suite Developers who want to learn the basics as well as advanced features on Oracle Application Framework. You can buy the book from<span class="Apple-converted-space"> </span><a href="http://www.amazon.com/E-Business-Integration-Framework-Development-Extension/dp/1849687129/ref=cm_cr_pr_product_top" style="color: #1155cc;" target="_blank">here</a>.<br />
<br />
Thanks<br />
AJ </div>
</div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-56095534881347394372013-04-27T01:56:00.000-07:002014-04-22T09:01:19.166-07:00Make DFF field required dynamically<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
I got many mails from user asking for code which can be refer to make DFF bean required dynamically.<br />
<br />
Here is the link:<br />
<br />
<a href="https://community.oracle.com/thread/1124874" target="_blank">https://community.oracle.com/thread/1124874</a><br />
<br />
Thx,<br />
Anil</div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-43957352852745335532012-11-03T02:09:00.000-07:002012-11-03T02:14:57.188-07:00Dynamically enabling Totaling in Advanced Table<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: center;">
<u><b>Dynamically enabling Totaling in Advanced Table</b></u></div>
<br />
Oracle provide the functionality of Totaling for a column by 'Recalculate' button. This means whenever user updates the value of column, user have to click on 'Recalculate' button to see the updated value in Total bean.<br />
<br />
We got a business requirement where it has to be happen automatically as soon as user tabs out of the amount field and to achieve this we have enabled a event (fire partial event) and checked in code that whenever this event gets fired, we looped through the View Object rows and set the updated value in Total Bean.<br />
<br />
Here is the code that we have written to achieve this.<br />
<br />
<pre class="java:nogutter" name="code">public void processRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processRequest(pageContext, webBean);
if(pageContext.getSessionValue("ApplyTotal")!=null) {
setTotal(pageContext.getSessionValue("ApplyTotal").toString(),pageContext,webBean) ; // Calling setTotal method to set the updated total value in Total Bean.
}
public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processFormRequest(pageContext, webBean);
OAApplicationModule am = pageContext.getApplicationModule(webBean);
if("updateTotal".equals(pageContext.getParameter(EVENT_PARAM))) //Total event fired
{
OAViewObject vo = (OAViewObject)am.findViewObject("XXCreditCardVO1");
Integer total = 0;
if(vo!=null){
vo.first();
while(vo.hasNext()) // Loop through VO rows
{
if(vo.getCurrentRow().getAttribute("BilledAmount")!=null)
total = total + Integer.parseInt(vo.getCurrentRow().getAttribute("BilledAmount").toString());
vo.next();
}
pageContext.putSessionValue("ApplyTotal",total); // Putting the value in session
pageContext.forwardImmediatelyToCurrentPage(null,true, "Y");
}
public void setTotal(String total, OAPageContext pageContext,OAWebBean webBean){
OAAdvancedTableBean tableBean = (OAAdvancedTableBean)webBean.findChildRecursive("
AdvTableRN");
if(tableBean != null)
{
OAColumnBean tableFooterBean = (OAColumnBean)tableBean.findChildRecursive("ReimbAmountClmn");
if (tableFooterBean != null)
{
OAMessageTextInputBean totalBean = (OAMessageTextInputBean)tableFooterBean.findChildRecursive("ReimbAmount");
if (totalBean != null)
{
String formattedTotal = total.toString();
totalBean.setAttributeValue(TABULAR_FUNCTION_VALUE_ATTR, formattedTotal);
}
}
}</pre>
<br />
<br />
Thanks<br />
<br />
--Anil</div>
Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-3241156709199444132012-08-08T22:30:00.000-07:002012-08-08T22:30:55.113-07:00Error : oracle.jbo.AttributeLoadException: JBO-27022:<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
We got this error message when we are upgrading Oracle11i to R12.1.3 and many of self service screen are not working because of this issue.<br />
<br />
<b><u>Error Message</u></b><br />
<br />
<br />
oracle.apps.fnd.framework.OAException: oracle.jbo.AttributeLoadException: <b>JBO-27022: Failed to load value at index 84 with java object of type java.lang.String due to java.sql.SQLException</b>.<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:912)<br />
<br />
-----Lines deleted------<br />
<br />
## Detail 0 ##<br />
<b>java.sql.SQLException: Invalid column index</b><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>at oracle.jdbc.driver.OracleResultSetImpl.getObject(OracleResultSetImpl.java:1042)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>at oracle.jbo.server.OracleSQLBuilderImpl.doLoadFromResultSet(OracleSQLBuilderImpl.java:1198)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>at oracle.jbo.server.AttributeDefImpl.loadFromResultSet(AttributeDefImpl.java:1633)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>at oracle.jbo.server.ViewRowImpl.populate(ViewRowImpl.java:2221)<br />
<br />
<br />
<b><u>Solution</u></b><br />
<br />
The issue is coming because there is a difference between 11i and R12 VO attribute. In nutshell, new attributes has been added in R12 view object.<br />
<br />
To resolve this issue, Copy the R12 view object files to Jdev 10G and do the substitution again and deploy the related files to R12 instance and bounce Apache.<br />
<br />
<br />
Thanks<br />
--Anil<br />
</div>Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com0tag:blogger.com,1999:blog-6509779587060986418.post-49177265937255424052011-08-20T04:00:00.000-07:002011-08-20T04:13:33.298-07:00HelloWorld Page in ADF<div dir="ltr" style="text-align: left;" trbidi="on"><br />
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"></div><div align="center" class="MsoNormal" style="text-align: center;"><b><u>Building HelloWorld Page in ADF Application<o:p></o:p></u></b></div><div align="center" class="MsoNormal" style="text-align: center;"><b><u><br />
</u></b></div><br />
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">1.<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span>Choose Application <span style="font-family: Wingdings;">à</span> New from the main menu and select Fusion Web Application (ADF) from Application Template.</div><div class="MsoListParagraphCxSpMiddle"><br />
</div><div class="MsoListParagraphCxSpMiddle">Enter HelloWorld in the Application Name and in the Application Package Prefix enter:</div><div class="MsoListParagraphCxSpLast">Demo.adf.helloworld</div><div class="MsoListParagraphCxSpLast"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtD4joRM1bRyFIgNT4rzWE010pNvq95w-zYsS6JOatCi2V6-uRiaz1Xi1SYpCFebFQwUMKEWehLHXeJ9LEC7YQM5zy9ii5Ln6NS02_G0VF97djIEfR5BEjOELJZZWXyzCovha-MZmE1Hs/s1600/1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtD4joRM1bRyFIgNT4rzWE010pNvq95w-zYsS6JOatCi2V6-uRiaz1Xi1SYpCFebFQwUMKEWehLHXeJ9LEC7YQM5zy9ii5Ln6NS02_G0VF97djIEfR5BEjOELJZZWXyzCovha-MZmE1Hs/s320/1.JPG" width="320" /></a></div><div class="MsoListParagraphCxSpLast"><br />
</div><div class="MsoListParagraphCxSpLast"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;">Click Finish.</span></div><div class="MsoListParagraphCxSpLast"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><br />
</span></div><div class="MsoListParagraphCxSpLast"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;">You will see Model and ViewController gets created in HelloWorld application. Now click on ViewController and choose New</span></span></div><div class="MsoListParagraphCxSpLast"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><br />
</span></span></div><div class="MsoListParagraphCxSpLast"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"></span></span></div><div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">1.<span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span>Navigate to Web Tier<span style="font-family: Wingdings;">à</span> JSF<span style="font-family: Wingdings;">à</span> and choose JSF Page from the Items list.</div><div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKw8C5lX5i0-q1jSzI3bNx9vXc2LfaaF9AYWPZdMpBcATH8tJhlZgCV82NFXcNTVKgDTiht_Bxl2KSLow_iRjQMCp2YQdAUeRSrLIB8Wx128rihZ5PWuJNbIrS8dC8AWB-4MWUPvyN4Ok/s1600/2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKw8C5lX5i0-q1jSzI3bNx9vXc2LfaaF9AYWPZdMpBcATH8tJhlZgCV82NFXcNTVKgDTiht_Bxl2KSLow_iRjQMCp2YQdAUeRSrLIB8Wx128rihZ5PWuJNbIrS8dC8AWB-4MWUPvyN4Ok/s320/2.JPG" width="320" /></a></div><div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -.25in;"><br />
</div><br />
<div class="MsoListParagraphCxSpLast"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;">Enter “HelloWorld.jspx” in the File Name. Make sure that Blank Page is selected under Initial Page Layout and Content and under Page Implementation automatically expose managed bean is selected</span></span></div><div class="MsoListParagraphCxSpLast"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><br />
</span></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmPCEYrsrKQVuTiDB7L6F7uFk1gmIO_zPET6BJadbYWR94WFiKVACCmrwK0YK_WmbPw4FHpWmnCrUuGvBrkrFMo80JeaechHz6C3J92SK91NZvSOo97Dv0hePnC-fN2zFSCiG234c2qio/s1600/3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="280" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmPCEYrsrKQVuTiDB7L6F7uFk1gmIO_zPET6BJadbYWR94WFiKVACCmrwK0YK_WmbPw4FHpWmnCrUuGvBrkrFMo80JeaechHz6C3J92SK91NZvSOo97Dv0hePnC-fN2zFSCiG234c2qio/s320/3.JPG" width="320" /></a></div><div class="MsoListParagraphCxSpLast"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><br />
</span></span></span></div><div class="MsoListParagraphCxSpLast"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;">Drag Decorative Box from the Layout option available in the Component Palate</span></span></span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgadQoVby-7Nr6QqD5NWLyjAVrtU4uqkCSRiHnjU9lK4gyxbZhpBXkODBJZR1GVhN2FtKveiWDxOukZfXvlRjPGMyzPVPoArs4Sg_34SvLfd_cYR77aJyb9VhtsXk2i7scF3_2yfpw5jUk/s1600/4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgadQoVby-7Nr6QqD5NWLyjAVrtU4uqkCSRiHnjU9lK4gyxbZhpBXkODBJZR1GVhN2FtKveiWDxOukZfXvlRjPGMyzPVPoArs4Sg_34SvLfd_cYR77aJyb9VhtsXk2i7scF3_2yfpw5jUk/s320/4.JPG" width="320" /></a></div><div class="MsoListParagraphCxSpLast"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"><span style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;"></span></span></span></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Drag item of type Input Text*, Button* on the center facet and Output Text* on the top of the decorative box.</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">* Available under Common Components.</div><div class="MsoNormal"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsMkS0HTb8fu1GtnZS29nO4e5E2wwpMZMXZSv8EeXkwTU8Zn9m1gyqorTHTJ2oS9cbyxSsOtDVGbvMWR9WX3VdWOe_j_83MvLLz6bAUW4H5GTCZqrDg9qH6n_aselj9dy8W8ehyphenhyphenIXwnz8/s1600/5.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsMkS0HTb8fu1GtnZS29nO4e5E2wwpMZMXZSv8EeXkwTU8Zn9m1gyqorTHTJ2oS9cbyxSsOtDVGbvMWR9WX3VdWOe_j_83MvLLz6bAUW4H5GTCZqrDg9qH6n_aselj9dy8W8ehyphenhyphenIXwnz8/s320/5.JPG" width="320" /></a></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"></div><div class="MsoNormal">After this click on af:panelGroupLayout – scroll under center facet of af:decorativeBox and go to property pallete.</div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Set Halign = center. Repeat the same for af:panelGroupLayout – scroll under top facet af:decorativeBox.</div><div class="MsoNormal"><o:p> </o:p> </div><div class="MsoNormal">Now double click on Go Button created on HelloWorld.jspx that opens the Bind Action property window as shown below.</div><div class="MsoNormal"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJkbbCAzT9kKdmdCm2os_iZWR1P1t27cuiSru3LRtBBw3zMYS8oWpbDk8McoBDrjEH8omdqeUUs_QaPj9A7zkxnXFYLcrs2igKa5v2U7Q-jDPge8kIy3N1lj6kyNfRWmEUFVM2Km4HqEY/s1600/6.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJkbbCAzT9kKdmdCm2os_iZWR1P1t27cuiSru3LRtBBw3zMYS8oWpbDk8McoBDrjEH8omdqeUUs_QaPj9A7zkxnXFYLcrs2igKa5v2U7Q-jDPge8kIy3N1lj6kyNfRWmEUFVM2Km4HqEY/s320/6.JPG" width="320" /></a></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"></div><div class="MsoNormal">Now write below code in above created method i.e.HandleGoBtn in backing bean.</div><div class="MsoNormal"></div><pre class="java:nogutter" name="code">public String HandleGoBtn() {
// Add event code here...
RichInputText inputText = getIt1();
String name = "Hello "+(String)inputText.getValue()+ "!!";
ot1.setValue(name);
return null;
}
</pre><div class="MsoNormal">Save All and run the page by right clicking on HelloWorld.jspx and select run.<br />
<br />
You may download the application from <a href="http://oracleanil.googlecode.com/files/HelloWorld.rar">here</a></div><div class="MsoNormal"><br />
</div><div class="MsoNormal">Thanks</div><div class="MsoNormal">--Anil</div><br />
<br />
<br />
</div>Anil Sharmahttp://www.blogger.com/profile/14655577009827048993noreply@blogger.com2