<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7346696720685349738</id><updated>2026-09-28T02:03:56.031-04:00</updated><category term="Credit Management"/><category term="PL/SQL"/><category term="AOL"/><category term="OCM"/><category term="SQL"/><category term="BI Publisher"/><category term="Concurrent Programs"/><category term="Dynamic Parameters"/><category term="Enabling/disabling parameters"/><category term="Oracle Credit Management"/><category term="PL/SQL Array"/><category term="SysAdmin"/><category term="XML Publisher"/><category term="Analytic Functions"/><category term="Batching huge data"/><category term="Bursting"/><category term="Business Event"/><category term="Business Event Not Raised."/><category term="Check box"/><category term="CloudFunction"/><category term="Complex Service PO"/><category term="Composer"/><category term="Credit Classification"/><category term="Critical Activities in ERP Project Management"/><category term="DAG"/><category term="Data Sorting"/><category term="Events"/><category term="Execute PL/SQL programs through FORM_DDL package"/><category term="Extensible Atrributes"/><category term="FND Attachment"/><category term="Form Personalization"/><category term="GCP"/><category term="Google Cloud Storage"/><category term="Group Total"/><category term="HZ Parties"/><category term="JSON"/><category term="NTILE"/><category term="Nested Tables"/><category term="Oracle"/><category term="Order By"/><category term="PO Output for Communication"/><category term="POXPOPDF"/><category term="Partition By"/><category term="Profile Class"/><category term="Pub/Sub"/><category term="Python"/><category term="R12"/><category term="REST"/><category term="RETURN Statement"/><category term="RUNNING TOTAL"/><category term="Repeating Total"/><category term="Shell Script"/><category term="Supplier Site"/><category term="Topic"/><category term="UDA"/><category term="oracle.apps.ap.supplier.event"/><title type='text'>Chandra R Matta</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>30</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-3388967620431735284</id><published>2024-03-17T12:40:00.022-04:00</published><updated>2024-03-19T16:30:25.400-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CloudFunction"/><category scheme="http://www.blogger.com/atom/ns#" term="Composer"/><category scheme="http://www.blogger.com/atom/ns#" term="DAG"/><category scheme="http://www.blogger.com/atom/ns#" term="Events"/><category scheme="http://www.blogger.com/atom/ns#" term="GCP"/><category scheme="http://www.blogger.com/atom/ns#" term="Google Cloud Storage"/><category scheme="http://www.blogger.com/atom/ns#" term="Pub/Sub"/><category scheme="http://www.blogger.com/atom/ns#" term="Topic"/><title type='text'>Trigger any Google Service based on Google Cloud Storage Events</title><content type='html'>&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; margin: 0px 0px 1.25em; white-space-collapse: preserve;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Recently, I encountered a requirement that involved triggering a Google Cloud Composer DAG based on events occurring in Google Cloud Storage (GCS). &lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; margin: 0px 0px 1.25em; white-space-collapse: preserve;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;To illustrate this scenario, let&#39;s consider an example: Suppose I have a Composer DAG designed to process data files stored in a GCS bucket. These files may arrive at any time throughout the day, and it&#39;s crucial to process them promptly upon arrival since they contain time-sensitive information.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; margin: 1.25em 0px; white-space-collapse: preserve;&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Now, let&#39;s explore several solutions to address this requirement:&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin: 0px 0px 1.25em; white-space-collapse: preserve;&quot;&gt;&lt;span color=&quot;var(--tw-prose-bold)&quot; style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; font-weight: 600;&quot;&gt;Option 1: Scheduled DAG Runs&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin: 1.25em 0px; white-space-collapse: preserve;&quot;&gt;Scheduling a DAG to run at regular intervals throughout the day is a straightforward approach. However, it suffers from several drawbacks:&lt;/p&gt;&lt;ol style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; counter-reset: list-number 0; display: flex; flex-direction: column; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; list-style: none; margin: 1.25em 0px; padding: 0px; white-space-collapse: preserve;&quot;&gt;&lt;li style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; counter-increment: list-number 1; display: block; margin-bottom: 0px; margin-top: 0px; min-height: 28px; padding-left: 0.375em;&quot;&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; margin: 0px;&quot;&gt;&lt;span color=&quot;var(--tw-prose-bold)&quot; style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; font-weight: 600;&quot;&gt;Potential Overkill:&lt;/span&gt; Running the DAG every few minutes, regardless of whether new files are available, can lead to unnecessary resource consumption and costs, especially if the frequency far exceeds the actual arrival rate of files.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; counter-increment: list-number 1; display: block; margin-bottom: 0px; margin-top: 0px; min-height: 28px; padding-left: 0.375em;&quot;&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; margin: 0px;&quot;&gt;&lt;span color=&quot;var(--tw-prose-bold)&quot; style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; font-weight: 600;&quot;&gt;Processing Delay:&lt;/span&gt; If a file arrives just after a DAG run completes, it will have to wait until the next scheduled run, potentially introducing processing delays of up to the interval period.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin: 1.25em 0px; white-space-collapse: preserve;&quot;&gt;For scenarios where files arrive sporadically or with varying frequencies, Option 1 may not be the most efficient solution.&lt;/p&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin: 1.25em 0px; white-space-collapse: preserve;&quot;&gt;&lt;span color=&quot;var(--tw-prose-bold)&quot; style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; font-weight: 600;&quot;&gt;Option 2: Cloud Function with GCS Trigger&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin: 1.25em 0px; white-space-collapse: preserve;&quot;&gt;Creating a Cloud Function triggered by GCS events offers a more responsive and efficient solution:&lt;/p&gt;&lt;ol style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; counter-reset: list-number 0; display: flex; flex-direction: column; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; list-style: none; margin: 1.25em 0px; padding: 0px; white-space-collapse: preserve;&quot;&gt;&lt;li style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; counter-increment: list-number 1; display: block; margin-bottom: 0px; margin-top: 0px; min-height: 28px; padding-left: 0.375em;&quot;&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; margin: 0px;&quot;&gt;&lt;span color=&quot;var(--tw-prose-bold)&quot; style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; font-weight: 600;&quot;&gt;Real-Time Processing:&lt;/span&gt; By triggering the Cloud Function upon file creation or finalization in GCS, we ensure immediate processing of incoming files, eliminating unnecessary delays.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; counter-increment: list-number 1; display: block; margin-bottom: 0px; margin-top: 0px; min-height: 28px; padding-left: 0.375em;&quot;&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; margin: 0px;&quot;&gt;&lt;span color=&quot;var(--tw-prose-bold)&quot; style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; font-weight: 600;&quot;&gt;Dynamic DAG Submission:&lt;/span&gt; The Cloud Function can dynamically determine the appropriate DAG to submit based on the incoming file&#39;s metadata, allowing for flexibility and automation.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin: 1.25em 0px; white-space-collapse: preserve;&quot;&gt;However, this approach has a notable drawback:&lt;/p&gt;&lt;ol style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; counter-reset: list-number 0; display: flex; flex-direction: column; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; list-style: none; margin: 1.25em 0px; padding: 0px; white-space-collapse: preserve;&quot;&gt;&lt;li style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; counter-increment: list-number 1; display: block; margin-bottom: 0px; margin-top: 0px; min-height: 28px; padding-left: 0.375em;&quot;&gt;&lt;span color=&quot;var(--tw-prose-bold)&quot; style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; font-weight: 600; margin-bottom: 1.25em; margin-top: 1.25em;&quot;&gt;Potential Overhead:&lt;/span&gt; While the Cloud Function provides real-time processing capabilities, it triggers for every file that arrives in the designated bucket, potentially leading to unnecessary function invocations and associated costs.&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin: 1.25em 0px; white-space-collapse: preserve;&quot;&gt;&lt;span color=&quot;var(--tw-prose-bold)&quot; style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; font-weight: 600;&quot;&gt;Option 3: Pub/Sub Notifications for GCS&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin: 1.25em 0px; white-space-collapse: preserve;&quot;&gt;Utilizing Pub/Sub notifications for GCS object changes introduces a more refined and scalable solution:&lt;/p&gt;&lt;ol style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; counter-reset: list-number 0; display: flex; flex-direction: column; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; list-style: none; margin: 1.25em 0px; padding: 0px; white-space-collapse: preserve;&quot;&gt;&lt;li style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; counter-increment: list-number 1; display: block; margin-bottom: 0px; margin-top: 0px; min-height: 28px; padding-left: 0.375em;&quot;&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; margin: 0px;&quot;&gt;&lt;span color=&quot;var(--tw-prose-bold)&quot; style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; font-weight: 600;&quot;&gt;Fine-Grained Triggering:&lt;/span&gt; By subscribing a Cloud Function to a Pub/Sub topic associated with specific GCS events (e.g., object finalization in a designated folder), we can ensure that the function only triggers when relevant files are created or modified.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; counter-increment: list-number 1; display: block; margin-bottom: 0px; margin-top: 0px; min-height: 28px; padding-left: 0.375em;&quot;&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; margin: 0px;&quot;&gt;&lt;span color=&quot;var(--tw-prose-bold)&quot; style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; font-weight: 600;&quot;&gt;Efficient Resource Utilization:&lt;/span&gt; With Pub/Sub notifications, we avoid the overhead of continuously polling GCS for changes and running unnecessary function invocations, leading to more efficient resource utilization and cost savings.&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; counter-increment: list-number 1; display: block; margin-bottom: 0px; margin-top: 0px; min-height: 28px; padding-left: 0.375em;&quot;&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; margin: 0px;&quot;&gt;&lt;span color=&quot;var(--tw-prose-bold)&quot; style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; font-weight: 600;&quot;&gt;Real-Time Processing with Reduced Overhead:&lt;/span&gt; This approach combines the benefits of real-time file processing with reduced overhead, making it an optimal choice for scenarios where responsiveness and efficiency are paramount.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style=&quot;background-color: white; line-height: 18px;&quot;&gt;&lt;div&gt;&lt;span face=&quot;Söhne, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, Helvetica Neue, Arial, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji&quot;&gt;&lt;span style=&quot;font-size: medium; white-space: pre;&quot;&gt;i). Create a topic on the GCS bucket, folder( ex: gs://gc-us-gcs-xyz-bkt/stg/) 
Ref: https://cloud.google.com/storage/docs/gsutil/commands/notification

Sample Code:
gsutil notification create -t tpc_xyz_file_stg -f json -e OBJECT_FINALIZE &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Söhne, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, Helvetica Neue, Arial, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji&quot;&gt;&lt;span style=&quot;font-size: medium; white-space: pre;&quot;&gt;-p stg/ gs://gc-us-gcs-xyg-bkt

ii). Deploy the Cloud Function and associate the Cloud Function to the topic created above.  
Refer Cloud Function creation documentation to create a Cloud Function.

