<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[ORAERP.COM - The Knowledge Center for Oracle ERP Professionals - Looking Beyond the Possibilities - Oracle Documents (Tutorials)]]></title>
		<link>http://www.oraerp.com/</link>
		<description><![CDATA[ORAERP.COM - The Knowledge Center for Oracle ERP Professionals - Looking Beyond the Possibilities - http://www.oraerp.com]]></description>
		<pubDate>Wed, 19 Jun 2013 16:24:41 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Steps to Configure a Virtual Machine for Apps Installation]]></title>
			<link>http://www.oraerp.com/Thread-Steps-to-Configure-a-Virtual-Machine-for-Apps-Installation</link>
			<pubDate>Sat, 08 Jun 2013 05:53:07 -0500</pubDate>
			<guid isPermaLink="false">http://www.oraerp.com/Thread-Steps-to-Configure-a-Virtual-Machine-for-Apps-Installation</guid>
			<description><![CDATA[Dear All<br />
<br />
All new learners try to start with their vision installation and Apps on Virtual Machine is best option.<br />
<br />
For this installation, One tricky part is to configure network between host and guest operating systems. I have prepared a document that will address the setting for virtual machine so that you guyz could learn how to configure network between host and guest operating system.<br />
<br />
If any body feels any area of improvement, please let me know because I believe  to Learn Share and Grow.<br />
<br />
Regards<br />
Syed Farhan Ashraf<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/pdf.gif" border="0" alt=".pdf" />&nbsp;&nbsp;<a href="attachment.php?aid=60" target="_blank">Steps to Configure Virtual Machine.pdf</a> (Size: 1.75 MB / Downloads: 4)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Dear All<br />
<br />
All new learners try to start with their vision installation and Apps on Virtual Machine is best option.<br />
<br />
For this installation, One tricky part is to configure network between host and guest operating systems. I have prepared a document that will address the setting for virtual machine so that you guyz could learn how to configure network between host and guest operating system.<br />
<br />
If any body feels any area of improvement, please let me know because I believe  to Learn Share and Grow.<br />
<br />
Regards<br />
Syed Farhan Ashraf<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/pdf.gif" border="0" alt=".pdf" />&nbsp;&nbsp;<a href="attachment.php?aid=60" target="_blank">Steps to Configure Virtual Machine.pdf</a> (Size: 1.75 MB / Downloads: 4)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[:: Steps to Produce SLA for Payroll in R12 ::]]></title>
			<link>http://www.oraerp.com/Thread-Steps-to-Produce-SLA-for-Payroll-in-R12</link>
			<pubDate>Sat, 30 Mar 2013 04:20:10 -0500</pubDate>
			<guid isPermaLink="false">http://www.oraerp.com/Thread-Steps-to-Produce-SLA-for-Payroll-in-R12</guid>
			<description><![CDATA[Issue:  Unable to drill down payroll transactions from GL to Payroll module<br />
<br />
Solution:<br />
<br />
Items:-<br />
(1)	Formula: <br />
AMB = JLD (= JLT + ADR + JED) + AAD + SLAM + Mapping Sets<br />
<br />
Notes: <br />
AMB = Accounting Methods Builder<br />
AAD = Assign JLD to each event classes<br />
SLAM = Sub-Ledger Accounting Method<br />
JLD = Journal Line Definition; Assign ADR to each JLT<br />
JLT = Journal Line Type; Creation of Debit and Credit information for each Event   <br />
         Classes<br />
ADR = Accounting Definition Rules; To establish rule for CCID @ transaction level<br />
JED = Journal Entry Description; Define Journal Header/Line Description<br />
<br />
(2)	Events Classes:<br />
o	Payroll Cost <br />
o	Payment Cost<br />
o	Estimated Cost<br />
o	Reversal Estimated Cost<br />
<br />
a)	JLD (Journal Line Definition):<br />
               Step # 1: Create JLT for each of the above Event Classes i.e Debit and   <br />
                              Credit Side<br />
               Step # 2: Create ADR for Dr/Cr of each Event Classes (Choose <br />
                              Assignment Payroll Name in Source)<br />
               Step # 3: Assign ADR to each JLT in JLD<br />
<br />
b)	AAD (Application Accounting Definition):<br />
               Step # 4: Assign JLD to Event Classes<br />
<br />
c)	SLAM (Sub-Ledger Accounting Method):<br />
               Step # 5: Create SLAM and assign AAD to this SLAM<br />
<br />
d)	General Ledger:<br />
               Step # 6: Create Ledger from Accounting Setups in ASM (Accounting  <br />
                              Setup Manager) and assign to SLAM<br />
<br />
Processes to run Payroll SLA:<br />
<br />
Step # 1: Payroll Run<br />
Step # 2 : Prepayment<br />
Step # 3: Costing<br />
Step # 4: Transfer to SLA from HRMS Responsibility<br />
Step # 5: Run Create Accounting program from Global/Payroll Responsibility<br />
Step # 6: Review or Post Payroll Batch in GL<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/pdf.gif" border="0" alt=".pdf" />&nbsp;&nbsp;<a href="attachment.php?aid=58" target="_blank">Steps to Produce SLA for Payroll in R12.pdf</a> (Size: 291.45 KB / Downloads: 26)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Issue:  Unable to drill down payroll transactions from GL to Payroll module<br />
<br />
Solution:<br />
<br />
Items:-<br />
(1)	Formula: <br />
AMB = JLD (= JLT + ADR + JED) + AAD + SLAM + Mapping Sets<br />
<br />
Notes: <br />
AMB = Accounting Methods Builder<br />
AAD = Assign JLD to each event classes<br />
SLAM = Sub-Ledger Accounting Method<br />
JLD = Journal Line Definition; Assign ADR to each JLT<br />
JLT = Journal Line Type; Creation of Debit and Credit information for each Event   <br />
         Classes<br />
ADR = Accounting Definition Rules; To establish rule for CCID @ transaction level<br />
JED = Journal Entry Description; Define Journal Header/Line Description<br />
<br />
(2)	Events Classes:<br />
o	Payroll Cost <br />
o	Payment Cost<br />
o	Estimated Cost<br />
o	Reversal Estimated Cost<br />
<br />
a)	JLD (Journal Line Definition):<br />
               Step # 1: Create JLT for each of the above Event Classes i.e Debit and   <br />
                              Credit Side<br />
               Step # 2: Create ADR for Dr/Cr of each Event Classes (Choose <br />
                              Assignment Payroll Name in Source)<br />
               Step # 3: Assign ADR to each JLT in JLD<br />
<br />
b)	AAD (Application Accounting Definition):<br />
               Step # 4: Assign JLD to Event Classes<br />
<br />
c)	SLAM (Sub-Ledger Accounting Method):<br />
               Step # 5: Create SLAM and assign AAD to this SLAM<br />
<br />
d)	General Ledger:<br />
               Step # 6: Create Ledger from Accounting Setups in ASM (Accounting  <br />
                              Setup Manager) and assign to SLAM<br />
<br />
Processes to run Payroll SLA:<br />
<br />
Step # 1: Payroll Run<br />
Step # 2 : Prepayment<br />
Step # 3: Costing<br />
Step # 4: Transfer to SLA from HRMS Responsibility<br />
Step # 5: Run Create Accounting program from Global/Payroll Responsibility<br />
Step # 6: Review or Post Payroll Batch in GL<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/pdf.gif" border="0" alt=".pdf" />&nbsp;&nbsp;<a href="attachment.php?aid=58" target="_blank">Steps to Produce SLA for Payroll in R12.pdf</a> (Size: 291.45 KB / Downloads: 26)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Functionality/Features difference between R12 and 11i]]></title>
			<link>http://www.oraerp.com/Thread-Functionality-Features-difference-between-R12-and-11i</link>
			<pubDate>Tue, 05 Mar 2013 10:30:44 -0600</pubDate>
			<guid isPermaLink="false">http://www.oraerp.com/Thread-Functionality-Features-difference-between-R12-and-11i</guid>
			<description><![CDATA[One of the 1st process of upgrade project to do a review of funtionality between two versions.<br />
Functionality/Features difference between Oracle eBusiness Suite R12 and R11i<br />
Oracle Financials - GL, FA, AP, AR, CM<br />
Oracle SCM - PO<br />
Oracle HRMS<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/xls.gif" border="0" alt=".xlsx" />&nbsp;&nbsp;<a href="attachment.php?aid=55" target="_blank">Fin_Functional_Analysis_11ivsR12_v1 0.xlsx</a> (Size: 74.29 KB / Downloads: 126)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/xls.gif" border="0" alt=".xls" />&nbsp;&nbsp;<a href="attachment.php?aid=56" target="_blank">PO_Functional_Analysis_11ivsR12_v1 0.xls</a> (Size: 23.5 KB / Downloads: 62)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/xls.gif" border="0" alt=".xls" />&nbsp;&nbsp;<a href="attachment.php?aid=57" target="_blank">HRMS_Functionality Diff R12-11i V1.0.xls</a> (Size: 35 KB / Downloads: 67)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[One of the 1st process of upgrade project to do a review of funtionality between two versions.<br />
Functionality/Features difference between Oracle eBusiness Suite R12 and R11i<br />
Oracle Financials - GL, FA, AP, AR, CM<br />
Oracle SCM - PO<br />
Oracle HRMS<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/xls.gif" border="0" alt=".xlsx" />&nbsp;&nbsp;<a href="attachment.php?aid=55" target="_blank">Fin_Functional_Analysis_11ivsR12_v1 0.xlsx</a> (Size: 74.29 KB / Downloads: 126)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/xls.gif" border="0" alt=".xls" />&nbsp;&nbsp;<a href="attachment.php?aid=56" target="_blank">PO_Functional_Analysis_11ivsR12_v1 0.xls</a> (Size: 23.5 KB / Downloads: 62)
<!-- end: postbit_attachments_attachment --><br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/xls.gif" border="0" alt=".xls" />&nbsp;&nbsp;<a href="attachment.php?aid=57" target="_blank">HRMS_Functionality Diff R12-11i V1.0.xls</a> (Size: 35 KB / Downloads: 67)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Installation of Oracle Fusion Applications]]></title>
			<link>http://www.oraerp.com/Thread-Installation-of-Oracle-Fusion-Applications</link>
			<pubDate>Sat, 26 Jan 2013 09:06:38 -0600</pubDate>
			<guid isPermaLink="false">http://www.oraerp.com/Thread-Installation-of-Oracle-Fusion-Applications</guid>
			<description><![CDATA[Few days back I thought, let’s try to install Oracle fusion applications and started glancing different docs available and finally reach to a question number 1, what hardware required? Do I have that infrastructure to support me for this thrust? All these questions played vital role to write my earlier post on hardware sizing for Oracle Fusion Applications. In the last whatever hardware was available with me, just started to try out as an experimental basis and we will see later on.<br />
 <br />
Downloading fusion applications media from <a href="http://edelivery.oracle.com" target="_blank">http://edelivery.oracle.com</a>  took few days based on my internet speed and meanwhile I was just exploring installation guide Oracle Fusion Applications Installation Guide 11g Release 5 (11.1.5) E16600-07<br />
<br />
Another thing what I have done is just captured all the steps which I have followed during this installation drive and just going to share through this post. These all steps based on my own research and maybe there is error or wrong so I would suggest all of you to just follow Oracle’s standard guide to install Oracle Fusion Applications. However do let me know if you find any point erroneous or require modifications. <br />
What will be covered in this?<br />
•	Basic Concepts/Architecture of Oracle Fusion Applications<br />
•	Where to start? How to start?<br />
•	Oracle Fusion Applications Media download from edelivery<br />
•	Download and Installation of Oracle Linux from edelivery<br />
•	Installation of Virtual Box<br />
•	Installation of Operating System – Oracle Linux<br />
•	Stage the Oracle Fusion Applications software <br />
•	Install provisioning framework<br />
•	Install a transaction database<br />
•	Install and configure Oracle Identity Management components<br />
•	Configure Oracle Identity and Access Management components<br />
•	Integrate Oracle Identity Manager and Oracle Access Manager<br />
•	Create a provisioning plan for the new environment<br />
•	Provision a new environment<br />
•	Complete required post-installation tasks<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/pdf.gif" border="0" alt=".pdf" />&nbsp;&nbsp;<a href="attachment.php?aid=53" target="_blank">Installation of Oracle Fusion Applications Part-1.pdf</a> (Size: 4.82 MB / Downloads: 108)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Few days back I thought, let’s try to install Oracle fusion applications and started glancing different docs available and finally reach to a question number 1, what hardware required? Do I have that infrastructure to support me for this thrust? All these questions played vital role to write my earlier post on hardware sizing for Oracle Fusion Applications. In the last whatever hardware was available with me, just started to try out as an experimental basis and we will see later on.<br />
 <br />
Downloading fusion applications media from <a href="http://edelivery.oracle.com" target="_blank">http://edelivery.oracle.com</a>  took few days based on my internet speed and meanwhile I was just exploring installation guide Oracle Fusion Applications Installation Guide 11g Release 5 (11.1.5) E16600-07<br />
<br />
Another thing what I have done is just captured all the steps which I have followed during this installation drive and just going to share through this post. These all steps based on my own research and maybe there is error or wrong so I would suggest all of you to just follow Oracle’s standard guide to install Oracle Fusion Applications. However do let me know if you find any point erroneous or require modifications. <br />
What will be covered in this?<br />
•	Basic Concepts/Architecture of Oracle Fusion Applications<br />
•	Where to start? How to start?<br />
•	Oracle Fusion Applications Media download from edelivery<br />
•	Download and Installation of Oracle Linux from edelivery<br />
•	Installation of Virtual Box<br />
•	Installation of Operating System – Oracle Linux<br />
•	Stage the Oracle Fusion Applications software <br />
•	Install provisioning framework<br />
•	Install a transaction database<br />
•	Install and configure Oracle Identity Management components<br />
•	Configure Oracle Identity and Access Management components<br />
•	Integrate Oracle Identity Manager and Oracle Access Manager<br />
•	Create a provisioning plan for the new environment<br />
•	Provision a new environment<br />
•	Complete required post-installation tasks<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/pdf.gif" border="0" alt=".pdf" />&nbsp;&nbsp;<a href="attachment.php?aid=53" target="_blank">Installation of Oracle Fusion Applications Part-1.pdf</a> (Size: 4.82 MB / Downloads: 108)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Oracle Procure To Pay cycle]]></title>
			<link>http://www.oraerp.com/Thread-Oracle-Procure-To-Pay-cycle</link>
			<pubDate>Wed, 09 Jan 2013 23:44:50 -0600</pubDate>
			<guid isPermaLink="false">http://www.oraerp.com/Thread-Oracle-Procure-To-Pay-cycle</guid>
			<description><![CDATA[The Procure To Pay cycle is vital to an organization as in this process the organization buys and received goods or services from its vendors and makes necessary payments.<br />
<br />
The P2P cycle comprises of the following steps,<br />
1.	Create requisition<br />
2.	Approve requisition<br />
3.	Create purchase order<br />
4.	Approve purchase order<br />
5.	Receive goods<br />
6.	Create Payables invoice<br />
7.	Pay the invoice<br />
8.	Return to Vendor (optional)<br />
9.	Transfer to General Ledger<br />
10.	Import Journal into General Ledger<br />
<br />
Download attached doc<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/pdf.gif" border="0" alt=".pdf" />&nbsp;&nbsp;<a href="attachment.php?aid=51" target="_blank">Oracle Procure To Pay cycle v1.pdf</a> (Size: 1.5 MB / Downloads: 131)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[The Procure To Pay cycle is vital to an organization as in this process the organization buys and received goods or services from its vendors and makes necessary payments.<br />
<br />
The P2P cycle comprises of the following steps,<br />
1.	Create requisition<br />
2.	Approve requisition<br />
3.	Create purchase order<br />
4.	Approve purchase order<br />
5.	Receive goods<br />
6.	Create Payables invoice<br />
7.	Pay the invoice<br />
8.	Return to Vendor (optional)<br />
9.	Transfer to General Ledger<br />
10.	Import Journal into General Ledger<br />
<br />
Download attached doc<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/pdf.gif" border="0" alt=".pdf" />&nbsp;&nbsp;<a href="attachment.php?aid=51" target="_blank">Oracle Procure To Pay cycle v1.pdf</a> (Size: 1.5 MB / Downloads: 131)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Email From Oracle PL/SQL]]></title>
			<link>http://www.oraerp.com/Thread-Email-From-Oracle-PL-SQL</link>
			<pubDate>Sun, 06 Jan 2013 01:32:21 -0600</pubDate>
			<guid isPermaLink="false">http://www.oraerp.com/Thread-Email-From-Oracle-PL-SQL</guid>
			<description><![CDATA[The UTL_SMTP package can be used to send emails from PL/SQL.<br />
<br />
Emails:<br />
<br />
In it’s simplest form a single string or variable can be sent as the message body using the following procedure. In this case we have not included any header information or subject line in the message, so it is not very useful, but it is small.<br />
<br />
CREATE OR REPLACE PROCEDURE send_mail (p_to IN VARCHAR2,<br />
<br />
p_from IN VARCHAR2,<br />
p_message IN VARCHAR2,<br />
p_smtp_host IN VARCHAR2,<br />
p_smtp_port IN NUMBER DEFAULT 25)<br />
AS<br />
l_mail_conn UTL_SMTP.connection;<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
l_mail_conn := UTL_SMTP.open_connection(p_smtp_host, p_smtp_port);<br />
 <br />
<br />
UTL_SMTP.helo(l_mail_conn, p_smtp_host);<br />
 <br />
<br />
UTL_SMTP.mail(l_mail_conn, p_from);<br />
 <br />
<br />
UTL_SMTP.rcpt(l_mail_conn, p_to);<br />
 <br />
<br />
UTL_SMTP.data(l_mail_conn, p_message || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.quit(l_mail_conn);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
The code below shows how the procedure is called.<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
send_mail(p_to => ‘me@mycompany.com’,<br />
 <br />
<br />
p_from => ‘admin@mycompany.com’,<br />
 <br />
<br />
p_message => ‘This is a test message.’,<br />
 <br />
<br />
p_smtp_host => ‘smtp.mycompany.com’);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
Multi-Line Emails<br />
 <br />
<br />
Multi-line messages can be written by expanding the UTL_SMTP.DATA command using the UTL_SMTP.WRITE_DATA command as follows. This is a better method to use as the total message size is no longer constrained by the 32K limit on a VARCHAR2 variable. In the following example the header information has been included in the message also.<br />
 <br />
<br />
CREATE OR REPLACE PROCEDURE send_mail (p_to IN VARCHAR2,<br />
 <br />
<br />
p_from IN VARCHAR2,<br />
 <br />
<br />
p_subject IN VARCHAR2,<br />
 <br />
<br />
p_message IN VARCHAR2,<br />
 <br />
<br />
p_smtp_host IN VARCHAR2,<br />
 <br />
<br />
p_smtp_port IN NUMBER DEFAULT 25)<br />
 <br />
<br />
AS<br />
 <br />
<br />
l_mail_conn UTL_SMTP.connection;<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
l_mail_conn := UTL_SMTP.open_connection(p_smtp_host, p_smtp_port);<br />
 <br />
<br />
UTL_SMTP.helo(l_mail_conn, p_smtp_host);<br />
 <br />
<br />
UTL_SMTP.mail(l_mail_conn, p_from);<br />
 <br />
<br />
UTL_SMTP.rcpt(l_mail_conn, p_to);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.open_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, ‘Date: ‘ || TO_CHAR(SYSDATE, ‘DD-MON-YYYY HH24:MI<img src="images/smilies/confused.gif" style="vertical-align: middle;" border="0" alt="Confused" title="Confused" />S’) || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘To: ‘ || p_to || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘From: ‘ || p_from || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Subject: ‘ || p_subject || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Reply-To: ‘ || p_from || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, p_message || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.close_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.quit(l_mail_conn);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
The code below shows how the procedure is called.<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
send_mail(p_to => ‘me@mycompany.com’,<br />
 <br />
<br />
p_from => ‘admin@mycompany.com’,<br />
 <br />
<br />
p_subject => ‘Test Message’,<br />
 <br />
<br />
p_message => ‘This is a test message.’,<br />
 <br />
<br />
p_smtp_host => ‘smtp.mycompany.com’);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
HTML Emails<br />
 <br />
<br />
The following procedure builds on the previous version, allowing it include plain text and/or HTML versions of the email. The format of the message is explained here.<br />
 <br />
<br />
CREATE OR REPLACE PROCEDURE send_mail (p_to IN VARCHAR2,<br />
 <br />
<br />
p_from IN VARCHAR2,<br />
 <br />
<br />
p_subject IN VARCHAR2,<br />
 <br />
<br />
p_text_msg IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_html_msg IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_smtp_host IN VARCHAR2,<br />
 <br />
<br />
p_smtp_port IN NUMBER DEFAULT 25)<br />
 <br />
<br />
AS<br />
 <br />
<br />
l_mail_conn UTL_SMTP.connection;<br />
 <br />
<br />
l_boundary VARCHAR2(50) := ‘—-=*#abc1234321cba#*=’;<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
l_mail_conn := UTL_SMTP.open_connection(p_smtp_host, p_smtp_port);<br />
 <br />
<br />
UTL_SMTP.helo(l_mail_conn, p_smtp_host);<br />
 <br />
<br />
UTL_SMTP.mail(l_mail_conn, p_from);<br />
 <br />
<br />
UTL_SMTP.rcpt(l_mail_conn, p_to);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.open_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, ‘Date: ‘ || TO_CHAR(SYSDATE, ‘DD-MON-YYYY HH24:MI<img src="images/smilies/confused.gif" style="vertical-align: middle;" border="0" alt="Confused" title="Confused" />S’) || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘To: ‘ || p_to || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘From: ‘ || p_from || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Subject: ‘ || p_subject || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Reply-To: ‘ || p_from || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘MIME-Version: 1.0′ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: multipart/alternative; boundary=”‘ || l_boundary || ‘”‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
IF p_text_msg IS NOT NULL THEN<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: text/plain; charset=”iso-8859-1″‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, p_text_msg);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
END IF;<br />
 <br />
<br />
 <br />
 <br />
IF p_html_msg IS NOT NULL THEN<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: text/html; charset=”iso-8859-1″‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, p_html_msg);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
END IF;<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || ‘–’ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.close_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.quit(l_mail_conn);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
The code below shows how the procedure is called.<br />
 <br />
<br />
DECLARE<br />
 <br />
<br />
l_html VARCHAR2(32767);<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
l_html := ‘<html>
 <br />
<br />
<head>
 <br />
<br />
<title>Test HTML message</title><br />
 <br />
<br />
</head>
 <br />
<br />
<body>
 <br />
<br />
<p>This is a <b>HTML</b> <i>version</i> of the test message.</p>
 <br />
<br />
<p><img src=”http://www.oracleport.com/images/site_logo.gif” alt=”Site Logo” /><br />
 <br />
<br />
</body>
 <br />
<br />
</html>’;<br />
 <br />
<br />
 <br />
 <br />
send_mail(p_to => ‘me@mycompany.com’,<br />
 <br />
<br />
p_from => ‘admin@mycompany.com’,<br />
 <br />
<br />
p_subject => ‘Test Message’,<br />
 <br />
<br />
p_text_msg => ‘This is a test message.’,<br />
 <br />
<br />
p_html_msg => l_html,<br />
 <br />
<br />
p_smtp_host => ‘smtp.mycompany.com’);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
Emails with Attachments<br />
 <br />
<br />
Sending an email with an attachment is similar to the previous example as the message and the attachment must be separated by a boundary and identified by a name and mime type.<br />
 <br />
<br />
BLOB Attachment<br />
 <br />
<br />
Attaching a BLOB requires the binary data to be encoded and converted to text so it can be sent using SMTP.<br />
 <br />
<br />
CREATE OR REPLACE PROCEDURE send_mail (p_to IN VARCHAR2,<br />
 <br />
<br />
p_from IN VARCHAR2,<br />
 <br />
<br />
p_subject IN VARCHAR2,<br />
 <br />
<br />
p_text_msg IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_attach_name IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_attach_mime IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_attach_blob IN BLOB DEFAULT NULL,<br />
 <br />
<br />
p_smtp_host IN VARCHAR2,<br />
 <br />
<br />
p_smtp_port IN NUMBER DEFAULT 25)<br />
 <br />
<br />
AS<br />
 <br />
<br />
l_mail_conn UTL_SMTP.connection;<br />
 <br />
<br />
l_boundary VARCHAR2(50) := ‘—-=*#abc1234321cba#*=’;<br />
 <br />
<br />
l_step PLS_INTEGER := 24573;<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
l_mail_conn := UTL_SMTP.open_connection(p_smtp_host, p_smtp_port);<br />
 <br />
<br />
UTL_SMTP.helo(l_mail_conn, p_smtp_host);<br />
 <br />
<br />
UTL_SMTP.mail(l_mail_conn, p_from);<br />
 <br />
<br />
UTL_SMTP.rcpt(l_mail_conn, p_to);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.open_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, ‘Date: ‘ || TO_CHAR(SYSDATE, ‘DD-MON-YYYY HH24:MI<img src="images/smilies/confused.gif" style="vertical-align: middle;" border="0" alt="Confused" title="Confused" />S’) || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘To: ‘ || p_to || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘From: ‘ || p_from || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Subject: ‘ || p_subject || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Reply-To: ‘ || p_from || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘MIME-Version: 1.0′ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: multipart/mixed; boundary=”‘ || l_boundary || ‘”‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
IF p_text_msg IS NOT NULL THEN<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: text/plain; charset=”iso-8859-1″‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, p_text_msg);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
END IF;<br />
 <br />
<br />
 <br />
 <br />
IF p_attach_name IS NOT NULL THEN<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: ‘ || p_attach_mime || ‘; name=”‘ || p_attach_name || ‘”‘ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Transfer-Encoding: base64′ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Disposition: attachment; filename=”‘ || p_attach_name || ‘”‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_attach_blob) – 1 )/l_step) LOOP<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(DBMS_LOB.substr(p_attach_blob,&#8203; l_step, i * l_step + 1))));<br />
 <br />
<br />
END LOOP;<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
END IF;<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || ‘–’ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.close_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.quit(l_mail_conn);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
The code below shows how the procedure is called.<br />
 <br />
<br />
DECLARE<br />
 <br />
<br />
l_name images.name%TYPE := ‘site_logo.gif’;<br />
 <br />
<br />
l_blob images.image%TYPE;<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
SELECT image<br />
 <br />
<br />
INTO l_blob<br />
 <br />
<br />
FROM images<br />
 <br />
<br />
WHERE name = l_name;<br />
 <br />
<br />
 <br />
 <br />
send_mail(p_to => ‘me@mycompany.com’,<br />
 <br />
<br />
p_from => ‘admin@mycompany.com’,<br />
 <br />
<br />
p_subject => ‘Test Message’,<br />
 <br />
<br />
p_text_msg => ‘This is a test message.’,<br />
 <br />
<br />
p_attach_name => ‘site_logo.gif’,<br />
 <br />
<br />
p_attach_mime => ‘image/gif’,<br />
 <br />
<br />
p_attach_blob => l_blob,<br />
 <br />
<br />
p_smtp_host => ‘smtp.mycompany.com’);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
CLOB Attachment<br />
 <br />
<br />
Attaching a CLOB is similar to attaching a BLOB, but we don’t have to worry about encoding the data because it is already plain text.<br />
 <br />
<br />
CREATE OR REPLACE PROCEDURE send_mail (p_to IN VARCHAR2,<br />
 <br />
<br />
p_from IN VARCHAR2,<br />
 <br />
<br />
p_subject IN VARCHAR2,<br />
 <br />
<br />
p_text_msg IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_attach_name IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_attach_mime IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_attach_clob IN CLOB DEFAULT NULL,<br />
 <br />
<br />
p_smtp_host IN VARCHAR2,<br />
 <br />
<br />
p_smtp_port IN NUMBER DEFAULT 25)<br />
 <br />
<br />
AS<br />
 <br />
<br />
l_mail_conn UTL_SMTP.connection;<br />
 <br />
<br />
l_boundary VARCHAR2(50) := ‘—-=*#abc1234321cba#*=’;<br />
 <br />
<br />
l_step PLS_INTEGER := 24573;<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
l_mail_conn := UTL_SMTP.open_connection(p_smtp_host, p_smtp_port);<br />
 <br />
<br />
UTL_SMTP.helo(l_mail_conn, p_smtp_host);<br />
 <br />
<br />
UTL_SMTP.mail(l_mail_conn, p_from);<br />
 <br />
<br />
UTL_SMTP.rcpt(l_mail_conn, p_to);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.open_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, ‘Date: ‘ || TO_CHAR(SYSDATE, ‘DD-MON-YYYY HH24:MI<img src="images/smilies/confused.gif" style="vertical-align: middle;" border="0" alt="Confused" title="Confused" />S’) || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘To: ‘ || p_to || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘From: ‘ || p_from || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Subject: ‘ || p_subject || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Reply-To: ‘ || p_from || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘MIME-Version: 1.0′ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: multipart/mixed; boundary=”‘ || l_boundary || ‘”‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
IF p_text_msg IS NOT NULL THEN<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: text/plain; charset=”iso-8859-1″‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, p_text_msg);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
END IF;<br />
 <br />
<br />
 <br />
 <br />
IF p_attach_name IS NOT NULL THEN<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: ‘ || p_attach_mime || ‘; name=”‘ || p_attach_name || ‘”‘ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Disposition: attachment; filename=”‘ || p_attach_name || ‘”‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_attach_clob) – 1 )/l_step) LOOP<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, DBMS_LOB.substr(p_attach_clob, l_step, i * l_step + 1));<br />
 <br />
