Oracle Payroll | R12 | Simple view for employee paid salaries

Recently I were requested to build a report by the HR/Payroll team, running which they can generate the salary paid details for employees. Ie, a tabular listing with paid month, and total salary earned, grouped by year factor

0046

I found the request being one of the toughest, as my exposure to Payroll module and base tables was limited almost none, other than knowing the person and assignment tables and views!

Gradually I started going through the custom reports developed by our implementer and restructured few of their custom functions into a best possible view what meets our current requirements. As we are not using customized packages for the salary calculations, you should able to alter the below SQL and create your own with almost no efforts. We hope you will enjoy the solution!

Script for view

CREATE OR REPLACE VIEW XXEMPLOYEE_SALARIES_MONTHLY
AS
SELECT pap.person_id, pap.employee_number,to_char(ppa.date_earned,'Mon-YYYY') earned_month,
TO_NUMBER(to_char(ppa.date_earned,'MM')) MONTH_NUMBER,
TO_NUMBER(to_char(ppa.date_earned,'YYYY')) YEAR_FACTOR,
sum(to_number(prrv.result_value)) PAID_AMOUNT
FROM PAY_ELEMENT_TYPES_F petf
,PAY_INPUT_VALUES_F pivf
,PAY_PAYROLL_ACTIONS ppa
,PAY_ASSIGNMENT_ACTIONS paa
,PAY_RUN_RESULTS prr
,PAY_RUN_RESULT_VALUES prrv
,PER_ALL_ASSIGNMENTS_F paaf
,PER_ALL_PEOPLE_F pap
,PAY_ELEMENT_CLASSIFICATIONS pec
WHERE 1=1
AND pec.classification_id = petf.classification_id
and prrv.input_value_id = pivf.input_value_id
AND CLASSIFICATION_NAME IN ('Earnings','Supplemental Earnings')–Add in more based on your setup
and pivf.name in ('Pay Value')
AND petf.element_type_id = prr.element_type_id
AND paa.assignment_action_id = prr.assignment_action_id
AND prr.run_result_id = prrv.run_result_id
AND petf.business_group_id = 81
AND ppa.business_group_id = pap.business_group_id
AND ppa.payroll_action_id = paa.payroll_action_id
AND SYSDATE BETWEEN TRUNC(petf.effective_start_date) AND TRUNC(petf.effective_end_date)
AND last_day(ppa.date_earned) BETWEEN TRUNC(pap.effective_start_date) AND TRUNC(pap.effective_end_date)
AND last_day(ppa.date_earned) BETWEEN TRUNC(paaf.effective_start_date) AND TRUNC(paaf.effective_end_date)
AND paaf.assignment_id = paa.assignment_id
AND paaf.person_id = pap.person_id
–and prrv.result_value > '0'
AND paaf.business_group_id = pap.business_group_id
AND pap.business_group_id = 81–double check
GROUP BY pap.person_id,pap.employee_number, to_char(ppa.date_earned,'Mon-YYYY'),to_char(ppa.date_earned,'MM'),to_char(ppa.date_earned,'YYYY')
UNION ALL
SELECT pap.person_id, pap.employee_number,to_char(ppa.date_earned,'Mon-YYYY') earned_month,
TO_NUMBER(to_char(ppa.date_earned,'MM')) MONTH_NUMBER,
TO_NUMBER(to_char(ppa.date_earned,'YYYY')) YEAR_FACTOR,
nvl(sum(to_number(prrv.result_value)),0)*-1 PAID_AMOUNT
FROM PAY_ELEMENT_TYPES_F petf
,PAY_INPUT_VALUES_F pivf
,PAY_PAYROLL_ACTIONS ppa
,PAY_ASSIGNMENT_ACTIONS paa
,PAY_RUN_RESULTS prr
,PAY_RUN_RESULT_VALUES prrv
,PER_ALL_ASSIGNMENTS_F paaf
,PER_ALL_PEOPLE_F pap
,PAY_ELEMENT_CLASSIFICATIONS pec
WHERE 1=1
AND pec.classification_id = petf.classification_id
and prrv.input_value_id = pivf.input_value_id
AND CLASSIFICATION_NAME IN ('Voluntary Deductions','Involuntary Deductions','Social Insurance')–Add in more based on your setup
and pivf.name in ('Pay Value')
AND petf.element_type_id = prr.element_type_id
AND paa.assignment_action_id = prr.assignment_action_id
AND prr.run_result_id = prrv.run_result_id
AND ppa.business_group_id = pap.business_group_id
AND ppa.payroll_action_id = paa.payroll_action_id
AND SYSDATE BETWEEN TRUNC(petf.effective_start_date) AND TRUNC(petf.effective_end_date)
AND last_day(ppa.date_earned) BETWEEN TRUNC(pap.effective_start_date) AND TRUNC(pap.effective_end_date)
AND last_day(ppa.date_earned) BETWEEN TRUNC(paaf.effective_start_date) AND TRUNC(paaf.effective_end_date)
AND paaf.assignment_id = paa.assignment_id
AND paaf.person_id = pap.person_id
— and prrv.result_value > '0.00'
AND paaf.business_group_id = pap.business_group_id
AND pap.business_group_id = 81–double check
GROUP BY pap.person_id,pap.employee_number, to_char(ppa.date_earned,'Mon-YYYY'),to_char(ppa.date_earned,'MM'),to_char(ppa.date_earned,'YYYY')
order by 2,5,4;

Sample Query

