<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Oracle Tales &#187; Flexfields</title>
	<atom:link href="http://www.stijf.com/wordpress/category/oracle/ebs/flexfields/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stijf.com/wordpress</link>
	<description>Just another Oracle weblog</description>
	<lastBuildDate>Tue, 14 Dec 2010 23:16:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>New article on Descriptive Flexfields</title>
		<link>http://www.stijf.com/wordpress/2010/12/new-article-on-descriptive-flexfields/</link>
		<comments>http://www.stijf.com/wordpress/2010/12/new-article-on-descriptive-flexfields/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 21:03:44 +0000</pubDate>
		<dc:creator>Arian Stijf</dc:creator>
				<category><![CDATA[eBS]]></category>
		<category><![CDATA[Flexfields]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[descriptive flexfields structure segments context]]></category>

		<guid isPermaLink="false">http://www.stijf.com/wordpress/?p=513</guid>
		<description><![CDATA[I just published the second part of the article series on Flexfields. This part is about Descriptive Flexfields. It is available from:&#160;http://www.stijf.com/joomla/flexfields/flexfields-in-oracle-ebs-descriptive-flexfields The next part will follow shortly, and will discuss the flexfield datamodel.]]></description>
			<content:encoded><![CDATA[<p>I just published the second part of the article series on Flexfields. This part is about Descriptive Flexfields. It is available from:&nbsp;<a href="http://www.stijf.com/joomla/flexfields/flexfields-in-oracle-ebs-descriptive-flexfields">http://www.stijf.com/joomla/flexfields/flexfields-in-oracle-ebs-descriptive-flexfields</a></p>
<p>The next part will follow shortly, and will discuss the flexfield datamodel.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stijf.com/wordpress/2010/12/new-article-on-descriptive-flexfields/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New article on eBS (Key) Flexfields</title>
		<link>http://www.stijf.com/wordpress/2010/12/new-article-on-ebs-key-flexfields/</link>
		<comments>http://www.stijf.com/wordpress/2010/12/new-article-on-ebs-key-flexfields/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 16:55:23 +0000</pubDate>
		<dc:creator>Arian Stijf</dc:creator>
				<category><![CDATA[eBS]]></category>
		<category><![CDATA[Flexfields]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[cross-validation]]></category>
		<category><![CDATA[descriptive flexfields]]></category>
		<category><![CDATA[flexfield structures]]></category>
		<category><![CDATA[key flexfields]]></category>
		<category><![CDATA[segments]]></category>

		<guid isPermaLink="false">http://www.stijf.com/wordpress/?p=464</guid>
		<description><![CDATA[Just a short note to point to a new article that I published on the new site:&#160; http://www.stijf.com/joomla/index.php/flexfield-articles/49-flexfields-and-flexfield-structures.html It is the first part of a multi-part article. This part explains Key Flexfields in eBS. The next parts will discuss Descriptive Flexfields, the datamodel and special features.&#160;]]></description>
			<content:encoded><![CDATA[<p>Just a short note to point to a new article that I published on the new site:&nbsp;</p>
<p><a href="http://www.stijf.com/joomla/index.php/flexfield-articles/49-flexfields-and-flexfield-structures.html">http://www.stijf.com/joomla/index.php/flexfield-articles/49-flexfields-and-flexfield-structures.html<br />
	</a></p>
<p>It is the first part of a multi-part article. This part explains Key Flexfields in eBS. The next parts will discuss Descriptive Flexfields, the datamodel and special features.&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stijf.com/wordpress/2010/12/new-article-on-ebs-key-flexfields/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New website and article</title>
		<link>http://www.stijf.com/wordpress/2010/06/new-website-and-article/</link>
		<comments>http://www.stijf.com/wordpress/2010/06/new-website-and-article/#comments</comments>
		<pubDate>Sun, 27 Jun 2010 15:38:19 +0000</pubDate>
		<dc:creator>Arian Stijf</dc:creator>
				<category><![CDATA[eBS]]></category>
		<category><![CDATA[Flexfields]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[checkbox]]></category>
		<category><![CDATA[descriptive]]></category>
		<category><![CDATA[flexfield]]></category>
		<category><![CDATA[oa-framework]]></category>
		<category><![CDATA[personalization]]></category>

		<guid isPermaLink="false">http://www.stijf.com/wordpress/?p=453</guid>
		<description><![CDATA[It&#39;s been a while since I last posted an article here.&#160; A long vacation, and testing different CMS&#39;s for the website account for the lost time. So I decided to give Joomla a try. I just finished installing the components that I want to use. And I wrote a short article, to see how it [...]]]></description>
			<content:encoded><![CDATA[<p>It&#39;s been a while since I last posted an article here.&nbsp;</p>
<p>A long vacation, and testing different CMS&#39;s for the website account for the lost time. So I decided to give Joomla a try. I just finished installing the components that I want to use. And I wrote a short article, to see how it goes.</p>
<p>I&#39;ll be transferring the articles from this website to the new one in the days to come.&nbsp;</p>
<p>For now, take a look at the new website:&nbsp;<a href="http://www.stijf.com/joomla">http://www.stijf.com/joomla</a></p>
<p>The article that I wrote is about adding a column to OA-Framework without using jDeveloper to change the VO. I describe how to use a descriptive flexfield to add a checkbox to the framework page.</p>
<p>You can read the article here:&nbsp;<a href="http://www.stijf.com/joomla/index.php/flexfield-articles/46-personalization-using-flexfield-columns.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stijf.com/wordpress/2010/06/new-website-and-article/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Special and Pair validation types</title>
		<link>http://www.stijf.com/wordpress/2010/04/special-and-pair-validation-types/</link>
		<comments>http://www.stijf.com/wordpress/2010/04/special-and-pair-validation-types/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 17:55:27 +0000</pubDate>
		<dc:creator>Arian Stijf</dc:creator>
				<category><![CDATA[eBS]]></category>
		<category><![CDATA[Flexfields]]></category>
		<category><![CDATA[Internals]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Validation]]></category>
		<category><![CDATA[loadid]]></category>
		<category><![CDATA[loadidr]]></category>
		<category><![CDATA[pair validation]]></category>
		<category><![CDATA[popid]]></category>
		<category><![CDATA[popidr]]></category>
		<category><![CDATA[special validation]]></category>
		<category><![CDATA[valid]]></category>
		<category><![CDATA[validation type]]></category>
		<category><![CDATA[validr]]></category>

		<guid isPermaLink="false">http://www.stijf.com/wordpress/?p=445</guid>
		<description><![CDATA[Tutorial on special and pair validation types]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">I am working on an article about flexfields and flexfield validation. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">Even though the article is not yet finished, I thought the part about &lsquo;SPECIAL&rsquo; and &lsquo;PAIR&rsquo; validation types might be interesting enough. Many people seem to think they can only use the seeded validation sets. However, you can also create your own validation sets. And their options are very powerful. So I wanted to publish this part of the article as a prelude to the full story. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<h2 style="margin: 12pt 0cm 3pt"><span lang="EN-US" style="mso-ansi-language: en-us"><em><font size="5"><font face="Cambria"><font color="#000000">Special Validation<o:p></o:p></font></font></font></em></span></h2>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">Special validation is used to provide flexfield functionality for a single value. What that means is that you can have for example a concurrent program parameter that will be filled with a Key flexfield value, or a range of flexfield values. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">Let&rsquo;s go back to the Key Flexfield. We know that they are combinations of different segment values that are stored in a separate combination table. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">When you want to submit a key-flexfield combination as a parameter to a concurrent program, you can code your own validation for the separate values. But you&rsquo;ll be missing the nice functionality that gives you pop-ups, a validation over the resulting combination and if needed the ID-value for the flexfield combination.<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">That is possible with a &lsquo;Special&rsquo; validation type.<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">The special validation uses a number of user exits to enter, validate and query keyflex segments. With special validation, you will be able to enter one or more segment values for a key flexfield. To enter these segment values, 3 user exits can be used. They are: &lsquo;POPID&rsquo;, &lsquo;VALID&rsquo; and &lsquo;LOADID&rsquo;.<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">POPID is used to enable the user to enter the flexfield segment value. It is called when the users cursor enters the segment value field. With this user exit, you decide which segment values should be shown, and how they should be shown.<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000"><span style="mso-spacerun: yes">&nbsp;</span>VALID is called when the user exits the segment value, or confirms the chosen flexfield combination. It validates the entered value against the values existing in the key flexfield table. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">LOADID is optional, and it can be used to choose which information will be returned as flexfield value. This can be the concatenated segments, or the id-value for the flexfield combination or segment values. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">These 3 user exits can be assigned to 3 &lsquo;events&rsquo;. There are more events possible, but they are either not yet in use, or their use is not yet supported. So we will only use &lsquo;Validate&rsquo;, &lsquo;Edit&rsquo; and &lsquo;Load&rsquo;. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">Sounds complicated, so far? Don&rsquo;t worry; this is not an easy validation. But we&rsquo;ll build some examples to give you an idea. First we start with building a very easy special validation. This will be built on our Code Combination key flexfield. We&rsquo;ll be using a concurrent program &lsquo;Test Flex Validation&rsquo; program to see our different options. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">This program is based on the following procedure: <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000">CREATE OR REPLACE PROCEDURE XXX_TEST_FLEXFIELD_PARAMS<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000">( errbuf<span style="mso-spacerun: yes">&nbsp;&nbsp; </span>out varchar2<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000">, retcode <span style="mso-spacerun: yes">&nbsp;</span>out varchar2<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000">, p_flex<span style="mso-spacerun: yes">&nbsp; </span><span style="mso-spacerun: yes">&nbsp;</span>in<span style="mso-spacerun: yes">&nbsp; </span>varchar2<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000">, p_flex2<span style="mso-spacerun: yes">&nbsp; </span>in<span style="mso-spacerun: yes">&nbsp; </span>varchar2 := &lsquo;XXX&rsquo;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000">, p_flex3<span style="mso-spacerun: yes">&nbsp; </span>in<span style="mso-spacerun: yes">&nbsp; </span>varchar2 := &lsquo;XXX&rsquo;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000">, p_flex4<span style="mso-spacerun: yes">&nbsp; </span>in<span style="mso-spacerun: yes">&nbsp; </span>varchar2 := &lsquo;XXX&rsquo;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000">, p_flex5<span style="mso-spacerun: yes">&nbsp; </span>in<span style="mso-spacerun: yes">&nbsp; </span>varchar2 := &lsquo;XXX&rsquo;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000">) IS<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000">BEGIN<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp;&nbsp; </span>FND_FILE.PUT_LINE(FND_FILE.OUTPUT,p_flex);<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp;&nbsp; </span>FND_FILE.PUT_LINE(FND_FILE.OUTPUT,p_flex2);<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp;&nbsp; </span>FND_FILE.PUT_LINE(FND_FILE.OUTPUT,p_flex3);<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp;&nbsp; </span>FND_FILE.PUT_LINE(FND_FILE.OUTPUT,p_flex4);<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp;&nbsp; </span>FND_FILE.PUT_LINE(FND_FILE.OUTPUT,p_flex5);<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000">END;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">This will only write the parameter value to the output of the request. To use flexfields as parameters for concurrent programs, we need to define a value set based on them. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">We will start with the barest setup to enter a key-flexfield combination. For this article, we use the accounting flexfield, with code &lsquo;GL#&rsquo;<span style="mso-spacerun: yes">&nbsp; </span>and id-num &lsquo;101&rsquo;. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">In this case, we have the following definition:<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><font size="3"><font face="Calibri"><font color="#000000"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id="Picture_x0020_4" o:spid="_x0000_i1042" style="width: 453.75pt; height: 288.75pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image001.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><img alt="" height="481" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special1.jpg" width="755" /></o:p></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt">&nbsp;</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">So what does this mean? <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">The first box is for the edit event. This will be triggered when the user enters the cursor into the field with this value set.<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">FND POPID<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>This is the user exit to pop up a flexfield screen, and let the user enter the flexfield values. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">CODE=&quot;GL#&quot;<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp; </span>This is the flexfield code for the key flexfield that we will be using.<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">APPL_SHORT_NAME=&quot;SQLGL&quot;<span style="mso-tab-count: 1"> </span>The short name for the application the flexfield belongs too. Together with &lsquo;Code&rsquo;, this will identify the flexfield itself. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">NUM=&quot;101&quot;<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>The id-number for the flexfield structure. If you have only a single structure flexfield, it is optional. For flexfields enabled for multiple structures, you need to enter the id-number.<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">VALIDATE=&quot;PARTIAL&quot;<span style="mso-tab-count: 1">&nbsp;&nbsp; </span>Validate can be &lsquo;None&rsquo;, &lsquo;Partial&rsquo; or &lsquo;Full&rsquo;. None means the combination is not validated. Partial means that the separate segments are validated, there is no validation if the combination exists. Full means that segments and combination will be checked, and if a new value is entered, this will be inserted into the key flexfield table.<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">SEG=&quot;:!VALUE&quot;<span style="mso-tab-count: 1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>This is the forms field that will be used to store the value of the segments. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">The second box is for the &lsquo;Validation&rsquo; event. This code will be called when the user navigates out of the field, or submits the entire combination.<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">Now when we set this value set as a parameter for our concurrent program, we can see how the validation works:<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><font size="3"><font face="Calibri"><font color="#000000"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_7" o:spid="_x0000_i1041" style="width: 453.75pt; height: 303pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image003.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><img alt="" height="504" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special2.jpg" width="755" /></o:p></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">Now when we run the program, we get this pop-up: <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><font size="3"><font face="Calibri"><font color="#000000"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_10" o:spid="_x0000_i1040" style="width: 453.75pt; height: 244.5pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image005.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><img alt="" height="414" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special3.jpg" width="769" /></o:p></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt">&nbsp;</p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">We have all the functionality of the key flexfield. We can use the &lsquo;Combinations&rsquo; button to search for existing combinations, and all separate segments will be validated, as will be the final combination. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">When we submit a value to our program, it will show the concatenated segments as the value of our parameter: <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><font size="3"><font face="Calibri"><font color="#000000"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_13" o:spid="_x0000_i1039" style="width: 453.75pt; height: 45pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image007.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><img alt="" height="73" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special4.jpg" width="732" /></o:p></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt">&nbsp;</p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">Now let&rsquo;s see some more features of this validation. For example, we&rsquo;d like to have the value of the combination id. (CODE_COMBINATION_ID in our case, since we use the Accounting Flexfield). <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">To get that, we need to add the LOADID user exit: <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;<img alt="" height="596" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special5.jpg" width="730" /></font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><font size="3"><font face="Calibri"><font color="#000000"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_22" o:spid="_x0000_i1038" style="width: 453.75pt; height: 378pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image009.png"></v:imagedata></v:shape></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">The &lsquo;Load&rsquo; event will get the combination-id from the flexfield table. This is only possible for the &lsquo;VALIDATE=&rdquo;FULL&rdquo;, since it will validate the whole combination. Also we need to set the ID=&rdquo;:!ID&rdquo;. This will populate the :!ID column with the ID value of the combination.<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">Finally, I added the &lsquo;DINSERT=&rdquo;NO&rdquo; &lsquo;, because we don&rsquo;t want to allow insertion of new code combinations from this value set. (And Validation=&rdquo;FULL&rdquo; by default inserts new combinations into the flexfield column). <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">Now when we run the concurrent request, we see that the parameter value is the code_combination_id instead of the concatenated segments:<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><font size="3"><font face="Calibri"><font color="#000000"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_19" o:spid="_x0000_i1037" style="width: 453.75pt; height: 43.5pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image011.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><img alt="" height="69" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special6.jpg" width="722" /></o:p></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><br />
	<font size="3"><font face="Calibri"><font color="#000000">With these user exits it is also possible to select just a number of segments, instead of the whole combination. For this we remove the &lsquo;Load&rsquo; / &lsquo;LOADID&rsquo; part again. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">Then we add a &lsquo;DISPLAY=&rdquo;x&rdquo; &lsquo; to the &lsquo;Edit&rsquo; and &lsquo;Validate&rsquo; user exits. The &ldquo;display&rdquo; parameter is defaulting to &lsquo;ALL&rsquo;. But you can also specify separate segments by their sequence number or names. In our case, we display the first 2 segments: <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font size="3"><font face="Calibri"><font color="#000000"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_25" o:spid="_x0000_i1036" style="width: 453.75pt; height: 258.75pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image013.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><img alt="" height="405" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special8.jpg" width="710" /></o:p></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">Now when we run the concurrent program, we get a pop-up for only the first 2 values:<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><font size="3"><font face="Calibri"><font color="#000000"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_28" o:spid="_x0000_i1035" style="width: 453.75pt; height: 126.75pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image015.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><img alt="" height="174" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special9.jpg" width="623" /></o:p></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">A very nice feature (at least as far as I&rsquo;m concerned) is the use of a where clause on the combination values. Consider the following &lsquo;Enter&rsquo; code:<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-size: 8pt; mso-ansi-language: en-us"><font face="Calibri"><font color="#000000">FND POPID<o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-size: 8pt; mso-ansi-language: en-us"><font face="Calibri"><font color="#000000">CODE=&quot;GL#&quot;<o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-size: 8pt; mso-ansi-language: en-us"><font face="Calibri"><font color="#000000">NUM=&quot;101&quot;<o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-size: 8pt; mso-ansi-language: en-us"><font face="Calibri"><font color="#000000">APPL_SHORT_NAME=&quot;SQLGL&quot;<o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-size: 8pt; mso-ansi-language: en-us"><font face="Calibri"><font color="#000000">VALIDATE=&quot;FULL&quot;<o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-size: 8pt; mso-ansi-language: en-us"><font face="Calibri"><font color="#000000">TITLE=&quot;Special Validation Key&quot;<o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-size: 8pt; mso-ansi-language: en-us"><font face="Calibri"><font color="#000000">ID=&quot;:!ID&quot;<o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-size: 8pt; mso-ansi-language: en-us"><font face="Calibri"><font color="#000000">SEG=&quot;:!VALUE&quot;<o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="line-height: 115%; font-size: 8pt; mso-ansi-language: en-us"><font face="Calibri"><font color="#000000">DESC=&quot;:!MEANING&quot;<o:p></o:p></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><b style="mso-bidi-font-weight: normal"><span lang="EN-US" style="line-height: 115%; font-size: 8pt; mso-ansi-language: en-us"><font face="Calibri"><font color="#000000">WHERE=&quot;segment2 not like &#39;1%&#39; &quot;<o:p></o:p></font></font></span></b></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">The &ldquo;WHERE&rdquo; clause prevents us from choosing combinations that have a segment2 starting with &lsquo;1&rsquo;. When we run our concurrent program with this, and choose the combinations: <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font size="3"><font face="Calibri"><font color="#000000"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_31" o:spid="_x0000_i1034" style="width: 220.5pt; height: 328.5pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image017.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><img alt="" height="438" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special10.jpg" width="294" /></o:p></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">There is no Dpt starting with 1. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">When we add the &ldquo;WHERE&rdquo;-clause to the validation event too, it will prevent us from entering the values manually:<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font size="3"><font face="Calibri"><font color="#000000"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_34" o:spid="_x0000_i1033" style="width: 330.75pt; height: 105pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image019.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><img alt="" height="140" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special11.jpg" width="441" /></o:p></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">The last feature that we&rsquo;ll look into is the use of a pl/sql validation through the special validation routines. By using the user-exit PLSQL, we can call an anonymous PL/SQL block in our &lsquo;Validation&rsquo; event. I created a value set with the following function for the &lsquo;Validation&rsquo; event:</font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000"><o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000"><img alt="" height="404" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special12.jpg" width="712" /></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000">FND PLSQL &quot; declare<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp; </span>v_value varchar2( 10 ) := :!value ;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp; </span>v_sum number;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp; </span>v_valid boolean;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000">begin<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp;&nbsp; </span>v_sum:=0;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp;&nbsp; </span>for i in 1..length(v_value) loop<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>v_sum :=v_sum+(length(v_value)+1-i)*substr(v_value,i,1);<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp; </span>end loop;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp; </span>if mod(v_sum,11)=0 then<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>v_valid := TRUE;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp; </span>else<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp; </span>v_valid:=FALSE;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp; </span>end if;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp; </span>if not v_valid then<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>fnd_message.set_name(&#39;FND&#39;,&#39;FND_GENERIC_MESSAGE&#39; );<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>fnd_message.set_token(&#39;MESSAGE&#39;,&#39;This is not a valid bank account&#39;);<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>fnd_message.raise_error;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us"><font color="#000000"><span style="mso-spacerun: yes">&nbsp; </span>end if;<o:p></o:p></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><font color="#000000"><span lang="EN-US" style="font-family: 'courier new'; font-size: 8pt; mso-ansi-language: en-us">END; &quot; </span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p></o:p></span></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font size="3"><font face="Calibri"><font color="#000000"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_46" o:spid="_x0000_i1032" style="width: 453.75pt; height: 257.25pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image021.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p></o:p></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">This PL/SQL procedure validates a (Dutch) bank account number. If it does need pass the test, a message will be displayed. This gives you almost unlimited possibilities for validating entered data. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">As you can see, it is only a &lsquo;Validate&rsquo; event. Because we don&rsquo;t need any special functionality for entering the data. We can limit the entry to numbers only on the &lsquo;Validation Set&rsquo; main page. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">Now when we use this value set for our concurrent program, we can only enter valid dutch bank accounts:<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font size="3"><font face="Calibri"><font color="#000000"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_49" o:spid="_x0000_i1031" style="width: 343.5pt; height: 120.75pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image023.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><img alt="" height="161" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special13.jpg" width="458" /></o:p></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">And<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font size="3"><font face="Calibri"><font color="#000000"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_52" o:spid="_x0000_i1030" style="width: 453.75pt; height: 44.25pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image025.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p></o:p></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><font size="3"><font face="Calibri"><font color="#000000"><span lang="EN-US" style="mso-ansi-language: en-us"><img alt="" height="69" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special14.jpg" width="713" /></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><br />
	<font size="3"><font face="Calibri"><font color="#000000">The list of parameters for the user exits is longer than this. So we won&rsquo;t be going through all the possibilities. You can check the Developers Guide and the Flexfield guide for a complete listing of options. (Did you notice the flexfield title that I sneaked into the pop-up? Try and find the option for that!)<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font face="Calibri"><font color="#000000">Please try the different options for yourself, and realize the possibilities of the special validation. <o:p></o:p></font></font></font></span></p>
<h2 style="margin: 12pt 0cm 3pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><em><font color="#000000" face="Cambria" size="5">&nbsp;</font></em></o:p></span></h2>
<h2 style="margin: 12pt 0cm 3pt"><span lang="EN-US" style="mso-ansi-language: en-us"><em><font size="5"><font face="Cambria"><font color="#000000">Pair Validation<o:p></o:p></font></font></font></em></span></h2>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font color="#000000"><font face="Calibri">Meanwhile, we&rsquo;ll continue to the &lsquo;Pair&rsquo; validation. The pair validation is very much like the &lsquo;special&rsquo; validation. It uses the same kind of user exits, but this time, a range of segment values or combinations is selected. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font color="#000000"><font face="Calibri">Let&rsquo;s first create a range of the account segment. Instead of using POPID and VALID, we use POPIDR and VALIDR. The R-version of the user-exits automatically create a range. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font color="#000000"><font face="Calibri">Of course we need 2 parameters to set the range. However, we need only one validation set. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font color="#000000"><font face="Calibri">I created the validation set &lsquo;XXX_PAIR_VAL&rsquo;. I entered only the edit and validate events: <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><font size="3"><font color="#000000"><font face="Calibri"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_58" o:spid="_x0000_i1029" style="width: 453.75pt; height: 4in; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image027.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><img alt="" height="480" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special16.jpg" width="755" /></o:p></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt">&nbsp;</p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font color="#000000"><font face="Calibri">The next step is to set the parameters for both the low and high value. Both parameters have the validation set &lsquo;XXX_PAIR_VAL&rsquo;.<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><font size="3"><font color="#000000"><font face="Calibri"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_61" o:spid="_x0000_i1028" style="width: 453.75pt; height: 192.75pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image029.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><img alt="" height="317" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special18.jpg" width="747" /></o:p></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font color="#000000"><font face="Calibri">Now when we run the program, we can enter a range. This includes validation that the high value is indeed higher or equal to the low value. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><font size="3"><font color="#000000"><font face="Calibri"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_55" o:spid="_x0000_i1027" style="width: 453.75pt; height: 102.75pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image031.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><img alt="" height="174" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special15.jpg" width="769" /></o:p></span></font></font></font></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font color="#000000"><font face="Calibri">Of course the concurrent program will receive the values for 2 parameters. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font color="#000000"><font face="Calibri">When we use the full validation we can enter a range of the whole account combination. Note that we cannot use the FULL validation for pair-validation. Because that would mean the use of the combination-id from the flexfield table and based on the combination-id&rsquo;s you cannot build a range.<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font color="#000000"><font face="Calibri">So we can only use PARTIAL and NONE for the validation. For that same reason, I have not yet had a reason to use a LOAD event for PAIR validation. It is however allowed to use one. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font color="#000000"><font face="Calibri">I created a PAIR validation for the whole accounting range as follows: <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><font size="3"><font color="#000000"><font face="Calibri"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_64" o:spid="_x0000_i1026" style="width: 453.75pt; height: 4in; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image033.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p></o:p></span></font></font></font></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt">&nbsp;<img alt="" height="479" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special19.jpg" width="755" /></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font color="#000000"><font face="Calibri">When used in the concurrent program, it will indeed allow us to enter a range of all segments:<o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><font size="3"><font color="#000000"><font face="Calibri"><span style="mso-fareast-language: nl; mso-no-proof: yes"><v:shape id="Picture_x0020_67" o:spid="_x0000_i1025" style="width: 265.5pt; height: 201.75pt; visibility: visible; mso-wrap-style: square" type="#_x0000_t75"><v:imagedata o:title="" src="file:///C:UsersArianAppDataLocalTempmsohtmlclip1 1clip_image035.png"></v:imagedata></v:shape></span><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><img alt="" height="269" src="http://www.stijf.com/wordpress/wp-content/uploads/image/Flex_special20.jpg" width="354" /></o:p></span></font></font></font></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0pt"><span lang="EN-US" style="mso-ansi-language: en-us"><font size="3"><font color="#000000"><font face="Calibri">That completes the chapter on PAIR validation too. <o:p></o:p></font></font></font></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 10pt"><span lang="EN-US" style="mso-ansi-language: en-us"><o:p><font color="#000000" face="Calibri" size="3">&nbsp;</font></o:p></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.stijf.com/wordpress/2010/04/special-and-pair-validation-types/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