<br />
END LOOP;<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
END IF;<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || ‘–’ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.close_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.quit(l_mail_conn);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
The code below shows how the procedure is called.<br />
 <br />
<br />
DECLARE<br />
 <br />
<br />
l_clob CLOB := ‘This is a very small CLOB!’;<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
send_mail(p_to => ‘me@mycompany.com’,<br />
 <br />
<br />
p_from => ‘admin@mycompany.com’,<br />
 <br />
<br />
p_subject => ‘Test Message’,<br />
 <br />
<br />
p_text_msg => ‘This is a test message.’,<br />
 <br />
<br />
p_attach_name => ‘test.txt’,<br />
 <br />
<br />
p_attach_mime => ‘text/plain’,<br />
 <br />
<br />
p_attach_clob => l_clob,<br />
 <br />
<br />
p_smtp_host => ‘smtp.mycompany.com’);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
Miscellaneous<br />
 <br />
<br />
For emails with multiple recipients, simply call the RCPT procedure once for each separate email address.<br />
 <br />
<br />
The UTL_SMTP package requires Jserver which can be installed by running the following scripts as SYS.<br />
 <br />
<br />
SQL> @&#36;ORACLE_HOME/javavm/install/initjvm.sql<br />
 <br />
<br />
SQL> @&#36;ORACLE_HOME/rdbms/admin/initplsj.sql]]></description>
			<content:encoded><![CDATA[The UTL_SMTP package can be used to send emails from PL/SQL.<br />
<br />
Emails:<br />
<br />
In it’s simplest form a single string or variable can be sent as the message body using the following procedure. In this case we have not included any header information or subject line in the message, so it is not very useful, but it is small.<br />
<br />
CREATE OR REPLACE PROCEDURE send_mail (p_to IN VARCHAR2,<br />
<br />
p_from IN VARCHAR2,<br />
p_message IN VARCHAR2,<br />
p_smtp_host IN VARCHAR2,<br />
p_smtp_port IN NUMBER DEFAULT 25)<br />
AS<br />
l_mail_conn UTL_SMTP.connection;<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
l_mail_conn := UTL_SMTP.open_connection(p_smtp_host, p_smtp_port);<br />
 <br />
<br />
UTL_SMTP.helo(l_mail_conn, p_smtp_host);<br />
 <br />
<br />
UTL_SMTP.mail(l_mail_conn, p_from);<br />
 <br />
<br />
UTL_SMTP.rcpt(l_mail_conn, p_to);<br />
 <br />
<br />
UTL_SMTP.data(l_mail_conn, p_message || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.quit(l_mail_conn);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
The code below shows how the procedure is called.<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
send_mail(p_to => ‘me@mycompany.com’,<br />
 <br />
<br />
p_from => ‘admin@mycompany.com’,<br />
 <br />
<br />
p_message => ‘This is a test message.’,<br />
 <br />
<br />
p_smtp_host => ‘smtp.mycompany.com’);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
Multi-Line Emails<br />
 <br />
<br />
Multi-line messages can be written by expanding the UTL_SMTP.DATA command using the UTL_SMTP.WRITE_DATA command as follows. This is a better method to use as the total message size is no longer constrained by the 32K limit on a VARCHAR2 variable. In the following example the header information has been included in the message also.<br />
 <br />
<br />
CREATE OR REPLACE PROCEDURE send_mail (p_to IN VARCHAR2,<br />
 <br />
<br />
p_from IN VARCHAR2,<br />
 <br />
<br />
p_subject IN VARCHAR2,<br />
 <br />
<br />
p_message IN VARCHAR2,<br />
 <br />
<br />
p_smtp_host IN VARCHAR2,<br />
 <br />
<br />
p_smtp_port IN NUMBER DEFAULT 25)<br />
 <br />
<br />
AS<br />
 <br />
<br />
l_mail_conn UTL_SMTP.connection;<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
l_mail_conn := UTL_SMTP.open_connection(p_smtp_host, p_smtp_port);<br />
 <br />
<br />
UTL_SMTP.helo(l_mail_conn, p_smtp_host);<br />
 <br />
<br />
UTL_SMTP.mail(l_mail_conn, p_from);<br />
 <br />
<br />
UTL_SMTP.rcpt(l_mail_conn, p_to);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.open_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, ‘Date: ‘ || TO_CHAR(SYSDATE, ‘DD-MON-YYYY HH24:MI<img src="images/smilies/confused.gif" style="vertical-align: middle;" border="0" alt="Confused" title="Confused" />S’) || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘To: ‘ || p_to || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘From: ‘ || p_from || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Subject: ‘ || p_subject || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Reply-To: ‘ || p_from || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, p_message || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.close_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.quit(l_mail_conn);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
The code below shows how the procedure is called.<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
send_mail(p_to => ‘me@mycompany.com’,<br />
 <br />
<br />
p_from => ‘admin@mycompany.com’,<br />
 <br />
<br />
p_subject => ‘Test Message’,<br />
 <br />
<br />
p_message => ‘This is a test message.’,<br />
 <br />
<br />
p_smtp_host => ‘smtp.mycompany.com’);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
HTML Emails<br />
 <br />
<br />
The following procedure builds on the previous version, allowing it include plain text and/or HTML versions of the email. The format of the message is explained here.<br />
 <br />
<br />
CREATE OR REPLACE PROCEDURE send_mail (p_to IN VARCHAR2,<br />
 <br />
<br />
p_from IN VARCHAR2,<br />
 <br />
<br />
p_subject IN VARCHAR2,<br />
 <br />
<br />
p_text_msg IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_html_msg IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_smtp_host IN VARCHAR2,<br />
 <br />
<br />
p_smtp_port IN NUMBER DEFAULT 25)<br />
 <br />
<br />
AS<br />
 <br />
<br />
l_mail_conn UTL_SMTP.connection;<br />
 <br />
<br />
l_boundary VARCHAR2(50) := ‘—-=*#abc1234321cba#*=’;<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
l_mail_conn := UTL_SMTP.open_connection(p_smtp_host, p_smtp_port);<br />
 <br />
<br />
UTL_SMTP.helo(l_mail_conn, p_smtp_host);<br />
 <br />
<br />
UTL_SMTP.mail(l_mail_conn, p_from);<br />
 <br />
<br />
UTL_SMTP.rcpt(l_mail_conn, p_to);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.open_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, ‘Date: ‘ || TO_CHAR(SYSDATE, ‘DD-MON-YYYY HH24:MI<img src="images/smilies/confused.gif" style="vertical-align: middle;" border="0" alt="Confused" title="Confused" />S’) || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘To: ‘ || p_to || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘From: ‘ || p_from || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Subject: ‘ || p_subject || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Reply-To: ‘ || p_from || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘MIME-Version: 1.0′ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: multipart/alternative; boundary=”‘ || l_boundary || ‘”‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
IF p_text_msg IS NOT NULL THEN<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: text/plain; charset=”iso-8859-1″‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, p_text_msg);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
END IF;<br />
 <br />
<br />
 <br />
 <br />
IF p_html_msg IS NOT NULL THEN<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: text/html; charset=”iso-8859-1″‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, p_html_msg);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
END IF;<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || ‘–’ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.close_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.quit(l_mail_conn);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
The code below shows how the procedure is called.<br />
 <br />
<br />
DECLARE<br />
 <br />
<br />
l_html VARCHAR2(32767);<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
l_html := ‘<html>
 <br />
<br />
<head>
 <br />
<br />
<title>Test HTML message</title><br />
 <br />
<br />
</head>
 <br />
<br />
<body>
 <br />
<br />
<p>This is a <b>HTML</b> <i>version</i> of the test message.</p>
 <br />
<br />
<p><img src=”http://www.oracleport.com/images/site_logo.gif” alt=”Site Logo” /><br />
 <br />
<br />
</body>
 <br />
<br />
</html>’;<br />
 <br />
<br />
 <br />
 <br />
send_mail(p_to => ‘me@mycompany.com’,<br />
 <br />
<br />
p_from => ‘admin@mycompany.com’,<br />
 <br />
<br />
p_subject => ‘Test Message’,<br />
 <br />
<br />
p_text_msg => ‘This is a test message.’,<br />
 <br />
<br />
p_html_msg => l_html,<br />
 <br />
<br />
p_smtp_host => ‘smtp.mycompany.com’);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
Emails with Attachments<br />
 <br />
<br />
Sending an email with an attachment is similar to the previous example as the message and the attachment must be separated by a boundary and identified by a name and mime type.<br />
 <br />
<br />
BLOB Attachment<br />
 <br />
<br />
Attaching a BLOB requires the binary data to be encoded and converted to text so it can be sent using SMTP.<br />
 <br />
<br />
CREATE OR REPLACE PROCEDURE send_mail (p_to IN VARCHAR2,<br />
 <br />
<br />
p_from IN VARCHAR2,<br />
 <br />
<br />
p_subject IN VARCHAR2,<br />
 <br />
<br />
p_text_msg IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_attach_name IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_attach_mime IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_attach_blob IN BLOB DEFAULT NULL,<br />
 <br />
<br />
p_smtp_host IN VARCHAR2,<br />
 <br />
<br />
p_smtp_port IN NUMBER DEFAULT 25)<br />
 <br />
<br />
AS<br />
 <br />
<br />
l_mail_conn UTL_SMTP.connection;<br />
 <br />
<br />
l_boundary VARCHAR2(50) := ‘—-=*#abc1234321cba#*=’;<br />
 <br />
<br />
l_step PLS_INTEGER := 24573;<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
l_mail_conn := UTL_SMTP.open_connection(p_smtp_host, p_smtp_port);<br />
 <br />
<br />
UTL_SMTP.helo(l_mail_conn, p_smtp_host);<br />
 <br />
<br />
UTL_SMTP.mail(l_mail_conn, p_from);<br />
 <br />
<br />
UTL_SMTP.rcpt(l_mail_conn, p_to);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.open_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, ‘Date: ‘ || TO_CHAR(SYSDATE, ‘DD-MON-YYYY HH24:MI<img src="images/smilies/confused.gif" style="vertical-align: middle;" border="0" alt="Confused" title="Confused" />S’) || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘To: ‘ || p_to || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘From: ‘ || p_from || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Subject: ‘ || p_subject || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Reply-To: ‘ || p_from || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘MIME-Version: 1.0′ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: multipart/mixed; boundary=”‘ || l_boundary || ‘”‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
IF p_text_msg IS NOT NULL THEN<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: text/plain; charset=”iso-8859-1″‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, p_text_msg);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
END IF;<br />
 <br />
<br />
 <br />
 <br />
IF p_attach_name IS NOT NULL THEN<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: ‘ || p_attach_mime || ‘; name=”‘ || p_attach_name || ‘”‘ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Transfer-Encoding: base64′ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Disposition: attachment; filename=”‘ || p_attach_name || ‘”‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_attach_blob) – 1 )/l_step) LOOP<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(DBMS_LOB.substr(p_attach_blob,&#8203; l_step, i * l_step + 1))));<br />
 <br />
<br />
END LOOP;<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
END IF;<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || ‘–’ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.close_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.quit(l_mail_conn);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
The code below shows how the procedure is called.<br />
 <br />
<br />
DECLARE<br />
 <br />
<br />
l_name images.name%TYPE := ‘site_logo.gif’;<br />
 <br />
<br />
l_blob images.image%TYPE;<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
SELECT image<br />
 <br />
<br />
INTO l_blob<br />
 <br />
<br />
FROM images<br />
 <br />
<br />
WHERE name = l_name;<br />
 <br />
<br />
 <br />
 <br />
send_mail(p_to => ‘me@mycompany.com’,<br />
 <br />
<br />
p_from => ‘admin@mycompany.com’,<br />
 <br />
<br />
p_subject => ‘Test Message’,<br />
 <br />
<br />
p_text_msg => ‘This is a test message.’,<br />
 <br />
<br />
p_attach_name => ‘site_logo.gif’,<br />
 <br />
<br />
p_attach_mime => ‘image/gif’,<br />
 <br />
<br />
p_attach_blob => l_blob,<br />
 <br />
<br />
p_smtp_host => ‘smtp.mycompany.com’);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
CLOB Attachment<br />
 <br />
<br />
Attaching a CLOB is similar to attaching a BLOB, but we don’t have to worry about encoding the data because it is already plain text.<br />
 <br />
<br />
CREATE OR REPLACE PROCEDURE send_mail (p_to IN VARCHAR2,<br />
 <br />
<br />
p_from IN VARCHAR2,<br />
 <br />
<br />
p_subject IN VARCHAR2,<br />
 <br />
<br />
p_text_msg IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_attach_name IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_attach_mime IN VARCHAR2 DEFAULT NULL,<br />
 <br />
<br />
p_attach_clob IN CLOB DEFAULT NULL,<br />
 <br />
<br />
p_smtp_host IN VARCHAR2,<br />
 <br />
<br />
p_smtp_port IN NUMBER DEFAULT 25)<br />
 <br />
<br />
AS<br />
 <br />
<br />
l_mail_conn UTL_SMTP.connection;<br />
 <br />
<br />
l_boundary VARCHAR2(50) := ‘—-=*#abc1234321cba#*=’;<br />
 <br />
<br />
l_step PLS_INTEGER := 24573;<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
l_mail_conn := UTL_SMTP.open_connection(p_smtp_host, p_smtp_port);<br />
 <br />
<br />
UTL_SMTP.helo(l_mail_conn, p_smtp_host);<br />
 <br />
<br />
UTL_SMTP.mail(l_mail_conn, p_from);<br />
 <br />
<br />
UTL_SMTP.rcpt(l_mail_conn, p_to);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.open_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, ‘Date: ‘ || TO_CHAR(SYSDATE, ‘DD-MON-YYYY HH24:MI<img src="images/smilies/confused.gif" style="vertical-align: middle;" border="0" alt="Confused" title="Confused" />S’) || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘To: ‘ || p_to || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘From: ‘ || p_from || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Subject: ‘ || p_subject || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Reply-To: ‘ || p_from || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘MIME-Version: 1.0′ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: multipart/mixed; boundary=”‘ || l_boundary || ‘”‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
IF p_text_msg IS NOT NULL THEN<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: text/plain; charset=”iso-8859-1″‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, p_text_msg);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
END IF;<br />
 <br />
<br />
 <br />
 <br />
IF p_attach_name IS NOT NULL THEN<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Type: ‘ || p_attach_mime || ‘; name=”‘ || p_attach_name || ‘”‘ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, ‘Content-Disposition: attachment; filename=”‘ || p_attach_name || ‘”‘ || UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
 <br />
 <br />
FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_attach_clob) – 1 )/l_step) LOOP<br />
 <br />
<br />
UTL_SMTP.write_data(l_mail_conn, DBMS_LOB.substr(p_attach_clob, l_step, i * l_step + 1));<br />
 <br />
<br />
END LOOP;<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, UTL_TCP.crlf || UTL_TCP.crlf);<br />
 <br />