SELECT PERSON_ID, EMPLOYEE_NUMBER,earned_month,year_factor,
SUM(PAID_AMOUNT) PAID_SALARY
FROM XXEMPLOYEE_SALARIES_MONTHLY
WHERE
1=1
AND EMPLOYEE_NUMBER =:P_EMPLOYEE_NUMBER
AND YEAR_FACTOR BETWEEN NVL(:P_START_YEAR,YEAR_FACTOR) AND NVL(:P_END_YEAR,YEAR_FACTOR)
GROUP BY PERSON_ID,EMPLOYEE_NUMBER,earned_month,YEAR_FACTOR, MONTH_NUMBER
ORDER BY YEAR_FACTOR, MONTH_NUMBER

Enjoy another quality post from us guys :)

for Windows7bugs

rajesh

Oracle Applications | Making references to fnd_message package from custom PL/SQL library

 

Until recent times I didn’t have a single idea that, fnd_message package was NOT a database, instead PL/SQL library object, through which forms based modules were calling various elements like

fnd_message.set_string

fnd_message.show

image

image

One of the main reasons for believing the same was as soon as I type the name of the package, both Toad  and SQL Developer identify it as already existing object!

However, few days back I decided to shed my laziness and to revamp the core retailing application I have developed two years back, using Oracle’s public APIs for Order Management & Inventory modules.

Hence, I started designing my own PL/SQL libraries and bit the bullet while trying to make a reference to fnd_message package. The call was returning errors (please refer the below image)

image

Which forced me to start googling for relevant and dependable pointers towards this particular situation and came across a forum thread where one person who I respect as a “geek” tried to explain why there is a package in the database and within an PL/SQL library with the same “fnd_message”, and gradually giving it up saying “Only oracle could explain why”

Hence I opened up the Template form and try to see which attached PL/SQL library has the listing for fnd_message component calls

image

image

and the PL/SQL library “FNDSQL” attached to the TEMPLATE.fmb by default has all the components referenced with the forms modules. Once identified, I attached the same library with my custom library

image

and the next compilation attempt was successful!

I do hope, this information is useful to few others out there, who are trying to call the fnd_message package references with their own custom PL/SQL libraries.

regards,

rajesh

Oracle Applications R12 | Using JRE 7 for application access

Update 18th April 2015: You can use java version “1.8.0_45” (JRE 8 update 45) Using the same hacks mentioned below!

You may have to restart your BOX once after Java Runtime 7 update 51 or later installed. Once the box restarted, JRE should start loading properly with Internet Explorer 11

UPDATE: If your E-Business Suite environment is not updated to Java 7, please do not update your JRE above 51! We tried the latest JRE7 update 55 and found that the applet was not at all loading. Were forced to rollback to the earlier version

Stuck with JRE 6 update 45 and sites like keepvid.com does not work properly without JRE 7?

Well there is a work around, as mentioned with the Oracle blog

Which works extremely beautiful with both Internet Explorer 10/11 & Google Chrome once after JRE is upgraded to version 7

Update: if you are using multiple Oracle products, system level variable setting for  JAVA_TOOL_OPTIONS could problematic. You can override this issue by changing the run time parameters for JRE like following

Control panel->Java(32-bit)->Click on Java tab->Click View-> Add the following to appropriate Product “Runtime Parameters” column (by pasting, or typing in)

-Djava.vendor="Sun Microsystems Inc."
jre

So what you are waiting for?

Common “errors” and solutions

1. The first error you may receive once after the JRR upgrade should be

“Application Blocked by Security Settings”

image

Solution

Go to control panel->Open up Java(32)->Security Tab

image

Adding the specific site should override the above Application Blocked lockout

2. Java Security Warning Dialogue windows where you must exclusively accept the security warning twice

“I accept the risk and want to run this application”

image

Which is going to be a permanent element with JRE 7 update 10 and later, according to multiple sites for the applications which are not signed. This warning will be issued each and every time (Not for the same session) and until now no hacks are available to suppress it from appearing. If you want to use JRE 7, just live with it.

The same warning will be displayed twice, and you MUST accept the warning both the times in order to let the java to load your forms based application(s)

For Windows7bugs

rajesh

Oracle E-Business Suite R12 | Google Chrome Browser access

 

So still stuck with no apparent methods to start using Google Chrome for Oracle applications Release 12? Well there is a “possibility”

There is a free extension available with Google Chrome repositories called

Oracle EBS R12&11i Enablement for Chrome 0.1.3

image

You can download the same for your computer from here (Search in the extensions page with a string like “Oracle R12” as the link location may change later)

Once the extension is installed, close Chrome and restart and try to access the Application instance.

image

 

That’s it folks

for Windows7bugs

rajesh

Oracle – a simple function to format numbers for display

We have requirements to produce Payment Requests through Oracle E-Business suite custom interface, where the users are allowed to select different currencies based on the payment.

Different currencies means different precisions, US $ 2, Indian Rupees 2, while Kuwait, Bahrain have 3 precisions to maintain…

So the amounts displayed on reports needed to be formatted properly and we were doing some hardcoded formatting like

Now we have more currencies to deal with, hence came up with following simple function, which accepts the amount, precisions as inputs and returns a VARCHAR2 string as formatted number!

Function

CREATE OR REPLACE FUNCTION xx_format_number (P_AMOUNT IN NUMBER,
P_DEC_PREC IN NUMBER)
RETURN VARCHAR2
IS
frm_1 VARCHAR2 (30) := 'fm999999999990.';
new_num VARCHAR2 (30);
BEGIN
SELECT TO_CHAR (P_AMOUNT,
RPAD (frm_1, 15 + P_DEC_PREC, '90000000000000000'))
INTO new_num
FROM DUAL;

RETURN (new_num);