Sample Code:  gcloud functions deploy  xyz_trigger_cf_gcs_events --runtime python312 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Söhne, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, Helvetica Neue, Arial, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji&quot;&gt;&lt;span style=&quot;font-size: medium; white-space: pre;&quot;&gt;--region us-east4 &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Söhne, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, Helvetica Neue, Arial, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji&quot;&gt;&lt;span style=&quot;font-size: medium; white-space: pre;&quot;&gt;--ingress-settings=internal-and-gclb  --entry-point xyz_trigger_cf_on_gcs_events &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span face=&quot;Söhne, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, Helvetica Neue, Arial, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji&quot;&gt;&lt;span style=&quot;font-size: medium; white-space: pre;&quot;&gt;--trigger-topic= tpc_xyz_file_stg --source .&lt;/span&gt;&lt;/span&gt;&lt;span color=&quot;var(--tw-prose-bold)&quot; face=&quot;Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;&quot; style=&quot;font-size: 16px; white-space: pre;&quot;&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;white-space: pre;&quot;&gt;&lt;span color=&quot;var(--tw-prose-bold)&quot; face=&quot;Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;&quot; style=&quot;font-size: 16px; font-weight: 600;&quot;&gt;Conclusion:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;--tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-ring-color: rgba(69,89,164,.5); --tw-ring-offset-color: #fff; --tw-ring-offset-shadow: 0 0 transparent; --tw-ring-offset-width: 0px; --tw-ring-shadow: 0 0 transparent; --tw-rotate: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-shadow-colored: 0 0 transparent; --tw-shadow: 0 0 transparent; --tw-skew-x: 0; --tw-skew-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; background-color: white; border: 0px solid rgb(227, 227, 227); box-sizing: border-box; color: #0d0d0d; font-family: Söhne, ui-sans-serif, system-ui, -apple-system, &amp;quot;Segoe UI&amp;quot;, Roboto, Ubuntu, Cantarell, &amp;quot;Noto Sans&amp;quot;, sans-serif, &amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;; font-size: 16px; margin: 1.25em 0px; white-space-collapse: preserve;&quot;&gt;While each option has its merits, Option 3 stands out as the most appropriate solution for triggering Composer DAGs based on GCS events. By leveraging Pub/Sub notifications, we achieve real-time processing with minimal overhead and optimal resource utilization, ensuring timely and efficient handling of time-sensitive data files.&lt;/p&gt;&lt;div style=&quot;background-color: white; line-height: 18px; white-space: pre;&quot;&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/3388967620431735284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/3388967620431735284' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/3388967620431735284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/3388967620431735284'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2024/03/trigger-any-google-service-based-on.html' title='Trigger any Google Service based on Google Cloud Storage Events'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-2169402723667624004</id><published>2023-03-04T11:16:00.000-05:00</published><updated>2023-03-04T11:16:42.315-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Python"/><title type='text'>REST API to trigger Airflow/Composer DAG</title><content type='html'>&lt;p&gt;REST APIs are a popular way for applications to communicate with each other, allowing for flexible and scalable interactions. In this blog post, we&#39;ll explore how to use Google Cloud Run to trigger an Airflow/Composer DAG through a REST API.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Google Cloud Run is a fully managed compute platform that allows you to run stateless containers that are automatically scaled to meet incoming traffic. Airflow is an open-source platform to programmatically author, schedule and monitor workflows. Composer is a managed version of Airflow by Google Cloud.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Before diving into the implementation, let&#39;s first understand what a DAG is. A DAG (Directed Acyclic Graph) is a collection of tasks that are dependent on each other, with a defined order of execution. Airflow uses DAGs to define workflows and their dependencies.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;To trigger an Airflow/Composer DAG using a REST API, we can create a simple Python Flask app that sends a request to the Airflow/Composer REST API endpoint. The REST API endpoint can be used to trigger a DAG run by passing a JSON payload that contains the DAG ID, and any other necessary parameters.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here&#39;s an example of how to create a Flask app to trigger a DAG using the Airflow REST API:&lt;/p&gt;&lt;p&gt;&amp;nbsp;from flask import Flask, request&lt;/p&gt;&lt;p&gt;&lt;i&gt;import requests&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;app = Flask(__name__)&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;# Airflow/Composer REST API endpoint&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;AIRFLOW_ENDPOINT = &#39;https://airflow.googleapis.com/v1beta1/dags/&amp;lt;dag_id&amp;gt;/dagRuns&#39;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;# Service account credentials&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;HEADERS = {&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &#39;Authorization&#39;: &#39;Bearer &amp;lt;access_token&amp;gt;&#39;,&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &#39;Content-Type&#39;: &#39;application/json&#39;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;}&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;@app.route(&#39;/trigger-dag&#39;, methods=[&#39;POST&#39;])&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;def trigger_dag():&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; # Get payload data from request body&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; payload = request.get_json()&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; # Build request data&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; data = {&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;conf&#39;: payload.get(&#39;conf&#39;, {}),&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;replace_microseconds&#39;: &#39;false&#39;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; }&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; # Send request to Airflow REST API&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; response = requests.post(AIRFLOW_ENDPOINT, json=data, headers=HEADERS)&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; if response.status_code == 200:&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return &#39;DAG triggered successfully&#39;, 200&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; else:&lt;/i&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return &#39;Failed to trigger DAG&#39;, response.status_code&lt;/i&gt;&lt;/p&gt;&lt;div&gt;&lt;div&gt;In this example, we have defined a route &#39;/trigger-dag&#39; that accepts a POST request with a JSON payload. The payload contains any necessary parameters for the DAG run. The Flask app sends a request to the Airflow/Composer REST API endpoint using the requests library.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The HEADERS variable contains the service account credentials required to authenticate with the Airflow/Composer REST API. Replace &amp;lt;access_token&amp;gt; with the actual access token for the service account that has the necessary permissions to trigger DAGs.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Replace &amp;lt;dag_id&amp;gt; with the actual ID of the DAG that you want to trigger. You can find the DAG ID in the Airflow/Composer UI or by running the command airflow list_dags in the Cloud Shell.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Once you have created the Flask app, you can deploy it to Google Cloud Run using the following command:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;i&gt;gcloud run deploy &amp;lt;service_name&amp;gt; --image gcr.io/&amp;lt;project_id&amp;gt;/&amp;lt;image_name&amp;gt; --platform managed&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Replace &amp;lt;service_name&amp;gt; with the desired name for the Cloud Run service, &amp;lt;project_id&amp;gt; with your Google Cloud project ID, and &amp;lt;image_name&amp;gt; with the name of the container image that contains the Flask app.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Finally, you can test the REST API by sending a POST request to the Cloud Run service URL with the JSON payload. The DAG should trigger successfully, and you can monitor the status of the DAG run in the Airflow/Composer UI.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In conclusion, using Google Cloud Run to trigger an Airflow/Composer DAG through a REST API is a simple and scalable solution&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You may check this code repository for working solution&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;git@github.com:SeanRMatta/cloudrun-rest-api.git&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Working code&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/2169402723667624004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/2169402723667624004' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/2169402723667624004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/2169402723667624004'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2023/03/rest-api-to-trigger-airflowcomposer-dag.html' title='REST API to trigger Airflow/Composer DAG'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>Boston, MA, USA</georss:featurename><georss:point>42.3600825 -71.0588801</georss:point><georss:box>14.049848663821152 -106.2151301 70.670316336178843 -35.902630099999996</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-2555202983405503113</id><published>2020-12-10T17:12:00.005-05:00</published><updated>2020-12-10T17:12:56.929-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSON"/><category scheme="http://www.blogger.com/atom/ns#" term="PL/SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="REST"/><title type='text'>PL/SQL REST API Call to receive JSON Payload</title><content type='html'>&lt;p&gt;&amp;nbsp;declare&lt;/p&gt;&lt;p&gt;&amp;nbsp; req utl_http.req;&lt;/p&gt;&lt;p&gt;&amp;nbsp; res utl_http.resp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; lv_url varchar2(4000) := &#39;http://&amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;/&amp;lt;something&amp;gt;/&#39;;&lt;/p&gt;&lt;p&gt;&amp;nbsp; buffer varchar2(32767);&lt;/p&gt;&lt;p&gt;&amp;nbsp; lj_json_obj&amp;nbsp; json_object_t;&lt;/p&gt;&lt;p&gt;BEGIN&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;dbms_output.put_line(lv_url);&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt; req := utl_http.begin_request(lv_url,&#39;POST&#39;,&#39;HTTP/1.1&#39;);&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;utl_http.set_header(req,&#39;Content-type&#39;,&#39;application/json&#39;);&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;utl_http.set_header(req, &#39;Accept&#39;, &#39;application/json&#39;);&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;res := utl_http.get_response(req);&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp; -- process the response from the HTTP call&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp; begin&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; utl_http.read_text(res, buffer,1000000);&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; lj_json_obj := json_object_t(buffer);&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; utl_http.end_response(res);&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp; exception&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp; &amp;nbsp; when utl_http.end_of_body then&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; utl_http.end_response(res);&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;end ;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;end if;&lt;/p&gt;&lt;p&gt;end;&lt;/p&gt;&lt;p&gt;/&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/2555202983405503113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/2555202983405503113' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/2555202983405503113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/2555202983405503113'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2020/12/plsql-rest-api-call-to-receive-json.html' title='PL/SQL REST API Call to receive JSON Payload'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total><georss:featurename>United States</georss:featurename><georss:point>37.09024 -95.712891</georss:point><georss:box>8.780006163821156 -130.869141 65.400473836178847 -60.556641</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-2516882202049867835</id><published>2019-10-08T16:29:00.000-04:00</published><updated>2019-10-08T16:29:55.676-04:00</updated><title type='text'>Python- Pandas</title><content type='html'>Read individual field values from a data frame&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;background-color: white; font-family: Consolas; font-size: 9pt;&quot;&gt;db_df = pd.read_sql(&lt;span style=&quot;color: teal; font-weight: bold;&quot;&gt;&quot;select brms_file_check_notify_pkg.decrypt(a.login_id) password_dr, &lt;/span&gt;&lt;/pre&gt;
&lt;pre style=&quot;background-color: white; font-family: Consolas; font-size: 9pt;&quot;&gt;&lt;span style=&quot;color: teal; font-weight: bold;&quot;&gt;a.* from file_check_notification a&quot;&lt;/span&gt;&lt;span style=&quot;color: teal; font-weight: bold;&quot;&gt;                    &quot; where sysdate &amp;gt; next_run and file_check_id = 3&quot;&lt;/span&gt;&lt;span style=&quot;color: teal; font-weight: bold;&quot;&gt;                       &lt;/span&gt;, ebsconn)
ebsconn.close()
&lt;span style=&quot;color: navy;&quot;&gt;print&lt;/span&gt;(&lt;span style=&quot;color: teal; font-weight: bold;&quot;&gt;&#39;DB is queried for tab1..&#39;&lt;/span&gt;)
hostname = db_df.loc[&lt;span style=&quot;color: blue;&quot;&gt;0&lt;/span&gt;].at[&lt;span style=&quot;color: teal; font-weight: bold;&quot;&gt;&#39;host&#39;&lt;/span&gt;]

username = db_df.loc[&lt;span style=&quot;color: blue;&quot;&gt;0&lt;/span&gt;].at[&lt;span style=&quot;color: teal; font-weight: bold;&quot;&gt;&#39;login_id&#39;&lt;/span&gt;]
password = db_df.loc[&lt;span style=&quot;color: blue;&quot;&gt;0&lt;/span&gt;].at[&lt;span style=&quot;color: teal; font-weight: bold;&quot;&gt;&#39;password_dr&#39;&lt;/span&gt;]
location = db_df.loc[&lt;span style=&quot;color: blue;&quot;&gt;0&lt;/span&gt;].at[&lt;span style=&quot;color: teal; font-weight: bold;&quot;&gt;&#39;location&#39;&lt;/span&gt;]
subject  = db_df.loc[&lt;span style=&quot;color: blue;&quot;&gt;0&lt;/span&gt;].at[&lt;span style=&quot;color: teal; font-weight: bold;&quot;&gt;&#39;email_subject&#39;&lt;/span&gt;]
protocol = db_df.loc[&lt;span style=&quot;color: blue;&quot;&gt;0&lt;/span&gt;].at[&lt;span style=&quot;color: teal; font-weight: bold;&quot;&gt;&#39;protocol_type&#39;&lt;/span&gt;]&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/2516882202049867835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/2516882202049867835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/2516882202049867835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/2516882202049867835'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2019/10/python-pandas.html' title='Python- Pandas'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-9146296033349365952</id><published>2017-04-24T13:53:00.001-04:00</published><updated>2017-04-24T13:53:34.758-04:00</updated><title type='text'></title><content type='html'>&lt;!-- Calculator Widget Copyright CalculatorSoup, LLC at www.calculatorsoup.com. Use is granted only if this statement and all links to www.calculatorsoup.com are maintained. --&gt;&lt;a href=&quot;http://www.calculatorsoup.com/calculators/conversions/numberstowords.php&quot; onclick=&quot;window.open(&#39;http://www.calculatorsoup.com/calculators/conversions/numberstowords.php?do=pop&#39;,&#39;Numbers to Words Converter&#39;,&#39;width=400,height=550,toolbar=no,menubar=no,scrollbars=yes,resizable=yes&#39;);return false;&quot;&gt;Numbers to Words Converter&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/9146296033349365952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/9146296033349365952' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/9146296033349365952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/9146296033349365952'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2017/04/blog-post.html' title=''/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-2713228028807547007</id><published>2017-01-26T17:58:00.000-05:00</published><updated>2017-01-26T17:58:53.358-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Analytic Functions"/><category scheme="http://www.blogger.com/atom/ns#" term="Group Total"/><category scheme="http://www.blogger.com/atom/ns#" term="Order By"/><category scheme="http://www.blogger.com/atom/ns#" term="Partition By"/><category scheme="http://www.blogger.com/atom/ns#" term="PL/SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="Repeating Total"/><category scheme="http://www.blogger.com/atom/ns#" term="RUNNING TOTAL"/><title type='text'>Oracle Analytic Functions - Difference between ORDER BY and PARTITION BY</title><content type='html'>ORDER BY - brings up the running total/sum by certain repeating column&lt;br /&gt;
PARTITION BY - brings up the GROUP total by certain repeating column&lt;br /&gt;
&lt;br /&gt;
Consider following simple table.&lt;br /&gt;
&lt;br /&gt;
This projects example contains 2 projects - ABC and CAB&lt;br /&gt;
Each project contains 2 tasks and its cost respectively.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmYUV4Bu7XmQjuXn_nV_TdDg7XuNxa3ZtX412GEh5Fg0wUWpojPRZuTQFmpj4B7I_cC1ahhP_Xg6GFwwarzfsfD9t0K7JHkDrPSmenDu7l8C1RB51CDGwQltMjaKQ4eL0QJKhn3j-NTIQP/s1600/project_output1.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;127&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmYUV4Bu7XmQjuXn_nV_TdDg7XuNxa3ZtX412GEh5Fg0wUWpojPRZuTQFmpj4B7I_cC1ahhP_Xg6GFwwarzfsfD9t0K7JHkDrPSmenDu7l8C1RB51CDGwQltMjaKQ4eL0QJKhn3j-NTIQP/s400/project_output1.PNG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
By using same Analytic functions with two different window, can get &quot;running totals&quot; and &quot;group totals&quot;&lt;br /&gt;
&lt;br /&gt;
select project_id, project_name, task_no, cost&lt;br /&gt;
,sum(cost) over(order by project_id,task_no) running_total_by_project_task&lt;br /&gt;
,sum(cost) over(order by project_id) running_total_by_project&lt;br /&gt;
,sum(cost) over(partition by project_id) total_cost_by_project&lt;br /&gt;
,sum(cost) over(partition by task_no) total_cost_by_task&lt;br /&gt;
from temp_project_details;&lt;br /&gt;
&lt;br /&gt;
Output below..&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS-pE78yRbqzzLPJQP3VTNE2KiZMKt16jyz2z8IiLyruDmIZlCg4lWh3aVliMeJSiNYepXZc-n0aF8HsY9EIDSenqQMd5flmZ49NWFegAz2P0OGSuaF1gBmECJHf52Q7M8wSLT-tIfr9fB/s1600/project_output.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;59&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS-pE78yRbqzzLPJQP3VTNE2KiZMKt16jyz2z8IiLyruDmIZlCg4lWh3aVliMeJSiNYepXZc-n0aF8HsY9EIDSenqQMd5flmZ49NWFegAz2P0OGSuaF1gBmECJHf52Q7M8wSLT-tIfr9fB/s640/project_output.PNG&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/2713228028807547007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/2713228028807547007' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/2713228028807547007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/2713228028807547007'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2017/01/oracle-analytic-functions-difference.html' title='Oracle Analytic Functions - Difference between ORDER BY and PARTITION BY'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmYUV4Bu7XmQjuXn_nV_TdDg7XuNxa3ZtX412GEh5Fg0wUWpojPRZuTQFmpj4B7I_cC1ahhP_Xg6GFwwarzfsfD9t0K7JHkDrPSmenDu7l8C1RB51CDGwQltMjaKQ4eL0QJKhn3j-NTIQP/s72-c/project_output1.PNG" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-6258867190376414797</id><published>2015-10-29T17:24:00.002-04:00</published><updated>2015-11-09T14:33:30.557-05:00</updated><title type='text'>Getting Concurrent Request Id within Sql Loader based Concurrent Programs</title><content type='html'>None of the following will work in SQL LOADER.&lt;br /&gt;
-&amp;nbsp;&lt;span style=&quot;background-color: white; color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif; font-size: 13px; line-height: 19.5px;&quot;&gt;fnd_global.conc_request_id&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;- fnd_profile.value(&#39;conc_request_id&#39;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;First will update request_id as -1 and second will update as blank/NULL&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;You may consider this.. it works for me.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;- Create a function, something like below...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;===&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;span style=&quot;color: #3d3d3d; font-family: helvetica neue, helvetica, arial, lucida grande, sans-serif;&quot;&gt;CREATE OR REPLACE PACKAGE BODY &lt;pkg_name&gt;&lt;/pkg_name&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;span style=&quot;color: #3d3d3d; font-family: helvetica neue, helvetica, arial, lucida grande, sans-serif;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: helvetica neue, helvetica, arial, lucida grande, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;IS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
-- define global variable..&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;gn_sqlldr_req_id &amp;nbsp; &amp;nbsp; NUMBER ;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: white; font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;span style=&quot;color: #3d3d3d; font-family: helvetica neue, helvetica, arial, lucida grande, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;FUNCTION get_request_id RETURN NUMBER&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;IS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif; font-size: 13px; line-height: 19.5px;&quot;&gt;ln_req_id NUMBER ;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: helvetica neue, helvetica, arial, lucida grande, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;IF gn_sqlldr_req_id IS NULL then&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;select max(request_id)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;INTO gn_sqlldr_req_id&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;from fnd_concurrent_requests where &amp;nbsp;concurrent_program_id &amp;nbsp;in (&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;select concurrent_program_id from fnd_concurrent_programs where concurrent_program_name =&#39; YOUR_PROG_SHORT_NAME&#39;&lt;your_conc_prog_short_name&gt;) &amp;nbsp; ;&lt;/your_conc_prog_short_name&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: helvetica neue, helvetica, arial, lucida grande, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;END IF ;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: helvetica neue, helvetica, arial, lucida grande, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: helvetica neue, helvetica, arial, lucida grande, sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;RETURN gn_sqlldr_req_id ;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;END ;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: white; font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;====&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif; font-size: 13px; line-height: 19.5px;&quot;&gt;Your SQL Loader control file..&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif; font-size: 13px; line-height: 19.5px;&quot;&gt;==&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;load data&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;INFILE &#39;/tmp/XMITINVD.TXT&#39;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;INTO TABLE xxinv_TABLE_stg&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;APPEND&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;FIELDS TERMINATED BY &#39;|&#39;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;TRAILING NULLCOLS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 13px; line-height: 19.5px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #3d3d3d; font-family: &amp;quot;helvetica neue&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , &amp;quot;lucida grande&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 13px; line-height: 19.5px;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
---&lt;/div&gt;
&lt;div&gt;
---&lt;/div&gt;
&lt;div&gt;
---&lt;/div&gt;
&lt;div&gt;
request_id&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&quot;&lt;pkg_name&gt;.get_request_id&quot; -- your function here&lt;/pkg_name&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
)&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This worked for me.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/6258867190376414797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/6258867190376414797' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/6258867190376414797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/6258867190376414797'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2015/10/getting-concurrent-request-id-within.html' title='Getting Concurrent Request Id within Sql Loader based Concurrent Programs'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-4666051058623875635</id><published>2015-03-27T10:15:00.004-04:00</published><updated>2015-03-30T10:44:11.265-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Batching huge data"/><category scheme="http://www.blogger.com/atom/ns#" term="NTILE"/><category scheme="http://www.blogger.com/atom/ns#" term="PL/SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><title type='text'>How to divide huge data into batches</title><content type='html'>&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=7346696720685349738&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=7346696720685349738&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=7346696720685349738&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=7346696720685349738&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;Here is my answer on the subject above.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Using an &lt;u&gt;Analytical function – NTILE&lt;/u&gt;, I was able to
divide big volume of data into multiple batches. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=7346696720685349738&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=7346696720685349738&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=7346696720685349738&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/blogger.g?blogID=7346696720685349738&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;/a&gt;After dividing data into multiple batches, it’s easy to
implement multi-threading, without missing any record.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Following query divides Items(for the Org: 489 ) data in to
5 equal batches, and returns MIN and MAX Item ids from each batch.&lt;br /&gt;
&lt;o:p&gt;&lt;br /&gt;&lt;/o:p&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;b&gt;select min(inventory_item_id)
min_item_id , max(inventory_item_id) max_item_id,&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
count(*) batch_count, batch batch_num&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; from (
select inventory_item_id, &lt;span style=&quot;background: yellow; mso-highlight: yellow;&quot;&gt;NTILE(5)&lt;/span&gt;
over (order by inventory_item_id) batch&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;!--[if gte vml 1]&gt;&lt;v:shape
 id=&quot;Elbow_x0020_Connector_x0020_4&quot; o:spid=&quot;_x0000_s1026&quot; type=&quot;#_x0000_t75&quot;
 style=&#39;position:absolute;margin-left:193.05pt;margin-top:.45pt;width:187.5pt;
 height:43.5pt;z-index:251659264;visibility:visible;mso-width-percent:0;
 mso-height-percent:0;mso-wrap-distance-left:9pt;mso-wrap-distance-top:0;
 mso-wrap-distance-right:9pt;mso-wrap-distance-bottom:0;
 mso-position-horizontal:absolute;mso-position-horizontal-relative:text;
 mso-position-vertical:absolute;mso-position-vertical-relative:text;
 mso-width-percent:0;mso-height-percent:0;mso-width-relative:margin;
 mso-height-relative:margin&#39;&gt;
 &lt;v:imagedata src=&quot;file:///C:\Users\cmatta\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png&quot;
  o:title=&quot;&quot;/&gt;
 &lt;o:lock v:ext=&quot;edit&quot; aspectratio=&quot;f&quot;/&gt;
&lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;span style=&quot;height: 72px; margin-left: 324px; margin-top: 57px; mso-ignore: vglayout; position: absolute; width: 312px; z-index: 251659264;&quot;&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
from mtl_system_items_b &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;where
organization_id&amp;nbsp; = 679 -- 048&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;!--[if gte vml 1]&gt;&lt;v:shape
 id=&quot;_x0000_s1027&quot; type=&quot;#_x0000_t75&quot; alt=&quot;This value represents number of batches to be divided&quot;
 style=&#39;position:absolute;margin-left:384pt;margin-top:3pt;width:152.25pt;
 height:45pt;z-index:251660288;visibility:visible;mso-width-percent:0;
 mso-height-percent:0;mso-wrap-distance-left:9pt;mso-wrap-distance-top:0;
 mso-wrap-distance-right:9pt;mso-wrap-distance-bottom:0;
 mso-position-horizontal:absolute;mso-position-horizontal-relative:text;
 mso-position-vertical:absolute;mso-position-vertical-relative:text;
 mso-width-percent:0;mso-height-percent:0;mso-width-relative:margin;
 mso-height-relative:page&#39;&gt;
 &lt;v:imagedata src=&quot;file:///C:\Users\cmatta\AppData\Local\Temp\msohtmlclip1\01\clip_image007.emz&quot;
  o:title=&quot;&quot;/&gt;
&lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;span style=&quot;height: 75px; margin-left: 642px; margin-top: 70px; mso-ignore: vglayout; position: absolute; width: 254px; z-index: 251660288;&quot;&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
)&amp;nbsp;&amp;nbsp;&amp;nbsp; group by batch&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;u&gt;Query Output: &lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; margin-left: -1.05pt; mso-padding-alt: 0in 0in 0in 0in; mso-yfti-tbllook: 1184; width: 465px;&quot;&gt;
 &lt;tbody&gt;
&lt;tr style=&quot;height: 13.2pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: silver; border: solid windowtext 1.0pt; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;112&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;MIN_ITEM_ID&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: silver; border-left: none; border: solid windowtext 1.0pt; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;118&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;MAX_ITEM_ID&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: silver; border-left: none; border: solid windowtext 1.0pt; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 77.0pt;&quot; valign=&quot;bottom&quot; width=&quot;128&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;BATCH_COUNT&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;background: silver; border-left: none; border: solid windowtext 1.0pt; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 63.75pt;&quot; valign=&quot;bottom&quot; width=&quot;106&quot;&gt;&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;BATCH_NUM&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 13.2pt; mso-yfti-irow: 1;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-top: none; border: solid windowtext 1.0pt; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;112&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;158281&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;118&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;299596&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 77.0pt;&quot; valign=&quot;bottom&quot; width=&quot;128&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;7092&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 63.75pt;&quot; valign=&quot;bottom&quot; width=&quot;106&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 13.2pt; mso-yfti-irow: 2;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-top: none; border: solid windowtext 1.0pt; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;112&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;299598&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;118&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;400344&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 77.0pt;&quot; valign=&quot;bottom&quot; width=&quot;128&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;7092&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 63.75pt;&quot; valign=&quot;bottom&quot; width=&quot;106&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 13.2pt; mso-yfti-irow: 3;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-top: none; border: solid windowtext 1.0pt; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;112&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;509671&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;118&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;589229&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 77.0pt;&quot; valign=&quot;bottom&quot; width=&quot;128&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;7091&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 63.75pt;&quot; valign=&quot;bottom&quot; width=&quot;106&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 13.2pt; mso-yfti-irow: 4;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-top: none; border: solid windowtext 1.0pt; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;112&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;589230&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;118&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;961093&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 77.0pt;&quot; valign=&quot;bottom&quot; width=&quot;128&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;7091&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 63.75pt;&quot; valign=&quot;bottom&quot; width=&quot;106&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr style=&quot;height: 13.2pt; mso-yfti-irow: 5; mso-yfti-lastrow: yes;&quot;&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-top: none; border: solid windowtext 1.0pt; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 67.0pt;&quot; valign=&quot;bottom&quot; width=&quot;112&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;400345&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 71.0pt;&quot; valign=&quot;bottom&quot; width=&quot;118&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;509659&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 77.0pt;&quot; valign=&quot;bottom&quot; width=&quot;128&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;7092&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td nowrap=&quot;&quot; style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; height: 13.2pt; padding: 0in 5.4pt 0in 5.4pt; width: 63.75pt;&quot; valign=&quot;bottom&quot; width=&quot;106&quot;&gt;&lt;div align=&quot;right&quot; class=&quot;MsoNormal&quot; style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;3&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
I used this batching concept to process my data into
multi-threading. Sample code below.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;b&gt;Sample Code:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
---&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
for rec in (select min(inventory_item_id) min_item_id ,
max(inventory_item_id) max_item_id,&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
count(*) batch_count, batch batch_num&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
from ( select inventory_item_id, ntile(5) over (order by
inventory_item_id) batch&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from mtl_system_items_b &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;where organization_id&amp;nbsp; =
&lt;489&gt;)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; group by batch&lt;o:p&gt;&lt;/o:p&gt;&lt;!--489--&gt;&lt;!--489--&gt;&lt;!--489--&gt;&lt;/489&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
) loop&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print.log_message (&#39;batch_num:&#39;||rec.batch_num&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
||&#39;:min_item_id:&#39; ||rec.min_item_id&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
||&#39;:max_item_id:&#39;||rec.max_item_id&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
||&#39;:batch_count:&#39;||rec.batch_count);&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
ln_request_id := 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
begin&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
-- submit programs in batchhes..&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ln_request_id :=&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
fnd_request.submit_request (&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; application&amp;nbsp;&amp;nbsp; =&amp;gt; &#39;XXCUST&#39;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; program&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt;
&#39;concp_short_name&#39;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; argument1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; xv_item_code,&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; argument2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt; rec.min_item_id,&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; argument3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt;
rec.max_item_id,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;argument4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;gt;
xn_org_id&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
commit;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
end loop ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
--&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/4666051058623875635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/4666051058623875635' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/4666051058623875635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/4666051058623875635'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2015/03/how-to-divide-huge-data-into-batches.html' title='How to divide huge data into batches'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-391552256874168331</id><published>2015-01-12T10:59:00.004-05:00</published><updated>2015-03-24T17:16:22.871-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BI Publisher"/><category scheme="http://www.blogger.com/atom/ns#" term="Bursting"/><category scheme="http://www.blogger.com/atom/ns#" term="XML Publisher"/><title type='text'>BI Publisher Bursting - Delivering/sending emails conditionally</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;span style=&quot;text-align: start;&quot;&gt;Here is the sample code to send emails conditionally from BI/XML Publisher bursting feature.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Problem Statement:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Generate payslips for all the employees at one shot and email the payslips to respective employee.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAprv-Py5WOYqC-Mv4egjDmLkJYiH0ubHDX9BxC8gOzfO46lsmRTiLryv4dOjPthMes7eKzD90ijy4dychi0G_QOleInBAZWHKXU3Uni3tkJkmq1zhZRF8UHqtK2nItKO99ppBUF001BMT/s1600/Bursting3.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAprv-Py5WOYqC-Mv4egjDmLkJYiH0ubHDX9BxC8gOzfO46lsmRTiLryv4dOjPthMes7eKzD90ijy4dychi0G_QOleInBAZWHKXU3Uni3tkJkmq1zhZRF8UHqtK2nItKO99ppBUF001BMT/s1600/Bursting3.PNG&quot; height=&quot;73&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;span style=&quot;text-align: start;&quot;&gt;1. Alter EMP table and added a column called email to hold emails of each individual employees.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;span style=&quot;text-align: start;&quot;&gt;And then update email column to add email Ids where you want your emails to be delivered.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;span style=&quot;text-align: start;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;span style=&quot;text-align: start;&quot;&gt;2. Create a Data template Sample code available&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://drive.google.com/file/d/0B8lhccH_MDt7Z3BJUXR2UXNETTg/view?usp=sharing&quot; style=&quot;text-align: start;&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;span style=&quot;text-align: start;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;span style=&quot;text-align: start;&quot;&gt;3. Default package Sample code available&amp;nbsp;&lt;a href=&quot;https://drive.google.com/file/d/0B8lhccH_MDt7bEZrcjkwSXlaOEU/view?usp=sharing&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: start;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: start;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
4.Define a concurrent program and assign the concurrent program to a responsibility as per your convenience.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhshcO57f4snzV41dVo4kTB_5a2CWBIoyCKIHin4nP3Zlzgf76qU4lw0BsE-LRwj8jNPiIhguUckeUAZvA8pnUqhrjDziC3GfS_AGJ7UivuMH6lxXrAdq6HzLLjuWdYQ4H_oEy624vZMuFu/s1600/Bursting1.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhshcO57f4snzV41dVo4kTB_5a2CWBIoyCKIHin4nP3Zlzgf76qU4lw0BsE-LRwj8jNPiIhguUckeUAZvA8pnUqhrjDziC3GfS_AGJ7UivuMH6lxXrAdq6HzLLjuWdYQ4H_oEy624vZMuFu/s1600/Bursting1.PNG&quot; height=&quot;145&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
5. Design a simple RTF template and register the same. Sample template available&amp;nbsp;&lt;a href=&quot;https://drive.google.com/file/d/0B8lhccH_MDt7b0ItNUVXUUNhSE0/view?usp=sharing&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
6. Register data template, created in #1 above&lt;br /&gt;
&lt;br /&gt;
7. Register control file for bursting. Sample code available&amp;nbsp;&lt;a href=&quot;https://drive.google.com/file/d/0B8lhccH_MDt7b0ItNUVXUUNhSE0/view?usp=sharing&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Package Sample code&amp;nbsp;&lt;a href=&quot;https://drive.google.com/file/d/0B8lhccH_MDt7Vm1oVlZMdVkxajg/view?usp=sharing&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
8. Submit the concurrent program defined in #4. If everything goes fine,&lt;br /&gt;
you should be able to see emails delivered at the email ids provided.&lt;br /&gt;
&lt;br /&gt;
Sample Data in XML format.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZr4pS2j1xhSw7J_jxMqPTQBxNwbm-SKD6u8lwrz8F40gD8mQWCaTSrAx8i6wGzVfYmyx0asV245JRoJ2ZwDpFwhe_8pPZ9iIa_UUwlaqIxsebL4s5JceQA7gUAN48s3z0fJIISf67adtI/s1600/Bursting4.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZr4pS2j1xhSw7J_jxMqPTQBxNwbm-SKD6u8lwrz8F40gD8mQWCaTSrAx8i6wGzVfYmyx0asV245JRoJ2ZwDpFwhe_8pPZ9iIa_UUwlaqIxsebL4s5JceQA7gUAN48s3z0fJIISf67adtI/s1600/Bursting4.PNG&quot; height=&quot;278&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
9. Sample output below..&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsZxXoUzLeJt_RqAQG5zUlo5IHLVH8kjMQIy5ut7JdmLe7s_Qs4gyxpiihmpQJawFxvOzXVmHGgmKoNWZVavwGOGetPctXB5HIInB5Gk123GJVrCfVK6Mhj16i4O7z3tPq6prPQEQ-a29o/s1600/Bursting2.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsZxXoUzLeJt_RqAQG5zUlo5IHLVH8kjMQIy5ut7JdmLe7s_Qs4gyxpiihmpQJawFxvOzXVmHGgmKoNWZVavwGOGetPctXB5HIInB5Gk123GJVrCfVK6Mhj16i4O7z3tPq6prPQEQ-a29o/s1600/Bursting2.PNG&quot; height=&quot;211&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/391552256874168331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/391552256874168331' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/391552256874168331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/391552256874168331'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2015/01/bi-publisher-bursting-deliveringsending.html' title='BI Publisher Bursting - Delivering/sending emails conditionally'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAprv-Py5WOYqC-Mv4egjDmLkJYiH0ubHDX9BxC8gOzfO46lsmRTiLryv4dOjPthMes7eKzD90ijy4dychi0G_QOleInBAZWHKXU3Uni3tkJkmq1zhZRF8UHqtK2nItKO99ppBUF001BMT/s72-c/Bursting3.PNG" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-1681269867289860754</id><published>2013-10-10T10:42:00.003-04:00</published><updated>2015-11-18T16:53:36.649-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Extensible Atrributes"/><category scheme="http://www.blogger.com/atom/ns#" term="UDA"/><title type='text'>Extensible Atrributes</title><content type='html'>Here is the query to list out all extensible attribute group names, attribute names and its data types.&lt;br /&gt;
&lt;br /&gt;
SELECT &amp;nbsp; *&lt;br /&gt;
&amp;nbsp; &amp;nbsp; FROM (SELECT --egoattributeeo.attr_id,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;egoattributeeo.application_id,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;egoattributeeo.attr_group_type,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;egoattributeeo.attr_group_name,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; egoattributeeo.attr_name,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;egoattributeeo.attr_display_name,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;decode(egoattributeeo.data_type_code,&#39;C&#39;,&#39;CHAR&#39;,&#39;N&#39;,&#39;NUM&#39;,&#39;X&#39;,&#39;DATE&#39;) data_type_code,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;egoattributeeo.DEFAULT_VALUE,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;egoattributeeo.value_set_name,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;egoattributeeo.maximum_size,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; egoattributeeo.enabled_flag,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; egoattributeeo.required_flag,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;egoattributeeo.database_column,&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;egoattributeeo.read_only_flag&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM ego_attrs_v egoattributeeo, ego_fnd_dsc_flx_ctx_ext ext&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WHERE egoattributeeo.application_id = ext.application_id&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AND egoattributeeo.attr_group_type =&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ext.descriptive_flexfield_name&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AND egoattributeeo.attr_group_name =&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ext.descriptive_flex_context_code) qrslt&lt;br /&gt;
&amp;nbsp; &amp;nbsp;WHERE (application_id = &lt;your appli_id=&quot;&quot;&gt; AND attr_group_type like &#39;%&#39;&lt;/your&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;br /&gt;
ORDER BY attr_group_type, attr_group_name&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- All the attribute groups --&lt;br /&gt;
SELECT FL_CTX_EXT.ATTR_GROUP_ID ATTR_GROUP_ID ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;FL_CTX.APPLICATION_ID APPLICATION_ID ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;FL_CTX.DESCRIPTIVE_FLEXFIELD_NAME ATTR_GROUP_TYPE ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;FL_CTX.DESCRIPTIVE_FLEX_CONTEXT_CODE ATTR_GROUP_NAME ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;TL.DESCRIPTIVE_FLEX_CONTEXT_NAME ATTR_GROUP_DISP_NAME ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;TL.DESCRIPTION DESCRIPTION ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;FL_CTX.ENABLED_FLAG ENABLED_CODE ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;L1.MEANING ENABLED_MEANING ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;FL_CTX_EXT.MULTI_ROW MULTI_ROW_CODE ,L2.MEANING MULTI_ROW_MEANING ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;FL_CTX_EXT.VIEW_PRIVILEGE_ID VIEW_PRIVILEGE ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;FUNC_VIEW_TL.USER_FUNCTION_NAME VIEW_PRIVILEGE_NAME ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;FL_CTX_EXT.EDIT_PRIVILEGE_ID EDIT_PRIVILEGE ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;FUNC_EDIT_TL.USER_FUNCTION_NAME EDIT_PRIVILEGE_NAME ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;FL_CTX_EXT.AGV_NAME AGV_NAME ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;FL_CTX_EXT.REGION_CODE REGION_CODE ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;FL_CTX_EXT.BUSINESS_EVENT_FLAG BUSINESS_EVENT_FLAG ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;L3.MEANING BUSINESS_EVENT_MEANING ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&#39;N&#39; IS_EDITABLE ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;FL_TL.TITLE AGT_DISP_NAME ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;FL_CTX_EXT.PRE_BUSINESS_EVENT_FLAG PRE_BUSINESS_EVENT_FLAG ,&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;L4.MEANING PRE_BUSINESS_EVENT_MEANING ,&#39;N&#39; IS_DELETEABLE&lt;br /&gt;
FROM FND_DESCR_FLEX_CONTEXTS FL_CTX ,&lt;br /&gt;
EGO_FND_DSC_FLX_CTX_EXT FL_CTX_EXT ,&lt;br /&gt;
FND_DESCR_FLEX_CONTEXTS_TL TL ,&lt;br /&gt;
FND_DESCRIPTIVE_FLEXS_TL FL_TL ,&lt;br /&gt;
FND_LOOKUP_VALUES L1 ,&lt;br /&gt;
FND_LOOKUP_VALUES L2 ,&lt;br /&gt;
FND_LOOKUP_VALUES L3 ,&lt;br /&gt;
FND_LOOKUP_VALUES L4 ,&lt;br /&gt;
FND_FORM_FUNCTIONS_TL FUNC_VIEW_TL ,&lt;br /&gt;
FND_FORM_FUNCTIONS_TL FUNC_EDIT_TL&lt;br /&gt;
WHERE FL_CTX.APPLICATION_ID = FL_CTX_EXT.APPLICATION_ID AND&lt;br /&gt;
FL_CTX.APPLICATION_ID = TL.APPLICATION_ID AND&lt;br /&gt;
FL_CTX.DESCRIPTIVE_FLEXFIELD_NAME = FL_CTX_EXT.DESCRIPTIVE_FLEXFIELD_NAME AND&lt;br /&gt;
FL_CTX.DESCRIPTIVE_FLEXFIELD_NAME = TL.DESCRIPTIVE_FLEXFIELD_NAME AND&lt;br /&gt;
FL_CTX.DESCRIPTIVE_FLEXFIELD_NAME = FL_TL.DESCRIPTIVE_FLEXFIELD_NAME AND&lt;br /&gt;
FL_CTX.DESCRIPTIVE_FLEX_CONTEXT_CODE = FL_CTX_EXT.DESCRIPTIVE_FLEX_CONTEXT_CODE AND&lt;br /&gt;
FL_CTX.DESCRIPTIVE_FLEX_CONTEXT_CODE = TL.DESCRIPTIVE_FLEX_CONTEXT_CODE AND&lt;br /&gt;
TL.LANGUAGE = USERENV(&#39;LANG&#39;) AND FL_TL.LANGUAGE = USERENV(&#39;LANG&#39;) AND&lt;br /&gt;
L1.LOOKUP_TYPE = &#39;YES_NO&#39; AND&lt;br /&gt;
L1.LOOKUP_CODE = FL_CTX.ENABLED_FLAG AND&lt;br /&gt;
L1.LANGUAGE = USERENV(&#39;LANG&#39;) AND&lt;br /&gt;
L1.VIEW_APPLICATION_ID = 0 AND&lt;br /&gt;
L2.LOOKUP_TYPE = &#39;YES_NO&#39; AND&lt;br /&gt;
L2.LOOKUP_CODE = FL_CTX_EXT.MULTI_ROW AND&lt;br /&gt;
L2.LANGUAGE = USERENV(&#39;LANG&#39;) AND&lt;br /&gt;
L2.VIEW_APPLICATION_ID = 0 AND&lt;br /&gt;
L3.LOOKUP_TYPE(+) = &#39;YES_NO&#39; AND&lt;br /&gt;
L3.LOOKUP_CODE (+)= FL_CTX_EXT.BUSINESS_EVENT_FLAG AND&lt;br /&gt;
L3.LANGUAGE (+)= USERENV(&#39;LANG&#39;) AND&lt;br /&gt;
L3.VIEW_APPLICATION_ID(+) = 0 AND&lt;br /&gt;
L4.LOOKUP_TYPE(+) = &#39;YES_NO&#39; AND&lt;br /&gt;
L4.LOOKUP_CODE (+)= FL_CTX_EXT.PRE_BUSINESS_EVENT_FLAG AND&lt;br /&gt;
L4.LANGUAGE (+)= USERENV(&#39;LANG&#39;) AND&lt;br /&gt;
L4.VIEW_APPLICATION_ID(+) = 0 AND&lt;br /&gt;
FL_CTX_EXT.VIEW_PRIVILEGE_ID = FUNC_VIEW_TL.FUNCTION_ID(+) AND&lt;br /&gt;
FUNC_VIEW_TL.LANGUAGE (+)= userenv(&#39;LANG&#39;) AND&lt;br /&gt;
FL_CTX_EXT.EDIT_PRIVILEGE_ID = FUNC_EDIT_TL.FUNCTION_ID(+) AND&lt;br /&gt;
FUNC_EDIT_TL.LANGUAGE (+)= userenv(&#39;LANG&#39;) AND&lt;br /&gt;
FL_CTX_EXT.DESCRIPTIVE_FLEX_CONTEXT_CODE NOT IN (&#39;ItemDetailImage&#39;, &#39;ItemDetailDesc&#39;)&lt;br /&gt;
--and FL_CTX.DESCRIPTIVE_FLEX_CONTEXT_CODE = &#39;PIM_CLF&#39;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/1681269867289860754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/1681269867289860754' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/1681269867289860754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/1681269867289860754'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2013/10/extensible-atrributes.html' title='Extensible Atrributes'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-8398518019566773282</id><published>2013-09-24T09:29:00.001-04:00</published><updated>2013-09-25T10:27:23.515-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Business Event"/><category scheme="http://www.blogger.com/atom/ns#" term="Business Event Not Raised."/><category scheme="http://www.blogger.com/atom/ns#" term="oracle.apps.ap.supplier.event"/><category scheme="http://www.blogger.com/atom/ns#" term="Supplier Site"/><title type='text'>When updating Supplier Address, oracle.apps.ap.supplier.event was not raised</title><content type='html'>&lt;b&gt;Problem: &lt;/b&gt;Business event &quot;oracle.apps.ap.supplier.event&quot;&amp;nbsp;may not be raised when you&amp;nbsp;updating Supplier Address at site level.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div&gt;
Solution: &amp;nbsp;You need to check the checkbox &#39;Update to all sites using this address&#39;.&lt;/div&gt;
&lt;div&gt;
This business event &quot;oracle.apps.ap.supplier.event&quot; will be raised when you do following actions on suppliers/vendors&lt;br /&gt;
- Create Vendor&lt;br /&gt;
- Update Vendor&lt;br /&gt;
- Create Vendor Site&lt;br /&gt;
- Update Vendor Site&lt;br /&gt;
- Create Vendor Contact&lt;br /&gt;
- Update Vendor Contact&lt;br /&gt;
- Update Address Assignments&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/8398518019566773282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/8398518019566773282' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/8398518019566773282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/8398518019566773282'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2013/09/when-updating-supplier-address.html' title='When updating Supplier Address, oracle.apps.ap.supplier.event was not raised'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-5344225213767403177</id><published>2012-03-29T07:08:00.004-04:00</published><updated>2013-09-30T09:43:46.885-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Critical Activities in ERP Project Management"/><title type='text'>Critical Tasks in Project Management - typically ERP Implementation</title><content type='html'>&lt;span style=&quot;font-size: 100%; font-style: normal;&quot;&gt;Hi All, &lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-size: 100%; font-style: normal;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-style: normal;&quot;&gt;
&lt;span style=&quot;font-size: 100%;&quot;&gt;I have put this list together from my past and previous experience and exposure as Project Lead and Manager. Many of these may or may not be applicable depending Project type, Rollout or upgrade, Impl&lt;/span&gt;emetation. But ideally these points mentioned below are usually missed and or not under consid&lt;span style=&quot;font-size: 100%;&quot;&gt;eration until the situation arises. But project management practise says that one should always be prepared for the worst even before it shows up at the door step. I have seen on several occasions when we as a team had to go back and review the strategy to mitigate the risk of missing the timeline&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: 100%; font-style: normal;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;Project plan should include the below activities &lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;1&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;Check for prerequisite version of 11i needed for R12 upgrade&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;2&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;DB upgrade for supporting/as needed to 10g or 11g&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;3&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;Server capacity ( RAM, HDD)  increase as needed to support 10g or 11g accordingly&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;4&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;Necessary pre-requisite patches to be applied for R12 as given for the corresponding version and research on the new patches released for that version and modules related.&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;5&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;Data Conversion/Migration planning&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;6&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;Instance planning and availability plan&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;7&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;Requirement gathering&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;8&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;Requirement signoff&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;9&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;Module Related Patches Verification&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;10&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;Cut Over Activities&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;11&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;Seeded Functional Setup steps.&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;12&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt; Custom components functional design documents &lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;13&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt; Data Conversion/Migration Functional Design&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;14&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt; Customization Technical design documents&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;15&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt; Data Conversion/Migration Technical Design&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;16&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt; Code Build&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;17&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt; Unit Testing&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;18&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt; System Integration Testing&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;19&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt; User acceptance testing&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;20&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt; Regression Testing&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;21&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt; Volume Testing&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;22&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt; Pre Production activities&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;23&lt;span style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt; Cut Over Activities&lt;/i&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;i&gt;To top it all these should have bookmarks in the Risk Management document. Ideally each step can be flagged off red depending on the stage or the current status of the project affairs.&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: rgba(255, 255, 255, 0.917969); color: #222222; font-family: arial, sans-serif; text-align: -webkit-auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/5344225213767403177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/5344225213767403177' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/5344225213767403177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/5344225213767403177'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2012/03/critical-tasks-in-project-management.html' title='Critical Tasks in Project Management - typically ERP Implementation'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-7998138169272066558</id><published>2011-09-16T10:44:00.002-04:00</published><updated>2012-03-28T08:35:46.389-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Credit Management"/><category scheme="http://www.blogger.com/atom/ns#" term="OCM"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Credit Management"/><title type='text'>Finding Guarantors Case Folder for a Parent case folder</title><content type='html'>&lt;br /&gt;
Below is the query to find Guarantors/Child case folder for a Parent/Dealer case folder along credit analyst assigned to it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
select child_cf.case_folder_number child_case_folder, parent_cf.case_folder_number &amp;nbsp;parent_case_folder, &amp;nbsp;res.source_name&lt;br /&gt;
from&lt;br /&gt;
ar_cmgt_credit_requests re,&lt;br /&gt;
ar_cmgt_case_folders child_cf,&lt;br /&gt;
ar_cmgt_case_folders parent_cf,&lt;br /&gt;
jtf_rs_resource_extns res&lt;br /&gt;
where&lt;br /&gt;
parent_credit_request_id = parent_cf.credit_request_id&lt;br /&gt;
--and parent_cf.case_folder_number = &#39;14225&#39;&lt;br /&gt;
and res.source_name = &#39;Credit Analyst Name Here&lt;credit analyst=&quot;&quot; name=&quot;&quot;&gt;&#39;&lt;/credit&gt;&lt;br /&gt;
and parent_cf.review_type is not null&lt;br /&gt;
and res.resource_id = parent_cf.credit_analyst_id&lt;br /&gt;
and child_cf.credit_request_id = re.credit_request_id&lt;br /&gt;
and child_cf.review_type is not null&lt;br /&gt;
order by 2 desc&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/7998138169272066558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/7998138169272066558' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/7998138169272066558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/7998138169272066558'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2011/09/finding-guarantors-case-folder-for.html' title='Finding Guarantors Case Folder for a Parent case folder'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-8424516407749841318</id><published>2011-09-13T10:20:00.000-04:00</published><updated>2011-09-13T10:20:16.299-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Credit Management"/><category scheme="http://www.blogger.com/atom/ns#" term="OCM"/><category scheme="http://www.blogger.com/atom/ns#" term="Oracle Credit Management"/><title type='text'>Finding Credit Analyst Name in Oracle Credit Management</title><content type='html'>&lt;br /&gt;
&lt;br /&gt;
-- To find Credit analyst name for the given case folder name. ------&lt;br /&gt;
&lt;br /&gt;
select source_name credit_analyst_ name, source_job_title Job_Title, case_folder_number, usr.user_name User, usr.description&lt;br /&gt;
from jtf_rs_resource_extns res ,&lt;br /&gt;
ar_cmgt_case_folders cf,&lt;br /&gt;
fnd_user usr&lt;br /&gt;
where&lt;br /&gt;
res.resource_id = cf.credit_analyst_id&lt;br /&gt;
and case_folder_number = &#39;&lt;case folder=&quot;&quot; number=&quot;&quot;&gt;&#39;&amp;nbsp;&lt;/case&gt;&lt;br /&gt;
and res.user_id = usr.user_id&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; -- ====== to find out credit analyst &amp;nbsp;assigned to Rule Name -----&lt;br /&gt;
&lt;br /&gt;
select rule_name, result_value , usr.user_name credit_analyst_name , res.resource_id&lt;br /&gt;
from fun_rule_details &amp;nbsp;fun, jtf_rs_resource_extns res, fnd_user usr&lt;br /&gt;
where rule_name = &#39;&lt;rule name=&quot;&quot;&gt;&#39; and&lt;/rule&gt;&lt;br /&gt;
fun.result_value = res.resource_id&lt;br /&gt;
and res.user_id = usr.user_id&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/8424516407749841318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/8424516407749841318' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/8424516407749841318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/8424516407749841318'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2011/09/finding-credit-analyst-name-in-oracle.html' title='Finding Credit Analyst Name in Oracle Credit Management'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-2486087653617914197</id><published>2011-04-19T10:49:00.000-04:00</published><updated>2011-04-19T14:07:42.675-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Credit Classification"/><category scheme="http://www.blogger.com/atom/ns#" term="Credit Management"/><category scheme="http://www.blogger.com/atom/ns#" term="Profile Class"/><title type='text'>How to fix - Credit usage rule has not been setup</title><content type='html'>Credit usage rule has not been setup&lt;br /&gt;
When creating credit applications, Guarantor or child workflow may throw an error message -&amp;nbsp;Credit usage rule has not been setup.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVpEOyvYa_V7E_YddXno3qYWUnmlBkE9q2VkZiVsxbQ0_C20zM7aaHpSNGI78fDi1fUscyS5vgLLGvjfcLMwaKfwG0JG4q8jEPfu5YDV-9Lh5NcQ6K4yXix_CFra8IvCCwnCVSome-BYcf/s1600/Credit_Usage_rule.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;235&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVpEOyvYa_V7E_YddXno3qYWUnmlBkE9q2VkZiVsxbQ0_C20zM7aaHpSNGI78fDi1fUscyS5vgLLGvjfcLMwaKfwG0JG4q8jEPfu5YDV-9Lh5NcQ6K4yXix_CFra8IvCCwnCVSome-BYcf/s400/Credit_Usage_rule.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reason could be - Credit classification for the Guarantor might not be setup properly.&lt;br /&gt;
Following query would help you to find out list of potential guarantors which would cause an issue while creating credit application.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgzKDxgRAF5xYUqZuB8ESYzp7Q0SiHKTngAirROyORtaUcSat4hs0iKS1f6m4SaPNuNNKGxnMxnr37eko1sShMqcng-eqYDWPKB-sR1eZBpOkU_WOgsSqqAZFKzu-wF68DygvmalzFi4Wu/s1600/3.gif&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;208&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgzKDxgRAF5xYUqZuB8ESYzp7Q0SiHKTngAirROyORtaUcSat4hs0iKS1f6m4SaPNuNNKGxnMxnr37eko1sShMqcng-eqYDWPKB-sR1eZBpOkU_WOgsSqqAZFKzu-wF68DygvmalzFi4Wu/s400/3.gif&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This query list down the information such as Guarantor Name, Dealer Name and the Customer account profile id and object version number.&lt;br /&gt;
--&lt;br /&gt;
select p.party_type , p.party_number, p.party_name guarantor_name, p.party_id, hrel.object_id, hrel.object_table_name, hrel.object_type,&lt;br /&gt;
orgp.party_name dealer_name, orgp.party_number delaer_number,hzp.cust_account_profile_id, hzp.object_version_number,&lt;br /&gt;
p.creation_date, p.last_update_date, p.last_updated_by,ppf.full_name user_&lt;br /&gt;
from hz_parties p, hz_relationships hrel, hz_parties orgp, &amp;nbsp;hz_customer_profiles hzp, per_people_f ppf, fnd_user usr&lt;br /&gt;
where p.party_name &amp;nbsp;in (select&lt;br /&gt;
party_name&lt;br /&gt;
from hz_parties hzp where party_id in (select party_id from hz_customer_profiles hz,hz_cust_profile_classes cp&lt;br /&gt;
where cp.name = &#39;DEFAULT&#39; and cp.profile_class_id = hz.profile_class_id and hz.cust_account_id = -1 )&lt;br /&gt;
and hzp.party_type = &#39;PERSON&#39; &amp;nbsp; &amp;nbsp;)&lt;br /&gt;
and hrel.subject_id = p.party_id&lt;br /&gt;
and orgp.party_id = hrel.object_id&lt;br /&gt;
and hzp.party_id = p.party_id&lt;br /&gt;
and hzp.cust_account_id = -1&lt;br /&gt;
and hrel.object_table_name = &#39;HZ_PARTIES&#39;&lt;br /&gt;
and p.party_type = &#39;PERSON&#39;&lt;br /&gt;
and p.last_updated_by = usr.user_id&lt;br /&gt;
and ppf.person_id = usr.employee_id&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Execute following API to set credit classification correctly.&lt;br /&gt;
&lt;br /&gt;
declare&lt;br /&gt;
p_customer_profile_rec_type&lt;br /&gt;
hz_customer_profile_v2pub.customer_profile_rec_type;&lt;br /&gt;
p_cust_account_profile_id number;&lt;br /&gt;
p_object_version_number&amp;nbsp;number;&lt;br /&gt;
x_return_status varchar2(2000);&lt;br /&gt;
x_msg_count&amp;nbsp;number;&lt;br /&gt;
x_msg_data varchar2(2000);&lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
fnd_client_info.set_org_context(&#39;&amp;amp;Org_Id&#39;); &lt;br /&gt;
p_customer_profile_rec_type.cust_account_profile_id := &#39;&amp;amp;Cust_Account_Profile_Id&#39;;&lt;br /&gt;
p_customer_profile_rec_type.profile_class_id := &#39;&amp;amp;New_profile_class_id&#39;; &lt;br /&gt;
p_object_version_number := &#39;&amp;amp;object_version_number&#39;; &lt;br /&gt;
&lt;br /&gt;
hz_customer_profile_v2pub.update_customer_profile( &#39;T&#39;,p_customer_profile_rec_type, p_object_version_number, x_return_status, x_msg_count, x_msg_data);&lt;br /&gt;
&lt;br /&gt;
dbms_output.put_line(&#39;x_return_status = &#39;||substr(x_return_status,1,255));&lt;br /&gt;
dbms_output.put_line(&#39;Object Version Number = &#39;||to_char(p_object_version_number));&lt;br /&gt;
dbms_output.put_line(&#39;profile_class_id = &#39;||p_customer_profile_rec_type.profile_class_id);&lt;br /&gt;
dbms_output.put_line(&#39;x_msg_count = &#39;||to_char(x_msg_count));&lt;br /&gt;
dbms_output.put_line(&#39;x_msg_data = &#39;||&amp;nbsp;to_char&amp;nbsp;(x_msg_data,1,255));&lt;br /&gt;
&lt;br /&gt;
if x_msg_count &amp;gt;1 then&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;for i in 1..x_msg_count loop&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;white-space: pre;&quot;&gt;  dbms_output.put_line(i||&#39;.&#39;||substr(fnd_msg_pub.get(p_encoded=&amp;gt; fnd_api.g_false ), 1, 255));
 end loop;
end if;

end;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
commit ;&lt;br /&gt;
&lt;br /&gt;
After executing this, you may retest credit application process again and verify the results.&lt;br /&gt;
Hope this helps...&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/2486087653617914197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/2486087653617914197' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/2486087653617914197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/2486087653617914197'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2011/04/credit-usage-rule-has-not-been-setup.html' title='How to fix - Credit usage rule has not been setup'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVpEOyvYa_V7E_YddXno3qYWUnmlBkE9q2VkZiVsxbQ0_C20zM7aaHpSNGI78fDi1fUscyS5vgLLGvjfcLMwaKfwG0JG4q8jEPfu5YDV-9Lh5NcQ6K4yXix_CFra8IvCCwnCVSome-BYcf/s72-c/Credit_Usage_rule.JPG" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-4129994669558497924</id><published>2011-03-21T15:49:00.001-04:00</published><updated>2011-03-21T16:02:13.675-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Credit Management"/><category scheme="http://www.blogger.com/atom/ns#" term="OCM"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><title type='text'>OCM - Dealer Names and Its Guarantor Names</title><content type='html'>&lt;br /&gt;
select p.party_type , p.party_number, p.party_name guarantor_name, p.party_id, hrel.object_id, hrel.object_table_name, hrel.object_type,&lt;br /&gt;
orgp.party_name dealer_name, orgp.party_number delaer_number&lt;br /&gt;
from hz_parties p, hz_relationships hrel, hz_parties orgp&lt;br /&gt;
where p.party_name &amp;nbsp;in (select&lt;br /&gt;
party_name&lt;br /&gt;
from hz_parties hzp where party_id in (select party_id from HZ_CUSTOMER_PROFILES hz,hz_cust_profile_classes cp&lt;br /&gt;
where cp.name = &#39;DEFAULT&#39; and cp.profile_class_id = hz.profile_class_id and hz.cust_account_id = -1 )&lt;br /&gt;
and hzp.party_type = &#39;PERSON&#39; &amp;nbsp; &amp;nbsp;)&lt;br /&gt;
and hrel.subject_id = p.party_id&lt;br /&gt;
and orgp.party_id = hrel.object_id</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/4129994669558497924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/4129994669558497924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/4129994669558497924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/4129994669558497924'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2011/03/ocm-dealer-names-and-its-guarantor.html' title='OCM - Dealer Names and Its Guarantor Names'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-7710533904315375040</id><published>2011-03-21T15:48:00.000-04:00</published><updated>2011-03-21T15:58:04.574-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Credit Management"/><category scheme="http://www.blogger.com/atom/ns#" term="OCM"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><title type='text'>OCM - How to extract Dealer names and its related Owner names</title><content type='html'>&lt;br /&gt;
Select r.party_id party_id, p.party_number dealer_num, p.party_name dealer_name, sub_party.party_name owner_name&lt;br /&gt;
from hz_relationships r , hz_parties p, hz_parties sub_party,&lt;br /&gt;
where r.subject_id = sub_party.party_id&lt;br /&gt;
and r.object_id = p.party_id&lt;br /&gt;
and ((r.end_date is null) or (r.end_date &amp;gt; sysdate)) and r.status = &#39;A&#39;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/7710533904315375040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/7710533904315375040' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/7710533904315375040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/7710533904315375040'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2011/03/ocm-how-to-extract-dealer-names-and-its.html' title='OCM - How to extract Dealer names and its related Owner names'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-1815490193028185244</id><published>2011-03-21T14:45:00.000-04:00</published><updated>2011-03-21T15:58:35.612-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Credit Management"/><category scheme="http://www.blogger.com/atom/ns#" term="FND Attachment"/><category scheme="http://www.blogger.com/atom/ns#" term="HZ Parties"/><category scheme="http://www.blogger.com/atom/ns#" term="OCM"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><title type='text'>How to list down all the attachments attached to a vendor or party</title><content type='html'>Here is a way to find out all the attachments attached to a specific vendor or specific customer/party etc.&lt;br /&gt;
&lt;br /&gt;
#1. To list down all the attachments attached to each supplier/vendor, following query can be used.&lt;br /&gt;
&lt;br /&gt;
select segment1 vendor_num, vendor_name,&lt;br /&gt;
fdoc.title file_title, fdoc.file_name&lt;br /&gt;
from ap_suppliers sup, fnd_attached_documents doc, fnd_documents_vl fdoc&lt;br /&gt;
where&lt;br /&gt;
doc.pk1_value = sup.vendor_id and doc.entity_name = &#39;PO_VENDORS&#39;&lt;br /&gt;
and doc.document_id = &amp;nbsp;fdoc.document_id&lt;br /&gt;
order by vendor_name&lt;br /&gt;
&lt;br /&gt;
See the&amp;nbsp;screenshot&amp;nbsp;for &amp;nbsp;sample attachment for one vendor.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://lh4.googleusercontent.com/-g3jWANSxwzI/TYecwUjzLOI/AAAAAAAAF1w/jaDY1F7yZqA/s1600/Vendor_attachemtn.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;162&quot; src=&quot;https://lh4.googleusercontent.com/-g3jWANSxwzI/TYecwUjzLOI/AAAAAAAAF1w/jaDY1F7yZqA/s400/Vendor_attachemtn.gif&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
#2.&amp;nbsp;In a similar&amp;nbsp;way, to find out attachments for parties..&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;select hzp.party_name Owner_name, hzp.party_number Owner_number, hzp.party_type, docs.creation_date doc_created_date , fdoc.title file_title, fdoc.file_name&lt;br /&gt;
from FND_ATTACHED_DOCUMENTS docs, hz_parties hzp, &amp;nbsp;fnd_documents_vl fdoc&lt;br /&gt;
where entity_name like &#39;HZ_PARTIES&#39; and &amp;nbsp;pk1_value = hzp.party_id&lt;br /&gt;
and docs.document_id = &amp;nbsp;fdoc.document_id&lt;br /&gt;
order by 1&lt;br /&gt;
&lt;br /&gt;
Thanks,&lt;br /&gt;
Chandra.</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/1815490193028185244/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/1815490193028185244' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/1815490193028185244'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/1815490193028185244'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2011/03/how-to-list-down-all-attachments.html' title='How to list down all the attachments attached to a vendor or party'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-g3jWANSxwzI/TYecwUjzLOI/AAAAAAAAF1w/jaDY1F7yZqA/s72-c/Vendor_attachemtn.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-5520058692285659272</id><published>2010-04-24T10:38:00.000-04:00</published><updated>2010-04-24T10:49:12.203-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AOL"/><category scheme="http://www.blogger.com/atom/ns#" term="Concurrent Programs"/><category scheme="http://www.blogger.com/atom/ns#" term="Dynamic Parameters"/><category scheme="http://www.blogger.com/atom/ns#" term="Enabling/disabling parameters"/><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin"/><title type='text'>Enabling and disabling parameters dynamically. -2</title><content type='html'>Here is yet another post on same old topic - &quot;Enabling and disabling parameters dynamically&quot;&lt;br /&gt;
Well there is a slight change in requirement.&lt;br /&gt;
In my first post on this topic, user have a choice of selecting Yes or No, as a first parameter and based on this first parameter selection, we designed second parameter to behave accordingly.&lt;br /&gt;
&lt;br /&gt;
But, what if there is no selection in first parameter.?&lt;br /&gt;
Or in other words, value for first parameter is NULL ?&lt;br /&gt;
&lt;br /&gt;
Brief explanation about the requirement.&lt;br /&gt;
My concurrent program has got three parameters as below.&lt;br /&gt;
1. Receipt Batch Name&lt;br /&gt;
2. GL Date From&lt;br /&gt;
3. GL Date To.&lt;br /&gt;
&lt;br /&gt;
Initially, when &quot;Receipt Batch Name&quot;&amp;nbsp;&amp;nbsp;is NULL then GL Date parameters should be enable and ready to take values.&lt;br /&gt;
&lt;br /&gt;
If a value is entered for &quot;Receipt Batch Name&quot;, then GL Date parameters should be disabled.&lt;br /&gt;
&lt;br /&gt;
Simple check to find first parameter as NULL or NOT NULL will not work. For example, consider the code below.&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;decode(:$FLEX$.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black; font-family: &#39;Times New Roman&#39;; font-size: 16px; line-height: normal;&quot;&gt;&amp;nbsp;XXAR_RECEIPT_BATCH_NAME&lt;/span&gt;,NULL,&#39;IT IS NULL&#39;,&#39;IT IS NOT NULL&#39;)&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;-- this command is not enough.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;You need to check for NULL values of any value set like below.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px; line-height: 18px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black; font-family: &#39;Times New Roman&#39;; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 16px; line-height: normal;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 12pt;&quot;&gt;&lt;b&gt;decode(nvl(:$FLEX$.XXAR_RECEIPT_BATCH_NAME:NULL,&#39;X&#39;),&#39;X&#39;,&#39;Y&#39;,null)&lt;/b&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;For complete solution, consider following screenshots.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU73cwmkfj-s3lsOXLxiL93D2_7uRH-ODqJLiCuapentbmBMmpilSxAOIkGiYb8zat8WSZJotaLEr8KFMWVD5hX56pzk3ijnHILoBXbtsAP-iagDKo_3Kf3nqc8faU5HfdzMqUiOxYZvzS/s1600/conc1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;266&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU73cwmkfj-s3lsOXLxiL93D2_7uRH-ODqJLiCuapentbmBMmpilSxAOIkGiYb8zat8WSZJotaLEr8KFMWVD5hX56pzk3ijnHILoBXbtsAP-iagDKo_3Kf3nqc8faU5HfdzMqUiOxYZvzS/s400/conc1.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlwq5JOTYPpn3zc_TdqCrfRpoHP7NY5eEvPNIACtCSphJVPVcNhcTY-YPCyMilM5f8q1VcFL53UYP0YJmo-MYOLdl83BMmou-RNS2v54OY6aOEzBXEqe8mVtKCA3N62GvJYdVgMfFeBihU/s1600/conc2.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;266&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlwq5JOTYPpn3zc_TdqCrfRpoHP7NY5eEvPNIACtCSphJVPVcNhcTY-YPCyMilM5f8q1VcFL53UYP0YJmo-MYOLdl83BMmou-RNS2v54OY6aOEzBXEqe8mVtKCA3N62GvJYdVgMfFeBihU/s400/conc2.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh20s-fc5A2S4-yh-6qg9yvQ9mGU72Ey0QwjL1rqj9XDiIkHTifWk3ExQcNQU4UuZf7b_Fe5L8_kIvxPTaQYkO5zJfGZkVtfc0d-sK9HMZPA9giKp2zK9oQtRJEIL4ZBBrN8LnHA_PKyvDt/s1600/conc3.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;267&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh20s-fc5A2S4-yh-6qg9yvQ9mGU72Ey0QwjL1rqj9XDiIkHTifWk3ExQcNQU4UuZf7b_Fe5L8_kIvxPTaQYkO5zJfGZkVtfc0d-sK9HMZPA9giKp2zK9oQtRJEIL4ZBBrN8LnHA_PKyvDt/s400/conc3.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Complete SQL Statement entered as default value is -&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
select
decode(nvl(:$FLEX$.XXAR_RECEIPT_BATCH_NAME:NULL,&#39;X&#39;),&#39;X&#39;,&#39;Y&#39;,null) from dual&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaoF-u0iubfheBExixeNHqaG8eZkLzeF2lpfOsS-TBHteNs3cUxKMh6C8z9gWWoIvGMD6SN8cWhvpqd3cquvlE7x9d9nUh5VDvoq7wl6zMZm7MfW6zT7MpFXfAL2Om5tFXtCY3Z3w0628f/s1600/conc4.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;215&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaoF-u0iubfheBExixeNHqaG8eZkLzeF2lpfOsS-TBHteNs3cUxKMh6C8z9gWWoIvGMD6SN8cWhvpqd3cquvlE7x9d9nUh5VDvoq7wl6zMZm7MfW6zT7MpFXfAL2Om5tFXtCY3Z3w0628f/s400/conc4.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjplFxtWDV4U2ySsrKWS4PlLa3ZNGpRWefdvjvte5An77GXvhZrtKhUuByC5P4gEi93zQWQ3o3RwzOORr6IH3pCZcafZcYNCNvpaxWArL4H37HVHZtLDiUHPWoeGRJYcC_OxnNFqekfRtB9/s1600/conc5.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;266&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjplFxtWDV4U2ySsrKWS4PlLa3ZNGpRWefdvjvte5An77GXvhZrtKhUuByC5P4gEi93zQWQ3o3RwzOORr6IH3pCZcafZcYNCNvpaxWArL4H37HVHZtLDiUHPWoeGRJYcC_OxnNFqekfRtB9/s400/conc5.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQx8iP8vVngzFiJDiSBUb-XUULeauV0FKhbeQ3a04fbfPxmGd3PKqfxotn2y8VYQyEWvAKM-UrTS6aJQml5y5P5AcUt27t5piSgsgJ7E_7CAJ6iNEcqO3tiDN8U4NuxuBCbtuGky_r1dt1/s1600/conc6.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;217&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQx8iP8vVngzFiJDiSBUb-XUULeauV0FKhbeQ3a04fbfPxmGd3PKqfxotn2y8VYQyEWvAKM-UrTS6aJQml5y5P5AcUt27t5piSgsgJ7E_7CAJ6iNEcqO3tiDN8U4NuxuBCbtuGky_r1dt1/s400/conc6.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ-HtaxKHOAVcKlbKro4CBkCK_cT70RMS3DyDdaqnjLi9qFtZ0nmsrkDchV5IhZFlz6cQA54oRHr3NKSKaAd6hb8KHthEv35XmLKkfHwSY9-eWxB25SNOsgXXx3Szv16AaU4xWm9wxLMCi/s1600/conc7.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;270&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ-HtaxKHOAVcKlbKro4CBkCK_cT70RMS3DyDdaqnjLi9qFtZ0nmsrkDchV5IhZFlz6cQA54oRHr3NKSKaAd6hb8KHthEv35XmLKkfHwSY9-eWxB25SNOsgXXx3Szv16AaU4xWm9wxLMCi/s400/conc7.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
Enter following sql statment in place of &amp;nbsp;Table Name&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
(SELECT trunc(SYSDATE) - 1000 + LEVEL date_range FROM DUAL
CONNECT BY LEVEL &amp;lt;= 1000) temp_tab&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_L28GveQhc5jJ5h76cUPOB_kS-DF7-fn2LVeuhxtwOp8L1KDcocgvJpcrL9Y0j1RQ2gNeFxGZqZ5dnpUDubazc7VHYlCKwjFw7jPCY8Pp1KTq6QCMICGEFstCOvjIG-Cw1eJfflHENoEq/s1600/conc8.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;267&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_L28GveQhc5jJ5h76cUPOB_kS-DF7-fn2LVeuhxtwOp8L1KDcocgvJpcrL9Y0j1RQ2gNeFxGZqZ5dnpUDubazc7VHYlCKwjFw7jPCY8Pp1KTq6QCMICGEFstCOvjIG-Cw1eJfflHENoEq/s400/conc8.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivYo5cCCu3YnF-1Tgh1laQPgek5Tk7IQcjG6KiPlXaKQ-cnuJYiGH2QPsllVBg7a6w0qPj34coj9EHJkTmS3pig-RgXBIINcJVLVxlWfx2F7hw-SfAdS0G3pP_weAhYDX4woExr1mdxVKc/s1600/conc9.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivYo5cCCu3YnF-1Tgh1laQPgek5Tk7IQcjG6KiPlXaKQ-cnuJYiGH2QPsllVBg7a6w0qPj34coj9EHJkTmS3pig-RgXBIINcJVLVxlWfx2F7hw-SfAdS0G3pP_weAhYDX4woExr1mdxVKc/s400/conc9.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiENSoAe3XIgT42oaFumAeK99iSpALV05SoBGiR5zlTyZ0F1ZRtpXW1mHn98aTCtitGTSKdOhTlEkn-yuVEULS5XycwnMuaBOggMjsbrZ6bqs33guIr53BinPksHAc6dcCyCsLps2v2dPi/s1600/conc10.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;215&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiENSoAe3XIgT42oaFumAeK99iSpALV05SoBGiR5zlTyZ0F1ZRtpXW1mHn98aTCtitGTSKdOhTlEkn-yuVEULS5XycwnMuaBOggMjsbrZ6bqs33guIr53BinPksHAc6dcCyCsLps2v2dPi/s400/conc10.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcdW24I6InB0NCSZun-GlAtm3xL2w3vUZkc3nqU5UritGJfXyeZknMgF7GxuznR5nihDt-lrn9akIvlPuQ6ucfM97AjzhqpRq3CZnQJaicM4hy3-qqWyaUCUMzgpntT_aZMPA9g0BbAMOv/s1600/conc11.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcdW24I6InB0NCSZun-GlAtm3xL2w3vUZkc3nqU5UritGJfXyeZknMgF7GxuznR5nihDt-lrn9akIvlPuQ6ucfM97AjzhqpRq3CZnQJaicM4hy3-qqWyaUCUMzgpntT_aZMPA9g0BbAMOv/s400/conc11.JPG&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #474b4e; font-family: Helvetica, Arial, sans-serif; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/5520058692285659272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/5520058692285659272' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/5520058692285659272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/5520058692285659272'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2010/04/enabling-and-disabling-parameters.html' title='Enabling and disabling parameters dynamically. -2'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU73cwmkfj-s3lsOXLxiL93D2_7uRH-ODqJLiCuapentbmBMmpilSxAOIkGiYb8zat8WSZJotaLEr8KFMWVD5hX56pzk3ijnHILoBXbtsAP-iagDKo_3Kf3nqc8faU5HfdzMqUiOxYZvzS/s72-c/conc1.JPG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-773795935505750408</id><published>2010-01-30T09:33:00.000-05:00</published><updated>2010-04-24T09:59:42.215-04:00</updated><title type='text'>BI Publisher: How to format a specific column conditionally.</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial; font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: 15px;&quot;&gt;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
When I was going through a tech forum, this question got my attention. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&quot;How to format(bold, color,underline etc) specific column conditionally.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Say you have XML data, based on certain flag value, data should be displayed in a special format.&lt;/div&gt;
&lt;div&gt;
See the actual question here.&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://www.blogger.com/&quot;&gt;&lt;/a&gt;&lt;span id=&quot;goog_1264870131192&quot;&gt;&lt;/span&gt;&lt;span id=&quot;goog_1264870131193&quot;&gt;&lt;/span&gt;&lt;a href=&quot;http://apps2fusion.com/forums/viewtopic.php?f=60&amp;amp;t=4999&amp;amp;start=0&amp;amp;st=0&amp;amp;sk=t&amp;amp;sd=a&quot;&gt;How to Underline a column with a specific width&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Here is the answer..&lt;/div&gt;
&lt;div&gt;
I created this test scenario at my end and it works for me.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Consider following data as my XML data file..&lt;/div&gt;
&lt;div&gt;
=====XML data begins. =====&lt;/div&gt;
&lt;div&gt;
&lt;rep&gt;&lt;/rep&gt;&lt;/div&gt;
&lt;div&gt;
&lt;emp&gt;&lt;/emp&gt;&lt;/div&gt;
&lt;div&gt;
&lt;empno&gt;1&lt;/empno&gt;&lt;/div&gt;
&lt;div&gt;
&lt;name&gt;abc&lt;/name&gt;&lt;/div&gt;
&lt;div&gt;
&lt;amount&gt; 12,000.00&lt;/amount&gt;&lt;/div&gt;
&lt;div&gt;
&lt;under_line&gt;Y&lt;/under_line&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;emp&gt;&lt;/emp&gt;&lt;/div&gt;
&lt;div&gt;
&lt;empno&gt;2&lt;/empno&gt;&lt;/div&gt;
&lt;div&gt;
&lt;name&gt;def&lt;/name&gt;&lt;/div&gt;
&lt;div&gt;
&lt;amount&gt; 13,000.00&lt;/amount&gt;&lt;/div&gt;
&lt;div&gt;
&lt;under_line&gt;N&lt;/under_line&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;emp&gt;&lt;/emp&gt;&lt;/div&gt;
&lt;div&gt;
&lt;empno&gt;3&lt;/empno&gt;&lt;/div&gt;
&lt;div&gt;
&lt;name&gt;ghi&lt;/name&gt;&lt;/div&gt;
&lt;div&gt;
&lt;amount&gt; 14,000.00&lt;/amount&gt;&lt;/div&gt;
&lt;div&gt;
&lt;under_line&gt;N&lt;/under_line&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
=====XML data ends. =====&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
And the way I worked is as follows..&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Following statement is the key in this solution&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
&lt;fo:inline text-decoration=&quot;underline&quot;&gt; &lt;/fo:inline&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
--&lt;/div&gt;
&lt;div&gt;
1. Create two IF conditions in your template.&lt;/div&gt;
&lt;div&gt;
- one &lt;under_line&gt;Y&lt;/under_line&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
- another one for &lt;under_line&gt;N&lt;/under_line&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
2. Inside your IF under_line= Y region, use this font underline statement &lt;fo:inline text-decoration=&quot;underline&quot;&gt; &lt;/fo:inline&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
3. Inside your IF under_line= N region, use simple amount display field. i.e &lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
For your other requirements..&lt;/div&gt;
&lt;div&gt;
a. Underline must be of 13 characters length.. do PADding with spaces in your data source itself. So when it come to XML file, your amount column will comes with full 13 characters.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
ex: I did LPAD to my data. LPAD(amount,13,&#39; &#39; )&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
b. For amount formats(ex: $12,345.60), try this in XML publisher template, else workout this also as a part of your XML data source(i.e Oracle Reports, or any..). &amp;nbsp; &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Complete code can be downloaded &lt;a href=&quot;http://docs.google.com/leaf?id=0B8lhccH_MDt7MmFiMWU4MTgtMWMwMi00NjE1LTlhYzMtMDE2NjYzMjE1ZmI5&amp;amp;hl=en&quot;&gt;here.&lt;/a&gt;. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In the same way you can do lot of other font formats like&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;div&gt;
etc..&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Happy surfing.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/773795935505750408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/773795935505750408' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/773795935505750408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/773795935505750408'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2010/01/bi-publisher-how-to-format-specific.html' title='BI Publisher: How to format a specific column conditionally.'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-4884448731729013664</id><published>2010-01-02T00:36:00.000-05:00</published><updated>2014-01-24T17:12:38.765-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Complex Service PO"/><category scheme="http://www.blogger.com/atom/ns#" term="PO Output for Communication"/><category scheme="http://www.blogger.com/atom/ns#" term="POXPOPDF"/><category scheme="http://www.blogger.com/atom/ns#" term="R12"/><title type='text'>Complex Service PO</title><content type='html'>&lt;strong&gt;Question: How to customize Complex Service PO in R12.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Answer:&lt;/strong&gt;&lt;br /&gt;
Let&#39;s try to&amp;nbsp;discuss about this report in our random walk through.&lt;br /&gt;
&lt;br /&gt;
Below is the query to listdown all the &quot;complex service POs&#39; in the system.&amp;nbsp;Of course&amp;nbsp;you need to&amp;nbsp;set org profile for this query by &quot;begin mo_global.set_policy_context(&#39;S&#39;,&lt;org_id&gt;) ; end ;&amp;nbsp;&quot;&lt;br /&gt;
==&lt;br /&gt;
select * from po_headers ph, po_doc_style_lines_tl psl&lt;br /&gt;
where psl.style_id = ph.style_id&lt;br /&gt;
and psl.document_subtype(+) = ph.type_lookup_code&lt;br /&gt;
and psl.language(+) = userenv(&#39;LANG&#39;) &lt;br /&gt;
and psl.display_name = &#39;Complex Service Purchase Order&#39; &lt;br /&gt;
==&lt;br /&gt;
&lt;br /&gt;
For many reasons Standard template(provided by Oracle) &quot;PO_STANDARD_XSLFO&quot; alone is not sufficient for your requirement.&lt;br /&gt;
Example:&lt;br /&gt;
- company logo need to be added.&lt;br /&gt;
- layout need to be changed&lt;br /&gt;
- hide/show additional columns/information&lt;br /&gt;
- show registration number of your company. etc&lt;br /&gt;
&lt;br /&gt;
For minor customizations, standard template can be modified and used. But remember standard template is XSL. So it requires some specialized skill to work on XSL.&lt;br /&gt;
&lt;br /&gt;
I had huge amount customizations and all these customizations can not done using standard template. So I had to&amp;nbsp;design and use&amp;nbsp;my own template.&lt;br /&gt;You can visit my &lt;a href=&quot;http://docs.google.com/Doc?docid=0AclhccH_MDt7ZDhtM2IyYl80NTlka2M3NW52ZA&amp;amp;hl=en&quot;&gt;template&lt;/a&gt;&amp;nbsp;here.&lt;/org_id&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;org_id&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;How to design custom template ?&lt;/span&gt;&lt;/b&gt;&lt;/org_id&gt;&lt;br /&gt;
&lt;org_id&gt;&lt;br /&gt;
If you decided to proceed with your own template, then the total process(design, define, attach template) is no different with any other BI Publsiher reports.&lt;br /&gt;
&lt;/org_id&gt;&lt;br /&gt;
To design RTF(or any other) template, you need to have XML file.&lt;br /&gt;
Getting XML file/data for this customization is not an easy task.&lt;br /&gt;
Oracle posted few notes on this report, but none of them discussed how to get XML datafile.&lt;br /&gt;
&lt;span style=&quot;font-family: Arial; font-size: small;&quot;&gt;&lt;span style=&quot;-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-size: 13px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family: Arial; font-size: 13px; white-space: pre;&quot;&gt;&quot;PO Output for Communication&quot; - is a Java concurrent program.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial; font-size: small;&quot;&gt;&lt;span style=&quot;-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-size: 13px; white-space: pre;&quot;&gt;When you create complex purchase order, PO workflow will trigger &quot;PO Output for Communication&quot; program. This program generates XML file and apply this XML file to template and generate required PDF as output.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial; font-size: small;&quot;&gt;&lt;span style=&quot;-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-size: 13px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial; font-size: small;&quot;&gt;&lt;span style=&quot;-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-size: 13px; white-space: pre;&quot;&gt;In the process described above, system will not save XML file anywhere.  &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
To get XML data file, you need to follow the steps mentioned below.&lt;br /&gt;
- Goto PO Responsibility.&lt;br /&gt;
- Goto SRS(Conc. program submission)&amp;nbsp;Window&lt;br /&gt;
- Enter program &quot;&lt;span style=&quot;-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family: Arial; font-size: 13px; white-space: pre;&quot;&gt;PO Output for Communication&quot;&lt;/span&gt;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
- Parameters&lt;br /&gt;
- PO Number -&amp;gt; &lt;any complex=&quot;&quot; number=&quot;&quot; po=&quot;&quot;&gt;&lt;/any&gt;&lt;br /&gt;
- Test -&amp;gt; &amp;nbsp;Debug&lt;br /&gt;
- Template Name -&amp;gt; Standard Purchase Order Stylesheet. &lt;br /&gt;
&lt;br /&gt;
- Submit.&lt;br /&gt;
After a while, this program will be completed in error. Don&#39;t worry about why it errored out. Just go through the logfile and find XML file in there.&lt;br /&gt;
Along with the XML data, there will be lot of other information, which you don&#39;t need.&lt;br /&gt;
&lt;br /&gt;
Save the log file in your machine and&amp;nbsp;remove complete text which is outside XML file. That means the text outside of XML tags &lt;po_data&gt; and &lt;/po_data&gt;. Save this edited file as new file with .XML as extension.&lt;br /&gt;
Do following changes to your XML file now.&lt;br /&gt;
&amp;nbsp;-&amp;nbsp;Add &quot;xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; 
?&amp;gt;&quot; as a first line.&lt;br /&gt;
- remove complete text under the tag &lt;sql_query&gt;, as this is not correctly formatted.&lt;/sql_query&gt;&lt;br /&gt;
&lt;br /&gt;
Now your XML data file is ready and you can proceed for creating custom template.&lt;br /&gt;
&lt;br /&gt;
&lt;org_id&gt;Once done with the template design, &amp;nbsp;here are the steps to register and use custom template.&lt;br /&gt;
&amp;nbsp;Log in as &quot;XML Publisher Administrator&quot;&lt;br /&gt;
&amp;nbsp;- create XML Template for the data definition: Standard Purchase Order Data Source.&lt;br /&gt;
- Note: Select Application as “Purchasing’.&lt;br /&gt;
&lt;br /&gt;
&lt;/org_id&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH2EjyU-8tjp3tciJpk20lhAv7KPmtLV_cYg3tOUV7rgox-fqcWg8qseR1W_Js2zy0RdfUntYo6_fhmuuSLv7-qCV1IbhsI2b2oiq3i44dq4GZb0-MbWbOmNucbFdX_cJfWw7RFZcS11Yh/s1600-h/CS_Reg1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH2EjyU-8tjp3tciJpk20lhAv7KPmtLV_cYg3tOUV7rgox-fqcWg8qseR1W_Js2zy0RdfUntYo6_fhmuuSLv7-qCV1IbhsI2b2oiq3i44dq4GZb0-MbWbOmNucbFdX_cJfWw7RFZcS11Yh/s400/CS_Reg1.JPG&quot; ps=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- Nav: Purchase Order Super User&lt;br /&gt;
- Setup/Purchasing/Document types/&lt;br /&gt;
- Locate “Purchase Order Standard” and then Set the Document Type Layout to your new&amp;nbsp;custom template.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmuQsTrKi9NK4f8uSLWQM3XLo9_WJk4K-85Or2fKaIrGc2jLqZvWb_Kmq581lg8l9u0pdP5-r8ab9wEdvlB1oJrg9TipOJhvVVK44IsDyTTzDu7nkWIFFckgKrB7VTfOMl_8Ey3RxrNyZh/s1600-h/CS_Reg2.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmuQsTrKi9NK4f8uSLWQM3XLo9_WJk4K-85Or2fKaIrGc2jLqZvWb_Kmq581lg8l9u0pdP5-r8ab9wEdvlB1oJrg9TipOJhvVVK44IsDyTTzDu7nkWIFFckgKrB7VTfOMl_8Ey3RxrNyZh/s400/CS_Reg2.JPG&quot; ps=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Now you are ready test your customizations.&lt;br /&gt;
- Create complex service Purchase orde r.&lt;br /&gt;
- View PDF. You should be able to see your customizations now.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: x-large;&quot;&gt;How to change/modify Data Definition ?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
So far so good..&lt;br /&gt;
We have seen how to customize RTF template to produce desired output as per your requirements.&lt;br /&gt;
&lt;br /&gt;
How about having additional information, which is not even available in your XML data file.?&lt;br /&gt;
Or in other words, how do you change/customize data definition itself, so that your new XML file come up with additional information you want.&lt;br /&gt;
&lt;br /&gt;
Well, there is no direct way to change data definition as concurrent program is of JAVA type.&lt;br /&gt;
So you cannot customize this JAVA program(at least, I couldn&#39;t ).&lt;br /&gt;
&lt;br /&gt;
In my case, I had to show &quot;Project Code&quot; for each PO distribution, if the procurement is project related.&lt;br /&gt;
Another requirement was - Legal Entity Name&lt;br /&gt;
&lt;br /&gt;
Now - my requirements are clear ..show&lt;br /&gt;
- Project Code&lt;br /&gt;
- Regd Number and Regd. Legal Entity Name on the header portion of the report.&lt;br /&gt;
&amp;nbsp;Since I could not alter the data definition( PO Output for Communication), I did following.&lt;br /&gt;
&lt;br /&gt;
Some how I figured out following views are being used by &quot;PO Output for Communication&quot; &amp;nbsp;to produce XML data file&lt;br /&gt;
- PO_HEADERS_XML&lt;br /&gt;
- PO_LINES_XML&lt;br /&gt;
- PO_LINE_LOCATIONS_XML.&lt;br /&gt;
- PO_DISTRIBUTION_XML ..&amp;nbsp;etc&lt;br /&gt;
&lt;br /&gt;
Altered &quot;PO_DISTRIBUTION_XML&quot; view to include project information.&lt;br /&gt;
eg:&lt;br /&gt;
--&lt;br /&gt;
CREATE OR REPLACE FORCE VIEW APPS.PO_DISTRIBUTION_XML&lt;br /&gt;
(&lt;br /&gt;
&amp;nbsp;&amp;nbsp; AMOUNT_ORDERED,&lt;br /&gt;
&lt;all columns=&quot;&quot; those=&quot;&quot;&gt;&lt;/all&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;b&gt; &amp;nbsp; &amp;nbsp;PA.SEGMENT1 PROJECT_CODE&lt;/b&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; FROM &amp;nbsp; PER_ALL_PEOPLE_F PAP,&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;PO_DISTRIBUTIONS_ALL PD&lt;b&gt;,&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;b&gt; &amp;nbsp; &amp;nbsp;PA_PROJECTS_ALL PA,&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;WHERE &amp;nbsp; GCD.CODE_COMBINATION_ID(+) = PD.CODE_COMBINATION_ID&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AND PAP.PERSON_ID(+) = PD.DELIVER_TO_PERSON_ID&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;white-space: pre;&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;b&gt; &amp;nbsp; &amp;nbsp;AND PD.PROJECT_ID = PA.PROJECT_ID(+)&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AND SYSDATE BETWEEN PAP.EFFECTIVE_START_DATE(+)&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AND &amp;nbsp;PAP.EFFECTIVE_END_DATE(+);&lt;/div&gt;
&lt;div&gt;
---&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
Now my new XML datafile comes with Project code, which can be displayed in my output/pdf.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
&lt;b&gt;&lt;span style=&quot;color: #cc0000; font-size: large;&quot;&gt;PS: To see &amp;nbsp;your changes to the view, it is better to create new PO and generate XML for that PO.&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
This is because, system caches XML data and reuses that.. thats the reason it is better to create brand new POs and test it.&lt;br /&gt;
&lt;br /&gt;
Following few screenshots are to view your PDF &amp;nbsp;for PO from SRS window.&lt;br /&gt;
This way, you don&#39;t need to regenerate your PO or revise your PO.&lt;br /&gt;
Without increasing revision numbers, you can see all your PO updates in your PDF. &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnAYLTNMde6k42Z-3xoNJdL7kdUGQMdO4lgKizQfV0kxsAGWITFd97Wz_MvH_iKUr44RKJ5L1WS4OPjpY1CLChDfvRKss_RrDqnTrkU27soGkwTjkkrE7rXZdR1lp274_77V1HvDSpxcwe/s1600-h/CS_Reg4.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnAYLTNMde6k42Z-3xoNJdL7kdUGQMdO4lgKizQfV0kxsAGWITFd97Wz_MvH_iKUr44RKJ5L1WS4OPjpY1CLChDfvRKss_RrDqnTrkU27soGkwTjkkrE7rXZdR1lp274_77V1HvDSpxcwe/s320/CS_Reg4.JPG&quot; ps=&quot;true&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihruBcy7bD_lWLg-M7W0eWH1zeNq2cCqVKHbSazUhvDSfvSPZlo2z-YNzlf8snV5DQ970FzQOsEeKOEnVKr8ScUekmeS3iS051nnrP0M90wsLM1BiqF7ZqHic-gwjWxv06Nh0igIfLrG36/s1600-h/CS_Reg5.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihruBcy7bD_lWLg-M7W0eWH1zeNq2cCqVKHbSazUhvDSfvSPZlo2z-YNzlf8snV5DQ970FzQOsEeKOEnVKr8ScUekmeS3iS051nnrP0M90wsLM1BiqF7ZqHic-gwjWxv06Nh0igIfLrG36/s320/CS_Reg5.JPG&quot; ps=&quot;true&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;PS: I am updating this post, as and when I get some free time.&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;So information could be&amp;nbsp;assorted&amp;nbsp;and zig-zag.&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/4884448731729013664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/4884448731729013664' title='31 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/4884448731729013664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/4884448731729013664'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2010/01/complex-service-po.html' title='Complex Service PO'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH2EjyU-8tjp3tciJpk20lhAv7KPmtLV_cYg3tOUV7rgox-fqcWg8qseR1W_Js2zy0RdfUntYo6_fhmuuSLv7-qCV1IbhsI2b2oiq3i44dq4GZb0-MbWbOmNucbFdX_cJfWw7RFZcS11Yh/s72-c/CS_Reg1.JPG" height="72" width="72"/><thr:total>31</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-6980598459556791425</id><published>2010-01-01T23:23:00.000-05:00</published><updated>2010-01-01T23:50:42.674-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AOL"/><category scheme="http://www.blogger.com/atom/ns#" term="PL/SQL"/><category scheme="http://www.blogger.com/atom/ns#" term="RETURN Statement"/><title type='text'>Return statement in PL/SQL Procedure.</title><content type='html'>&lt;b&gt;Question:&amp;nbsp;Can we use RETURN Statement in PL/SQL Procedure.?&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;/b&gt;Ans: Yes, we can !! ;)&lt;br /&gt;
&lt;br /&gt;
Honestly, as far as I remember, I&#39;ve never used return statements in my PL/SQL Procedures.&lt;br /&gt;
How about you ??&lt;br /&gt;
&lt;br /&gt;
Of coarse, in PL/SQL functions RETURN statement is a mandatory thing. But what about procedures ??&lt;br /&gt;
&lt;br /&gt;
Lets see how and where we can use of return statement in a procedure.&lt;br /&gt;
- You have procedure, that contains few lines of code.&lt;br /&gt;
- After validating certain condition, you don&#39;t need to proceed further. You want control to be returned to calling procedure/main program.&lt;br /&gt;
&lt;br /&gt;
** Couple of approaches here **&lt;br /&gt;
&lt;br /&gt;
One way of doing it is, handling USER defined EXCEPTIONs.&lt;br /&gt;
- you can check how to use &amp;nbsp;USER defined Exceptions. I am not covering it here. ;)&lt;br /&gt;
I used this&amp;nbsp;approach&amp;nbsp;many times&amp;nbsp;until&amp;nbsp;now. Big advantage of this way is, you can trap the ERROR code in your calling program.&lt;br /&gt;
&lt;br /&gt;
Another way is having RETURN statement in your sub-routine/child program.&lt;br /&gt;
For example:&lt;br /&gt;
== sub-routine ==&lt;br /&gt;
procedure CHILD_PROC&lt;parameters&gt;&lt;/parameters&gt;&lt;br /&gt;
-- declarations&lt;br /&gt;
begin&lt;br /&gt;
-- pl/sql statements&lt;br /&gt;
if CONDITION = TRUE then&lt;br /&gt;
RETURN ;&lt;br /&gt;
else&lt;br /&gt;
-- do something&lt;br /&gt;
end if ;&lt;br /&gt;
end CHILD_PROC ;&lt;br /&gt;
&lt;br /&gt;
=== calling program ==&lt;br /&gt;
procedure MAIN_PROC&lt;parameters&gt;&lt;/parameters&gt;&lt;br /&gt;
-- declarations&lt;br /&gt;
begin&lt;br /&gt;
-- pl/sql statements&lt;br /&gt;
-- call to child proc&lt;br /&gt;
CHILD_PROC(&lt;parameters&gt;);&lt;/parameters&gt;&lt;br /&gt;
-- few more statements&lt;br /&gt;
end MAIN_PROC ;&lt;br /&gt;
&lt;br /&gt;
Here is some sample code.&lt;br /&gt;
&lt;br /&gt;
-- child procedure.&lt;br /&gt;
&lt;br /&gt;
create or replace procedure child_proc(p_boolean BOOLEAN) as&lt;br /&gt;
begin&lt;br /&gt;
dbms_output.put_line(&#39;in child_proc before return call&#39;);&lt;br /&gt;
if p_boolean then&lt;br /&gt;
return ;&lt;br /&gt;
end if ;&lt;br /&gt;
dbms_output.put_line(&#39;in child_proc after return&#39;);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
-- main procedure&lt;br /&gt;
&lt;br /&gt;
create or replace procedure main_proc(p_boolean boolean) as&lt;br /&gt;
begin&lt;br /&gt;
dbms_output.put_line(&#39;before child_proc call&#39;);&lt;br /&gt;
child_proc(p_boolean) ;&lt;br /&gt;
dbms_output.put_line(&#39;after child_proc call&#39;);&lt;br /&gt;
end;&lt;br /&gt;
/&lt;br /&gt;
&lt;div&gt;
-- execution and &amp;nbsp;result check --&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
[1]&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
begin main_proc(TRUE); end ;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
--output --&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
before child_proc call&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
in child_proc before return call&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
after child_proc call&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
Statement processed.&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
0.00 seconds&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
[2]&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
begin main_proc(FALSE); end ;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
--output --&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
before child_proc call&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
in child_proc before return call&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
in child_proc after return&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
after child_proc call&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
Statement processed.&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
0.00 seconds&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/6980598459556791425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/6980598459556791425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/6980598459556791425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/6980598459556791425'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2010/01/return-statement-in-plsql-procedure.html' title='Return statement in PL/SQL Procedure.'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-282616684972092924</id><published>2010-01-01T09:23:00.000-05:00</published><updated>2010-01-04T09:24:31.898-05:00</updated><title type='text'>HAPPY NEW YEAR - 2010</title><content type='html'>Hi Friends..&amp;nbsp;&lt;span style=&quot;-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family: Arial; font-size: 13px; white-space: pre;&quot;&gt;HAPPY NEW YEAR - 2010 .!!&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/282616684972092924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/282616684972092924' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/282616684972092924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/282616684972092924'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2010/01/happy-new-year-2010.html' title='HAPPY NEW YEAR - 2010'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-9059464347365683476</id><published>2009-11-10T22:28:00.000-05:00</published><updated>2009-11-10T22:30:41.125-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AOL"/><category scheme="http://www.blogger.com/atom/ns#" term="Dynamic Parameters"/><category scheme="http://www.blogger.com/atom/ns#" term="Enabling/disabling parameters"/><category scheme="http://www.blogger.com/atom/ns#" term="SysAdmin"/><title type='text'>Enabling/disabling DATE parameters of a concurrent program</title><content type='html'>&lt;strong&gt;Question: How to enable/disable date parameters of a concurrent program&amp;nbsp; based on certain condition.?&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Answer: &lt;/strong&gt;Handling&amp;nbsp;number and text&amp;nbsp;parameters had been discussed in the following blogs.&lt;br /&gt;
&lt;a href=&quot;http://apps2fusion.com/at/ar/241-enablingdisabling-concurrent-program-parameters&quot;&gt;http://apps2fusion.com/at/ar/241-enablingdisabling-concurrent-program-parameters&lt;/a&gt;&lt;br /&gt;
and one more at &lt;a href=&quot;http://sureshvaishya.blogspot.com/&quot;&gt;http://sureshvaishya.blogspot.com/&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
My requirement was different. I wanted to enable/disable DATE parameters based on user input.&lt;br /&gt;
&lt;br /&gt;
Refer to the screenshots to understand what the intended functionality is ..&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh7YmL8cE_s0XCvioMPfFg-pMOMDz-9cUWcwCiqog9WJzOw-gPVSOthHKY4zgjbn7sFV1cwi9soFjNm1hTYWG831VepYc5tLNcp2fxHsdO3yisBejVKwYpfIjdNQkq9BzAWplOmag_B4cW/s1600-h/dynamic1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; sr=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh7YmL8cE_s0XCvioMPfFg-pMOMDz-9cUWcwCiqog9WJzOw-gPVSOthHKY4zgjbn7sFV1cwi9soFjNm1hTYWG831VepYc5tLNcp2fxHsdO3yisBejVKwYpfIjdNQkq9BzAWplOmag_B4cW/s320/dynamic1.JPG&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
As shown in the screen, If the value for &quot;Include Manual Invoices&quot; parameter is &quot;Yes&quot;, then&amp;nbsp;enable and accept values for &amp;nbsp;parameters &quot;Invoice Txn Date From&quot; and &quot;Invoice Txn Date To&quot;.&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKWUqbTg-QFPcIFNQltDeFQCeaemFYpbyNEFbR_B6KXDzSkjrOIMab479qjafy0-Sk7V6SYQN3T7RVhvLSc6Pl5Dt1LibSvVPej-wQzI9y8fjytmN7MMvhivmIBFGry5LBk9vKhKGFI-8k/s1600-h/dynamic2.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; sr=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKWUqbTg-QFPcIFNQltDeFQCeaemFYpbyNEFbR_B6KXDzSkjrOIMab479qjafy0-Sk7V6SYQN3T7RVhvLSc6Pl5Dt1LibSvVPej-wQzI9y8fjytmN7MMvhivmIBFGry5LBk9vKhKGFI-8k/s320/dynamic2.JPG&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
If the value for &quot;Include Manual Invoices&quot; parameter is &quot;No&quot;, then disable parameters &quot;Invoice Txn Date From&quot; and &quot;Invoice Txn Date To&quot;.&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Let&#39;s get to details, how we can implement the functionality discussed above.&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
I am not going to discuss other parameters, which are not related to Enabling/disabling - functionality.&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;strong&gt;Note: As you might have noticed, I intentionally removed/masked custom names while taking screenshots.&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;strong&gt;Ex: Conc. Program Name, Application Name etc.&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Steps:&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
1. Define controlling parameter, which can be based on any &quot;Yes_or_No&quot; valueset.&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
In my example - I used valueset called &quot;CST_SRS_SYS_YES_NO&quot;.&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0JPGKlbCQ7iyPFIcu28GcqJmIjD_xl1_Lgile8JywIZyBZF4cdhE1l46M89mRt4dKQc22ApDG7JegNS0AHB0cagAnD_ZpY83ZWGoljWj_VWhU-A2H9D0voodPW6r6KiYb0aHydwBKYOVz/s1600-h/dynamic3.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; sr=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0JPGKlbCQ7iyPFIcu28GcqJmIjD_xl1_Lgile8JywIZyBZF4cdhE1l46M89mRt4dKQc22ApDG7JegNS0AHB0cagAnD_ZpY83ZWGoljWj_VWhU-A2H9D0voodPW6r6KiYb0aHydwBKYOVz/s320/dynamic3.JPG&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
2. Define parameter - P_HIDDEN_PARAM. As it&#39;s name suggests, this is a hidden parameter, which will not be visible when we submit the conc. program.&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
This parameter is directly dependant on the previous parameter - &quot;Include Manual Invoices&quot;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Set it&#39;s Default Type as&amp;nbsp; &quot;SQL Statement &quot; and&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Default value as - &quot;select decode(:$FLEX$.CST_SRS_SYS_YES_NO,&#39;Y&#39;,&#39;Y&#39;,null) from dual&quot;.&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0OIGx017tCRgiKJc4E_91WhggwAcpH2wRCOTrfSYgkb9F1TT4m9diWtD3A_GKg64ZO7hfVUe58zY8zRq0JM1SVKgmctq4H2F_UvyEAJ-pyUjDI2RidOCkcN8H1-fiZZWMl6KxEmbH4jcs/s1600-h/dynamic4.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; sr=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0OIGx017tCRgiKJc4E_91WhggwAcpH2wRCOTrfSYgkb9F1TT4m9diWtD3A_GKg64ZO7hfVUe58zY8zRq0JM1SVKgmctq4H2F_UvyEAJ-pyUjDI2RidOCkcN8H1-fiZZWMl6KxEmbH4jcs/s320/dynamic4.JPG&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
3. Define custom valueset, which will used for the date parameters - &quot;Invoice Txn Date From&quot; and &quot;Invoice Txn Date To&quot;.&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
- Enter valueset name , Select Format Type as Standard Date. Refer to the screenshot below for other details.&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyMHwoFb2N9IiQvA9HoYUwnz69wW1JCWjMbY0sFOp0nWv7R5pd8fl-pwNpTvgI262twyzIgMkOwUxboe1a7kg07epNeX79ClzBaA4uGDn3a_16Q6nVtfffvCWZKgV-TlQnxFpYdiaP1Nzo/s1600-h/dynamic5.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; sr=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyMHwoFb2N9IiQvA9HoYUwnz69wW1JCWjMbY0sFOp0nWv7R5pd8fl-pwNpTvgI262twyzIgMkOwUxboe1a7kg07epNeX79ClzBaA4uGDn3a_16Q6nVtfffvCWZKgV-TlQnxFpYdiaP1Nzo/s320/dynamic5.JPG&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
a) Click on Edit Information and enter forllowing query in Table Name field.&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
(SELECT (TO_DATE (SYSDATE - 200 + LEVEL, &#39;DD-MON-RRRR&#39;)) date_range FROM DUAL CONNECT BY LEVEL &amp;lt;= 1000)temp_tab&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
I am using &quot;CONNECT BY LEVEL&quot; concept to produce dates with the range of 1000 days.&lt;br /&gt;
You can modify 1000 to any other figure as per your requirement.&lt;br /&gt;
b) Set Value Name as date_range, which is nothing but the alias name in the query above.&lt;br /&gt;
c) Eter following WHERE clause in Where/Order By field.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;WHERE :$FLEX$.AMS_SRS_CHAR1=&#39;Y&#39;&lt;br /&gt;
&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGCKAMwQ_hCMRCWu2soJvrimrcFptyL5N69MZd4Bhw6V9EVfVobDZ2yGvxDH9fbBp8g1y0osPQnT26kFh5fGnKKFdgxMlGl7qjt4HKS1nKdlisWE70DCXB8ylq0NfWdmOFu6laXVnLcA0H/s1600-h/dynamic6.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; sr=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGCKAMwQ_hCMRCWu2soJvrimrcFptyL5N69MZd4Bhw6V9EVfVobDZ2yGvxDH9fbBp8g1y0osPQnT26kFh5fGnKKFdgxMlGl7qjt4HKS1nKdlisWE70DCXB8ylq0NfWdmOFu6laXVnLcA0H/s320/dynamic6.JPG&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;&quot;&gt;
&lt;br /&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;&quot;&gt;
4. Attach newly created Value Set for the date parameters - &quot;Invoice Txn Date From&quot; and Invoice &quot;Txn Date To&quot; as shown below.&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOcHnEFZtjHsxh4HqsZ3xhB6l2Z3rWINDzC1dgq3GpIxFbaEvwnhBnUrffSlWb2nH_W45PeGOUwXIktndLuYLsIcLo-_8tNIDfClfhR6G_yXcI9oENK63nawqAKU6NVeiGk9mJ8HgbtxDc/s1600-h/dynamic8.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; sr=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOcHnEFZtjHsxh4HqsZ3xhB6l2Z3rWINDzC1dgq3GpIxFbaEvwnhBnUrffSlWb2nH_W45PeGOUwXIktndLuYLsIcLo-_8tNIDfClfhR6G_yXcI9oENK63nawqAKU6NVeiGk9mJ8HgbtxDc/s320/dynamic8.JPG&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;&quot;&gt;
Save your changes and test it. If you have done all the setups correctly, you will see &quot;Enabling/disabling&quot; functionality something like this..&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi12wwv4p3Gm2j4L-Jg3C-rx4EYbDh1sN4qSf-zvaJrRYGdaZpUM9H-2nux2S0-fgttB1WeHLu8QEAJEh3FzJ2JHa9gzxOTahXmNmad_beiO0cECl-15yU0Cb3cmWX7OzAjLkdHSHEVn-X/s1600-h/dynamic1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; sr=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi12wwv4p3Gm2j4L-Jg3C-rx4EYbDh1sN4qSf-zvaJrRYGdaZpUM9H-2nux2S0-fgttB1WeHLu8QEAJEh3FzJ2JHa9gzxOTahXmNmad_beiO0cECl-15yU0Cb3cmWX7OzAjLkdHSHEVn-X/s320/dynamic1.JPG&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf-CkoCbD4yNZU8-Q6aIKy1G1O9lpWoYwWgXI3gMaMLpXM0FA2ISWgwIiieOlmwg0jKhpa_zBthNxI64_ELE3c5VlIV2gkY9NmvdMooLJjhNvL8jEFkKZ2QsfFbKpNG8SBkPFli0Lj-uwW/s1600-h/dynamic2.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; sr=&quot;true&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf-CkoCbD4yNZU8-Q6aIKy1G1O9lpWoYwWgXI3gMaMLpXM0FA2ISWgwIiieOlmwg0jKhpa_zBthNxI64_ELE3c5VlIV2gkY9NmvdMooLJjhNvL8jEFkKZ2QsfFbKpNG8SBkPFli0Lj-uwW/s320/dynamic2.JPG&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;&quot;&gt;
Write to me if you have any questions.&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none; clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/9059464347365683476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/9059464347365683476' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/9059464347365683476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/9059464347365683476'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2009/11/enablingdisabling-date-parameters-of.html' title='Enabling/disabling DATE parameters of a concurrent program'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh7YmL8cE_s0XCvioMPfFg-pMOMDz-9cUWcwCiqog9WJzOw-gPVSOthHKY4zgjbn7sFV1cwi9soFjNm1hTYWG831VepYc5tLNcp2fxHsdO3yisBejVKwYpfIjdNQkq9BzAWplOmag_B4cW/s72-c/dynamic1.JPG" height="72" width="72"/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7346696720685349738.post-3453808009215859018</id><published>2009-11-10T04:25:00.000-05:00</published><updated>2009-11-10T04:25:57.051-05:00</updated><title type='text'>Discoverer 4i to BI Discoverer 10g Migration</title><content type='html'>Oracle Corp. recently(one year back) decommissioned it&#39;s discoverer 4i and it&#39;s previous versions. &lt;br /&gt;
This triggered many companies to upgrade from Old versions of Discoverer to Discoverer 10g. &lt;br /&gt;
Some time back, I got an opportunity to lead such kind of project with one of my clients.&lt;br /&gt;
The objective of this paper is to upgrade the discoverer to the latest supported version.&lt;br /&gt;
&lt;br /&gt;
This paper covers the following topics&lt;br /&gt;
Installation and configuration of Oracle Application Server 10g on apps environment&lt;br /&gt;
Application of required patches.&lt;br /&gt;
Import of existing reports into Discoverer 10g.&lt;br /&gt;
&lt;br /&gt;
Important Notes:&lt;br /&gt;
1. Discoverer 10 can be implemented in two models.&lt;br /&gt;
a. Standalone Installation&lt;br /&gt;
b. Oracle 10g AS with Infrastructure&lt;br /&gt;
&lt;br /&gt;
My client selected &quot;Standalone&quot; method. So my and papers talks about - Standalone, but not Oracle 10g AS with Infrastructure&lt;br /&gt;
&lt;br /&gt;
2. Some companies use Noetix views and many companies may not have implemented Noetix.&lt;br /&gt;
a. If your client is not using Noetix views, you can ignore the step - &quot;Noetix Upgrade&quot; in this paper.&lt;br /&gt;
b. In my project, it involved Noetix upgradation also.&lt;br /&gt;
&lt;br /&gt;
Steps In Brief&lt;br /&gt;
Noetix Upgrade [Optional]&lt;br /&gt;
Application Patches &lt;br /&gt;
Oracle Bi 10g Installation And Configuration&lt;br /&gt;
Configuration With E-Business 11i &lt;br /&gt;
Port Information &lt;br /&gt;
Patch Application On Oracle Bi 10g&lt;br /&gt;
EUL Migration &lt;br /&gt;
Pre-Installation Tasks &lt;br /&gt;
DB Schema Creation And Import&lt;br /&gt;
EUL Upgradation &lt;br /&gt;
Post-Installation Tasks&lt;br /&gt;
Audit Trail Reports &lt;br /&gt;
Rollback Plan&lt;br /&gt;
&lt;br /&gt;
Follow complete documentation at the&amp;nbsp;link below.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.apps2fusion.com/at/40-cm/208-discoverer-4i-to-discoverer-10g-migration-steps&quot;&gt;http://www.apps2fusion.com/at/40-cm/208-discoverer-4i-to-discoverer-10g-migration-steps&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Write to me if you have any questions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://chandramatta.blogspot.com/feeds/3453808009215859018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7346696720685349738/3453808009215859018' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/3453808009215859018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7346696720685349738/posts/default/3453808009215859018'/><link rel='alternate' type='text/html' href='http://chandramatta.blogspot.com/2009/11/discoverer-4i-to-bi-discoverer-10g.html' title='Discoverer 4i to BI Discoverer 10g Migration'/><author><name>Chandra R Matta</name><uri>http://www.blogger.com/profile/12214501666911928454</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry></feed>