<br />
END IF;<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.write_data(l_mail_conn, ‘–’ || l_boundary || ‘–’ || UTL_TCP.crlf);<br />
 <br />
<br />
UTL_SMTP.close_data(l_mail_conn);<br />
 <br />
<br />
 <br />
 <br />
UTL_SMTP.quit(l_mail_conn);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
The code below shows how the procedure is called.<br />
 <br />
<br />
DECLARE<br />
 <br />
<br />
l_clob CLOB := ‘This is a very small CLOB!’;<br />
 <br />
<br />
BEGIN<br />
 <br />
<br />
send_mail(p_to => ‘me@mycompany.com’,<br />
 <br />
<br />
p_from => ‘admin@mycompany.com’,<br />
 <br />
<br />
p_subject => ‘Test Message’,<br />
 <br />
<br />
p_text_msg => ‘This is a test message.’,<br />
 <br />
<br />
p_attach_name => ‘test.txt’,<br />
 <br />
<br />
p_attach_mime => ‘text/plain’,<br />
 <br />
<br />
p_attach_clob => l_clob,<br />
 <br />
<br />
p_smtp_host => ‘smtp.mycompany.com’);<br />
 <br />
<br />
END;<br />
 <br />
<br />
/<br />
 <br />
<br />
Miscellaneous<br />
 <br />
<br />
For emails with multiple recipients, simply call the RCPT procedure once for each separate email address.<br />
 <br />
<br />
The UTL_SMTP package requires Jserver which can be installed by running the following scripts as SYS.<br />
 <br />
<br />
SQL> @&#36;ORACLE_HOME/javavm/install/initjvm.sql<br />
 <br />