END;

You can check the function like following

SET SERVEROUTPUT ON;

DECLARE
l_new_num VARCHAR2 (30);
BEGIN

l_new_num := xx_format_number(.009,3);

DBMS_OUTPUT.PUT_LINE (l_new_num);
END;

Check it out, and let us know whether it worked for you!

for Windows7bugs

admin

Oracle Applications R12, Re-assign PR/PO stuck in the workflow (awaiting approval)

 

Handling Purchase Orders stuck in the work flow.

Logon to the instance as “SYSADMIN”

1

Select “Workflow Administrator Web Applications” and Select the function “Status Monitor”. This opens a jsp page show below.

2

For the purchase orders stuck in the flow, please locate “PO Approval” workflow using search function. This windows provides multiple choices to limit the amount of data retrieved. Apply it whenever it is possible to reduce the time collecting and producing data.

Image: Finding the correct workflow (for Purchase requests stuck in the workflow)

3

For Purchase Requests stuck in the work flow, please use the following query

select requisition_header_id, segment1, wf_item_type, wf_item_key, authorization_status, org_id from po_requisition_headers_all where segment1 = ‘1980’ and org_id = 105;

for Purchase order change the table name to PO_HEADERS_ALL

to find the wf_item_key which is referred as “item key” with the JSP form.

4

Once the desired information derived

Click on “Activity History” button

5

Now you may use “Reassign” function (Shown within green rectangle) to reassign the Purchase Request for approval by next immediate subordinate.

You may use the “Rewind” button to rewind the workflow to an earlier stage as well

Hope you enjoyed another quality solution from us

for Windows7bugs

rajesh

Oracle forms developer 10g, setting up initial values issues–a workaround

Update: 04.Feb.2014

Iudith from ittoolbox suggests, instead of WHEN-NEW-FORM-INSTANCE, PRE-FORM should be used for populating values to PARAMETER elements, thus when the focus is set, the initial values will be set for the columns.

The post will be open for more comments. Cheers!

rajesh

The main advantage of an initial value for a text column is the form status remains NEW, instead of CHANGED & entering the query mode by pressing the F11 key is initiated without throwing errors even if you have mandatory (Required:Yes) property set for one more more columns within the same block.

(Strictly limiting the solution towards custom development for Oracle E-Business Suite, using TEMPLATE.FMB & forms developer 10g)

When a custom module is loaded, 10g run time doesn’t populate values assigned to GLOBAL/PARAMETER variables for the first record. Iudith explains this is default nature of forms load. However, the consequent records are getting the initial values from the GLOBAL/PARAMETER elements.

This time we are providing a workaround solution towards this dreaded situation, which should make a developer’s life bit easier.

 

Do not assign “First Navigation Block”, instead keep it as <Null>

image

Open “WHEN-NEW-FORM-INSTANCE” and programmatically send the focus to your first block (in which text columns are assigned with GLOBAL/PARAMETER values as initial values)

image

Somehow, this method populates the initial values for text columns when the forms is initiated. We believe, such a navigation to the block enforces a WHEN-NEW-RECORD-INSTANCE indirectly and populates all the referred elements.

If you have a better explanation, please forward the same to us.

Hoping to hear from Oracle forms developer guys, we remain

for Windows7bugs

Rajesh

Oracle Applications R12 “Emergency” Rapid Clone

There could be occasions when as an apps DBA you would be asked to provide a fresh clone either over test or development environment to address a serious issue.

Rapid Clone hierarchy usually requires a DBA to pre-clone both application & database tiers, shutting down the source system and then souring the relevant folders to target system.

Today we are going to share a minor hack which could help you, when you cannot JUST shutdown a Production instance, however the cloned instance is a mandatory element to deal with a particular situation.

(Please note, this hack is ONLY applicable to situations where the backups were made without running PRE-CLONE or errors were raised stating

  1. Control file creation failed : ORA-01503: CREATE CONTROLFILE failed
  2. Certain database files were not recognized as part of the database : ORA-01565: error in identifying file)

Errors and example scenarios as mentioned with this thread

#cd /backup

#time tar –zcvf apps.tar.gz /u01/applprod/PROD/apps/*

(use “time” to check how much time the activity has taken)

Once the application tier has been tar balled

#time tar –zcvf db.tar.gz /u01/oraprod/PROD/db/*

Wait until the tar ball created

Now you can SCP the tar balls to your target system

scp –pr *.tar.gz root@targetsystem:/backup

The approximate time to transfer a database tar ball in 100GB size should be 33-35 minutes and the application tar ball in size 31GB around 9-10 minutes

Backup (if required after running the pre-clone) of your TEST/Development instance and delete the application and database folders (make sure you have shutdown the application and database instances)

#cd /u02/oratest/TEST/db

#rm –rf *

#cd /u02/appltest/TEST

#rm –rf *

Now extract the tar balls to respective base paths

#time tar –zxvf /backup/apps.tar.gz

We are already in the folder /u02/appltest/TEST so the application instance files will be extracted in the same location

Once the extraction is over, we can go ahead with extracting the database tier files

#cd /u02/oratest/TEST/db

#tar –zxvf db.tar.gz

Wait until the extraction part is over

The real hack starts from here

#cd /u02/oratest/TEST/db/tech_st/10.2.0/appsutil

#rm –rf *

Switch to source system (Aka Production instance)

#su – oraprod

If the .bash_profile has an exclusive call for the environment sourcing, your environment will be automatically sourced, else source it

Run pre-clone for the database tier now

$perl adpreclone.pl dbTier

Once the pre-clone activities completed successfully, switch to

