<?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>Dashboards, Reporting &#38; Business Intelligence &#187; FND</title>
	<atom:link href="http://www.appsbi.com/category/erp-tables/fnd/feed" rel="self" type="application/rss+xml" />
	<link>http://www.appsbi.com</link>
	<description></description>
	<lastBuildDate>Thu, 19 Aug 2010 21:57:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Multi Org Structure Virtual Private Database</title>
		<link>http://www.appsbi.com/multi-org-structure-virtual-private-database</link>
		<comments>http://www.appsbi.com/multi-org-structure-virtual-private-database#comments</comments>
		<pubDate>Wed, 13 Aug 2008 14:14:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ERP]]></category>
		<category><![CDATA[FND]]></category>

		<guid isPermaLink="false">http://www.appsbi.com/2008/08/13/multi-org-structure-virtual-private-database/</guid>
		<description><![CDATA[Please read the Multi-Org Background information
Virtual Private Database (VPD)
The Virtual Private Database (VPD) feature allows developers to enforce security by attaching a security policy to database objects such as tables, views and synonyms. It attaches a predicate function to every SQL statement to the objects by applying security policies. When a user directly or indirectly [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Multi Org Structure Virtual Private Database", url: "http://www.appsbi.com/multi-org-structure-virtual-private-database" });</script>]]></description>
			<content:encoded><![CDATA[<p>Please read the <a href="http://www.appsbi.com/2008/08/11/multi-org-structure/">Multi-Org Background</a> information</p>
<p><strong>Virtual Private Database (VPD)</strong></p>
<p>The Virtual Private Database (VPD) feature allows developers to enforce security by attaching a security policy to database objects such as tables, views and synonyms. It attaches a predicate function to every SQL statement to the objects by applying security policies. When a user directly or indirectly accesses the secure objects, the database rewrites the user&#8217;s SQL statement to include conditions set by security policy that are visible to the user.</p>
<p><a href="http://www.appsbi.com/wp-content/uploads/2008/08/image-176.jpg"><img height="171" alt="Image" src="http://www.appsbi.com/wp-content/uploads/2008/08/image-176-small.jpg" width="450" /></a></p>
<p><strong>Database Schema &#8211; Access to one operating unit</strong></p>
<p><a href="http://www.appsbi.com/wp-content/uploads/2008/08/image-177.jpg"><img height="171" alt="Image" src="http://www.appsbi.com/wp-content/uploads/2008/08/image-177-small.jpg" width="450" /></a></p>
<p><strong>Database Schema &#8211; Access to multiple operating units</strong></p>
<p>You can rewrite reference views that join data from multiple single organization views with the security policy attached to one secured synonym and the remaining reference to _ALL tables instead of single organization views. This improves performance because the policy is used once for the reference views that join data from multiple single organization views.<br />
Multiple Organizations Security Policy Predicate</p>
<p>Synonyms replace single organization views that contain the CLIENT_INFO predicate attached to them. When installing, you must attach a security policy function to the multiple organizations synonyms. This indicates that the security is in place irrespective of the tools used to access the data.</p>
<p>The security policy function returns different predicate based on the number of accessible operating units. An application context attribute &#8220;ACCESS_MODE&#8221; is set based on the accessible operating units. Context sensitive security policy is used for multiple organizations access control to minimize the coding impact. The multiple organizations code in previous releases works in the context of only one operating unit. It was not anticipated that multiple organizations access would be supported. A solution to code impact is to change the policy predicate whenever needed. For example, when you open a form using a responsibility that can access multiple operating units and when you select an operating unit, the operating unit context is established and you do not need to modify the code that is used for validation from that point onwards, if the synonyms return data for the selected operating unit.</p>
<p>If the access mode is M (Multiple), then the policy predicate issues an EXISTS sub-query to a global temporary table. The global temporary table is a new feature in Oracle 8i. The table stores and manipulates data specific to a SESSION or TRANSACTION. If the access_mode is S (Single), then a simple equality predicate is used for performance reasons, since it is cost effective in comparison to the temporary table. An access mode A (All) is incorporated to bypass the security for functionality that needs full table access. If the access mode is not set or is NULL, then a simple predicate that uses the CLIENT_INFO value for ORG_ID is used for the policy predicate to support backward compatibility.</p>
<pre>
MO_GLOBAL.Org_Security function:

FUNCTION org_security(obj_schema VARCHAR2
                                           obj_name VARCHAR2)RETURN VARCHAR2
IS
BEGIN
  --
  -- Returns different predicates based on the access_mode
  -- The codes for access_mode are
  -- M - Multiple OU Access
  -- A - All OU Access
  -- S - Single OU Access
  -- Null - Backward Compatibility - CLIENT_INFO case
  --
 IF g_access_mode IS NOT NULL THEN
   IF g_access_mode = 'M' THEN
     RETURN 'EXISTS (SELECT 1
                       FROM mo_glob_org_access_tmp oa
                       WHERE oa.organization_id = org_id)';
   ELSIF g_access_mode = 'A' THEN -- for future use
     RETURN NULL;
   ELSIF g_access_mode = 'S' THEN
     RETURN 'org_id = sys_context(''multi_org2'',''current_org_id'')';
   END IF;
 ELSE
   RETURN 'org_id = substrb(userenv(''CLIENT_INFO''),1,10)';
 END IF;
END org_security;
</pre>
<pre>
The simple predicate using CLIENT_INFO is used for the following case:
</pre>
<pre>
* Access control is not enabled for older releases of the applications, it is not backward compatible: You cannot enable the multiple organizations access control feature for all products simultaneously because multiple organizations views are shared between products at different levels. For example, if you choose to upgrade <a href="http://www.appsbi.com/2006/07/13/oracle-accounts-payables-ap-key-tables-2/"  class="alinks_links" onclick="return alinks_click(this);" title=""  style="padding-right: 13px; background: url(http://www.appsbi.com/wp-content/plugins/alinks/images/external.png) center right no-repeat;" rel="external">Payables</a> but choose to keep an earlier version of Purchasing then Payables is access control enabled, but Purchasing is not. Therefore, Purchasing must replace the views it shares with Payables, such as PO_VENDOR_SITES, and PO_HEADERS, with secured synonyms. The secured synonyms must work as before for Purchasing, since you have not upgraded Purchasing and Purchasing still relies on CLIENT_INFO.
</pre>
<pre>
The simple predicate using current_org_id is used for the following cases:
</pre>
<pre>
* Access control is limited to only one operating unit: In this case, the access mode is 'S'. An example is when a user can access to only one operating unit through the MO: Security Profile or the MO: Security Profile is not set and the user access depends on MO: Operating Unit.* Access control is enabled with access to multiple operating units: The security profile provides access to multiple operating units, but in the scope of a transaction since the operating unit is controlled, a simple predicate eliminates additional changes to the server and client side code.
</pre>
<pre>
The complex predicate is used for these cases:
</pre>
<pre>
* Access is enabled and the security profile gives access to multiple Operating Units. The access mode is set to 'M' for this case.
</pre>
<pre>
For example, any statement on RA_CUSTOMER_TRX (synonym to which the security policy is attached) is dynamically modified to use the policy predicate.
</pre>
<pre>
A simple query by the user:
</pre>
<pre>
SELECT trx_number from ra_customer_trx
</pre>
<pre>
is modified at runtime if the responsibility can access multiple operating units to:
</pre>
<pre>
SELECT trx_number from ra_customer_trxWHERE (EXISTS (SELECT 1FROM mo_glob_org_access_tmp oaWHERE oa.organization_id = org_id))
</pre>
<pre>
or is modified at runtime if the user's access responsibility can access one Operating Unit with access control enabled for the module to:
</pre>
<pre>
SELECT trx_number from ra_customer_trxORG_ID = sys_context('multi_org2','current_org_id')
</pre>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=fd1024e0-9173-4e13-852a-86e0cf94962f&amp;title=Multi+Org+Structure+Virtual+Private+Database&amp;url=http%3A%2F%2Fwww.appsbi.com%2Fmulti-org-structure-virtual-private-database">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.appsbi.com/multi-org-structure-virtual-private-database/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FND : fnd_descriptive_flexs, fnd_descr_flex_column_usages</title>
		<link>http://www.appsbi.com/fnd-fnd_descriptive_flexs-fnd_descr_flex_column_usages</link>
		<comments>http://www.appsbi.com/fnd-fnd_descriptive_flexs-fnd_descr_flex_column_usages#comments</comments>
		<pubDate>Sat, 30 Sep 2006 22:57:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ERP Tables]]></category>
		<category><![CDATA[FND]]></category>
		<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://www.appsbi.com/2006/09/30/fnd-fnd_descriptive_flexs-fnd_descr_flex_column_usages/</guid>
		<description><![CDATA[The below tables are used to store the descriptive flexfield definition

FND_DESCRIPTIVE_FLEXS stores setup information about descriptive
flexfields. Each row includes the name of the table that contains the
descriptive flexfield columns, the name and title of the flexfield, the
identifier of the application with which the flexfield is registered,
whether the flexfield is currently frozen, whether this is a [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "FND : fnd_descriptive_flexs, fnd_descr_flex_column_usages", url: "http://www.appsbi.com/fnd-fnd_descriptive_flexs-fnd_descr_flex_column_usages" });</script>]]></description>
			<content:encoded><![CDATA[<p>The below tables are used to store the descriptive flexfield definition</p>
<p><strong><br />
FND_DESCRIPTIVE_FLEXS</strong> stores setup information about descriptive<br />
flexfields. Each row includes the name of the table that contains the<br />
descriptive flexfield columns, the name and title of the flexfield, the<br />
identifier of the application with which the flexfield is registered,<br />
whether the flexfield is currently frozen, whether this is a protected<br />
descriptive flexfield, the name of the structure defining column for the<br />
flexfield (CONTEXT_COLUMN_NAME), and other information about<br />
how the flexfield is defined. You need one row for each descriptive<br />
flexfield in each application. Oracle Application Object Library uses this<br />
information to generate a compiled definition for a descriptive flexfield.</p>
<p><strong>FND_DESCR_FLEX_COLUMN_USAGES</strong> stores the correspondences<br />
between application table columns and the descriptive flexfield<br />
segments. Each row includes an application identifier, the name of a<br />
descriptive flexfield, and a column name. The context field value, also<br />
known as the structure name, is in<br />
DESCRIPTIVE_FLEX_CONTEXT_CODE. Each row also includes the<br />
segment name (END_USER_COLUMN_NAME), the display<br />
information about the segment such as prompts, display size, type of<br />
default value, whether the segment is required or not, whether the<br />
segment is part of a high, low segment pair, whether security is enabled<br />
for the segment, whether to display the segment or not, and the value<br />
set the segment uses. You need one row for each segment for each<br />
context value (structure), including global data element segments, for<br />
each descriptive flexfield of each application. Oracle Application Object<br />
Library uses this information to create a compiled descriptive flexfield<br />
definition to store in the FND_COMPILED_DESCRIPTIVE_FLEXS table.</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=fd1024e0-9173-4e13-852a-86e0cf94962f&amp;title=FND+%3A+fnd_descriptive_flexs%2C+fnd_descr_flex_column_usages&amp;url=http%3A%2F%2Fwww.appsbi.com%2Ffnd-fnd_descriptive_flexs-fnd_descr_flex_column_usages">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.appsbi.com/fnd-fnd_descriptive_flexs-fnd_descr_flex_column_usages/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Sysadmin: FND_CONCURRENT_PROGRAMS, FND_CONCURRENT_PROCESSES</title>
		<link>http://www.appsbi.com/oracle-sysadmin-fnd_concurrent_programs-fnd_concurrent_processes</link>
		<comments>http://www.appsbi.com/oracle-sysadmin-fnd_concurrent_programs-fnd_concurrent_processes#comments</comments>
		<pubDate>Fri, 22 Sep 2006 10:03:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ERP Tables]]></category>
		<category><![CDATA[FND]]></category>

		<guid isPermaLink="false">http://www.appsbi.com/2006/09/22/oracle-sysadmin-fnd_concurrent_programs-fnd_concurrent_processes/</guid>
		<description><![CDATA[
FND_CONCURRENT_PROGRAMS stores information about concurrent programs. Each row includes a name and description of the concurrent program. Each row also includes the execution methods for the program (EXECUTION_METHOD_CODE), the argument method (ARGUMENT_METHOD_CODE), and whether the program is constrained (QUEUE_METHOD_CODE).
If the program is a special concurrent program that controls the concurrent managers,
QUEUE_CONTROL_FLAG is set to Y. [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Oracle Sysadmin: FND_CONCURRENT_PROGRAMS, FND_CONCURRENT_PROCESSES", url: "http://www.appsbi.com/oracle-sysadmin-fnd_concurrent_programs-fnd_concurrent_processes" });</script>]]></description>
			<content:encoded><![CDATA[<p><strong><br />
FND_CONCURRENT_PROGRAMS</strong> stores information about concurrent programs. Each row includes a name and description of the concurrent program. Each row also includes the execution methods for the program (EXECUTION_METHOD_CODE), the argument method (ARGUMENT_METHOD_CODE), and whether the program is constrained (QUEUE_METHOD_CODE).</p>
<p>If the program is a special concurrent program that controls the concurrent managers,<br />
QUEUE_CONTROL_FLAG is set to Y. Each row also includes flags that indicate whether the program is enabled and defined as runâ€“alone, as well as values that specify the print style the concurrent manager should use to print program output, if any. There are also values that identify the executable associated with the concurrent program and the application with which the executable is defined, and flags that specify whether the concurrent program is a parent of a report set, whether to save the output file, and whether a print style is required.</p>
<p>Information such as printer name and number of rows and columns on each page of<br />
the output file for the concurrent program is also included in the table.<br />
You need one row for each concurrent program in each application. Oracle Application Object Library uses this information to run concurrent programs<br />
<strong><br />
FND_CONCURRENT_PROCESSES</strong> stores information about concurrent managers. Each row includes values that identify the ORACLE process, the operating system process, and the concurrent manager (QUEUE_APPLICATION_ID and CONCURRENT_QUEUE_ID). You<br />
need one row for each instance of a running concurrent manager (each process), as well as one row for the Internal Concurrent Manager.<br />
Oracle Application Object Library uses this table to keep a history of<br />
concurrent managers. You should never update this table manually. .<br />
You can use the Purge Concurrent Request and/or Managers Data<br />
program to delete history information periodically.</p>
<p><a href="http://sharethis.com/item?&wp=2.8.4&amp;publisher=fd1024e0-9173-4e13-852a-86e0cf94962f&amp;title=Oracle+Sysadmin%3A+FND_CONCURRENT_PROGRAMS%2C+FND_CONCURRENT_PROCESSES&amp;url=http%3A%2F%2Fwww.appsbi.com%2Foracle-sysadmin-fnd_concurrent_programs-fnd_concurrent_processes">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.appsbi.com/oracle-sysadmin-fnd_concurrent_programs-fnd_concurrent_processes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