<br />
SQL> @&#36;ORACLE_HOME/rdbms/admin/initplsj.sql]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[API - Assign Item to an another Organization in Oracle Inventory]]></title>
			<link>http://www.oraerp.com/Thread-API-Assign-Item-to-an-another-Organization-in-Oracle-Inventory</link>
			<pubDate>Tue, 25 Dec 2012 22:37:25 -0600</pubDate>
			<guid isPermaLink="false">http://www.oraerp.com/Thread-API-Assign-Item-to-an-another-Organization-in-Oracle-Inventory</guid>
			<description><![CDATA[Release R12+<br />
Assign Item to an another Organization in Oracle Inventory by using API EGO_ITEM_PUB.ASSIGN_ITEM_TO_ORG <br />
<br />
 API EGO_ITEM_PUB.ASSIGN_ITEM_TO_ORG provides functionality for maintaining items, item revisions, and etc. let’s use ASSIGN_ITEM_TO_ORG procedure to assign one item to an organization.<br />
The procedure definition is:<br />
<br />
PROCEDURE Assign_Item_To_Org(<br />
    p_api_version             IN      NUMBER<br />
   ,p_init_msg_list           IN      VARCHAR2        DEFAULT  G_FALSE<br />
   ,p_commit                  IN      VARCHAR2        DEFAULT  G_FALSE<br />
   ,p_Inventory_Item_Id       IN      NUMBER          DEFAULT  G_MISS_NUM<br />
   ,p_Item_Number             IN      VARCHAR2        DEFAULT  G_MISS_CHAR<br />
   ,p_Organization_Id         IN      NUMBER          DEFAULT  G_MISS_NUM<br />
   ,p_Organization_Code       IN      VARCHAR2        DEFAULT  G_MISS_CHAR<br />
   ,p_Primary_Uom_Code        IN      VARCHAR2        DEFAULT  G_MISS_CHAR<br />
   ,x_return_status           OUT NOCOPY  VARCHAR2<br />
   ,x_msg_count               OUT NOCOPY  NUMBER);<br />
<br />
The parameters are:<br />
	P_API_VERSION – A decimal number indicating major and minor revisions to the API. Pass 1.0 unless otherwise indicated in the API parameter list. <br />
	P_INIT_MSG_LIST – A one-character flag indicating whether to initialize the FND_MSG_PUB package’s message stack at the beginning of API processing (and thus remove any messages that may exist on the stack from prior processing in the same session). Valid values are FND_API.G_TRUE and FND_API.G_FALSE. <br />
	P_COMMIT – A one-character flag indicating whether to commit work at the end of API processing. Valid values are FND_API.G_TRUE and FND_API.G_FALSE. <br />
	P_INVENTORY_ITEM_ID – Inventory Item Id of the Item <br />
	P_ITEM_NUMBER – Segment1 of the Item <br />
	P_ORGANIZATION_ID – Organization Id of the Organization to whom Item must be assigned <br />
	P_ORGANIZATION_CODE – 3 character Organization Code of the Organization to whom Item must be assigned <br />
	P_PRIMARY_UOM_CODE – Primary Unit of Measure of the item. <br />
	X_RETURN_STATUS – A one-character code indicating whether any errors occurred during processing (in which case error messages will be present on the FND_MSG_PUB package’s message stack). Valid values are FND_API.G_RET_STS_SUCCESS, FND_API.G_RET_STS_ERROR, and FND_API.G_RET_STS_UNEXP_ERROR. <br />
	X_MSG_COUNT – An integer indicating the number of messages on the FND_MSG_PUB package’s message stack at the end of API processing. <br />
Sample Code: (Tested in R12.1.3)<br />
DECLARE<br />
        g_user_id             fnd_user.user_id%TYPE :=NULL;<br />
        l_appl_id             fnd_application.application_id%TYPE;<br />
        l_resp_id             fnd_responsibility_tl.responsibility_id%TYPE;<br />
        l_api_version    NUMBER := 1.0;<br />
        l_init_msg_list       VARCHAR2(2) := fnd_api.g_false;<br />
        l_commit        VARCHAR2(2) := FND_API.G_FALSE;<br />
        x_message_list        error_handler.error_tbl_type;<br />
        x_return_status    VARCHAR2(2);<br />
        x_msg_count        NUMBER := 0;<br />
BEGIN<br />
        SELECT fa.application_id<br />
          INTO l_appl_id<br />
          FROM fnd_application fa<br />
         WHERE fa.application_short_name = 'INV';<br />
<br />
        SELECT fr.responsibility_id<br />
          INTO l_resp_id<br />
          FROM fnd_application fa, fnd_responsibility_tl fr<br />
         WHERE fa.application_short_name = 'INV'<br />
           AND fa.application_id = fr.application_id<br />
           AND UPPER (fr.responsibility_name) = 'INVENTORY';<br />
<br />
        fnd_global.apps_initialize (g_user_id, l_resp_id, l_appl_id);<br />
<br />
        EGO_ITEM_PUB.ASSIGN_ITEM_TO_ORG(<br />
                   P_API_VERSION          => l_api_version<br />
                ,  P_INIT_MSG_LIST        => l_init_msg_list<br />
                ,  P_COMMIT               => l_commit<br />
                ,  P_INVENTORY_ITEM_ID    => 1003<br />
                ,  p_item_number          => 000000000001035<br />
                ,  p_organization_id      => 11047<br />
                ,  P_ORGANIZATION_CODE    => 'DXN'<br />
                ,  P_PRIMARY_UOM_CODE     => 'EA'<br />
                ,  X_RETURN_STATUS        => x_return_status<br />
                ,  X_MSG_COUNT            => x_msg_count<br />
            );<br />
        DBMS_OUTPUT.PUT_LINE('Status: '||x_return_status);<br />
        IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN<br />
          DBMS_OUTPUT.PUT_LINE('Error Messages :');<br />
          Error_Handler.GET_MESSAGE_LIST(x_message_list=>x_message_list);<br />
            FOR j IN 1..x_message_list.COUNT LOOP<br />
              DBMS_OUTPUT.PUT_LINE(x_message_list(j).message_text);<br />
            END LOOP;<br />
        END IF;<br />
EXCEPTION<br />
        WHEN OTHERS THEN<br />
          dbms_output.put_line('Exception Occured :');<br />
          DBMS_OUTPUT.PUT_LINE(SQLCODE ||':'||SQLERRM);<br />
END;<br />
<br />
Item Category Creation APIs<br />
There are few APIs in INV_ITEM_CATEGORY_PUB package related to item category. This article will follow a category flexfield structure. Please refer the below post for more detail.<br />
INV_ITEM_CATEGORY_PUB.Create_Category:<br />
DECLARE<br />
l_category_rec    INV_ITEM_CATEGORY_PUB.CATEGORY_REC_TYPE;<br />
l_return_status   VARCHAR2(80);<br />
l_error_code      NUMBER;<br />
l_msg_count       NUMBER;<br />
l_msg_data        VARCHAR2(80);<br />
l_out_category_id NUMBER;<br />
BEGIN<br />
  l_category_rec.segment1 := 'RED';<br />
<br />
  SELECT f.ID_FLEX_NUM<br />
    INTO l_category_rec.structure_id<br />
    FROM FND_ID_FLEX_STRUCTURES f<br />
   WHERE f.ID_FLEX_STRUCTURE_CODE = 'INV_COLORS';<br />
<br />
  l_category_rec.description := 'Red';<br />
<br />
  INV_ITEM_CATEGORY_PUB.Create_Category<br />
          (<br />
          p_api_version   => 1.0,<br />
          p_init_msg_list => FND_API.G_FALSE,<br />
          p_commit        => FND_API.G_TRUE,<br />
          x_return_status => l_return_status,<br />
          x_errorcode     => l_error_code,<br />
          x_msg_count     => l_msg_count,<br />
          x_msg_data      => l_msg_data,<br />
          p_category_rec  => l_category_rec,<br />
          x_category_id   => l_out_category_id<br />
          );<br />
  IF l_return_status = fnd_api.g_ret_sts_success THEN<br />
    COMMIT;<br />
    DBMS_OUTPUT.put_line ('Creation of Item Category is Successful : '||l_out_category_id);<br />
  ELSE<br />
    DBMS_OUTPUT.put_line ('Creation of Item Category Failed with the error :'||l_error_code);<br />
    ROLLBACK;<br />
  END IF;<br />
END ;<br />
 <br />
INV_ITEM_CATEGORY_PUB. Delete_Category:<br />
 <br />
DECLARE<br />
l_return_status VARCHAR2(80);<br />
l_error_code    NUMBER;<br />
l_msg_count     NUMBER;<br />
l_msg_data      VARCHAR2(80);<br />
l_category_id   NUMBER;<br />
BEGIN<br />
  SELECT mcb.CATEGORY_ID<br />
    INTO l_category_id<br />
    FROM mtl_categories_b mcb<br />
   WHERE mcb.SEGMENT1='RED'<br />
     AND mcb.STRUCTURE_ID =<br />
        (SELECT mcs_b.STRUCTURE_ID<br />
           FROM mtl_category_sets_b mcs_b<br />
          WHERE mcs_b.CATEGORY_SET_ID =<br />
               (SELECT mcs_tl.CATEGORY_SET_ID<br />
                  FROM mtl_category_sets_tl mcs_tl<br />
                 WHERE CATEGORY_SET_NAME ='INV_COLORS_SET'<br />
                 )<br />
        );<br />
<br />
    INV_ITEM_CATEGORY_PUB.Delete_Category<br />
          (<br />
          p_api_version     => 1.0,<br />
          p_init_msg_list   => FND_API.G_FALSE,<br />
          p_commit          => FND_API.G_TRUE,<br />
          x_return_status   => l_return_status,<br />
          x_errorcode       => l_error_code,<br />
          x_msg_count       => l_msg_count,<br />
          x_msg_data        => l_msg_data,<br />
          p_category_id     => l_category_id);<br />
<br />
  IF l_return_status = fnd_api.g_ret_sts_success THEN<br />
    COMMIT;<br />
    DBMS_OUTPUT.put_line ('Deletion of Item Category is Successful : '||l_category_id);<br />
  ELSE<br />
    DBMS_OUTPUT.put_line ('Deletion of Item Category Failed with the error :'||l_error_code);<br />
    ROLLBACK;<br />
  END IF;<br />
END ;<br />
<br />
 <br />
<br />
INV_ITEM_CATEGORY_PUB.Update_Category_Description<br />
Updates the category description.<br />
<br />
DECLARE<br />
         l_return_status VARCHAR2(80);<br />
         l_error_code    NUMBER;<br />
         l_msg_count     NUMBER;<br />
         l_msg_data      VARCHAR2(80);<br />
         l_category_id   NUMBER;<br />
         l_description   VARCHAR2(80);<br />
BEGIN<br />
      select mcb.CATEGORY_ID into l_category_id<br />
        from mtl_categories_b mcb<br />
       where mcb.SEGMENT1='BLACK'<br />
         and mcb.STRUCTURE_ID = (select mcs_b.STRUCTURE_ID<br />
             from mtl_category_sets_b mcs_b<br />
             where mcs_b.CATEGORY_SET_ID = (select mcs_tl.CATEGORY_SET_ID<br />
                 from mtl_category_sets_tl mcs_tl<br />
                 where CATEGORY_SET_NAME ='INV_COLORS_SET'));<br />
<br />
      l_description := 'new black color';<br />
<br />
     INV_ITEM_CATEGORY_PUB.Update_Category_Description (<br />
       p_api_version     => 1.0,<br />
       p_init_msg_list   => FND_API.G_FALSE,<br />
       p_commit          => FND_API.G_TRUE,<br />
       x_return_status   => l_return_status,<br />
       x_errorcode       => l_error_code,<br />
       x_msg_count       => l_msg_count,<br />
       x_msg_data        => l_msg_data,<br />
       p_category_id     => l_category_id,<br />
       p_description     => l_description);<br />
<br />
  IF l_return_status = fnd_api.g_ret_sts_success THEN<br />
    COMMIT;<br />
    DBMS_OUTPUT.put_line ('Update of Item Category Description is Successful : '||l_category_id);<br />
  ELSE<br />
    DBMS_OUTPUT.put_line ('Update of Item Category Description Failed with the error :'||l_error_code);<br />
    ROLLBACK;<br />
  END IF;<br />
END ;<br />
 <br />
Use following API for assigning a category to a category set. A category will be available in the list of valid categoies for a category set only if it is assigned to the category set. This is a required step if for categories enforce list is checked on.<br />
<br />
INV_ITEM_CATEGORY_PUB.Create_Valid_Category<br />
<br />
Create a record in mtl_category_set_valid_cats.<br />
<br />
DECLARE<br />
        l_return_status   VARCHAR2(80);<br />
        l_error_code      NUMBER;<br />
        l_msg_count       NUMBER;<br />
        l_msg_data        VARCHAR2(80);<br />
        l_category_set_id NUMBER;<br />
        l_category_id     NUMBER;<br />
BEGIN<br />
       select mcs_tl.CATEGORY_SET_ID into l_category_set_id<br />
         from mtl_category_sets_tl mcs_tl<br />
        where mcs_tl.CATEGORY_SET_NAME ='INV_COLORS_SET';<br />
<br />
       select mcb.CATEGORY_ID into l_category_id<br />
         from mtl_categories_b mcb<br />
        where mcb.SEGMENT1='RED'<br />
          and mcb.STRUCTURE_ID = (select mcs_b.STRUCTURE_ID<br />
              from mtl_category_sets_b mcs_b<br />
              where mcs_b.CATEGORY_SET_ID = (select mcs_tl.CATEGORY_SET_ID<br />
                    from mtl_category_sets_tl mcs_tl<br />
                    where CATEGORY_SET_NAME ='INV_COLORS_SET'));<br />
<br />
       INV_ITEM_CATEGORY_PUB.Create_Valid_Category (<br />
             p_api_version        => 1.0,<br />
             p_init_msg_list      => FND_API.G_FALSE,<br />
             p_commit             => FND_API.G_TRUE,<br />
             x_return_status      => l_return_status,<br />
             x_errorcode          => l_error_code,<br />
             x_msg_count          => l_msg_count,<br />
             x_msg_data           => l_msg_data,<br />
             p_category_set_id    => l_category_set_id,<br />
             p_category_id        => l_category_id,<br />
             p_parent_category_id => NULL );<br />
<br />
  IF l_return_status = fnd_api.g_ret_sts_success THEN<br />
    COMMIT;<br />
    DBMS_OUTPUT.put_line ('Create Valid Category is Successful : '||l_category_id);<br />
  ELSE<br />
    DBMS_OUTPUT.put_line ('Create Valid Category Failed with the error :'||l_error_code);<br />
    ROLLBACK;<br />
  END IF;<br />
END ;<br />
<br />
 <br />
<br />
INV_ITEM_CATEGORY_PUB.Delete_Valid_Category<br />
<br />
Delete the record from mtl_category_set_valid_cats.<br />
<br />
DECLARE<br />
           l_return_status    VARCHAR2(80);<br />
           l_error_code       NUMBER;<br />
           l_msg_count        NUMBER;<br />
           l_msg_data         VARCHAR2(80);<br />
           l_category_set_id  NUMBER;<br />
           l_category_id      NUMBER;<br />
BEGIN<br />
         select mcs_tl.CATEGORY_SET_ID into l_category_set_id<br />
           from mtl_category_sets_tl mcs_tl<br />
          where mcs_tl.CATEGORY_SET_NAME ='INV_COLORS_SET';<br />
<br />
         select mcb.CATEGORY_ID into l_category_id<br />
           from mtl_categories_b mcb<br />
          where mcb.SEGMENT1='RED'<br />
            and mcb.STRUCTURE_ID = (select mcs_b.STRUCTURE_ID<br />
                from mtl_category_sets_b mcs_b<br />
                where mcs_b.CATEGORY_SET_ID = (select mcs_tl.CATEGORY_SET_ID<br />
                  from mtl_category_sets_tl mcs_tl<br />
                  where CATEGORY_SET_NAME ='INV_COLORS_SET'));<br />
<br />
      INV_ITEM_CATEGORY_PUB.Delete_Valid_Category (<br />
            p_api_version      => 1.0,<br />
            p_init_msg_list    => FND_API.G_FALSE,<br />
            p_commit           => FND_API.G_TRUE,<br />
            x_return_status    => l_return_status,<br />
            x_errorcode        => l_error_code,<br />
            x_msg_count        => l_msg_count,<br />
            x_msg_data         => l_msg_data,<br />
            p_category_set_id  => l_category_set_id,<br />
            p_category_id      => l_category_id);<br />
<br />
  IF l_return_status = fnd_api.g_ret_sts_success THEN<br />
    COMMIT;<br />
    DBMS_OUTPUT.put_line ('Delete Valid Category is Successful : '||l_category_id);<br />
  ELSE<br />
    DBMS_OUTPUT.put_line ('Delete Valid Category Failed with the error :'||l_error_code);<br />
    ROLLBACK;<br />
  END IF;<br />
END ;]]></description>
			<content:encoded><![CDATA[Release R12+<br />
Assign Item to an another Organization in Oracle Inventory by using API EGO_ITEM_PUB.ASSIGN_ITEM_TO_ORG <br />
<br />
 API EGO_ITEM_PUB.ASSIGN_ITEM_TO_ORG provides functionality for maintaining items, item revisions, and etc. let’s use ASSIGN_ITEM_TO_ORG procedure to assign one item to an organization.<br />
The procedure definition is:<br />
<br />
PROCEDURE Assign_Item_To_Org(<br />
    p_api_version             IN      NUMBER<br />
   ,p_init_msg_list           IN      VARCHAR2        DEFAULT  G_FALSE<br />
   ,p_commit                  IN      VARCHAR2        DEFAULT  G_FALSE<br />
   ,p_Inventory_Item_Id       IN      NUMBER          DEFAULT  G_MISS_NUM<br />
   ,p_Item_Number             IN      VARCHAR2        DEFAULT  G_MISS_CHAR<br />
   ,p_Organization_Id         IN      NUMBER          DEFAULT  G_MISS_NUM<br />
   ,p_Organization_Code       IN      VARCHAR2        DEFAULT  G_MISS_CHAR<br />
   ,p_Primary_Uom_Code        IN      VARCHAR2        DEFAULT  G_MISS_CHAR<br />
   ,x_return_status           OUT NOCOPY  VARCHAR2<br />
   ,x_msg_count               OUT NOCOPY  NUMBER);<br />
<br />
The parameters are:<br />
	P_API_VERSION – A decimal number indicating major and minor revisions to the API. Pass 1.0 unless otherwise indicated in the API parameter list. <br />
	P_INIT_MSG_LIST – A one-character flag indicating whether to initialize the FND_MSG_PUB package’s message stack at the beginning of API processing (and thus remove any messages that may exist on the stack from prior processing in the same session). Valid values are FND_API.G_TRUE and FND_API.G_FALSE. <br />
	P_COMMIT – A one-character flag indicating whether to commit work at the end of API processing. Valid values are FND_API.G_TRUE and FND_API.G_FALSE. <br />
	P_INVENTORY_ITEM_ID – Inventory Item Id of the Item <br />
	P_ITEM_NUMBER – Segment1 of the Item <br />
	P_ORGANIZATION_ID – Organization Id of the Organization to whom Item must be assigned <br />
	P_ORGANIZATION_CODE – 3 character Organization Code of the Organization to whom Item must be assigned <br />
	P_PRIMARY_UOM_CODE – Primary Unit of Measure of the item. <br />
	X_RETURN_STATUS – A one-character code indicating whether any errors occurred during processing (in which case error messages will be present on the FND_MSG_PUB package’s message stack). Valid values are FND_API.G_RET_STS_SUCCESS, FND_API.G_RET_STS_ERROR, and FND_API.G_RET_STS_UNEXP_ERROR. <br />
	X_MSG_COUNT – An integer indicating the number of messages on the FND_MSG_PUB package’s message stack at the end of API processing. <br />
Sample Code: (Tested in R12.1.3)<br />
DECLARE<br />
        g_user_id             fnd_user.user_id%TYPE :=NULL;<br />
        l_appl_id             fnd_application.application_id%TYPE;<br />
        l_resp_id             fnd_responsibility_tl.responsibility_id%TYPE;<br />
        l_api_version    NUMBER := 1.0;<br />
        l_init_msg_list       VARCHAR2(2) := fnd_api.g_false;<br />
        l_commit        VARCHAR2(2) := FND_API.G_FALSE;<br />
        x_message_list        error_handler.error_tbl_type;<br />
        x_return_status    VARCHAR2(2);<br />
        x_msg_count        NUMBER := 0;<br />
BEGIN<br />
        SELECT fa.application_id<br />
          INTO l_appl_id<br />
          FROM fnd_application fa<br />
         WHERE fa.application_short_name = 'INV';<br />
<br />
        SELECT fr.responsibility_id<br />
          INTO l_resp_id<br />
          FROM fnd_application fa, fnd_responsibility_tl fr<br />
         WHERE fa.application_short_name = 'INV'<br />
           AND fa.application_id = fr.application_id<br />
           AND UPPER (fr.responsibility_name) = 'INVENTORY';<br />
<br />
        fnd_global.apps_initialize (g_user_id, l_resp_id, l_appl_id);<br />
<br />
        EGO_ITEM_PUB.ASSIGN_ITEM_TO_ORG(<br />
                   P_API_VERSION          => l_api_version<br />
                ,  P_INIT_MSG_LIST        => l_init_msg_list<br />
                ,  P_COMMIT               => l_commit<br />
                ,  P_INVENTORY_ITEM_ID    => 1003<br />
                ,  p_item_number          => 000000000001035<br />
                ,  p_organization_id      => 11047<br />
                ,  P_ORGANIZATION_CODE    => 'DXN'<br />
                ,  P_PRIMARY_UOM_CODE     => 'EA'<br />
                ,  X_RETURN_STATUS        => x_return_status<br />
                ,  X_MSG_COUNT            => x_msg_count<br />
            );<br />
        DBMS_OUTPUT.PUT_LINE('Status: '||x_return_status);<br />
        IF (x_return_status <> FND_API.G_RET_STS_SUCCESS) THEN<br />
          DBMS_OUTPUT.PUT_LINE('Error Messages :');<br />
          Error_Handler.GET_MESSAGE_LIST(x_message_list=>x_message_list);<br />
            FOR j IN 1..x_message_list.COUNT LOOP<br />
              DBMS_OUTPUT.PUT_LINE(x_message_list(j).message_text);<br />
            END LOOP;<br />
        END IF;<br />
EXCEPTION<br />
        WHEN OTHERS THEN<br />
          dbms_output.put_line('Exception Occured :');<br />
          DBMS_OUTPUT.PUT_LINE(SQLCODE ||':'||SQLERRM);<br />
END;<br />
<br />
Item Category Creation APIs<br />
There are few APIs in INV_ITEM_CATEGORY_PUB package related to item category. This article will follow a category flexfield structure. Please refer the below post for more detail.<br />
INV_ITEM_CATEGORY_PUB.Create_Category:<br />
DECLARE<br />
l_category_rec    INV_ITEM_CATEGORY_PUB.CATEGORY_REC_TYPE;<br />
l_return_status   VARCHAR2(80);<br />
l_error_code      NUMBER;<br />
l_msg_count       NUMBER;<br />
l_msg_data        VARCHAR2(80);<br />
l_out_category_id NUMBER;<br />
BEGIN<br />
  l_category_rec.segment1 := 'RED';<br />
<br />
  SELECT f.ID_FLEX_NUM<br />
    INTO l_category_rec.structure_id<br />
    FROM FND_ID_FLEX_STRUCTURES f<br />
   WHERE f.ID_FLEX_STRUCTURE_CODE = 'INV_COLORS';<br />
<br />
  l_category_rec.description := 'Red';<br />
<br />
  INV_ITEM_CATEGORY_PUB.Create_Category<br />
          (<br />
          p_api_version   => 1.0,<br />
          p_init_msg_list => FND_API.G_FALSE,<br />
          p_commit        => FND_API.G_TRUE,<br />
          x_return_status => l_return_status,<br />
          x_errorcode     => l_error_code,<br />
          x_msg_count     => l_msg_count,<br />
          x_msg_data      => l_msg_data,<br />
          p_category_rec  => l_category_rec,<br />
          x_category_id   => l_out_category_id<br />
          );<br />
  IF l_return_status = fnd_api.g_ret_sts_success THEN<br />
    COMMIT;<br />
    DBMS_OUTPUT.put_line ('Creation of Item Category is Successful : '||l_out_category_id);<br />
  ELSE<br />
    DBMS_OUTPUT.put_line ('Creation of Item Category Failed with the error :'||l_error_code);<br />
    ROLLBACK;<br />
  END IF;<br />
END ;<br />
 <br />
INV_ITEM_CATEGORY_PUB. Delete_Category:<br />
 <br />
DECLARE<br />
l_return_status VARCHAR2(80);<br />
l_error_code    NUMBER;<br />
l_msg_count     NUMBER;<br />
l_msg_data      VARCHAR2(80);<br />
l_category_id   NUMBER;<br />
BEGIN<br />
  SELECT mcb.CATEGORY_ID<br />
    INTO l_category_id<br />
    FROM mtl_categories_b mcb<br />
   WHERE mcb.SEGMENT1='RED'<br />
     AND mcb.STRUCTURE_ID =<br />
        (SELECT mcs_b.STRUCTURE_ID<br />
           FROM mtl_category_sets_b mcs_b<br />
          WHERE mcs_b.CATEGORY_SET_ID =<br />
               (SELECT mcs_tl.CATEGORY_SET_ID<br />
                  FROM mtl_category_sets_tl mcs_tl<br />
                 WHERE CATEGORY_SET_NAME ='INV_COLORS_SET'<br />
                 )<br />
        );<br />
<br />
    INV_ITEM_CATEGORY_PUB.Delete_Category<br />
          (<br />
          p_api_version     => 1.0,<br />
          p_init_msg_list   => FND_API.G_FALSE,<br />
          p_commit          => FND_API.G_TRUE,<br />
          x_return_status   => l_return_status,<br />
          x_errorcode       => l_error_code,<br />
          x_msg_count       => l_msg_count,<br />
          x_msg_data        => l_msg_data,<br />
          p_category_id     => l_category_id);<br />
<br />
  IF l_return_status = fnd_api.g_ret_sts_success THEN<br />
    COMMIT;<br />
    DBMS_OUTPUT.put_line ('Deletion of Item Category is Successful : '||l_category_id);<br />
  ELSE<br />
    DBMS_OUTPUT.put_line ('Deletion of Item Category Failed with the error :'||l_error_code);<br />
    ROLLBACK;<br />
  END IF;<br />
END ;<br />
<br />
 <br />
<br />
INV_ITEM_CATEGORY_PUB.Update_Category_Description<br />
Updates the category description.<br />
<br />
DECLARE<br />
         l_return_status VARCHAR2(80);<br />
         l_error_code    NUMBER;<br />
         l_msg_count     NUMBER;<br />
         l_msg_data      VARCHAR2(80);<br />
         l_category_id   NUMBER;<br />
         l_description   VARCHAR2(80);<br />
BEGIN<br />
      select mcb.CATEGORY_ID into l_category_id<br />
        from mtl_categories_b mcb<br />
       where mcb.SEGMENT1='BLACK'<br />
         and mcb.STRUCTURE_ID = (select mcs_b.STRUCTURE_ID<br />
             from mtl_category_sets_b mcs_b<br />
             where mcs_b.CATEGORY_SET_ID = (select mcs_tl.CATEGORY_SET_ID<br />
                 from mtl_category_sets_tl mcs_tl<br />
                 where CATEGORY_SET_NAME ='INV_COLORS_SET'));<br />
<br />
      l_description := 'new black color';<br />
<br />
     INV_ITEM_CATEGORY_PUB.Update_Category_Description (<br />
       p_api_version     => 1.0,<br />
       p_init_msg_list   => FND_API.G_FALSE,<br />
       p_commit          => FND_API.G_TRUE,<br />
       x_return_status   => l_return_status,<br />
       x_errorcode       => l_error_code,<br />
       x_msg_count       => l_msg_count,<br />
       x_msg_data        => l_msg_data,<br />
       p_category_id     => l_category_id,<br />
       p_description     => l_description);<br />
<br />
  IF l_return_status = fnd_api.g_ret_sts_success THEN<br />
    COMMIT;<br />
    DBMS_OUTPUT.put_line ('Update of Item Category Description is Successful : '||l_category_id);<br />
  ELSE<br />
    DBMS_OUTPUT.put_line ('Update of Item Category Description Failed with the error :'||l_error_code);<br />
    ROLLBACK;<br />
  END IF;<br />
END ;<br />
 <br />
Use following API for assigning a category to a category set. A category will be available in the list of valid categoies for a category set only if it is assigned to the category set. This is a required step if for categories enforce list is checked on.<br />
<br />
INV_ITEM_CATEGORY_PUB.Create_Valid_Category<br />
<br />
Create a record in mtl_category_set_valid_cats.<br />
<br />
DECLARE<br />
        l_return_status   VARCHAR2(80);<br />
        l_error_code      NUMBER;<br />
        l_msg_count       NUMBER;<br />
        l_msg_data        VARCHAR2(80);<br />
        l_category_set_id NUMBER;<br />
        l_category_id     NUMBER;<br />
BEGIN<br />
       select mcs_tl.CATEGORY_SET_ID into l_category_set_id<br />
         from mtl_category_sets_tl mcs_tl<br />
        where mcs_tl.CATEGORY_SET_NAME ='INV_COLORS_SET';<br />
<br />
       select mcb.CATEGORY_ID into l_category_id<br />
         from mtl_categories_b mcb<br />
        where mcb.SEGMENT1='RED'<br />
          and mcb.STRUCTURE_ID = (select mcs_b.STRUCTURE_ID<br />
              from mtl_category_sets_b mcs_b<br />
              where mcs_b.CATEGORY_SET_ID = (select mcs_tl.CATEGORY_SET_ID<br />
                    from mtl_category_sets_tl mcs_tl<br />
                    where CATEGORY_SET_NAME ='INV_COLORS_SET'));<br />
<br />
       INV_ITEM_CATEGORY_PUB.Create_Valid_Category (<br />
             p_api_version        => 1.0,<br />
             p_init_msg_list      => FND_API.G_FALSE,<br />
             p_commit             => FND_API.G_TRUE,<br />
             x_return_status      => l_return_status,<br />
             x_errorcode          => l_error_code,<br />
             x_msg_count          => l_msg_count,<br />
             x_msg_data           => l_msg_data,<br />
             p_category_set_id    => l_category_set_id,<br />
             p_category_id        => l_category_id,<br />
             p_parent_category_id => NULL );<br />
<br />
  IF l_return_status = fnd_api.g_ret_sts_success THEN<br />
    COMMIT;<br />
    DBMS_OUTPUT.put_line ('Create Valid Category is Successful : '||l_category_id);<br />
  ELSE<br />
    DBMS_OUTPUT.put_line ('Create Valid Category Failed with the error :'||l_error_code);<br />
    ROLLBACK;<br />
  END IF;<br />
END ;<br />
<br />
 <br />
<br />
INV_ITEM_CATEGORY_PUB.Delete_Valid_Category<br />
<br />
Delete the record from mtl_category_set_valid_cats.<br />
<br />
DECLARE<br />
           l_return_status    VARCHAR2(80);<br />
           l_error_code       NUMBER;<br />
           l_msg_count        NUMBER;<br />
           l_msg_data         VARCHAR2(80);<br />
           l_category_set_id  NUMBER;<br />
           l_category_id      NUMBER;<br />
BEGIN<br />
         select mcs_tl.CATEGORY_SET_ID into l_category_set_id<br />
           from mtl_category_sets_tl mcs_tl<br />
          where mcs_tl.CATEGORY_SET_NAME ='INV_COLORS_SET';<br />
<br />
         select mcb.CATEGORY_ID into l_category_id<br />
           from mtl_categories_b mcb<br />
          where mcb.SEGMENT1='RED'<br />
            and mcb.STRUCTURE_ID = (select mcs_b.STRUCTURE_ID<br />
                from mtl_category_sets_b mcs_b<br />
                where mcs_b.CATEGORY_SET_ID = (select mcs_tl.CATEGORY_SET_ID<br />
                  from mtl_category_sets_tl mcs_tl<br />
                  where CATEGORY_SET_NAME ='INV_COLORS_SET'));<br />
<br />
      INV_ITEM_CATEGORY_PUB.Delete_Valid_Category (<br />
            p_api_version      => 1.0,<br />
            p_init_msg_list    => FND_API.G_FALSE,<br />
            p_commit           => FND_API.G_TRUE,<br />
            x_return_status    => l_return_status,<br />
            x_errorcode        => l_error_code,<br />
            x_msg_count        => l_msg_count,<br />
            x_msg_data         => l_msg_data,<br />
            p_category_set_id  => l_category_set_id,<br />
            p_category_id      => l_category_id);<br />
<br />
  IF l_return_status = fnd_api.g_ret_sts_success THEN<br />
    COMMIT;<br />
    DBMS_OUTPUT.put_line ('Delete Valid Category is Successful : '||l_category_id);<br />
  ELSE<br />
    DBMS_OUTPUT.put_line ('Delete Valid Category Failed with the error :'||l_error_code);<br />
    ROLLBACK;<br />
  END IF;<br />
END ;]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Oracle Database 11g on Enterprise Linux 5 and CentOS 5]]></title>
			<link>http://www.oraerp.com/Thread-Oracle-Database-11g-on-Enterprise-Linux-5-and-CentOS-5</link>
			<pubDate>Sat, 08 Dec 2012 13:44:48 -0600</pubDate>
			<guid isPermaLink="false">http://www.oraerp.com/Thread-Oracle-Database-11g-on-Enterprise-Linux-5-and-CentOS-5</guid>
			<description><![CDATA[<span style="font-size: small;">Introduction<br />
This articles covers the Installation of Oracle Database 11g Release 2 on Enterprise Linux 5 and Suse 11.<br />
Oracle 11g Release 2 launched in August 2009. Now, the product is available on Linux platform. There are almost 400 aditional functionality added by Oracle 11g. After going through the Oracle webcast 11g Release 2, I feel Oracle 11g Rel. 2 more focus on High Availability(easy RAC installation and implementation),Compressing Data,Security,etc.<br />
<br />
</span><br />
<span style="font-size: small;">11g Release 2 required minimum 1gb RAM for the installation. I would recommend minimum 4gb ram will be ideally better. Swap should have double of physical ram.<br />
<span style="text-decoration: underline;"> </span><span style="text-decoration: underline;"> </span><br />
I recommend the following Server Configuration:<br />
<br />
Intel Xeon Processor W5580 3.20ghz<br />
L3 8mb Cache<br />
1 Quad Core <br />
4 to 8gb Ram (an ideal configuration) .<br />
146gb HDD (default) - This configuration can be changed, based on various factors.<br />
<br />
The following packages is mandatory for Enterprise Linux : GNOME Desktop Environment ,Graphical Internet, X Window System ,Editors , Development Tools ,Server Configuration Tools,System Tools and Administration Tools.<br />
<br />
You can download the software, subject to Oracle Licensing.<br />
<br />
<a href="http://www.oracle.com/technology/software/products/database/index.html" target="_blank">[font=&quot]http://www.oracle.com/technology/software/products/database/index.html[/font]</a><br />
<br />
Standard Edition One – support upto 2 cpu<br />
Standard Edition – support upot 4 cpu<br />
Enterprise Edition – unlimited.<br />
(11.2.0.1.0) Linux x86 | <a href="http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_2of2.zip" target="_blank">Disk 2</a>(2.1 GB) <br />
<br />
Set the Linux Kernal Parameters:<br />
Linux Kernel Parameters<br />
<span style="text-decoration: underline;"><br />
</span></span><br />
<span style="font-size: small;">What is the <span style="text-decoration: underline;">Shared Memory ( reference with various linux/unix sites for these parameters.):</span><br />
<br />
<span style="color: black;">The shared memory will hve huge impact on Oracle Performance. So very carefully to be handled.</span><br />
<br />
<span style="color: black;">Shared memory allows processes to access common structures and data by placing them in shared memory segments. It's the fastest form of IPC (Interprocess Communication) available since no kernel involvement occurs when data is passed<br />
between the processes. </span><br />
<span style="color: black;">Oracle uses shared memory segments for the SGA (Shared Global Area) which is an area of memory that is shared by all Oracle background and foreground processes.</span><br />
<span style="color: black;"> </span><br />
<span style="font-weight: bold;"><span style="color: black;">Setting SHMMAX Parameter</span></span><span style="color: black;"> <br />
<br />
This parameter defines the maximum size in bytes for a shared memory segment.<br />
Since the SGA is comprised of shared memory, SHMMAX can potentially limit the size of the SGA.</span><br />
<br />
<span style="font-weight: bold;"><span style="color: black;">Setting SHMMNI Parameter</span></span><span style="color: black;"> <br />
This parameter sets the maximum number of shared memory segments system wide.</span><br />
<br />
<span style="font-weight: bold;"><span style="color: black;">Setting SHMALL Parameter</span></span><span style="color: black;"> <br />
This parameter sets the total amount of shared memory in bytes that can be used at one time on the system.</span><br />
<br />
<span style="font-weight: bold;"><span style="color: black;">The SEMMSL Parameter</span></span><span style="color: black;"> <br />
This parameter defines the maximum number of semaphores per semaphore set. <br />
Oracle recommends to set SEMMSL to the largest PROCESSES init.ora parameter of any database on the Linux system.</span><br />
<br />
<span style="font-weight: bold;"><span style="color: black;">The SEMMNI Parameter</span></span><span style="color: black;"> <br />
This parameter defines the maximum number of semaphore sets in the entire Linux system. <br />
</span><br />
<span style="font-weight: bold;"><span style="color: black;">The SEMMNS Parameter</span></span><span style="color: black;"> <br />
This parameter defines the total number of semaphores (not semaphore set) in the entire Linux system.</span><br />
<br />
<span style="font-weight: bold;">The SEMOPM Parameter</span> <br />
This parameter defines the maximum number of semaphore operations that can be performed per [font=&amp;quot]semop(2)[/font] system call. <br />
<br />
<span style="font-weight: bold;"><span style="text-decoration: underline;"><span style="color: blue;">Setting File Handles</span></span></span><span style="font-weight: bold;"><span style="color: black;"></span></span><br />
<span style="color: black;">The maximum number of file handles denotes the maximum number of open files that you can have on the Linux system. <br />
<br />
</span><span style="font-weight: bold;"><span style="color: black;">Setting System Wide Limit for File Handles</span></span><span style="color: black;"> <br />
<br />
The value in </span>/proc/sys/fs/file-max sets the maximum number of file handles or open files that the Linux kernel will allocate. When you get error messages about running out of file handles, then you might want to raise this limit.<br />
Change the parameters:<br />
<span style="color: black;"><br />
</span></span><br />
<span style="font-size: small;"><span style="color: black;">Copy sysctl.conf</span><br />
<span style="color: black;">cp sysctl.conf<br />
sysctl.confold</span><br />
<br />
<span style="color: black;">Cd /etc</span><br />
<br />
<span style="color: black;">Vi sysctl.conf</span><br />
<br />
<span style="color: black;">Add the following:</span><br />
kernel.shmmax = 2147483648 <br />
kernel.shmall = 2097152<br />
kernel.shmmni = 4096<br />
kernel.sem = 250 32000 100 128<br />
fs.file-max = 65536 # 512 * PROCESSES<br />
net.core.rmem_default=4194304<br />
net.core.rmem_max=4194304<br />
net.core.wmem_default=262144<br />
net.core.wmem_max=262144<br />
net.ipv4.ip_local_port_range = 1024 65000<br />
<br />
Press Esc :wq<br />
<br />
Change the Hosts File Entry<br />
<br />
</span><br />
<span style="font-size: small;">Cd<br />
/etc<br />
<br />
Cp hosts hostsold<br />
<br />
Vi hosts<br />
IP-address Machinename.domainname Hostname<br />
<br />
Press Esc and :wq<br />
Go to /etc/security (cd /etc/security)<br />
Vi limits.conf<br />
Add or change /etc/security/limits.conf file:<br />
oracle soft nofile 1024<br />
oracle hard nofile 65536<br />
oracle soft nproc 2047<br />
oracle hard nproc 16384<br />
to save Esc :wq<br />
<br />
Go to /etc/pam.d (cd /etc/pam.d)<br />
Vi login<br />
Add or change line to the /etc/pam.d/login file<br />
<br />
</span><br />
<span style="font-size: small;">session required pam_limits.so<br />
session required /lib/security/pam_limits.so<br />
to save Esc :wq<br />
<br />
Very important Steps:<br />
On secure linux has to be disabled:<br />
Go to /etc/selinux(cd /etc/selinux)<br />
Vi config Change or add<br />
SELINUX=disabled<br />
to save Esc :wq<br />
<br />
The following packages(rpm) required for Enterprise Linux 5.0 on various cd’s :<br />
Insert the cd<br />
and mount the same<br />
Go to cd /media/cdrom/Server (cd /media/cdrom/Server)<br />
(carefully use –force and –nodeps)<br />
<br />
rpm -Uvh binutils-2.17.50.0.6<br />
rpm -Uvh compat-libstdc++-33-3.2.3<br />
rpm -Uvh elfutils-libelf-0.125<br />
rpm -Uvh elfutils-libelf-devel-0.125<br />
rpm -Uvh elfutils-libelf-devel-static-0.125<br />
rpm -Uvh gcc-4.1.2<br />
rpm -Uvh gcc-c++-4.1.2<br />
rpm -Uvh glibc-2.5-24<br />
rpm -Uvh glibc-common-2.5<br />
rpm -Uvh glibc-devel-2.5<br />
rpm -Uvh glibc-headers-2.5<br />
rpm -Uvh kernel-headers-2.6.18<br />
rpm -Uvh ksh-20060214<br />
rpm -Uvh libaio-0.3.106<br />
rpm -Uvh libaio-devel-0.3.106 <br />
rpm -Uvh libgcc-4.1.2<br />
rpm -Uvh libgomp-4.1.2<br />
rpm -Uvh libstdc++-4.1.2 <br />
rpm -Uvh libstdc++-devel-4.1.2<br />
rpm -Uvh make-3.81<br />
rpm -Uvh sysstat-7.0.2<br />
rpm -Uvh unixODBC-2.2.11<br />
rpm -Uvh unixODBC-devel-2.2.11<br />
<br />
</span><br />
<span style="font-size: small;">eject or unmount<br />
<br />
<span style="font-weight: bold;"> </span>Linux Enterprise Server 11 - SUSE:<br />
<br />
rpm -Uvh binutils-2.19<br />
rpm -Uvh gcc-4.3<br />
rpm -Uvh gcc-c++-4.3<br />
rpm -Uvh glibc-2.9<br />
rpm -Uvh glibc-devel-2.9<br />
rpm -Uvh ksh-93t<br />
rpm -Uvh libstdc++33-3.3.3<br />
rpm -Uvh libstdc++43-4.3.3_20081022<br />
rpm -Uvh libstdc++43-devel-4.3.3_20081022<br />
rpm -Uvh libaio-0.3.104<br />
rpm -Uvh libaio-devel-0.3.104<br />
rpm -Uvh libgcc43-4.3.3_20081022<br />
rpm -Uvh libstdc++-devel-4.3<br />
rpm -Uvh make-3.81<br />
rpm -Uvh sysstat-8.1.5<br />
<br />
Create user and groups<br />
Adding Groups<br />
<br />
groupadd oinstall<br />
groupadd dba<br />
groupadd asmadmin<br />
Adding user and assign the group:<br />
useradd -g oinstall -G dba,oper,asmadmin oracle<br />
Add password for Oracle user<br />
passwd oracle<br />
<br />
I would like to light on the "asmadmin" group is used for ASM.<br />
Make directories in which the Oracle Binary to be installed:<br />
<br />
mkdir -p /data1/app/oracle/product/11/db_1<br />
chown -R oracle:oinstall /data1<br />
chmod -R 777 /data1<br />
<br />
Shutdown or<br />
reboot the machine<br />
<br />
Login as Oracle <br />
Change/add user enviroment<br />
Go to /home/oracle<br />
Vi .bash_profile<br />
Add the following:<br />
ORACLE_HOSTNAME=machinename.domainname<br />
ORACLE_BASE=/data1/app/oracle; export ORACLE_BASE<br />
ORACLE_HOME=&#36;ORACLE_BASE/product/11.2/db_1; export ORACLE_HOME<br />
ORACLE_SID=orcl; export ORACLE_SID<br />
ORACLE_TERM=xterm; export ORACLE_TERM<br />
PATH=/usr/sbin:&#36;PATH; export PATH<br />
PATH=&#36;ORACLE_HOME/bin:&#36;PATH; export PATH<br />
LD_LIBRARY_PATH=&#36;ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH<br />
CLASSPATH=&#36;ORACLE_HOME/JRE:&#36;ORACLE_HOME/jlib:&#36;ORACLE_HOME/rdbms/jlib; export CLASSPATH<br />
<br />
if [ &#36;USER = "oracle" ]; then<br />
if [ &#36;SHELL = "/bin/ksh" ]; then<br />
ulimit -p 16384<br />
ulimit -n 65536<br />
else<br />
ulimit -u 16384 -n 65536<br />
fi<br />
fi<br />
Press Esc key :wq<br />
<br />
Log out<br />
<br />
Login as Oracle user<br />
<br />
Run Install<br />
Steps:<br />
Set the Display first<br />
export DISPLAY=hostname:0.0<br />
Or<br />
DISPAY=HOSTNAME:0.0<br />
export<br />
DISPLAY<br />
Go setup Disk directory<br />
Cd Disk1<br />
./runInstaller<br />
<br />
</span><br />
<span style="font-size: small;">Rest follow the GUI provided by Oracle</span><span style="font-size: small;"></span>]]></description>
			<content:encoded><![CDATA[<span style="font-size: small;">Introduction<br />
This articles covers the Installation of Oracle Database 11g Release 2 on Enterprise Linux 5 and Suse 11.<br />
Oracle 11g Release 2 launched in August 2009. Now, the product is available on Linux platform. There are almost 400 aditional functionality added by Oracle 11g. After going through the Oracle webcast 11g Release 2, I feel Oracle 11g Rel. 2 more focus on High Availability(easy RAC installation and implementation),Compressing Data,Security,etc.<br />
<br />
</span><br />
<span style="font-size: small;">11g Release 2 required minimum 1gb RAM for the installation. I would recommend minimum 4gb ram will be ideally better. Swap should have double of physical ram.<br />
<span style="text-decoration: underline;"> </span><span style="text-decoration: underline;"> </span><br />
I recommend the following Server Configuration:<br />
<br />
Intel Xeon Processor W5580 3.20ghz<br />
L3 8mb Cache<br />
1 Quad Core <br />
4 to 8gb Ram (an ideal configuration) .<br />
146gb HDD (default) - This configuration can be changed, based on various factors.<br />
<br />
The following packages is mandatory for Enterprise Linux : GNOME Desktop Environment ,Graphical Internet, X Window System ,Editors , Development Tools ,Server Configuration Tools,System Tools and Administration Tools.<br />
<br />
You can download the software, subject to Oracle Licensing.<br />
<br />
<a href="http://www.oracle.com/technology/software/products/database/index.html" target="_blank">[font=&quot]http://www.oracle.com/technology/software/products/database/index.html[/font]</a><br />
<br />
Standard Edition One – support upto 2 cpu<br />
Standard Edition – support upot 4 cpu<br />
Enterprise Edition – unlimited.<br />
(11.2.0.1.0) Linux x86 | <a href="http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_2of2.zip" target="_blank">Disk 2</a>(2.1 GB) <br />
<br />
Set the Linux Kernal Parameters:<br />
Linux Kernel Parameters<br />
<span style="text-decoration: underline;"><br />
</span></span><br />
<span style="font-size: small;">What is the <span style="text-decoration: underline;">Shared Memory ( reference with various linux/unix sites for these parameters.):</span><br />
<br />
<span style="color: black;">The shared memory will hve huge impact on Oracle Performance. So very carefully to be handled.</span><br />
<br />
<span style="color: black;">Shared memory allows processes to access common structures and data by placing them in shared memory segments. It's the fastest form of IPC (Interprocess Communication) available since no kernel involvement occurs when data is passed<br />
between the processes. </span><br />
<span style="color: black;">Oracle uses shared memory segments for the SGA (Shared Global Area) which is an area of memory that is shared by all Oracle background and foreground processes.</span><br />
<span style="color: black;"> </span><br />
<span style="font-weight: bold;"><span style="color: black;">Setting SHMMAX Parameter</span></span><span style="color: black;"> <br />
<br />
This parameter defines the maximum size in bytes for a shared memory segment.<br />
Since the SGA is comprised of shared memory, SHMMAX can potentially limit the size of the SGA.</span><br />
<br />
<span style="font-weight: bold;"><span style="color: black;">Setting SHMMNI Parameter</span></span><span style="color: black;"> <br />
This parameter sets the maximum number of shared memory segments system wide.</span><br />
<br />
<span style="font-weight: bold;"><span style="color: black;">Setting SHMALL Parameter</span></span><span style="color: black;"> <br />
This parameter sets the total amount of shared memory in bytes that can be used at one time on the system.</span><br />
<br />
<span style="font-weight: bold;"><span style="color: black;">The SEMMSL Parameter</span></span><span style="color: black;"> <br />
This parameter defines the maximum number of semaphores per semaphore set. <br />
Oracle recommends to set SEMMSL to the largest PROCESSES init.ora parameter of any database on the Linux system.</span><br />
<br />
<span style="font-weight: bold;"><span style="color: black;">The SEMMNI Parameter</span></span><span style="color: black;"> <br />
This parameter defines the maximum number of semaphore sets in the entire Linux system. <br />
</span><br />
<span style="font-weight: bold;"><span style="color: black;">The SEMMNS Parameter</span></span><span style="color: black;"> <br />
This parameter defines the total number of semaphores (not semaphore set) in the entire Linux system.</span><br />
<br />
<span style="font-weight: bold;">The SEMOPM Parameter</span> <br />
This parameter defines the maximum number of semaphore operations that can be performed per [font=&amp;quot]semop(2)[/font] system call. <br />
<br />
<span style="font-weight: bold;"><span style="text-decoration: underline;"><span style="color: blue;">Setting File Handles</span></span></span><span style="font-weight: bold;"><span style="color: black;"></span></span><br />
<span style="color: black;">The maximum number of file handles denotes the maximum number of open files that you can have on the Linux system. <br />
<br />
</span><span style="font-weight: bold;"><span style="color: black;">Setting System Wide Limit for File Handles</span></span><span style="color: black;"> <br />
<br />
The value in </span>/proc/sys/fs/file-max sets the maximum number of file handles or open files that the Linux kernel will allocate. When you get error messages about running out of file handles, then you might want to raise this limit.<br />
Change the parameters:<br />
<span style="color: black;"><br />
</span></span><br />
<span style="font-size: small;"><span style="color: black;">Copy sysctl.conf</span><br />
<span style="color: black;">cp sysctl.conf<br />
sysctl.confold</span><br />
<br />
<span style="color: black;">Cd /etc</span><br />
<br />
<span style="color: black;">Vi sysctl.conf</span><br />
<br />
<span style="color: black;">Add the following:</span><br />
kernel.shmmax = 2147483648 <br />
kernel.shmall = 2097152<br />
kernel.shmmni = 4096<br />
kernel.sem = 250 32000 100 128<br />
fs.file-max = 65536 # 512 * PROCESSES<br />
net.core.rmem_default=4194304<br />
net.core.rmem_max=4194304<br />
net.core.wmem_default=262144<br />
net.core.wmem_max=262144<br />
net.ipv4.ip_local_port_range = 1024 65000<br />
<br />
Press Esc :wq<br />
<br />
Change the Hosts File Entry<br />
<br />
</span><br />
<span style="font-size: small;">Cd<br />
/etc<br />
<br />
Cp hosts hostsold<br />
<br />
Vi hosts<br />
IP-address Machinename.domainname Hostname<br />
<br />
Press Esc and :wq<br />
Go to /etc/security (cd /etc/security)<br />
Vi limits.conf<br />
Add or change /etc/security/limits.conf file:<br />
oracle soft nofile 1024<br />
oracle hard nofile 65536<br />
oracle soft nproc 2047<br />
oracle hard nproc 16384<br />
to save Esc :wq<br />
<br />
Go to /etc/pam.d (cd /etc/pam.d)<br />
Vi login<br />
Add or change line to the /etc/pam.d/login file<br />
<br />
</span><br />
<span style="font-size: small;">session required pam_limits.so<br />
session required /lib/security/pam_limits.so<br />
to save Esc :wq<br />
<br />
Very important Steps:<br />
On secure linux has to be disabled:<br />
Go to /etc/selinux(cd /etc/selinux)<br />
Vi config Change or add<br />
SELINUX=disabled<br />
to save Esc :wq<br />
<br />
The following packages(rpm) required for Enterprise Linux 5.0 on various cd’s :<br />
Insert the cd<br />
and mount the same<br />
Go to cd /media/cdrom/Server (cd /media/cdrom/Server)<br />
(carefully use –force and –nodeps)<br />
<br />
rpm -Uvh binutils-2.17.50.0.6<br />
rpm -Uvh compat-libstdc++-33-3.2.3<br />
rpm -Uvh elfutils-libelf-0.125<br />
rpm -Uvh elfutils-libelf-devel-0.125<br />
rpm -Uvh elfutils-libelf-devel-static-0.125<br />
rpm -Uvh gcc-4.1.2<br />
rpm -Uvh gcc-c++-4.1.2<br />
rpm -Uvh glibc-2.5-24<br />
rpm -Uvh glibc-common-2.5<br />
rpm -Uvh glibc-devel-2.5<br />
rpm -Uvh glibc-headers-2.5<br />
rpm -Uvh kernel-headers-2.6.18<br />
rpm -Uvh ksh-20060214<br />
rpm -Uvh libaio-0.3.106<br />
rpm -Uvh libaio-devel-0.3.106 <br />
rpm -Uvh libgcc-4.1.2<br />
rpm -Uvh libgomp-4.1.2<br />
rpm -Uvh libstdc++-4.1.2 <br />
rpm -Uvh libstdc++-devel-4.1.2<br />
rpm -Uvh make-3.81<br />
rpm -Uvh sysstat-7.0.2<br />
rpm -Uvh unixODBC-2.2.11<br />
rpm -Uvh unixODBC-devel-2.2.11<br />
<br />
</span><br />
<span style="font-size: small;">eject or unmount<br />
<br />
<span style="font-weight: bold;"> </span>Linux Enterprise Server 11 - SUSE:<br />
<br />
rpm -Uvh binutils-2.19<br />
rpm -Uvh gcc-4.3<br />
rpm -Uvh gcc-c++-4.3<br />
rpm -Uvh glibc-2.9<br />
rpm -Uvh glibc-devel-2.9<br />
rpm -Uvh ksh-93t<br />
rpm -Uvh libstdc++33-3.3.3<br />
rpm -Uvh libstdc++43-4.3.3_20081022<br />
rpm -Uvh libstdc++43-devel-4.3.3_20081022<br />
rpm -Uvh libaio-0.3.104<br />
rpm -Uvh libaio-devel-0.3.104<br />
rpm -Uvh libgcc43-4.3.3_20081022<br />
rpm -Uvh libstdc++-devel-4.3<br />
rpm -Uvh make-3.81<br />
rpm -Uvh sysstat-8.1.5<br />
<br />
Create user and groups<br />
Adding Groups<br />
<br />
groupadd oinstall<br />
groupadd dba<br />
groupadd asmadmin<br />
Adding user and assign the group:<br />
useradd -g oinstall -G dba,oper,asmadmin oracle<br />
Add password for Oracle user<br />
passwd oracle<br />
<br />
I would like to light on the "asmadmin" group is used for ASM.<br />
Make directories in which the Oracle Binary to be installed:<br />
<br />
mkdir -p /data1/app/oracle/product/11/db_1<br />
chown -R oracle:oinstall /data1<br />
chmod -R 777 /data1<br />
<br />
Shutdown or<br />
reboot the machine<br />
<br />
Login as Oracle <br />
Change/add user enviroment<br />
Go to /home/oracle<br />
Vi .bash_profile<br />
Add the following:<br />
ORACLE_HOSTNAME=machinename.domainname<br />
ORACLE_BASE=/data1/app/oracle; export ORACLE_BASE<br />
ORACLE_HOME=&#36;ORACLE_BASE/product/11.2/db_1; export ORACLE_HOME<br />
ORACLE_SID=orcl; export ORACLE_SID<br />
ORACLE_TERM=xterm; export ORACLE_TERM<br />
PATH=/usr/sbin:&#36;PATH; export PATH<br />
PATH=&#36;ORACLE_HOME/bin:&#36;PATH; export PATH<br />
LD_LIBRARY_PATH=&#36;ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH<br />
CLASSPATH=&#36;ORACLE_HOME/JRE:&#36;ORACLE_HOME/jlib:&#36;ORACLE_HOME/rdbms/jlib; export CLASSPATH<br />
<br />
if [ &#36;USER = "oracle" ]; then<br />
if [ &#36;SHELL = "/bin/ksh" ]; then<br />
ulimit -p 16384<br />
ulimit -n 65536<br />
else<br />
ulimit -u 16384 -n 65536<br />
fi<br />
fi<br />
Press Esc key :wq<br />
<br />
Log out<br />
<br />
Login as Oracle user<br />
<br />
Run Install<br />
Steps:<br />
Set the Display first<br />
export DISPLAY=hostname:0.0<br />
Or<br />
DISPAY=HOSTNAME:0.0<br />
export<br />
DISPLAY<br />
Go setup Disk directory<br />
Cd Disk1<br />
./runInstaller<br />
<br />
</span><br />
<span style="font-size: small;">Rest follow the GUI provided by Oracle</span><span style="font-size: small;"></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Installation of Oracle eBusiness Suite R12.1.1]]></title>
			<link>http://www.oraerp.com/Thread-Installation-of-Oracle-eBusiness-Suite-R12-1-1</link>
			<pubDate>Sat, 08 Dec 2012 07:44:59 -0600</pubDate>
			<guid isPermaLink="false">http://www.oraerp.com/Thread-Installation-of-Oracle-eBusiness-Suite-R12-1-1</guid>
			<description><![CDATA[<span style="font-size: small;"><span style="color: #333333;"><span style="font-family: Verdana;">In continuation of my previous post </span></span><span style="font-weight: bold;"><span style="color: black;"><span style="font-family: Tahoma;"><a href="http://www.oraerp.com/Thread-How-to-install-Red-Hat-Enterprise-Linux-for-Oracle-eBusiness-Suite-R12-1-1" target="_blank"><span style="color: #0000ff;">How to install Red Hat Enterprise Linux for Oracle eBusiness Suite R12.1.1</span></a></span></span></span><br />
<span style="color: #333333;"></span><br />
<span style="color: #333333;"><span style="font-family: Verdana;">Following updates are done in the document v1.1</span></span><br />
</span><ul>
<li><span style="color: #333333;"><span style="font-size: small;"><span style="font-family: Verdana;">Redhat Linux Installation</span></span></span></li>
<li><span style="color: #333333;"><span style="font-size: small;"><span style="font-family: Verdana;">Pre-requisite/Preparation for Oracle eBusiness suite R12.1.1</span></span></span></li>
<li><span style="color: #333333;"><span style="font-size: small;"><span style="font-family: Verdana;">Readiness with Oracle EBS R12 software from Media or eDelivery</span></span></span></li>
<li><span style="color: #333333;"><span style="font-size: small;"><span style="font-family: Verdana;">Installation of Oracle eBusiness suite R12.1.1</span></span></span></li></ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/pdf.gif" border="0" alt=".pdf" />&nbsp;&nbsp;<a href="attachment.php?aid=43" target="_blank">Redhat Linux Installation for Oracle E-Business Suite R12 v1.1.pdf</a> (Size: 2.38 MB / Downloads: 115)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<span style="font-size: small;"><span style="color: #333333;"><span style="font-family: Verdana;">In continuation of my previous post </span></span><span style="font-weight: bold;"><span style="color: black;"><span style="font-family: Tahoma;"><a href="http://www.oraerp.com/Thread-How-to-install-Red-Hat-Enterprise-Linux-for-Oracle-eBusiness-Suite-R12-1-1" target="_blank"><span style="color: #0000ff;">How to install Red Hat Enterprise Linux for Oracle eBusiness Suite R12.1.1</span></a></span></span></span><br />
<span style="color: #333333;"></span><br />
<span style="color: #333333;"><span style="font-family: Verdana;">Following updates are done in the document v1.1</span></span><br />
</span><ul>
<li><span style="color: #333333;"><span style="font-size: small;"><span style="font-family: Verdana;">Redhat Linux Installation</span></span></span></li>
<li><span style="color: #333333;"><span style="font-size: small;"><span style="font-family: Verdana;">Pre-requisite/Preparation for Oracle eBusiness suite R12.1.1</span></span></span></li>
<li><span style="color: #333333;"><span style="font-size: small;"><span style="font-family: Verdana;">Readiness with Oracle EBS R12 software from Media or eDelivery</span></span></span></li>
<li><span style="color: #333333;"><span style="font-size: small;"><span style="font-family: Verdana;">Installation of Oracle eBusiness suite R12.1.1</span></span></span></li></ul>
<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/pdf.gif" border="0" alt=".pdf" />&nbsp;&nbsp;<a href="attachment.php?aid=43" target="_blank">Redhat Linux Installation for Oracle E-Business Suite R12 v1.1.pdf</a> (Size: 2.38 MB / Downloads: 115)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[How to install Red Hat Enterprise Linux for Oracle eBusiness Suite R12.1.1]]></title>
			<link>http://www.oraerp.com/Thread-How-to-install-Red-Hat-Enterprise-Linux-for-Oracle-eBusiness-Suite-R12-1-1</link>
			<pubDate>Sun, 12 Aug 2012 15:28:38 -0500</pubDate>
			<guid isPermaLink="false">http://www.oraerp.com/Thread-How-to-install-Red-Hat-Enterprise-Linux-for-Oracle-eBusiness-Suite-R12-1-1</guid>
			<description><![CDATA[<span style="color: #333333;">Long back I was doing Redhat Linux installation for myself on server or on Laptop with VMware and noted down all steps in my personal word docs; just thought to rearrange them and will publish here for community folks so what you will be getting in this doc is a typical RHEL 5 (Red Hat Enterprise Linux 5) installation. </span><br />
<span style="color: #333333;">It should be a good start for you, particularly who want to create his own environment for practise and learning and off course you can advance this process as per your environment and requirements.</span><br />
<span style="color: #333333;"> </span><br />
<span style="color: #333333;">In this document step by step installation with screenshots is covered with pre-requisite required for Oracle eBusiness suite R12.1.1 as per My Oracle Support note ID 761564.1</span><br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/pdf.gif" border="0" alt=".pdf" />&nbsp;&nbsp;<a href="attachment.php?aid=40" target="_blank">Redhat Linux Installation for Oracle E-Business Suite R12.pdf</a> (Size: 4.09 MB / Downloads: 169)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[<span style="color: #333333;">Long back I was doing Redhat Linux installation for myself on server or on Laptop with VMware and noted down all steps in my personal word docs; just thought to rearrange them and will publish here for community folks so what you will be getting in this doc is a typical RHEL 5 (Red Hat Enterprise Linux 5) installation. </span><br />
<span style="color: #333333;">It should be a good start for you, particularly who want to create his own environment for practise and learning and off course you can advance this process as per your environment and requirements.</span><br />
<span style="color: #333333;"> </span><br />
<span style="color: #333333;">In this document step by step installation with screenshots is covered with pre-requisite required for Oracle eBusiness suite R12.1.1 as per My Oracle Support note ID 761564.1</span><br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/pdf.gif" border="0" alt=".pdf" />&nbsp;&nbsp;<a href="attachment.php?aid=40" target="_blank">Redhat Linux Installation for Oracle E-Business Suite R12.pdf</a> (Size: 4.09 MB / Downloads: 169)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Oracle E-business Suite R-12 - Oracle Payable User Manual]]></title>
			<link>http://www.oraerp.com/Thread-Oracle-E-business-Suite-R-12-Oracle-Payable-User-Manual</link>
			<pubDate>Thu, 26 Jul 2012 15:44:08 -0500</pubDate>
			<guid isPermaLink="false">http://www.oraerp.com/Thread-Oracle-E-business-Suite-R-12-Oracle-Payable-User-Manual</guid>
			<description><![CDATA[Oracle Payable User Manual - Oracle E-business Suite R-12This document is to facilitate the user in day to day activity of entering invoices, making payments to Suppliers, creating bank accounts and for running the standard reports for the Accounts Payable module of Oracle Financials R12.<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/zip.gif" border="0" alt=".zip" />&nbsp;&nbsp;<a href="attachment.php?aid=39" target="_blank">Oracle E-Business Suite - Oracle Payables User Manual.zip</a> (Size: 7.58 MB / Downloads: 180)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Oracle Payable User Manual - Oracle E-business Suite R-12This document is to facilitate the user in day to day activity of entering invoices, making payments to Suppliers, creating bank accounts and for running the standard reports for the Accounts Payable module of Oracle Financials R12.<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/zip.gif" border="0" alt=".zip" />&nbsp;&nbsp;<a href="attachment.php?aid=39" target="_blank">Oracle E-Business Suite - Oracle Payables User Manual.zip</a> (Size: 7.58 MB / Downloads: 180)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Upgrade Oracle Applications from R12.1.1 to 12.1.2]]></title>
			<link>http://www.oraerp.com/Thread-Upgrade-Oracle-Applications-from-R12-1-1-to-12-1-2</link>
			<pubDate>Sat, 16 Jun 2012 08:44:59 -0500</pubDate>
			<guid isPermaLink="false">http://www.oraerp.com/Thread-Upgrade-Oracle-Applications-from-R12-1-1-to-12-1-2</guid>
			<description><![CDATA[How to upgrade Oracle Applications from R12.1.1 to 12.1.2 <br />
<br />
Download step by step guide from here<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/pdf.gif" border="0" alt=".pdf" />&nbsp;&nbsp;<a href="attachment.php?aid=38" target="_blank">Upgrade Oracle Applications from R12.1.1 to 12.1.2 by Abdul Rehman.pdf</a> (Size: 1.18 MB / Downloads: 155)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[How to upgrade Oracle Applications from R12.1.1 to 12.1.2 <br />
<br />
Download step by step guide from here<br /><!-- start: postbit_attachments_attachment -->
<br /><img src="images/attachtypes/pdf.gif" border="0" alt=".pdf" />&nbsp;&nbsp;<a href="attachment.php?aid=38" target="_blank">Upgrade Oracle Applications from R12.1.1 to 12.1.2 by Abdul Rehman.pdf</a> (Size: 1.18 MB / Downloads: 155)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[A Journey from Oracle E-Business Suite R12.1 to R12.2]]></title>
			<link>http://www.oraerp.com/Thread-A-Journey-from-Oracle-E-Business-Suite-R12-1-to-R12-2</link>
			<pubDate>Thu, 01 Dec 2011 06:15:56 -0600</pubDate>
			<guid isPermaLink="false">http://www.oraerp.com/Thread-A-Journey-from-Oracle-E-Business-Suite-R12-1-to-R12-2</guid>
			<description><![CDATA[What’s coming in the next major version of Oracle E-Business Suite 12.2?<br />
I will try to analyze architectural overview of the latest updates, installation and upgrade options, new configuration options, and new tools for hot-cloning and automated “lights out” cloning in R-12.2<br />
<span style="font-weight: bold;">Oracle E-Business Suite <span style="color: #ff0000;">12.1 Architecture</span></span><br />
<a href="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.1architecture.png" target="_blank"><img src="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.1architecture-300x160.png" border="0" alt="[Image: R12.1architecture-300x160.png]" /></a><br />
<span style="font-weight: bold;"><a href="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.1architecture2.png" target="_blank"><img src="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.1architecture2-300x202.png" border="0" alt="[Image: R12.1architecture2-300x202.png]" /></a>Oracle E-Business Suite <span style="color: #ff0000;">12.2 Architecture</span></span><br />
Release 12.2 will replace Oracle Containers for Java (OC4J) 10g with WebLogic Server 11g<br />
Release 12.2 Database tier will run RDBMS 11gR2 to support online patching<br />
<span style="font-weight: bold;"><span style="color: #ff0000;"><a href="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.2architecture1.png" target="_blank"><img src="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.2architecture1-300x153.png" border="0" alt="[Image: R12.2architecture1-300x153.png]" /></a></span></span><br />
<a href="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.2architecture2.png" target="_blank"><img src="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.2architecture2-300x159.png" border="0" alt="[Image: R12.2architecture2-300x159.png]" /></a><br />
There will be number of updates coming in release R12.2, from a technology stack perspective, EBS 12.2 will be notable for two things:<br />
1-Replacing Oracle Containers for Java (OC4J) 10g with WebLogic Server 11g<br />
EBS 12.2 will use WebLogic Server from Fusion Middleware 11g in place of OC4J 10g as part of the release’s internal technology stack. Other additional new Fusion Middleware 11g components used will include WebLogic JSP and UIX 11g<br />
2-Online Patching support via 11gR2 Edition-Based Redefinition<br />
EBS 12.2 will use the 11gR2 Database’s Edition-Based Redefinition features to provide support for Online Patching. Edition-Based Redefinition is really exciting new technology. From the <a href="http://download.oracle.com/docs/cd/E14072_01/appdev.112/e10471/adfns_editions.htm" target="_blank">11gR2 Application Developer’s Guide</a>:<br />
<span style="font-style: italic;">“Edition-based redefinition enables you to upgrade the database component of an application while it is in use, thereby minimizing or eliminating down time.</span><br />
<span style="font-style: italic;">“To upgrade an application while it is in use, you copy the database objects that comprise the application and redefine the copied objects in isolation. Your changes do not affect users of the application—they continue to run the unchanged application. When you are sure that your changes are correct, you make the upgraded application available to all users.”</span><br />
It is not released yet but It will include significant changes to the Application Server architecture, It will use RDBMS Version 11gR2 or higher, It will change Patching, Cloning, the User Experience<br />
<br />
Continue reading with the article on <a href="http://oraerp.com/blog/a-journey-from-oracle-e-business-suite-r12-1-to-r12-2/" target="_blank">http://oraerp.com/blog/a-journey-from-or...-to-r12-2/</a>]]></description>
			<content:encoded><![CDATA[What’s coming in the next major version of Oracle E-Business Suite 12.2?<br />
I will try to analyze architectural overview of the latest updates, installation and upgrade options, new configuration options, and new tools for hot-cloning and automated “lights out” cloning in R-12.2<br />
<span style="font-weight: bold;">Oracle E-Business Suite <span style="color: #ff0000;">12.1 Architecture</span></span><br />
<a href="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.1architecture.png" target="_blank"><img src="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.1architecture-300x160.png" border="0" alt="[Image: R12.1architecture-300x160.png]" /></a><br />
<span style="font-weight: bold;"><a href="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.1architecture2.png" target="_blank"><img src="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.1architecture2-300x202.png" border="0" alt="[Image: R12.1architecture2-300x202.png]" /></a>Oracle E-Business Suite <span style="color: #ff0000;">12.2 Architecture</span></span><br />
Release 12.2 will replace Oracle Containers for Java (OC4J) 10g with WebLogic Server 11g<br />
Release 12.2 Database tier will run RDBMS 11gR2 to support online patching<br />
<span style="font-weight: bold;"><span style="color: #ff0000;"><a href="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.2architecture1.png" target="_blank"><img src="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.2architecture1-300x153.png" border="0" alt="[Image: R12.2architecture1-300x153.png]" /></a></span></span><br />
<a href="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.2architecture2.png" target="_blank"><img src="http://oraerp.com/blog/wp-content/uploads/2011/11/R12.2architecture2-300x159.png" border="0" alt="[Image: R12.2architecture2-300x159.png]" /></a><br />
There will be number of updates coming in release R12.2, from a technology stack perspective, EBS 12.2 will be notable for two things:<br />
1-Replacing Oracle Containers for Java (OC4J) 10g with WebLogic Server 11g<br />
EBS 12.2 will use WebLogic Server from Fusion Middleware 11g in place of OC4J 10g as part of the release’s internal technology stack. Other additional new Fusion Middleware 11g components used will include WebLogic JSP and UIX 11g<br />
2-Online Patching support via 11gR2 Edition-Based Redefinition<br />
EBS 12.2 will use the 11gR2 Database’s Edition-Based Redefinition features to provide support for Online Patching. Edition-Based Redefinition is really exciting new technology. From the <a href="http://download.oracle.com/docs/cd/E14072_01/appdev.112/e10471/adfns_editions.htm" target="_blank">11gR2 Application Developer’s Guide</a>:<br />
<span style="font-style: italic;">“Edition-based redefinition enables you to upgrade the database component of an application while it is in use, thereby minimizing or eliminating down time.</span><br />
<span style="font-style: italic;">“To upgrade an application while it is in use, you copy the database objects that comprise the application and redefine the copied objects in isolation. Your changes do not affect users of the application—they continue to run the unchanged application. When you are sure that your changes are correct, you make the upgraded application available to all users.”</span><br />
It is not released yet but It will include significant changes to the Application Server architecture, It will use RDBMS Version 11gR2 or higher, It will change Patching, Cloning, the User Experience<br />
<br />
Continue reading with the article on <a href="http://oraerp.com/blog/a-journey-from-oracle-e-business-suite-r12-1-to-r12-2/" target="_blank">http://oraerp.com/blog/a-journey-from-or...-to-r12-2/</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Oracle e business suite, Generic Loader - FNDLOAD]]></title>
			<link>http://www.oraerp.com/Thread-Oracle-e-business-suite-Generic-Loader-FNDLOAD</link>
			<pubDate>Thu, 11 Aug 2011 16:29:57 -0500</pubDate>
			<guid isPermaLink="false">http://www.oraerp.com/Thread-Oracle-e-business-suite-Generic-Loader-FNDLOAD</guid>
			<description><![CDATA[<span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">Abstract:</span><br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">We will examine FNDLOAD configuration management process in Oracle E-Business Suite. We will briefly examine concepts for configuration,<br />
customization. This note will describe how to use the FNDLOAD and java XMLImporter and XDOLoader utilities. Along with example commands and sample unix scripts, we will review how to download and upload Oracle Application data.<br />
</span></span><br />
<span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">Data Synchronization?</span> <br />
<br />
Data Synchronization is a process in which some setup data would be synchronized, and this would be more important when you are working in Oracle application development/implementation project. The equally important that ATG data Migration takes place necessary to synchronize the data across databases instance during :<br />
<br />
· Installations (New descriptive flex field creations etc) <br />
<br />
· Upgrades (Apps upgrade etc.) <br />
<br />
· Maintenance (Value set changes etc.<br />
</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">FNDLOAD</span> -- The FNDLOAD utility is documented in Oracle Applications 11.5.7, 11.5.8, 11.5.9 System </span></span><span style="font-size: small;"><span style="font-family: Arial;">Administration Guides, Appendix C. Starting with 11.5.10, the documentation has been expanded in the System Administration Guide – Configuration manual, Appendix B. The documentation for Release 12 has 3 new pages for Folders Configuration File. </span></span><span style="font-size: small;"><span style="font-family: Arial;">Metalink notes are useful when you encounter an error or are not sure of the correct syntax or format for a specific use of FNDLOAD. Other good sources of documentation are Oracle blogs which can easily be found by entering the FNDLOAD command or error in google.<br />
</span></span><br />
<span style="font-size: small;"><span style="font-family: Arial;">“FNDLOAD is a Generic Loader” - FNDLOAD can be used to download application data from an Oracle Application instance into editable text file(.ldt file). The data, in the FNDLOAD .ldt file can then be uploaded into another Oracle Application instance. This .ldt file contains not only the<br />
actual data representing the object(s) being downloaded, but it also contains metadata about the structure of that data. <br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">The following diagram illustrates how FNDLOAD downloads data from an Oracle Application database according to a configuration (lct) file, and converts the data into a data file (ldt file) for subsequent uploading to another Application database.<br />
</span></span><br />
<span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">What can be done?</span> <br />
<br />
These are the extensive list which can be done through FNDLOAD <br />
· Concurrent Programs, Executables <br />
· Request Groups, Request Sets <br />
· Profile Options <br />
· Key and Descriptive Flexfields <br />
· Menus and Responsibilities <br />
· Forms and Form Functions/Personalizations<br />
· Attachments <br />
· Messages <br />
· Value Sets and Values <br />
· Lookup Types <br />
· User Responsibilities <br />
· Printer Definitions <br />
· FND Dictionary <br />
· Help Configuration <br />
· Document Sequences <br />
· Alerts <br />
· Concurrent Manager Schedules<br />
</span></span><span style="font-family: Arial;">[/font]<span style="font-family: Arial;"><span style="font-size: small;"><span style="color: black;">The FNDLOAD: Concurrent Program – FNDLOAD can be executed as a concurrent program.</span><br />
</span></span><span style="font-family: Arial;"></span><br />
<span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">FNDLOAD<br />
operates in one of two modes: </span><br />
Download or Upload<br />
</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">In the download mode</span>, data is downloaded from the database to a text file. <br />
</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">In the upload mode</span>, data is uploaded from a text file to the database. <br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">In both downloading and uploading, the structure of the data involved is described by the configuration file (lct file) and also the access methods to use to copy the data into or out of the database file. The same lct file is used for both uploading and downloading. Data structures<br />
supported by the loader include master-detail relationships and foreign key reference relationships.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">The FNDLOAD executable can be found in &#36;FND_TOP/bin and associated lct files are located in </span></span><span style="font-size: small;"><span style="font-family: Arial;">&#36;FND_TOP/admin/import/ or &#36;FND_TOP/patch/115/import for the most current version.<br />
</span></span><br />
<span style="font-size: small;"><span style="font-family: Arial;">FNDLOAD can be executed as a Concurrent Program or as a UNIX command line utility with the following format and parameters, as documented in the Oracle Application System Administrator’s Guide - Configuration:<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">FNDLOAD apps/pwd 0 Y mode configfile datafile entity [parameter....]<br />
Where:<br />
<apps/pwd> Apps schema / password<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">< 0 Y > Concurrent Program flags mode UPLOAD<br />
or DOWNLOAD<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;"><config file> Configuration lct file to use.<br />
See the FNDLOAD configuration table below for names of the lct files by seed data types.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;"><datafile> Name of ldt data file written out<br />
when the FNDLOAD runs. This file is then used in an FNDLOAD upload to load the downloaded data into another application instance.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;"><entity> Entities to upload or download.<br />
Specify a “-” to upload all entities on uploads.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;"><[param]> Zero or more additional parameters used to provide bind values in the access SQL. Each parameter is in the form NAME=Value (Look at the specific .lct file being used for more details for these parameters.)<br />
</span></span><span style="font-family: Arial;"></span><br />
<span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">Some advantages when using FNDLOAD</span> <br />
<br />
1. Because downloaded data is stored in a text file, version administration is possible <br />
2. There is nothing to worry to go to purchase because Investment = 0&#36; <br />
3. No learning curve. this is relief for developer and dba <br />
4. Fully supported and recommended by Oracle <br />
5. Capture the migrations in a file and use it during installations, clones etc. to migrate in batch <br />
6. Pin-point when something happened and where (database) easily <br />
7. Your AOL data migration process is now simplified and streamlined goal attained <br />
</span></span><span style="font-family: Arial;"></span><br />
<span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">Some disadvantages when using FNDLOAD</span> <br />
<br />
1. Applications patching mechanisms use FNDLOAD heavily possibility of negative impact is not zero <br />
2. UPLOAD_MODE=REPLACE only for menus <br />
</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="color: black;">3. No validation against migrating database/instance sensitive data </span><br />
</span></span><span style="font-family: Arial;"></span><br />
[font=Arial]<span style="font-size: small;"><span style="font-weight: bold;">Some sample examples:</span><br />
MENU:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afsload.lct menu.ldt MENU MENU_NAME=BOM_NAV<br />
<br />
FUNCTION:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afsload.lct function.ldt FUNCTION FUNCTION_NAME=INV_INVTTMTX<br />
<br />
FORM:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afsload.lct form.ldt FORM FORM_NAME=&#36;{shortname}<br />
<br />
PERSONALIZATION:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/affrmcus.lct formpersonalization.ldt FND_FORM_CUSTOM_RULES function_name=&#36;{shortname}<br />
<br />
PRINTER:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afcppstl.lct printer.ldt STYLE PRINTER_STYLE_NAME=&#36;{shortname}<br />
<br />
CONCURRENT:<br />
FNDLOAD apps/apps 0 Y DOWNLOAD &#36;FND_TOP/patch/115/import/afcpprog.lct concprog.ldt PROGRAM<br />
CONCURRENT_PROGRAM_NAME=&#36;{shortname}<br />
<br />
LOOKUP:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/aflvmlu.lct lookup.ldt<br />
FND_LOOKUP_TYPE APPLICATION_SHORT_NAME="FND"<br />
LOOKUP_TYPE=&#36;{shortname}<br />
<br />
RESPONSIBILITY:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/admin/import/afscursp.lct responsible.ldt<br />
FND_RESPONSIBILITY RESP_KEY="&#36;{respkey}"<br />
<br />
DESCFLEX:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afffload.lct &#36;{shortname}_flex.ldt<br />
DESC_FLEX DESCRIPTIVE_FLEXFIELD_NAME=&#36;{shortname}<br />
<br />
KEYFLEX:<br />
FNDLOAD apps/&#36;PASSWD O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afffload.lct keyflex.ldt KEY_FLEX<br />
P_LEVEL='COL_ALL:FQL_ALL:SQL_ALL:STR_ONE:WFP_ALL:SHA_ALL:<br />
CVR_ALL:SEG_ALL'<br />
APPLICATION_SHORT_NAME=&#36;{appshortname}<br />
ID_FLEX_CODE=MCAT<br />
P_STRUCTURE_CODE=&#36;{shortname}<br />
<br />
VALUE:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afffload.lct valset.ldt VALUE_SET<br />
FLEX_VALUE_SET_NAME=&#36;{shortname}<br />
<br />
PROFILE:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afscprof.lct profile.ldt PROFILE<br />
PROFILE_NAME=&#36;{shortname}<br />
<br />
MESSAGE:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afmdmsg.lct message.ldt<br />
FND_NEW_MESSAGES MESSAGE_NAME=&#36;{shortname}<br />
<br />
REQUEST GROUP: <br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afcpreqg.lct reqgrp.ldt<br />
REQUEST_GROUP REQUEST_GROUP_NAME=&#36;{shortname}<br />
<br />
REQUEST SET:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afcprset.lct rqstset.ldt REQ_SET<br />
APPLICATION_SHORT_NAME="FND" REQUEST_SET_NAME=&#36;{shortname}<br />
<br />
WEBADI:<br />
FNDLOAD apps/apps 0 Y DOWNLOAD &#36;BNE_TOP/admin/import/bnelay.lct XX_C_O_F_T.ldt BNE_LAYOUTS<br />
LAYOUT_ASN="PER" LAYOUT_CODE="XX_C_O_F_T"<br />
<br />
Blob:<br />
</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="color: black;">With Release 12.1.1, FNDLOAD supports BLOB data (upload / download ) to better serve content-rich applications.</span><br />
FNDLOAD apps/pwd 0 Y mode configfile datafile entity [ param ... ]<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;"> </span></span><br />
<span style="font-size: small;"><span style="font-family: Arial;">Several different errors can occur when using FNDLOAD, so use attentiveness to review results and logs when using this utility. The FNDLOAD program can fail when the ldt file used to download and the corresponding lct file used to upload are not compatible.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Other Oracle Utilities – Similar to FNDLOAD, other Oracle Development tools, like the XML Publisher and </span></span><span style="font-size: small;"><span style="font-family: Arial;">JDeveloper, also have Oracle Application utilities that can be used to download and/or upload application data.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">These tools are supported by the java XML and XDO Loader utilities, which can be used to migrate additional types of Application<br />
entities among your instances. Finally, AD administration tasks are sometimes needed to support post-upload requirements for some entities.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Developers can use the XML Publisher to create XML reports for Oracle Applications. In the Apps, navigate to the XML Publisher<br />
Administrator responsibility, then to Templates and Data Definition web pages. Use these web pages to register custom XML reports and upload your report's physical template file from your client, or you can use two command line utilities to automate moving XML report registration and the report’s physical files among instances. FNDLOAD will download and upload XML report data definitions and template metadata. The XDOLoader utility is a Java-based command line program to download and/or upload the physical template (RTF, PDF,<br />
XSL-FO, XML, and XSD) files from/to the XML Publisher database tables. The following examples show the FNDLOAD and XDO Loader commands to download/upload XML report data:<br />
Data definition and template registration:<br />
FNDLOAD apps/</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="font-style: italic;">apps </span>O Y DOWNLOAD &#36;XDO_TOP/patch/115/import/xdotmpl.lct tmpl.ldt<br />
XDO_DS_DEFINITIONS<br />
APPLICATION_SHORT_NAME=<span style="font-style: italic;">custom application name</span><br />
DATA_SOURCE_CODE=</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="font-style: italic;">code<br />
name</span><br />
Physical template files:<br />
java<br />
oracle.apps.xdo.oa.util.XDOLoader DOWNLOAD -DB_USERNAME apps -<br />
DB_PASSWORD xxxx -JDBC_CONNECTION<br />
'(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hostname)(PORT=1561))(CONNECT_DATA<br />
=(SERVICE_NAME=SID)))'<br />
-LOB_TYPE TEMPLATE -APPS_SHORT_NAME XXLM -LANGUAGE en<br />
-lct_FILE<br />
&#36;XDO_TOP/patch/115/import/xdotmpl.lct</span></span><br />
<span style="font-size: small;"><span style="font-family: Arial;">Developers can use JDeveloper to modify existing OA Framework pages or create new custom web pages. The web pages can then be downloaded and/or uploaded from one Oracle Application instance to another using the Java Exporter and/or Importer utility. OA Framework pages also have file system class and jar files which can be migrated by zipping your custom directories, using ftp to copy these files, and unzipping them into your other instance's &#36;APPL_TOP before running the XML Importer.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">The following is a sample Java XML Importer command to load xml pages:<br />
XML PAGES:<br />
java<br />
oracle.jrad.tools.xml.importer.XMLImporter<br />
&#36;XXLM_TOP/oracle/apps/xxlm/&#36;{shortname}/webui/<br />
-username apps -password<br />
&#36;password -rootdir<br />
&#36;XXLM_TOP -DBCONNECTION "<span style="font-style: italic;">hostname:dbportid</span>"<br />
-jdk13 -<br />
mmddir &#36;OA_HTML/jrad<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Once uploaded and prior to being used, some entities require AD administration tasks to be executed. For example, uploading messages requires the maintenance step of ‘Generate Message Files’. Before AD administration can be used non-interactively, a defaults file must be created interactively. eg: adadmin defaultsfile=&#36;APPL_TOP/admin/testdb1/adadmindef.txt<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Once created, this defaults file is used in the non-interactive call to adadmin:<br />
adadmin interactive=n defaultsfile=&#36;APPL_TOP/admin/testdb1/adadmindef.txt<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">For details, see “Oracle Applications Maintenance Procedures.”<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Utility download script – Running FNDLOAD, and other similar utilities, from a UNIX script allows you to </span></span><span style="font-size: small;"><span style="font-family: Arial;">easily integrate the use of the download/upload utilities for your Oracle Applications data, e.g., registration of forms/reports/value sets, etc., for code promotion with the configuration management and promotion of your UNIX file system objects, e.g, your forms (fmb), reports (rdf), etc.<br />
Any execution of FNDLOAD assumes the Oracle </span></span><span style="font-size: small;"><span style="font-family: Arial;">Application environment has previously been set.<br />
The code segment below is one example of how to call FNDLOAD within a korn shell script.<br />
##<br />
## assumes APPS environment is properly set<br />
## and other shell variables previously defined<br />
##<br />
##<br />
## Prompt for type and parameter value<br />
##<br />
echo "Enter a category<br />
(MENU,FUNCTION,PERSONALIZATION,PRINTER,CONCURRENT,LOOKUP,RESPONSIBILITY,FORM, DESCFLEX, KEYFLEX, VALUE, PROFILE, REQGROUP, REQSET,MESSAGE,XML,XDO,IMPORTER):"<br />
read category<br />
if [ -z<br />
"&#36;category" ] ; then<br />
exit<br />
else<br />
typeset -u category<br />
echo "Using<br />
category" &#36;category | tee -a &#36;{LOGFILE}<br />
fi<br />
##<br />
## determine appropriate user input prompt<br />
case &#36;category in<br />
'REQGROUP')<br />
parm_prompt="Please<br />
enter a request group."<br />
;;<br />
'RESPONSIBILITY')<br />
parm_prompt="Please enter a responsibility key (include _ underscore for spaces)." ;;*)<br />
parm_prompt="Entera short name."<br />
esac<br />
## Get input from user<br />
echo &#36;parm_prompt<br />
read shortname<br />
if [ -z<br />
"&#36;shortname" ] ; then<br />
echo &#36;parm_prompt<br />
exit<br />
fi<br />
respkey=&#36;shortname<br />
## log files from<br />
FNDLOAD execution are not ‘well named’<br />
## this is one attempt to identify a new file <br />
## Get initial list of<br />
*log files<br />
ls *log ><br />
&#36;{WORK_FILE1} 2>/dev/null<br />
##<br />
## execute appropriate form of FNDLOAD<br />
##<br />
case &#36;category in<br />
'MENU')<br />
FNDLOAD apps/&#36;PASSWD O<br />
Y DOWNLOAD &#36;FND_TOP/patch/115/import/afsload.lct<br />
&#36;{shortname}_menu.ldt<br />
MENU MENU_NAME=&#36;{shortname}<br />
;;<br />
'PERSONALIZATION')<br />
FNDLOAD apps/&#36;PASSWD O<br />
Y DOWNLOAD &#36;FND_TOP/patch/115/import/affrmcus.lct<br />
&#36;{shortname}_formpersonalization.ldt<br />
FND_FORM_CUSTOM_RULES<br />
function_name=&#36;{shortname}<br />
;;<br />
'XML')<br />
FNDLOAD apps/&#36;PASSWD O<br />
Y DOWNLOAD &#36;XDO_TOP/patch/115/import/xdotmpl.lct<br />
&#36;{shortname}_tmpl.ldt<br />
XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXLM<br />
DATA_SOURCE_CODE=&#36;{shortname}<br />
;;<br />
'XDO')<br />
java<br />
oracle.apps.xdo.oa.util.XDOLoader DOWNLOAD -DB_USERNAME apps -<br />
DB_PASSWORD &#36;PASSWD<br />
-JDBC_CONNECTION<br />
'(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=&#36;EMACH)(PORT=&#36;EPORT))(CONNECT_DATA<br />
=(SERVICE_NAME=&#36;TWO_TASK)))'<br />
-LOB_TYPE TEMPLATE_SOURCE -APPS_SHORT_NAME XXLM<br />
-LOB_CODE &#36;{shortname}<br />
-LANGUAGE en -TERRITORY US -XDO_FILE_TYPE RTF -<br />
FILE_CONTENT_TYPE<br />
'application/rtf' -FILE_NAME &#36;{shortname}.rtf -NLS_LANG<br />
ENGLISH_UNITED_STATES.WE8ISO8859P1<br />
&#36;XDO_TOP/patch/115/import/xdotmpl.lct<br />
;;<br />
##<br />
## additional FNDLOAD command lines for each of the different<br />
## categories of applications entities<br />
##<br />
*)<br />
echo<br />
echo You entered an incorrect category. Valid categories are:<br />
echo MENU, FUNCTION, PRINTER, CONCURRENT, LOOKUP, RESPONSIBILITY DESCFLEX, KEYFLEX, VALUE, PROFILE, REQGROUP, REQSET, XML, XDO;;<br />
esac<br />
sleep 1<br />
## Additional work to attempt to identify the most recently<br />
## created log file<br />
##<br />
## get new list of log<br />
files<br />
ls *log ><br />
&#36;{WORK_FILE2}<br />
## find name of newly<br />
created log file (from concurrent mgr process)<br />
FND_LOG=`diff<br />
&#36;{WORK_FILE1} &#36;{WORK_FILE2} | grep \> | cut -c3-`<br />
echo "Logfile<br />
is:" &#36;{FND_LOG} | tee -a &#36;{LOGFILE}<br />
## look for obvious<br />
success or failure tokens<br />
grep<br />
"successfully" &#36;{FND_LOG} | tee -a &#36;{LOGFILE}<br />
grep "ORA-"<br />
&#36;{FND_LOG} | tee -a &#36;{LOGFILE}<br />
<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">This code interactively prompts the user for the type and name of the entity that will be downloaded. It also uses the name (‘shortname’ parameter) to help label the created .ldt file along with its entity type. This naming convention helps to keep track of which ldt files contain which entities. An upload script for these files would look very similar. The script could be extended or used in conjunction with other scripts to implement a simple configuration process.<br />
<br />
<br />
References:<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Note: 274667.1 FNDLOAD Commands to Download Different Seed Data Types.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Note: 287417.1 Parameters Of Different Configuration Files To Download And Upload Seed Data Types.<br />
</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="color: black;">Note: 256573.1 How To Download/Upload Descriptive Flexfield With Name &#36;SRS&#36;</span><br />
EBS Release 11.5.10.2+</span></span><span style="color: black;"><span style="font-size: small;"><span style="font-family: Arial;"> : </span></span><a href="http://download.oracle.com/docs/cd/B25516_18/current/acrobat/115sacg.zip" target="_blank"><span style="color: blue;"><span style="font-size: small;"><span style="font-family: Arial;">Oracle Applications System Administrator's Guide - Configuration</span></span></span></a></span><br />
<span style="font-size: small;"><span style="font-family: Arial;">EBS Release 12.0.4+</span></span><span style="color: black;"><span style="font-size: small;"><span style="font-family: Arial;"> : </span></span><a href="http://download.oracle.com/docs/cd/B40089_10/current/acrobat/120sacg.pdf" target="_blank"><span style="color: blue;"><span style="font-size: small;"><span style="font-family: Arial;">Oracle Applications System Administrator's Guide - Configuration</span></span></span></a></span><br />
<span style="font-size: small;"><span style="font-family: Arial;">EBS Release 12.1.3</span></span><span style="color: black;"><span style="font-size: small;"><span style="font-family: Arial;"> : </span></span><a href="http://download.oracle.com/docs/cd/B53825_08/current/acrobat/121sacg.pdf" target="_blank"><span style="color: blue;"><span style="font-size: small;"><span style="font-family: Arial;">Oracle Applications System Administrator's Guide - Configuration</span></span></span></a></span><br />
<span style="font-size: small;"><span style="font-family: Arial;">Customization Survival Guide: How to Use E-Business Utilities to Migrate Your Custom Code, <span style="font-style: italic;">Brad Simmons and Donna Campbell,</span></span></span><span style="font-size: small;"><span style="font-style: italic;"><span style="font-family: Arial;">Los Alamos<br />
National Laboratory document </span></span><br />
</span><span style="font-size: small;"><span style="font-family: Arial;">Tips About FNDLOAD [ID 735338.1]<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Is It Possible To Use FNDLOAD To Migrate Configurations Or Data To Another Instance? [ID 1316916.1]<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">How To Use XDOLoader to Manage, Download and Upload Files? [ID 469585.1]<br />
</span></span>]]></description>
			<content:encoded><![CDATA[<span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">Abstract:</span><br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">We will examine FNDLOAD configuration management process in Oracle E-Business Suite. We will briefly examine concepts for configuration,<br />
customization. This note will describe how to use the FNDLOAD and java XMLImporter and XDOLoader utilities. Along with example commands and sample unix scripts, we will review how to download and upload Oracle Application data.<br />
</span></span><br />
<span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">Data Synchronization?</span> <br />
<br />
Data Synchronization is a process in which some setup data would be synchronized, and this would be more important when you are working in Oracle application development/implementation project. The equally important that ATG data Migration takes place necessary to synchronize the data across databases instance during :<br />
<br />
· Installations (New descriptive flex field creations etc) <br />
<br />
· Upgrades (Apps upgrade etc.) <br />
<br />
· Maintenance (Value set changes etc.<br />
</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">FNDLOAD</span> -- The FNDLOAD utility is documented in Oracle Applications 11.5.7, 11.5.8, 11.5.9 System </span></span><span style="font-size: small;"><span style="font-family: Arial;">Administration Guides, Appendix C. Starting with 11.5.10, the documentation has been expanded in the System Administration Guide – Configuration manual, Appendix B. The documentation for Release 12 has 3 new pages for Folders Configuration File. </span></span><span style="font-size: small;"><span style="font-family: Arial;">Metalink notes are useful when you encounter an error or are not sure of the correct syntax or format for a specific use of FNDLOAD. Other good sources of documentation are Oracle blogs which can easily be found by entering the FNDLOAD command or error in google.<br />
</span></span><br />
<span style="font-size: small;"><span style="font-family: Arial;">“FNDLOAD is a Generic Loader” - FNDLOAD can be used to download application data from an Oracle Application instance into editable text file(.ldt file). The data, in the FNDLOAD .ldt file can then be uploaded into another Oracle Application instance. This .ldt file contains not only the<br />
actual data representing the object(s) being downloaded, but it also contains metadata about the structure of that data. <br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">The following diagram illustrates how FNDLOAD downloads data from an Oracle Application database according to a configuration (lct) file, and converts the data into a data file (ldt file) for subsequent uploading to another Application database.<br />
</span></span><br />
<span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">What can be done?</span> <br />
<br />
These are the extensive list which can be done through FNDLOAD <br />
· Concurrent Programs, Executables <br />
· Request Groups, Request Sets <br />
· Profile Options <br />
· Key and Descriptive Flexfields <br />
· Menus and Responsibilities <br />
· Forms and Form Functions/Personalizations<br />
· Attachments <br />
· Messages <br />
· Value Sets and Values <br />
· Lookup Types <br />
· User Responsibilities <br />
· Printer Definitions <br />
· FND Dictionary <br />
· Help Configuration <br />
· Document Sequences <br />
· Alerts <br />
· Concurrent Manager Schedules<br />
</span></span><span style="font-family: Arial;">[/font]<span style="font-family: Arial;"><span style="font-size: small;"><span style="color: black;">The FNDLOAD: Concurrent Program – FNDLOAD can be executed as a concurrent program.</span><br />
</span></span><span style="font-family: Arial;"></span><br />
<span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">FNDLOAD<br />
operates in one of two modes: </span><br />
Download or Upload<br />
</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">In the download mode</span>, data is downloaded from the database to a text file. <br />
</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">In the upload mode</span>, data is uploaded from a text file to the database. <br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">In both downloading and uploading, the structure of the data involved is described by the configuration file (lct file) and also the access methods to use to copy the data into or out of the database file. The same lct file is used for both uploading and downloading. Data structures<br />
supported by the loader include master-detail relationships and foreign key reference relationships.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">The FNDLOAD executable can be found in &#36;FND_TOP/bin and associated lct files are located in </span></span><span style="font-size: small;"><span style="font-family: Arial;">&#36;FND_TOP/admin/import/ or &#36;FND_TOP/patch/115/import for the most current version.<br />
</span></span><br />
<span style="font-size: small;"><span style="font-family: Arial;">FNDLOAD can be executed as a Concurrent Program or as a UNIX command line utility with the following format and parameters, as documented in the Oracle Application System Administrator’s Guide - Configuration:<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">FNDLOAD apps/pwd 0 Y mode configfile datafile entity [parameter....]<br />
Where:<br />
<apps/pwd> Apps schema / password<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">< 0 Y > Concurrent Program flags mode UPLOAD<br />
or DOWNLOAD<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;"><config file> Configuration lct file to use.<br />
See the FNDLOAD configuration table below for names of the lct files by seed data types.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;"><datafile> Name of ldt data file written out<br />
when the FNDLOAD runs. This file is then used in an FNDLOAD upload to load the downloaded data into another application instance.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;"><entity> Entities to upload or download.<br />
Specify a “-” to upload all entities on uploads.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;"><[param]> Zero or more additional parameters used to provide bind values in the access SQL. Each parameter is in the form NAME=Value (Look at the specific .lct file being used for more details for these parameters.)<br />
</span></span><span style="font-family: Arial;"></span><br />
<span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">Some advantages when using FNDLOAD</span> <br />
<br />
1. Because downloaded data is stored in a text file, version administration is possible <br />
2. There is nothing to worry to go to purchase because Investment = 0&#36; <br />
3. No learning curve. this is relief for developer and dba <br />
4. Fully supported and recommended by Oracle <br />
5. Capture the migrations in a file and use it during installations, clones etc. to migrate in batch <br />
6. Pin-point when something happened and where (database) easily <br />
7. Your AOL data migration process is now simplified and streamlined goal attained <br />
</span></span><span style="font-family: Arial;"></span><br />
<span style="font-family: Arial;"><span style="font-size: small;"><span style="font-weight: bold;">Some disadvantages when using FNDLOAD</span> <br />
<br />
1. Applications patching mechanisms use FNDLOAD heavily possibility of negative impact is not zero <br />
2. UPLOAD_MODE=REPLACE only for menus <br />
</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="color: black;">3. No validation against migrating database/instance sensitive data </span><br />
</span></span><span style="font-family: Arial;"></span><br />
[font=Arial]<span style="font-size: small;"><span style="font-weight: bold;">Some sample examples:</span><br />
MENU:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afsload.lct menu.ldt MENU MENU_NAME=BOM_NAV<br />
<br />
FUNCTION:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afsload.lct function.ldt FUNCTION FUNCTION_NAME=INV_INVTTMTX<br />
<br />
FORM:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afsload.lct form.ldt FORM FORM_NAME=&#36;{shortname}<br />
<br />
PERSONALIZATION:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/affrmcus.lct formpersonalization.ldt FND_FORM_CUSTOM_RULES function_name=&#36;{shortname}<br />
<br />
PRINTER:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afcppstl.lct printer.ldt STYLE PRINTER_STYLE_NAME=&#36;{shortname}<br />
<br />
CONCURRENT:<br />
FNDLOAD apps/apps 0 Y DOWNLOAD &#36;FND_TOP/patch/115/import/afcpprog.lct concprog.ldt PROGRAM<br />
CONCURRENT_PROGRAM_NAME=&#36;{shortname}<br />
<br />
LOOKUP:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/aflvmlu.lct lookup.ldt<br />
FND_LOOKUP_TYPE APPLICATION_SHORT_NAME="FND"<br />
LOOKUP_TYPE=&#36;{shortname}<br />
<br />
RESPONSIBILITY:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/admin/import/afscursp.lct responsible.ldt<br />
FND_RESPONSIBILITY RESP_KEY="&#36;{respkey}"<br />
<br />
DESCFLEX:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afffload.lct &#36;{shortname}_flex.ldt<br />
DESC_FLEX DESCRIPTIVE_FLEXFIELD_NAME=&#36;{shortname}<br />
<br />
KEYFLEX:<br />
FNDLOAD apps/&#36;PASSWD O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afffload.lct keyflex.ldt KEY_FLEX<br />
P_LEVEL='COL_ALL:FQL_ALL:SQL_ALL:STR_ONE:WFP_ALL:SHA_ALL:<br />
CVR_ALL:SEG_ALL'<br />
APPLICATION_SHORT_NAME=&#36;{appshortname}<br />
ID_FLEX_CODE=MCAT<br />
P_STRUCTURE_CODE=&#36;{shortname}<br />
<br />
VALUE:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afffload.lct valset.ldt VALUE_SET<br />
FLEX_VALUE_SET_NAME=&#36;{shortname}<br />
<br />
PROFILE:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afscprof.lct profile.ldt PROFILE<br />
PROFILE_NAME=&#36;{shortname}<br />
<br />
MESSAGE:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afmdmsg.lct message.ldt<br />
FND_NEW_MESSAGES MESSAGE_NAME=&#36;{shortname}<br />
<br />
REQUEST GROUP: <br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afcpreqg.lct reqgrp.ldt<br />
REQUEST_GROUP REQUEST_GROUP_NAME=&#36;{shortname}<br />
<br />
REQUEST SET:<br />
FNDLOAD apps/apps O Y DOWNLOAD &#36;FND_TOP/patch/115/import/afcprset.lct rqstset.ldt REQ_SET<br />
APPLICATION_SHORT_NAME="FND" REQUEST_SET_NAME=&#36;{shortname}<br />
<br />
WEBADI:<br />
FNDLOAD apps/apps 0 Y DOWNLOAD &#36;BNE_TOP/admin/import/bnelay.lct XX_C_O_F_T.ldt BNE_LAYOUTS<br />
LAYOUT_ASN="PER" LAYOUT_CODE="XX_C_O_F_T"<br />
<br />
Blob:<br />
</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="color: black;">With Release 12.1.1, FNDLOAD supports BLOB data (upload / download ) to better serve content-rich applications.</span><br />
FNDLOAD apps/pwd 0 Y mode configfile datafile entity [ param ... ]<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;"> </span></span><br />
<span style="font-size: small;"><span style="font-family: Arial;">Several different errors can occur when using FNDLOAD, so use attentiveness to review results and logs when using this utility. The FNDLOAD program can fail when the ldt file used to download and the corresponding lct file used to upload are not compatible.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Other Oracle Utilities – Similar to FNDLOAD, other Oracle Development tools, like the XML Publisher and </span></span><span style="font-size: small;"><span style="font-family: Arial;">JDeveloper, also have Oracle Application utilities that can be used to download and/or upload application data.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">These tools are supported by the java XML and XDO Loader utilities, which can be used to migrate additional types of Application<br />
entities among your instances. Finally, AD administration tasks are sometimes needed to support post-upload requirements for some entities.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Developers can use the XML Publisher to create XML reports for Oracle Applications. In the Apps, navigate to the XML Publisher<br />
Administrator responsibility, then to Templates and Data Definition web pages. Use these web pages to register custom XML reports and upload your report's physical template file from your client, or you can use two command line utilities to automate moving XML report registration and the report’s physical files among instances. FNDLOAD will download and upload XML report data definitions and template metadata. The XDOLoader utility is a Java-based command line program to download and/or upload the physical template (RTF, PDF,<br />
XSL-FO, XML, and XSD) files from/to the XML Publisher database tables. The following examples show the FNDLOAD and XDO Loader commands to download/upload XML report data:<br />
Data definition and template registration:<br />
FNDLOAD apps/</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="font-style: italic;">apps </span>O Y DOWNLOAD &#36;XDO_TOP/patch/115/import/xdotmpl.lct tmpl.ldt<br />
XDO_DS_DEFINITIONS<br />
APPLICATION_SHORT_NAME=<span style="font-style: italic;">custom application name</span><br />
DATA_SOURCE_CODE=</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="font-style: italic;">code<br />
name</span><br />
Physical template files:<br />
java<br />
oracle.apps.xdo.oa.util.XDOLoader DOWNLOAD -DB_USERNAME apps -<br />
DB_PASSWORD xxxx -JDBC_CONNECTION<br />
'(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hostname)(PORT=1561))(CONNECT_DATA<br />
=(SERVICE_NAME=SID)))'<br />
-LOB_TYPE TEMPLATE -APPS_SHORT_NAME XXLM -LANGUAGE en<br />
-lct_FILE<br />
&#36;XDO_TOP/patch/115/import/xdotmpl.lct</span></span><br />
<span style="font-size: small;"><span style="font-family: Arial;">Developers can use JDeveloper to modify existing OA Framework pages or create new custom web pages. The web pages can then be downloaded and/or uploaded from one Oracle Application instance to another using the Java Exporter and/or Importer utility. OA Framework pages also have file system class and jar files which can be migrated by zipping your custom directories, using ftp to copy these files, and unzipping them into your other instance's &#36;APPL_TOP before running the XML Importer.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">The following is a sample Java XML Importer command to load xml pages:<br />
XML PAGES:<br />
java<br />
oracle.jrad.tools.xml.importer.XMLImporter<br />
&#36;XXLM_TOP/oracle/apps/xxlm/&#36;{shortname}/webui/<br />
-username apps -password<br />
&#36;password -rootdir<br />
&#36;XXLM_TOP -DBCONNECTION "<span style="font-style: italic;">hostname:dbportid</span>"<br />
-jdk13 -<br />
mmddir &#36;OA_HTML/jrad<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Once uploaded and prior to being used, some entities require AD administration tasks to be executed. For example, uploading messages requires the maintenance step of ‘Generate Message Files’. Before AD administration can be used non-interactively, a defaults file must be created interactively. eg: adadmin defaultsfile=&#36;APPL_TOP/admin/testdb1/adadmindef.txt<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Once created, this defaults file is used in the non-interactive call to adadmin:<br />
adadmin interactive=n defaultsfile=&#36;APPL_TOP/admin/testdb1/adadmindef.txt<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">For details, see “Oracle Applications Maintenance Procedures.”<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Utility download script – Running FNDLOAD, and other similar utilities, from a UNIX script allows you to </span></span><span style="font-size: small;"><span style="font-family: Arial;">easily integrate the use of the download/upload utilities for your Oracle Applications data, e.g., registration of forms/reports/value sets, etc., for code promotion with the configuration management and promotion of your UNIX file system objects, e.g, your forms (fmb), reports (rdf), etc.<br />
Any execution of FNDLOAD assumes the Oracle </span></span><span style="font-size: small;"><span style="font-family: Arial;">Application environment has previously been set.<br />
The code segment below is one example of how to call FNDLOAD within a korn shell script.<br />
##<br />
## assumes APPS environment is properly set<br />
## and other shell variables previously defined<br />
##<br />
##<br />
## Prompt for type and parameter value<br />
##<br />
echo "Enter a category<br />
(MENU,FUNCTION,PERSONALIZATION,PRINTER,CONCURRENT,LOOKUP,RESPONSIBILITY,FORM, DESCFLEX, KEYFLEX, VALUE, PROFILE, REQGROUP, REQSET,MESSAGE,XML,XDO,IMPORTER):"<br />
read category<br />
if [ -z<br />
"&#36;category" ] ; then<br />
exit<br />
else<br />
typeset -u category<br />
echo "Using<br />
category" &#36;category | tee -a &#36;{LOGFILE}<br />
fi<br />
##<br />
## determine appropriate user input prompt<br />
case &#36;category in<br />
'REQGROUP')<br />
parm_prompt="Please<br />
enter a request group."<br />
;;<br />
'RESPONSIBILITY')<br />
parm_prompt="Please enter a responsibility key (include _ underscore for spaces)." ;;*)<br />
parm_prompt="Entera short name."<br />
esac<br />
## Get input from user<br />
echo &#36;parm_prompt<br />
read shortname<br />
if [ -z<br />
"&#36;shortname" ] ; then<br />
echo &#36;parm_prompt<br />
exit<br />
fi<br />
respkey=&#36;shortname<br />
## log files from<br />
FNDLOAD execution are not ‘well named’<br />
## this is one attempt to identify a new file <br />
## Get initial list of<br />
*log files<br />
ls *log ><br />
&#36;{WORK_FILE1} 2>/dev/null<br />
##<br />
## execute appropriate form of FNDLOAD<br />
##<br />
case &#36;category in<br />
'MENU')<br />
FNDLOAD apps/&#36;PASSWD O<br />
Y DOWNLOAD &#36;FND_TOP/patch/115/import/afsload.lct<br />
&#36;{shortname}_menu.ldt<br />
MENU MENU_NAME=&#36;{shortname}<br />
;;<br />
'PERSONALIZATION')<br />
FNDLOAD apps/&#36;PASSWD O<br />
Y DOWNLOAD &#36;FND_TOP/patch/115/import/affrmcus.lct<br />
&#36;{shortname}_formpersonalization.ldt<br />
FND_FORM_CUSTOM_RULES<br />
function_name=&#36;{shortname}<br />
;;<br />
'XML')<br />
FNDLOAD apps/&#36;PASSWD O<br />
Y DOWNLOAD &#36;XDO_TOP/patch/115/import/xdotmpl.lct<br />
&#36;{shortname}_tmpl.ldt<br />
XDO_DS_DEFINITIONS APPLICATION_SHORT_NAME=XXLM<br />
DATA_SOURCE_CODE=&#36;{shortname}<br />
;;<br />
'XDO')<br />
java<br />
oracle.apps.xdo.oa.util.XDOLoader DOWNLOAD -DB_USERNAME apps -<br />
DB_PASSWORD &#36;PASSWD<br />
-JDBC_CONNECTION<br />
'(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=&#36;EMACH)(PORT=&#36;EPORT))(CONNECT_DATA<br />
=(SERVICE_NAME=&#36;TWO_TASK)))'<br />
-LOB_TYPE TEMPLATE_SOURCE -APPS_SHORT_NAME XXLM<br />
-LOB_CODE &#36;{shortname}<br />
-LANGUAGE en -TERRITORY US -XDO_FILE_TYPE RTF -<br />
FILE_CONTENT_TYPE<br />
'application/rtf' -FILE_NAME &#36;{shortname}.rtf -NLS_LANG<br />
ENGLISH_UNITED_STATES.WE8ISO8859P1<br />
&#36;XDO_TOP/patch/115/import/xdotmpl.lct<br />
;;<br />
##<br />
## additional FNDLOAD command lines for each of the different<br />
## categories of applications entities<br />
##<br />
*)<br />
echo<br />
echo You entered an incorrect category. Valid categories are:<br />
echo MENU, FUNCTION, PRINTER, CONCURRENT, LOOKUP, RESPONSIBILITY DESCFLEX, KEYFLEX, VALUE, PROFILE, REQGROUP, REQSET, XML, XDO;;<br />
esac<br />
sleep 1<br />
## Additional work to attempt to identify the most recently<br />
## created log file<br />
##<br />
## get new list of log<br />
files<br />
ls *log ><br />
&#36;{WORK_FILE2}<br />
## find name of newly<br />
created log file (from concurrent mgr process)<br />
FND_LOG=`diff<br />
&#36;{WORK_FILE1} &#36;{WORK_FILE2} | grep \> | cut -c3-`<br />
echo "Logfile<br />
is:" &#36;{FND_LOG} | tee -a &#36;{LOGFILE}<br />
## look for obvious<br />
success or failure tokens<br />
grep<br />
"successfully" &#36;{FND_LOG} | tee -a &#36;{LOGFILE}<br />
grep "ORA-"<br />
&#36;{FND_LOG} | tee -a &#36;{LOGFILE}<br />
<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">This code interactively prompts the user for the type and name of the entity that will be downloaded. It also uses the name (‘shortname’ parameter) to help label the created .ldt file along with its entity type. This naming convention helps to keep track of which ldt files contain which entities. An upload script for these files would look very similar. The script could be extended or used in conjunction with other scripts to implement a simple configuration process.<br />
<br />
<br />
References:<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Note: 274667.1 FNDLOAD Commands to Download Different Seed Data Types.<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Note: 287417.1 Parameters Of Different Configuration Files To Download And Upload Seed Data Types.<br />
</span></span><span style="font-family: Arial;"><span style="font-size: small;"><span style="color: black;">Note: 256573.1 How To Download/Upload Descriptive Flexfield With Name &#36;SRS&#36;</span><br />
EBS Release 11.5.10.2+</span></span><span style="color: black;"><span style="font-size: small;"><span style="font-family: Arial;"> : </span></span><a href="http://download.oracle.com/docs/cd/B25516_18/current/acrobat/115sacg.zip" target="_blank"><span style="color: blue;"><span style="font-size: small;"><span style="font-family: Arial;">Oracle Applications System Administrator's Guide - Configuration</span></span></span></a></span><br />
<span style="font-size: small;"><span style="font-family: Arial;">EBS Release 12.0.4+</span></span><span style="color: black;"><span style="font-size: small;"><span style="font-family: Arial;"> : </span></span><a href="http://download.oracle.com/docs/cd/B40089_10/current/acrobat/120sacg.pdf" target="_blank"><span style="color: blue;"><span style="font-size: small;"><span style="font-family: Arial;">Oracle Applications System Administrator's Guide - Configuration</span></span></span></a></span><br />
<span style="font-size: small;"><span style="font-family: Arial;">EBS Release 12.1.3</span></span><span style="color: black;"><span style="font-size: small;"><span style="font-family: Arial;"> : </span></span><a href="http://download.oracle.com/docs/cd/B53825_08/current/acrobat/121sacg.pdf" target="_blank"><span style="color: blue;"><span style="font-size: small;"><span style="font-family: Arial;">Oracle Applications System Administrator's Guide - Configuration</span></span></span></a></span><br />
<span style="font-size: small;"><span style="font-family: Arial;">Customization Survival Guide: How to Use E-Business Utilities to Migrate Your Custom Code, <span style="font-style: italic;">Brad Simmons and Donna Campbell,</span></span></span><span style="font-size: small;"><span style="font-style: italic;"><span style="font-family: Arial;">Los Alamos<br />
National Laboratory document </span></span><br />
</span><span style="font-size: small;"><span style="font-family: Arial;">Tips About FNDLOAD [ID 735338.1]<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">Is It Possible To Use FNDLOAD To Migrate Configurations Or Data To Another Instance? [ID 1316916.1]<br />
</span></span><span style="font-size: small;"><span style="font-family: Arial;">How To Use XDOLoader to Manage, Download and Upload Files? [ID 469585.1]<br />
</span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Forms Personalization in Oracle Apps R-12 - Zoom Functionality]]></title>
			<link>http://www.oraerp.com/Thread-Forms-Personalization-in-Oracle-Apps-R-12-Zoom-Functionality</link>
			<pubDate>Wed, 15 Jun 2011 11:50:16 -0500</pubDate>
			<guid isPermaLink="false">http://www.oraerp.com/Thread-Forms-Personalization-in-Oracle-Apps-R-12-Zoom-Functionality</guid>
			<description><![CDATA[[font=Verdana]<span style="font-size: small;"><br />
Personalization form automatically queries the function, form and pre-defined personalization rules, if any exists for the specific form. For example, the form name is INVTOMAI i.e. Move Order form on which the personalization form is opened.<br />
<br />
<br />
Rules<br />
Rules administer the personalization needs to be implemented on the form. Each rule contains a sequence number, description and level (<span style="color: black;">Rules may now be specified as acting either at the Function level (the default) or at the Form level</span>). The rule can be activated or de-activated using the “Enabled” checkbox. The rule can be deleted when no longer needed.<br />
Defining rules doesn’t identify, when the rule should get evaluated or applied. For each rule, there should be conditions attached, which power the execution of the rule.<br />
Conditions<br />
Conditions decide the event the rule to be executed. Each condition mainly contains three sections i.e. Trigger Event, Trigger Object and Condition.<br />
Context<br />
Context manages to whom the personalization should apply. This is similar to the concept of using profile options in Oracle Applications. The various levels are Site, Responsibility, Industry and User. During runtime, the values provided in the context are evaluated and personalization rules will be applied. Usage of context is very vital in implementing the personalization to prevent the inappropriate users accessing these customizations of the form.<br />
<br />
Actions<br />
Actions decide the exact operation to be performed when the event occurs and the condition evaluates to true during the runtime.<br />
Each Action consists of one of the following:<ul>
<li>setting a Property</li>
<li>displaying a Message</li>
<li>executing a Builtin</li>
<li>enabling a Menu/Special entry</li></ul>
<br />
<br />
<span style="font-size: small;">Property</span><br />
<br />
<span style="font-size: small;">The action type “Property” is used to set the properties of the objects. The various objects include “Item, Window, Block, Global Variable etc”. </span><br />
<span style="font-size: small;"><br />
</span><br />
<a href="http://3.bp.blogspot.com/_DRLwX6_7UbQ/TUajBTAVCkI/AAAAAAAAAcA/DsaSbvb-0mY/s1600/FP4.JPG" target="_blank"><span style="font-size: small;"><img src="http://3.bp.blogspot.com/_DRLwX6_7UbQ/TUajBTAVCkI/AAAAAAAAAcA/DsaSbvb-0mY/s400/FP4.JPG" border="0" alt="[Image: FP4.JPG]" /></span></a><div style="text-align: center;"><span style="font-size: small;">Property Type </span></div>
<span style="font-size: small;">Select By Text button used to select an object based on text appearing on the screen at the point in time, the Personalization form is invoked, including any changes that current rules might have performed. Target Object can be selected from the list.</span><br />
<span style="font-size: small;">Target Object, either name defined in the form or variable name should be entered depending on the object type selected.</span><br />
<span style="font-size: small;">Property Name is the property to be changed.</span><br />
<span style="font-size: small;">Value is the new desired value for the property.</span><br />
<span style="font-size: small;">The current value of the property will be displayed when clicked on the Get Value button.</span><br />
<span style="font-size: small;">SQL functions and operators can be used to assign value. Any value started with “=” operator will be evaluated at runtime otherwise the value is treated as is entered in the value field.</span><span style="font-size: small;"><span style="color: black;">Message</span></span><br />
<br />
<span style="font-size: small;">The action type “Message” is used to display custom messages during runtime. Message Type and Message Text should be entered after selecting the action type as “Message”. The available message types are “Show, Hint, Error, Debug and Warn”.</span><br />
<span style="font-size: small;"><br />
</span><br />
<span style="font-size: small;"></span><br />
<a href="http://3.bp.blogspot.com/_DRLwX6_7UbQ/TUaizUsX3cI/AAAAAAAAAb8/yesoXlwUimc/s1600/FP5.JPG" target="_blank"><span style="font-size: small;"><img src="http://3.bp.blogspot.com/_DRLwX6_7UbQ/TUaizUsX3cI/AAAAAAAAAb8/yesoXlwUimc/s400/FP5.JPG" border="0" alt="[Image: FP5.JPG]" /></span></a><div style="text-align: center;"><span style="font-size: small;"> Message Type</span></div><span style="font-size: small;"><span style="color: black;">Builtin</span></span><br />
<br />
<span style="font-size: small;">The action type “Builtin” is used to execute the form and AOL functions. Depending on the builtin type selected, the arguments should be entered.</span><br />
<a href="http://2.bp.blogspot.com/_DRLwX6_7UbQ/TUais8bwXYI/AAAAAAAAAb4/xROk4kUwSTM/s1600/FP6.JPG" target="_blank"><span style="font-size: small;"><img src="http://2.bp.blogspot.com/_DRLwX6_7UbQ/TUais8bwXYI/AAAAAAAAAb4/xROk4kUwSTM/s400/FP6.JPG" border="0" alt="[Image: FP6.JPG]" /></span></a><br />
<span style="font-size: small;"><br />
</span><br />
<span style="font-size: small;"></span><div style="text-align: center;"><span style="font-size: small;">Builtin Type</span></div>
<span style="font-size: small;">Add Parameter… list of Values displays currently used parameters. Applies to the builtin ‘Launch a Function’ only.</span><span style="font-size: small;"><span style="color: black;">Menu</span></span><br />
<br />
<span style="font-size: small;">The action type “Menu” is used to activate the available special menus on the Tools menu. Oracle Applications provide 45 special menus under Tools menu which can be used by customers based on their requirements. <span style="color: black;">The menus are arranged in 3 sets of 15 each under the Tools, Reports and Actions pull-down menus. If you select a menu that the base form is already using, your functionality will override the form's functionality. </span></span><br />
<span style="font-size: small;">Select the Menu Entry which is not used by the form. <span style="color: black;"></span></span><br />
<span style="font-size: small;">Menu Label is the prompt which appears to the users when Tools menu is invoked. </span><br />
<span style="font-size: small;">Icon name is the .ico file name.</span><br />
<span style="font-size: small;">Enabled in Block(s) specifies the blocks for which the special menu should be activated. </span><br />
<a href="http://4.bp.blogspot.com/_DRLwX6_7UbQ/TUaimlRIQRI/AAAAAAAAAb0/51YEaIk9R0A/s1600/FP7.JPG" target="_blank"><span style="font-size: small;"><img src="http://4.bp.blogspot.com/_DRLwX6_7UbQ/TUaimlRIQRI/AAAAAAAAAb0/51YEaIk9R0A/s400/FP7.JPG" border="0" alt="[Image: FP7.JPG]" /></span></a><br />
<span style="font-size: small;"><br />
</span><br />
<span style="font-size: small;"></span><div style="text-align: center;"><span style="font-size: small;">Menu Type</span></div>
<span style="font-size: small;">A separator can be created above the activated special menu by selecting the “Render line before menu” checkbox.</span><br />
<span style="font-size: small;">This property can be used only in WHEN-NEW-FORM-INSTANCE event.</span>[size=10]</span><span style="font-size: small;"></span>]]></description>
			<content:encoded><![CDATA[[font=Verdana]<span style="font-size: small;"><br />
Personalization form automatically queries the function, form and pre-defined personalization rules, if any exists for the specific form. For example, the form name is INVTOMAI i.e. Move Order form on which the personalization form is opened.<br />
<br />
<br />
Rules<br />
Rules administer the personalization needs to be implemented on the form. Each rule contains a sequence number, description and level (<span style="color: black;">Rules may now be specified as acting either at the Function level (the default) or at the Form level</span>). The rule can be activated or de-activated using the “Enabled” checkbox. The rule can be deleted when no longer needed.<br />
Defining rules doesn’t identify, when the rule should get evaluated or applied. For each rule, there should be conditions attached, which power the execution of the rule.<br />
Conditions<br />
Conditions decide the event the rule to be executed. Each condition mainly contains three sections i.e. Trigger Event, Trigger Object and Condition.<br />
Context<br />
Context manages to whom the personalization should apply. This is similar to the concept of using profile options in Oracle Applications. The various levels are Site, Responsibility, Industry and User. During runtime, the values provided in the context are evaluated and personalization rules will be applied. Usage of context is very vital in implementing the personalization to prevent the inappropriate users accessing these customizations of the form.<br />
<br />
Actions<br />
Actions decide the exact operation to be performed when the event occurs and the condition evaluates to true during the runtime.<br />
Each Action consists of one of the following:<ul>
<li>setting a Property</li>
<li>displaying a Message</li>
<li>executing a Builtin</li>
<li>enabling a Menu/Special entry</li></ul>
<br />
<br />
<span style="font-size: small;">Property</span><br />
<br />
<span style="font-size: small;">The action type “Property” is used to set the properties of the objects. The various objects include “Item, Window, Block, Global Variable etc”. </span><br />
<span style="font-size: small;"><br />
</span><br />
<a href="http://3.bp.blogspot.com/_DRLwX6_7UbQ/TUajBTAVCkI/AAAAAAAAAcA/DsaSbvb-0mY/s1600/FP4.JPG" target="_blank"><span style="font-size: small;"><img src="http://3.bp.blogspot.com/_DRLwX6_7UbQ/TUajBTAVCkI/AAAAAAAAAcA/DsaSbvb-0mY/s400/FP4.JPG" border="0" alt="[Image: FP4.JPG]" /></span></a><div style="text-align: center;"><span style="font-size: small;">Property Type </span></div>
<span style="font-size: small;">Select By Text button used to select an object based on text appearing on the screen at the point in time, the Personalization form is invoked, including any changes that current rules might have performed. Target Object can be selected from the list.</span><br />
<span style="font-size: small;">Target Object, either name defined in the form or variable name should be entered depending on the object type selected.</span><br />
<span style="font-size: small;">Property Name is the property to be changed.</span><br />
<span style="font-size: small;">Value is the new desired value for the property.</span><br />
<span style="font-size: small;">The current value of the property will be displayed when clicked on the Get Value button.</span><br />
<span style="font-size: small;">SQL functions and operators can be used to assign value. Any value started with “=” operator will be evaluated at runtime otherwise the value is treated as is entered in the value field.</span><span style="font-size: small;"><span style="color: black;">Message</span></span><br />
<br />
<span style="font-size: small;">The action type “Message” is used to display custom messages during runtime. Message Type and Message Text should be entered after selecting the action type as “Message”. The available message types are “Show, Hint, Error, Debug and Warn”.</span><br />
<span style="font-size: small;"><br />
</span><br />
<span style="font-size: small;"></span><br />
<a href="http://3.bp.blogspot.com/_DRLwX6_7UbQ/TUaizUsX3cI/AAAAAAAAAb8/yesoXlwUimc/s1600/FP5.JPG" target="_blank"><span style="font-size: small;"><img src="http://3.bp.blogspot.com/_DRLwX6_7UbQ/TUaizUsX3cI/AAAAAAAAAb8/yesoXlwUimc/s400/FP5.JPG" border="0" alt="[Image: FP5.JPG]" /></span></a><div style="text-align: center;"><span style="font-size: small;"> Message Type</span></div><span style="font-size: small;"><span style="color: black;">Builtin</span></span><br />
<br />
<span style="font-size: small;">The action type “Builtin” is used to execute the form and AOL functions. Depending on the builtin type selected, the arguments should be entered.</span><br />
<a href="http://2.bp.blogspot.com/_DRLwX6_7UbQ/TUais8bwXYI/AAAAAAAAAb4/xROk4kUwSTM/s1600/FP6.JPG" target="_blank"><span style="font-size: small;"><img src="http://2.bp.blogspot.com/_DRLwX6_7UbQ/TUais8bwXYI/AAAAAAAAAb4/xROk4kUwSTM/s400/FP6.JPG" border="0" alt="[Image: FP6.JPG]" /></span></a><br />
<span style="font-size: small;"><br />
</span><br />
<span style="font-size: small;"></span><div style="text-align: center;"><span style="font-size: small;">Builtin Type</span></div>
<span style="font-size: small;">Add Parameter… list of Values displays currently used parameters. Applies to the builtin ‘Launch a Function’ only.</span><span style="font-size: small;"><span style="color: black;">Menu</span></span><br />
<br />
<span style="font-size: small;">The action type “Menu” is used to activate the available special menus on the Tools menu. Oracle Applications provide 45 special menus under Tools menu which can be used by customers based on their requirements. <span style="color: black;">The menus are arranged in 3 sets of 15 each under the Tools, Reports and Actions pull-down menus. If you select a menu that the base form is already using, your functionality will override the form's functionality. </span></span><br />
<span style="font-size: small;">Select the Menu Entry which is not used by the form. <span style="color: black;"></span></span><br />
<span style="font-size: small;">Menu Label is the prompt which appears to the users when Tools menu is invoked. </span><br />
<span style="font-size: small;">Icon name is the .ico file name.</span><br />
<span style="font-size: small;">Enabled in Block(s) specifies the blocks for which the special menu should be activated. </span><br />
<a href="http://4.bp.blogspot.com/_DRLwX6_7UbQ/TUaimlRIQRI/AAAAAAAAAb0/51YEaIk9R0A/s1600/FP7.JPG" target="_blank"><span style="font-size: small;"><img src="http://4.bp.blogspot.com/_DRLwX6_7UbQ/TUaimlRIQRI/AAAAAAAAAb0/51YEaIk9R0A/s400/FP7.JPG" border="0" alt="[Image: FP7.JPG]" /></span></a><br />
<span style="font-size: small;"><br />
</span><br />
<span style="font-size: small;"></span><div style="text-align: center;"><span style="font-size: small;">Menu Type</span></div>
<span style="font-size: small;">A separator can be created above the activated special menu by selecting the “Render line before menu” checkbox.</span><br />
<span style="font-size: small;">This property can be used only in WHEN-NEW-FORM-INSTANCE event.</span>[size=10]</span><span style="font-size: small;"></span>]]></content:encoded>
		</item>
	</channel>
</rss>