$cd $ORACLE_HOME/appsutil

Create a tar file

$tar –zcvf appsutil.tar.gz *

Now move the new tar file to your TEST/Development instance

$scp –pr appsutil.tar.gz root@targetsystem:/backup

From the target system, move to

#cd /u02/oratest/TEST/db/tech_st/10.2.0/appsutil

Unzip the appsutil.tar.gz

#tar –zxvf /backup/appsutil.tar.gz

Once the files are extracted, change the ownership of the base path once again

#chown –R oratest:oinstall /u02/oratest

Change the access permissions

#chmod –R 777 /u02/oratest

Now as user “oratest” you can start the database tier cloning

#su – oratest

$cd /u02/oratest/TEST/db/tech_st/10.2.0/appsutil/clone/bin

$perl adcfgclone.pl dbTier

Once the database tier cloning completes successfully, you can proceed with application tier cloning, which doesn’t require any specific hacks

Side notes:

In my case I found that the “Gather schema statistics” program was missing from the scheduled jobs list. If you are experiencing slowness with your freshly cloned instance, it is highly recommended to run the said program prior going ahead with any other activities.

Make sure you would clear the cache under global configurations.

Hope you enjoyed another “hack” from us! Our sincere thanks and gratitude to Ravi Purbia (Sr. Apps DBA Consultant) who has provided us the details about this particular hack.

regards,

for Windows7bugs

admin

Oracle R12 Vision Instance 12.1.3 Cloning – step by step instructions

*General Note: The below instructions, which were successfully completed and tested are from the prospective of a person who do not have any previous knowledge about cloning, advance level Linux administration etc. If you find it too amateurish, please let us know with the comments session and corrections. We will be more than happy to amend the post.

Most probably few of the errors we received with write permissions missing to /tmp for applprod user should because of missing Rapid Clone patches.

Prerequisites

Oracle VirtualBox (We don’t support a physical system as detailing a cloning for a Linux system wouldn’t fit entirely within the discussed topic)

Minimum 4GB of memory to spare for the Virtual Machine

500GB of free hard disk space (If you don’t have additional 500GB, you can use the same source machine for cloning, by backing up the necessary folders and after removing the E-BIZ folder entirely)

Step #1

Create a folder on a partition where you have 500GB or more space and call it “ebiznew”

Copy and paste both System.vdi and ebs1211db.vdi from your other virtual machine folder, where you have a properly working Vision Instance (We are not going to clone the existing VM using the VirtualBox clone utility)

Change the uuid for both System.vdi and ebs1211db.vid

E:\ebiznew>C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; internalcommands
sethduuid System.vdi
UUID changed to: 5dbdd6e3-c8ff-431d-bdd8-edf31c3012fb

E:\ebiznew>C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&amp;quot; internalcommands
sethduuid ebs1211db.vdi
UUID changed to: 05068998-dc4d-46ef-8f8f-1ae07b786bfa

[code language=”text” gutter=”false”]

E:\ebiznew&gt;&quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&quot; internalcommands
sethduuid System.vdi
UUID changed to: 5dbdd6e3-c8ff-431d-bdd8-edf31c3012fb

E:\ebiznew&gt;&quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&quot; internalcommands
sethduuid ebs1211db.vdi
UUID changed to: 05068998-dc4d-46ef-8f8f-1ae07b786bfa
[/code]

Now start creating a new VM using VirtualBox and attach System.vdi and ebs1211db.vdi under SATA

As we have changed the kernel to NON Xen, you should able to boot up the VM immediately

Once logged in as “root”, let us drop the existing E-BIZ/* folders for cloning purpose

As root

[sourcecode language="bash"]
#cd /u01

#rm -rf *

[/sourcecode]

Sit back, it will take a while for the system to delete the folders and contents

Once the folders and file are deleted create a new folder called “backup” within /u01

[sourcecode language="bash"]
#mkdir backup
[/sourcecode]

Change the hostname, IP address etc for the new VM

Make sure from your HOST box you can ping the new VM by both hostname and IP address

*Special note: If you have a total of 8GB(only) memory with your box, you have to change the memory allocations for both your VMs (one which already has the Vision instance configured & the new VM on which you are going to execute the cloning) to 2GB each

Boot up you VM with Vision instance configured and running (Aka source system)

Edit /etc/hosts file and add the IP address and hostname of your new VM

As root

vi /etc/hosts

192.168.0.50 ebs1213.rhome.com ebs1213

Where ebs1213 is the new hostname you have set for the new VM. Adjust it according to the name you have chosen

Save and exit the vi editor and try to ping the new VM from your source VM

ping ebs1213.rhome.com

Make sure you are getting ping replies from the new VM

Start dbTier and appsTier sequentially and make sure that you can access the application

Step #2

Now we are all set to “try” our first cloning process

Prior cloning we MUST prepare the source system for cloning. Hence switch user to “oracle” and switch to following folder (Adjust the path according to your environment)

cd /u01/E-BIZ/db/tech_st/11.2.0.2/appsutil/scripts/VIS_appvis

$perl adpreclone.pl dbTier

(provide the apps password when it is promoted)

The pre-clone should complete within few minutes time, and if there are no errors (in our case), we can proceed to prepare the application tier now

As user “Oracle” switch to

/u01/E-BIZ/inst/apps/VIS_appvis/admin/scripts

$perl adpreclone.pl appsTier

(provide the apps password when it is promoted)

Let the pre-clone procedure complete.

Once the pre-clone procedure has been completed, shutdown the application tier and database tier sequentially

Check for FNDLIBR processes, until the count reaches two(2)

$ps –ef | grep FNDLIBR | wc –l

Now we have to copy the database and application tier folders to our target VM. For our exercise we will create individual tar.gz files for both database and application folders

We will create a new folder with /u01 on the source system

As root

[sourcecode language="text"]
#cd /u01

#mkdir backup

#cd backup

# time tar -zcvf db.tar.gz /u01/E-BIZ/db/*

This will create a new tar ball with the name “db.tar.gz” inside /u01/backup folder

Sit back and relax, it is going to take some time

Once the tar process finishes, we will attempt to create a tar ball for the application tier

#time tar -zcvf apps.tar.gz /u01/E-BIZ/apps/apps_st/*

The entire tar processes may take more than couple of hours time (Depending upon the resources you have allocated for the source VM)
[/sourcecode]

Now we will copy the tar files created to our target system using SCP

As root, from /u01/backup folder

#scp –pr db.tar.gz root@ebs1213:/u01/backup

You will be given a warning, accept the prompt. After that, you will be asked to enter the root password for your target machine, in our case “ebs1213”

If your vision instance is fresh without much data added after it was put online, the tar ball will be something less than 30GB, and the transfer should complete within 16-20 minutes time

Once the database tar ball transferred you can proceed with transferring your application tar bar

#scp –pr apps.tar.gz root@ebs1213:/u01/backup

Amount of time required will vary depending upon the resources available. Wait until the transfer completes

Now you can shutdown your source system (So that you can release the memory/processors allocated and increase them with your new VM on which we will continue with the cloning process)

Shutdown your new VM (Target system)

Make changes to your new VM with more memory, processors etc

Boot up the new VM and logon to the VM as root

Step #3

We are going to MIMIC a production instance with our new VM (Please note, do not attempt to violate Oracle’s licensing agreements, our intention is not to help you with doing something which is against Oracle’s licensing terms and Vision instance usage)

We will create two new users and add them to existing oinstall and dba groups

As root

Now switch to /u01 folder (or other mount point as you have created it)

We will create a number of folders, which will be entirely different from the Vision Instance structure

[sourcecode language="bash"]
#mkdir oraprod

#cd oraprod

#mkdir PROD

#cd PROD

#mkdir db

#cd /u01

#mkdir applprod

#cd applprod

#mkdir PROD

#cd PROD

#mkdir apps

[/sourcecode]

Now we will change the ownership & permissions for /u01/oraprod & /u01/applprod

As root

[sourcecode language="bash"]
chown -R oraprod:dba /u01/oraprod

chmod -R 777 /u01/oraprod

chown -R oraprod:dba /u01/applprod

chmod -R 777 /u01/applprod

[/sourcecode]

Now we will extract the tar balls to appropriate folders

#cd /u01/oraprod/PROD/db

#time tar –zxvf /u01/backup/db.tar.gz

Approximately the extraction process will take around 3 hours for the database tar ball and around one hour for the application tar ball

Once the database tar ball extracted, we will start extracting the application tar ball

cd /u01/applprod/PROD/apps

time tar –zxvf /u01/backup/apps.tar.gz

Now we can start the actual cloning process

Step #4 Cloning the database tier

[sourcecode language="bash"]
[root@visclone u01]# su - oraprod
[oraprod@ebs1213 ~]$ cd /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/bin
[oraprod@ebs1213 bin]$

#
[root@visclone u01]# su - oraprod
[oraprod@ebs1213 ~]$ cd /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/bin
[oraprod@ebs1213 bin]$ perl adcfgclone.pl dbTier

                     Copyright (c) 2002 Oracle Corporation
                        Redwood Shores, California, USA

                        Oracle Applications Rapid Clone

                                 Version 12.0.0

                      adcfgclone Version 120.31.12010000.8

Enter the APPS password :

Running:
/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/bin/../jre/bin/java -Xmx600M -cp /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/jlib/java:/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/jlib/xmlparserv2.jar:/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/jlib/ojdbc5.jar oracle.apps.ad.context.CloneContext -e /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/bin/../context/db/CTXORIG.xml -validate -pairsfile /tmp/adpairsfile_3095.lst -stage /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone  2&gt; /tmp/adcfgclone_3095.err; echo $? &gt; /tmp/adcfgclone_3095.res

Log file located at /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/bin/CloneContext_1007224741.log

Provide the values required for creation of the new Database Context file.

Target System Hostname (virtual or normal) [ebs1213] :

Target Instance is RAC (y/n) [n] :

Target System Database SID : PROD

Target System Base Directory : /u01/oraprod

Target System utl_file_dir Directory List : /usr/tmp

Number of DATA_TOP's on the Target System [1] : 1

Target System DATA_TOP Directory 1 [/u01/E-BIZ/db/apps_st/data] : /u01/oraprod/PROD/db/apps_st/data

Target System RDBMS ORACLE_HOME Directory [/u01/oraprod/db/tech_st/11.1.0] : /u01/oraprod/PROD/db/tech_st/11.2.0.2

Do you want to preserve the Display [appvis:0.0] (y/n)  : n

Target System Display [ebs1213:0.0] :

Do you want the the target system to have the same port values as the source system (y/n) [y] ? : n

Target System Port Pool [0-99] : 42

[/sourcecode]

Database cloning will kick start now, and should complete without throwing errors. Some sample outputs like below

[sourcecode language="text"]
Checking the port pool 42
done: Port Pool 42 is free
Report file located at /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/temp/portpool.lst
Complete port information available at /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/temp/portpool.lst

Creating the new Database Context file from :
  /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/template/adxdbctx.tmp

The new database context file has been created :
  /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/PROD_ebs1213.xml

Log file located at /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/bin/CloneContext_1007224741.log
Check Clone Context logfile /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/bin/CloneContext_1007224741.log for details.

Running Rapid Clone with command:
perl /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/bin/adclone.pl java=/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/bin/../jre mode=apply stage=/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone component=dbTier method=CUSTOM dbctxtg=/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/PROD_ebs1213.xml showProgress contextValidated=true
Running:
perl /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/bin/adclone.pl java=/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/bin/../jre mode=apply stage=/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone component=dbTier method=CUSTOM dbctxtg=/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/PROD_ebs1213.xml showProgress contextValidated=true
APPS Password :

Beginning database tier Apply - Mon Oct  7 22:50:46 2013

/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/bin/../jre/bin/java -Xmx600M -DCONTEXT_VALIDATED=true  -Doracle.installer.oui_loc=/u01/oraprod/PROD/db/tech_st/11.2.0.2/oui -classpath /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/jlib/xmlparserv2.jar:/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/jlib/ojdbc5.jar:/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/jlib/java:/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/jlib/oui/OraInstaller.jar:/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/jlib/oui/ewt3.jar:/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/jlib/oui/share.jar:/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/jlib/oui/srvm.jar:/u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone/jlib/ojmisc.jar   oracle.apps.ad.clone.ApplyDBTier -e /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/PROD_ebs1213.xml -stage /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/clone   -showProgress
APPS Password : Log file located at /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/log/PROD_ebs1213/ApplyDBTier_10072250.log
  /      0% completed
[/sourcecode]

Once the cloning completes without errors, the database instance will start automatically and you can proceed with cloning the application tier

Step #5 Cloning the application tier

[sourcecode language="text"]
[oraprod@visclone u01]# su - oraprod
[applprod@ebs1213 ~]$ cd /u01/oraprod/PROD/apps/apps_st/comn/clone/bin
[applprod@ebs1213 bin]$

[applprod@ebs1213 bin]$ perl adcfgclone.pl appsTier

                     Copyright (c) 2002 Oracle Corporation
                        Redwood Shores, California, USA

                        Oracle Applications Rapid Clone

                                 Version 12.0.0

                      adcfgclone Version 120.31.12010000.8

Enter the APPS password :

Running:
/u01/applprod/PROD/apps/apps_st/comn/clone/bin/../jre/bin/java -Xmx600M -cp /u01/applprod/PROD/apps/apps_st/comn/clone/jlib/java:/u01/applprod/PROD/apps/apps_st/comn/clone/jlib/xmlparserv2.jar:/u01/applprod/PROD/apps/apps_st/comn/clone/jlib/ojdbc14.jar oracle.apps.ad.context.CloneContext -e /u01/applprod/PROD/apps/apps_st/comn/clone/bin/../context/apps/CTXORIG.xml -validate -pairsfile /tmp/adpairsfile_11049.lst -stage /u01/applprod/PROD/apps/apps_st/comn/clone  2&gt; /tmp/adcfgclone_11049.err; echo $? &gt; /tmp/adcfgclone_11049.res

Log file located at /u01/applprod/PROD/apps/apps_st/comn/clone/bin/CloneContext_1007230323.log

Provide the values required for creation of the new APPL_TOP Context file.

Target System Hostname (virtual or normal) [ebs1213] :

Target System Database SID : PROD

Target System Database Server Node [ebs1213] :

Target System Database Domain Name [rhome.com] :

Target System Base Directory : /u01/applprod

Target System Tools ORACLE_HOME Directory [/u01/applprod/apps/tech_st/10.1.2] : /u01/applprod/PROD/apps/tech_st/10.1.2

Target System Web ORACLE_HOME Directory [/u01/applprod/apps/tech_st/10.1.3] :  /u01/applprod/PROD/apps/tech_st/10.1.3

Target System APPL_TOP Directory [/u01/applprod/apps/apps_st/appl] :  /u01/applprod/PROD/apps/apps_st/appl

Target System COMMON_TOP Directory [/u01/applprod/apps/apps_st/comn] :  /u01/applprod/PROD/apps/apps_st/comn

Target System Instance Home Directory [/u01/applprod/inst] :  /u01/applprod/PROD/inst      
Target System Root Service [enabled] :

Target System Web Entry Point Services [enabled] :

Target System Web Application Services [enabled] :

Target System Batch Processing Services [enabled] :

Target System Other Services [disabled] :

Do you want to preserve the Display [appvis:0.0] (y/n)  : n

[/sourcecode]

We had an error, applprod user failing to write to /tmp folder

Target System Display [ebs1213:0.0] :
RC-50004: Error occurred in CloneContext:
AC-00005: No write permissions for creating the Context file – /tmp/temp.xml
Raised by oracle.apps.ad.context.AppsContext
Check Clone Context logfile /u01/applprod/PROD/apps/apps_st/comn/clone/bin/CloneContext_1007230323.log for details.

ERROR: Context creation not completed successfully.
For additional details review the file /tmp/adcfgclone_11049.err if present.

Hence I have changed the ownership & permissions for  /tmp folder

[sourcecode language="bash"]
login as: root
root@ebs1213.rhome.com's password:
Last login: Mon Oct  7 16:18:34 2013 from 192.168.0.200

[root@ebs1213/]# ls -al | grep tmp
drwxrwxrwx   7 root   root     20480 Oct  7 23:06 tmp
[root@ebs1213/]# chown -R applprod:dba /tmp
[root@ebs1213/]# chmod -R 777 /tmp
[root@ebs1213/]# ls -al | grep tmp
drwxrwxrwx   7 applprod dba      20480 Oct  7 23:06 tmp
[root@ebs1213/]#
[/sourcecode]

Re-run the application tier cloning as user “applprod”

[sourcecode language="text"]
Checking the port pool 42
done: Port Pool 42 is free
Report file located at /u01/applprod/PROD/inst/apps/PROD_ebs1213/admin/out/portpool.lst
Complete port information available at /u01/applprod/PROD/inst/apps/PROD_ebs1213/admin/out/portpool.lst

UTL_FILE_DIR on database tier consists of the following directories.

1. /usr/tmp
2. /usr/tmp
3. /u01/oraprod/PROD/db/tech_st/11.2.0.2/appsutil/outbound/PROD_ebs1213
4. /usr/tmp
Choose a value which will be set as APPLPTMP value on the target node [1] : 1

Creating the new APPL_TOP Context file from :
  /u01/applprod/PROD/apps/apps_st/appl/ad/12.0.0/admin/template/adxmlctx.tmp

The new APPL_TOP context file has been created :
  /u01/applprod/PROD/inst/apps/PROD_ebs1213/appl/admin/PROD_ebs1213.xml

Log file located at /u01/applprod/PROD/apps/apps_st/comn/clone/bin/CloneContext_1007233459.log
Check Clone Context logfile /u01/applprod/PROD/apps/apps_st/comn/clone/bin/CloneContext_1007233459.log for details.

Running Rapid Clone with command:
perl /u01/applprod/PROD/apps/apps_st/comn/clone/bin/adclone.pl java=/u01/applprod/PROD/apps/apps_st/comn/clone/bin/../jre mode=apply stage=/u01/applprod/PROD/apps/apps_st/comn/clone component=appsTier method=CUSTOM appctxtg=/u01/applprod/PROD/inst/apps/PROD_ebs1213/appl/admin/PROD_ebs1213.xml showProgress contextValidated=true
Running:
perl /u01/applprod/PROD/apps/apps_st/comn/clone/bin/adclone.pl java=/u01/applprod/PROD/apps/apps_st/comn/clone/bin/../jre mode=apply stage=/u01/applprod/PROD/apps/apps_st/comn/clone component=appsTier method=CUSTOM appctxtg=/u01/applprod/PROD/inst/apps/PROD_ebs1213/appl/admin/PROD_ebs1213.xml showProgress contextValidated=true
APPS Password :

Beginning application tier Apply - Mon Oct  7 23:36:52 2013

/u01/applprod/PROD/apps/apps_st/comn/clone/bin/../jre/bin/java -Xmx600M -DCONTEXT_VALIDATED=true  -Doracle.installer.oui_loc=/oui -classpath /u01/applprod/PROD/apps/apps_st/comn/clone/jlib/xmlparserv2.jar:/u01/applprod/PROD/apps/apps_st/comn/clone/jlib/ojdbc14.jar:/u01/applprod/PROD/apps/apps_st/comn/clone/jlib/java:/u01/applprod/PROD/apps/apps_st/comn/clone/jlib/oui/OraInstaller.jar:/u01/applprod/PROD/apps/apps_st/comn/clone/jlib/oui/ewt3.jar:/u01/applprod/PROD/apps/apps_st/comn/clone/jlib/oui/share.jar:/u01/applprod/PROD/apps/apps_st/comn/clone/jlib/oui/srvm.jar:/u01/applprod/PROD/apps/apps_st/comn/clone/jlib/ojmisc.jar  oracle.apps.ad.clone.ApplyAppsTier -e /u01/applprod/PROD/inst/apps/PROD_ebs1213/appl/admin/PROD_ebs1213.xml -stage /u01/applprod/PROD/apps/apps_st/comn/clone    -showProgress
APPS Password : Log file located at /u01/applprod/PROD/inst/apps/PROD_ebs1213/admin/log/ApplyAppsTier_10072336.log
  -      0% completed

  Completed Apply...
Mon Oct  7 23:43:12 2013


Do you want to startup the Application Services for PROD? (y/n) [y] : y

Starting application Services for PROD:
Running:
/u01/applprod/PROD/inst/apps/PROD_ebs1213/admin/scripts/adstrtal.sh -nopromptmsg

You are running adstrtal.sh version 120.15.12010000.3

The logfile for this session is located at /u01/applprod/PROD/inst/apps/PROD_ebs1213/logs/appl/admin/log/adstrtal.log
Executing service control script:
/u01/applprod/PROD/inst/apps/PROD_ebs1213/admin/scripts/adopmnctl.sh start
script returned:
****************************************************

You are running adopmnctl.sh version 120.6.12010000.5

Starting Oracle Process Manager (OPMN) ...
opmnctl: opmn started.

adopmnctl.sh: exiting with status 0

adopmnctl.sh: check the logfile /u01/applprod/PROD/inst/apps/PROD_ebs1213/logs/appl/admin/log/adopmnctl.txt for more information ...


.end std out.

.end err out.

****************************************************


Executing service control script:
/u01/applprod/PROD/inst/apps/PROD_ebs1213/admin/scripts/adalnctl.sh start
script returned:
****************************************************

adalnctl.sh version 120.3

Checking for FNDFS executable.
Starting listener process APPS_PROD.

adalnctl.sh: exiting with status 0


adalnctl.sh: check the logfile /u01/applprod/PROD/inst/apps/PROD_ebs1213/logs/appl/admin/log/adalnctl.txt for more information ...


.end std out.

.end err out.

****************************************************


Executing service control script:
/u01/applprod/PROD/inst/apps/PROD_ebs1213/admin/scripts/adapcctl.sh start
script returned:
****************************************************

You are running adapcctl.sh version 120.7.12010000.2

Starting OPMN managed Oracle HTTP Server (OHS) instance ...
opmnctl: opmn is already running.
opmnctl: starting opmn managed processes...

adapcctl.sh: exiting with status 0

adapcctl.sh: check the logfile /u01/applprod/PROD/inst/apps/PROD_ebs1213/logs/appl/admin/log/adapcctl.txt for more information ...


.end std out.

.end err out.

****************************************************


Executing service control script:
/u01/applprod/PROD/inst/apps/PROD_ebs1213/admin/scripts/adoacorectl.sh start
script returned:
****************************************************

You are running adoacorectl.sh version 120.13

Starting OPMN managed OACORE OC4J instance  ...

adoacorectl.sh: exiting with status 0

adoacorectl.sh: check the logfile /u01/applprod/PROD/inst/apps/PROD_ebs1213/logs/appl/admin/log/adoacorectl.txt for more information ...


.end std out.

.end err out.

****************************************************


Executing service control script:
/u01/applprod/PROD/inst/apps/PROD_ebs1213/admin/scripts/adformsctl.sh start
script returned:
****************************************************

You are running adformsctl.sh  version 120.16.12010000.3

Starting OPMN managed FORMS OC4J instance  ...
Calling txkChkFormsDeployment.pl to check whether latest FORMSAPP.EAR is deployed...
Program : /u01/applprod/PROD/apps/apps_st/appl/fnd/12.0.0/patch/115/bin/txkChkFormsDeployment.pl started @ Mon Oct  7 23:44:32 2013

*** Log File = /u01/applprod/PROD/inst/apps/PROD_ebs1213/logs/appl/rgf/TXK/txkChkFormsDeployment_Mon_Oct_7_23_44_31_2013/txkChkFormsDeployment_Mon_Oct_7_23_44_31_2013.log

File &quot;/u01/applprod/PROD/apps/tech_st/10.1.3/j2ee/forms/applications/forms/formsweb/WEB-INF/lib/frmsrv.jar&quot; exists. Proceeding to check the size...

=============================================
*** Latest formsapp.ear has been deployed ***
=============================================


Program : /u01/applprod/PROD/apps/apps_st/appl/fnd/12.0.0/patch/115/bin/txkChkFormsDeployment.pl completed @ Mon Oct  7 23:44:32 2013

Perl script txkChkFormsDeployment.pl got executed successfully



adformsctl.sh: exiting with status 0

adformsctl.sh: check the logfile /u01/applprod/PROD/inst/apps/PROD_ebs1213/logs/appl/admin/log/adformsctl.txt for more information ...


.end std out.
*** ALL THE FOLLOWING FILES ARE REQUIRED FOR RESOLVING RUNTIME ERRORS
*** Log File = /u01/applprod/PROD/inst/apps/PROD_ebs1213/logs/appl/rgf/TXK/txkChkFormsDeployment_Mon_Oct_7_23_44_31_2013/txkChkFormsDeployment_Mon_Oct_7_23_44_31_2013.log

.end err out.

****************************************************


Executing service control script:
/u01/applprod/PROD/inst/apps/PROD_ebs1213/admin/scripts/adoafmctl.sh start
script returned:
****************************************************

You are running adoafmctl.sh version 120.8

Starting OPMN managed OAFM OC4J instance  ...

adoafmctl.sh: exiting with status 0

adoafmctl.sh: check the logfile /u01/applprod/PROD/inst/apps/PROD_ebs1213/logs/appl/admin/log/adoafmctl.txt for more information ...


.end std out.

.end err out.

****************************************************


Executing service control script:
/u01/applprod/PROD/inst/apps/PROD_ebs1213/admin/scripts/adcmctl.sh start
script returned:
****************************************************

You are running adcmctl.sh version 120.17.12010000.5

Starting concurrent manager for PROD ...
Starting PROD_1007@PROD Internal Concurrent Manager
Default printer is noprint

adcmctl.sh: exiting with status 0


adcmctl.sh: check the logfile /u01/applprod/PROD/inst/apps/PROD_ebs1213/logs/appl/admin/log/adcmctl.txt for more information ...


.end std out.

.end err out.

****************************************************


Executing service control script:
/u01/applprod/PROD/inst/apps/PROD_ebs1213/admin/scripts/jtffmctl.sh start
script returned:
****************************************************

You are running jtffmctl.sh version 120.3

Validating Fulfillment patch level via /u01/applprod/PROD/apps/apps_st/comn/java/classes
Fulfillment patch level validated.
Starting Fulfillment Server for PROD on port 9342 ...

jtffmctl.sh: exiting with status 0


.end std out.

.end err out.

****************************************************


All enabled services for this node are started.

adstrtal.sh: Exiting with status 0

adstrtal.sh: check the logfile /u01/applprod/PROD/inst/apps/PROD_ebs1213/logs/appl/admin/log/adstrtal.log for more information ...

[applprod@ebs1213 bin]$

[/sourcecode]

Rolled back /tmp ownership

[sourcecode language="bash"]
[root@ebs1213 /]# chown -R root:root /tmp
[root@ebs1213 /]# ls -al | grep tmp
drwxrwxrwx   7 root   root     28672 Oct  7 23:44 tmp
[root@ebs1213 /]#
[/sourcecode]

Try to access your newly cloned instance through http://ebs1213.rhome.com:8042/

You should be provided with a login page. Use either sysadmin or other user you have created earlier, change site name etc and enjoy!

I hope you have enjoyed another “beginner” post form windows7bugs

for windows7bugs

rajesh