DOYENSYS Knowledge Portal




We Welcome you to visit our DOYENSYS KNOWLEDGE PORTAL : Doyensys Knowledge Portal




Friday, March 23, 2018

Script to migrate rdf files to the server

#Script to migrate rdf files
. Source your environment file here

scr_log=file_directory_location/MIGRATION/logs/reports_migr_op.log;export scr_log
find_log=file_directory_location/MIGRATION/logs/report_find.log;export find_log
find_log2=file_directory_location/MIGRATION/logs/report_find2.log;export find_log2
usr_nme=`whoami`; export usr_nme
hstnme=`hostname`; export hstnme
find_log=file_directory_location/MIGRATION/logs/reports_find.log;export find_log
dateis=`date +"%d"/"%m"/"%Y"_"%H":"%M":"%S"`; export dateis

#echo $usr_nme
#echo $hstnme
name_conv=`echo $usr_nme|tr 'a-z' 'A-Z'`;export name_conv
#echo "User Name is : $name_conv"
echo "User $name_conv has logged in to $hstnme at $dateis" >> $scr_log

echo "Enter the file name : \c"
read fle_name
if [ "$fle_name" = "" ]; then
echo "You entered NULL Value for filename, please enter a valid file name. Exiting from script !!!!"
echo "User entered NULL Value for filename, exiting from script !!!! - Date: $dateis" >> $scr_log
echo "\n" >> $scr_log
exit;
else
echo "File name you entered is $fle_name"
echo "User $name_conv has typed the filename $fle_name" >> $scr_log
#echo "\n" >> $scr_log
cd file_directory_location/MIGRATION/REPORTS/
echo "Finding file $fle_name from file_directory_location/MIGRATION/REPORTS - Date: $dateis" >> $scr_log
find . -name "$fle_name" > $find_log
F15M="cut -d "/" -f2 $find_log";export F15M
F16M=`cat $find_log|wc -l`;export F16M
if [ "$F16M" -gt 0 ]; then
echo "File $fle_name, found in file_directory_location/MIGRATION/REPORTS - Date: $dateis, file exists !!!!" >> $scr_log
echo "Finding file $fle_name from "$"XBOL_TOP/reports/US - Date: $dateis" >> $scr_log
find $XBOL_TOP/reports/US -name "$fle_name" > $find_log2
F17M=`cut -d "/" -f12 $find_log2`;export F17M
#echo "File name ******* $F17M"
F18M=`cat $find_log2|wc -l`;export F18M
if [ $F18M -gt 0 ]; then
echo "File $fle_name, found in "$"XBOL_TOP/reports/US - Date: $dateis, file exists !!!! in XBOL_TOP" >> $scr_log
cp $XBOL_TOP/reports/US/$fle_name $XBOL_TOP/reports/US/"$fle_name"_`date +%d%b%y_%H%M%S`
echo "Backing up $fle_name in "$"XBOL_TOP/reports/US" >> $scr_log
mv $fle_name $XBOL_TOP/reports/US
echo "File $fle_name has been moved to "$"XBOL_TOP/reports/US Date - $dateis"
echo "File $fle_name has been moved to "$"XBOL_TOP/reports/US Date - $dateis" >> $scr_log
echo "\n" >> $scr_log
else
echo "This file is not found in "$"XBOL_TOP/reports/US, please confirm if this is a new file to be migrated (Y/N) :\c"
echo "This file is not found in "$"XBOL_TOP/reports/US, might be a new file. Waiting for User confirmation(Y/N)" >> $scr_log
read confim
if [ $confim = 'Y' ]; then
echo "User entered $confim Date - $dateis"
echo "User entered $confim, migrating a new file to XBOL_TOP Date - $dateis" >> $scr_log
mv $fle_name $XBOL_TOP/reports/US
echo "File $fle_name has been moved to "$"XBOL_TOP/reports/US Date - $dateis" >> $scr_log
echo "\n" >> $scr_log
echo "File $fle_name has been moved to "$"XBOL_TOP/reports/US"
else
echo "User entered N,(please review the file name, the file you entered doesnot exist in XBOL_TOP) exiting from script Date - $dateis !!!!"
echo "User entered N,(the file $fle_name doesnot exist in XBOL_TOP,  might be a new file) exiting from script Date - $dateis !!!!" >> $scr_log
echo "\n" >> $scr_log
exit;
fi
fi
else
echo "The file $fle_name does not exist in file_directory_location/MIGRATION/REPORTS - Date: $dateis, pls verify the file name"
echo "The file $fle_name does not exist in file_directory_location/MIGRATION/REPORTS - Date: $dateis" >> $scr_log
echo "\n" >> $scr_log
fi
fi

Script to automatically compile fmb files

#Script to migrate fmb files
. Source your environment file here

scr_log=file_directory_location/MIGRATION/logs/forms_migr_op.log;export scr_log
find_log=file_directory_location/MIGRATION/logs/forms_migr_find.log;export find_log
pw=`cat file_directory_location/MIGRATION/scripts/.watchwrd`;export pw
find_log2=file_directory_location/MIGRATION/logs/forms_migr_find2.log;export find_log2
usr_nme=`whoami`; export usr_nme
hstnme=`hostname`; export hstnme
dateis=`date +"%d"/"%m"/"%Y"_"%H":"%M":"%S"`; export dateis

#echo $usr_nme
#echo $hstnme
name_conv=`echo $usr_nme|tr 'a-z' 'A-Z'`;export name_conv
#echo "User Name is : $name_conv"
echo "User $name_conv has logged in to $hstnme at $dateis" >> $scr_log

echo "Enter the file name : \c"
read fle_name
fmbfile=`echo $fle_name|cut -d "." -f1`;export fmbfile
#echo $fmbfile
if [ "$fle_name" = "" ]; then
echo "You entered NULL Value for filename, please enter a valid file name. Exiting from script !!!!"
echo "User entered NULL Value for filename, exiting from script !!!! - Date: $dateis" >> $scr_log
echo "\n" >> $scr_log
exit;
else
echo "File name you entered is $fle_name"
echo "User $name_conv has typed the filename $fle_name" >> $scr_log
#echo "\n" >> $scr_log
cd file_directory_location/MIGRATION/FORMS/
echo "Finding file $fle_name from file_directory_location/MIGRATION/FORMS - Date: $dateis" >> $scr_log
find . -name "$fle_name" > $find_log
F15M="cut -d "/" -f2 $find_log";export F15M
F16M=`cat $find_log|wc -l`;export F16M
if [ "$F16M" -gt 0 ]; then
echo "File $fle_name, found in file_directory_location/MIGRATION/FORMS - Date: $dateis, file exists !!!!" >> $scr_log
find $AU_TOP/forms/US -name "$fle_name" > $find_log2
F17M=`cut -d "/" -f12 $find_log2`;export F17M
#echo "File name ******* $F17M"
F18M=`cat $find_log2|wc -l`;export F18M
if [ $F18M -gt 0 ]; then
echo "Finding file $fle_name from "$"AU_TOP/forms/US - Date: $dateis" >> $scr_log
echo "File $fle_name, found in "$"AU_TOP/forms/US - Date: $dateis, file exists !!!! in XBOL_TOP" >> $scr_log
cp $AU_TOP/forms/US/$fle_name $AU_TOP/forms/US/"$fle_name"_`date +%d%b%y_%H%M%S`
echo "Backing up $fle_name in "$"AU_TOP/forms/US" >> $scr_log
echo "Backing up $fle_name in "$"AU_TOP/forms/US"
mv $fle_name $AU_TOP/forms/US
echo "File $fle_name has been moved to "$"AU_TOP/forms/US Date - $dateis"
echo "File $fle_name has been moved to "$"AU_TOP/forms/US Date - $dateis" >> $scr_log
#echo "\n" >> $scr_log
cd $AU_TOP/forms/US
echo "Compiling form $fle_name in "$"AU_TOP/forms/US" >> $scr_log
echo "Compiling form $fle_name in "$"AU_TOP/forms/US"
watw=`echo $pw|openssl enc -aes-128-cbc -a -d -salt -pass pass:asdffdsa`; export watw
#echo $watw
frm_cmp_log=file_directory_location/MIGRATION/logs/"$fmbfile"_`date +%d%b%y_%H%M%S`.log; export frm_cmp_log
touch $frm_cmp_log
echo "Logfile :- $frm_cmp_log" >> $scr_log
echo "Logfile :- $frm_cmp_log"
frmcmp_batch module=$AU_TOP/forms/US/$fle_name userid=apps/"$watw" output_file=$XBOL_TOP/forms/US/$fmbfile.fmx module_type=form compile_all=special > $frm_cmp_log
ct=`cat $frm_cmp_log|grep -i "Form not created"|wc -l`; export ct
if [ $ct -eq 1 ]; then
echo "Forms not Created. Please check logfile:- $frm_cmp_log) for errors"
else
echo "Form $fle_name has been compiled" >> $scr_log
echo "Form $fle_name has been compiled"
echo "\n" >> $scr_log
fi
else
echo "This file is not found in "$"AU_TOP/forms/US, please confirm if this is a new file to be migrated (Y/N) :\c"
echo "This file is not found in "$"AU_TOP/forms/US, might be a new file. Waiting for User confirmation(Y/N)" >> $scr_log
read confim
if [ $confim = 'Y' ]; then
echo "User entered $confim Date - $dateis"
echo "User entered $confim, compiling a new file in "$"AU_TOP Date - $dateis" >> $scr_log
mv $fle_name $AU_TOP/forms/US
echo "File $fle_name has been moved to "$"AU_TOP/forms/US Date - $dateis"
echo "File $fle_name has been moved to "$"AU_TOP/forms/US Date - $dateis" >> $scr_log
cd $AU_TOP/forms/US
echo "Compiling form $fle_name in "$"AU_TOP/forms/US" >> $scr_log
echo "Compiling form $fle_name in "$"AU_TOP/forms/US"
watw=`echo $pw|openssl enc -aes-128-cbc -a -d -salt -pass pass:asdffdsa`; export watw
#echo $watw
frm_cmp_log=file_directory_location/MIGRATION/logs/"$fmbfile"_`date +%d%b%y_%H%M%S`.log; export frm_cmp_log
touch $frm_cmp_log
echo "Logfile :- $frm_cmp_log" >> $scr_log
echo "Logfile :- $frm_cmp_log"
frmcmp_batch module=$AU_TOP/forms/US/$fle_name userid=apps/"$watw" output_file=$XBOL_TOP/forms/US/$fmbfile.fmx module_type=form compile_all=special > $frm_cmp_log
ct=`cat $frm_cmp_log|grep -i "Form not created"|wc -l`; export ct
if [ $ct -eq 1 ]; then
echo "Forms not Created. Please check logfile:- $frm_cmp_log) for errors"
else
echo "Form $fle_name has been compiled" >> $scr_log
echo "Form $fle_name has been compiled"
echo "\n" >> $scr_log
fi
else
echo "User entered N,(please review the file name, the file you entered doesnot exist in "$"AU_TOP/forms/US) exiting from script Date - $dateis !!!!"
echo "User entered N,(the file $fle_name doesnot exist in "$"AU_TOP/forms/US,  might be a new file) exiting from script Date - $dateis !!!!" >> $scr_log
echo "\n" >> $scr_log
exit;
fi
fi
else
echo "The file $fle_name does not exist in file_directory_location/MIGRATION/FORMS - Date: $dateis, pls verify the file name"
echo "The file $fle_name does not exist in file_directory_location/MIGRATION/FORMS - Date: $dateis" >> $scr_log
echo "\n" >> $scr_log
fi
fi

Script to check the deferred item types in R12 Applications

. Source your environment file here##########################
sqlplus -s 'apps/*********' <<EOF >> /prdapp01/oracle/Monitoring_logs/log_weblogicbkg_deffer.log
spool /usr/tmp/weblogicbkg_deffer.log
select to_char(sysdate, 'DD-MON-YY HH:MI:SS AM')"Date" from dual;
select distinct item_type, count(*) from wf_item_activity_statuses where activity_status ='DEFERRED'and trunc(begin_date)=trunc(SYSDATE) group by item_type;
/**select 'Complete Deferred List' from dual;
select distinct item_type, count(*) from wf_item_activity_statuses where activity_status ='DEFERRED' group by item_type;**/
spool off
quit;
EOF

Script to terminate Forms Runaway Processes(Automaticall kill frmweb process that doesnot have proper db sessions)

#Script to Kill runaway Form processes

. Source your environment file here ######################

proc_file=file_directory_location/prc_id.log; export proc_file
op_log=file_directory_location/sess_proc_id.log; export op_log
op_log2=file_directory_location/sess_proc_id_2.log; export op_log2
op_log3=file_directory_location/grep_proc_id.sh; export op_log3
op_log4=file_directory_location/kill_proc_id.sh; export op_log4
dateis=`date +"%d"/"%m"/"%Y"_"%H":"%M":"%S"`; export dateis

proc_id_list=`ps -ef|grep -i frmweb|grep -v grep|awk '{print $2}' > $proc_file`; export proc_id_list

loop_list=`cat $proc_file`;export loop_list

for i in $loop_list
do
sqlplus -s 'system/**********' << EOF >> $op_log
set serveroutput on;
set feedback off;
declare
prcs_id varchar2(30) :='$i';
lv_n_process varchar2(30);
begin
select distinct process into lv_n_process from
v\$session
where process =prcs_id;
exception
when no_data_found then
dbms_output.put_line('No Database Sessions For Process: '||prcs_id);
end;
/
exit;
EOF
done

op_count=`cat $op_log|wc -l`;export op_count
proc_grep=`cat $op_log|awk '{print "ps -ef|grep -i " $6}' > $op_log3`;export proc_grep
#echo $op_count
if [ $op_count = 0 ]
then
echo "########################################################################## \n" >> $op_log2
echo "No Runaway Form Processes during last run at $dateis \n" >> $op_log2
echo "########################################################################## \n" >> $op_log2
else
echo "########################################################################## \n" >> $op_log2
echo "\tFind the Runaway Form Processes during last run at $dateis as follows," >> $op_log2
cat $op_log >> $op_log2
echo "\n" >> $op_log2
echo "\t\tGrepping the Form Processes(These Runaway Processes are going to be killed!!!!)" >> $op_log2
sh "$op_log3"|grep -v grep >> $op_log2
echo "\n" >> $op_log2
sh "$op_log3"|grep -v grep|awk '{print "kill -9 "$2}' > $op_log4
echo "\tRunaway Processes Killed" >> $op_log2
cat $op_log4 >> $op_log2
sh "$op_log4" >> $op_log2
echo "\n" >> $op_log2
echo "########################################################################## \n" >> $op_log2
fi
>$op_log

Thursday, March 22, 2018

APP-FND-00690: Program error: The data that defines the flexfield on this field may be inconsistent

On : 12.1.2 version, Other Inventory Issues
Oracle Inventory Management - Version 12.1.2 and later

When attempting to retrieve specific item category set, found following error message. 

ERROR
-----------------------
APP-FND-00690: Program error: The data that defines the flexfield on this field may be inconsistent.

Inform your system administrator that the routine FND_FLEX_SERVER2.get_qualsegs() could not find any segments for the flexfield specified by application id = 401, Code = MCAT and structure number = 2

STEPS
-----------------------
The issue can be reproduced at will with the following steps:
1. When customer review the categories set, the error APP-FND-00690 occurs. 
2. Customer try to unfreeze the DFF, and then freeze and compile it. 
3. The problem still there, and customer change system option to &quot;Validation Flexfild on Server&quot; to &quot;No&quot;, but it is not working and it will close alll form when customer go to that category set record.


CAUSE
-------------------

There is no Segment setup for Product Family Flexfield structure of Item Category in Inventory application
Use following SQL statement to identify problematic flexfield structure:
select id_flex_structure_code
from fnd_id_flex_structures
where application_id = 401
and id_flex_code = 'MCAT'
and id_flex_num = 2;

SOLUTION
--------------------

=== ODM Solution /Action Plan ===
1. Go into the responsibility: System Administrator
2. Navigate to Application - Flexfield - Key - Segments
3. Query Item Category Flexfield in Title field
4. Unfreeze Flexfield Definition
5. Query Product Family structure
6. Press Segments button
7. Create dummy segment
8. Check Enabled check box - leave Displayed check box unchecked
9. Save record and close Segments form
10. Freeze Flexfield Definition
11. Compile Flexfield Definition
12. Retest the issue.
13. Migrate the solution as appropriate to other environments.

Reference:


Wednesday, March 21, 2018

REST your EBS data with Oracle RESTful Data Services (ORDS)

REST your EBS data with Oracle RESTful Data Services (ORDS)
1.Apex Installation:
Apex software version:apex_4.2.4.zip
Create a new tablespace to act as the default tablespace for APEX.
CREATE TABLESPACE apex DATAFILE '/u01/app/oracle/oradata/db11g/apex01.dbf'
  SIZE 100M AUTOEXTEND ON NEXT 1M;
cd  /u01/apex
cp apex_4.2.4.zip /u01/apex
unzip apex_4.2.4.zip
cd apex
connect sqlplus
@apexins.sql APEX APEX TEMP /i/
Once complete, change the admin password by running the "apxchpwd.sql" scripts as the SYS user.

sql> @apxchpwd.sql

Create the APEX_LISTENER and APEX_REST_PUBLIC_USER users by running the "apex_rest_config.sql" script.
SQL> CONN / AS SYSDBA
SQL> @apex_rest_config.sql

2.ORDS Installation:
ords.2.0.10.289.08.09.zip
unzip ords.2.0.10.289.08.09.zip
java -jar ords.war configdir /u01/ORDS
java -jar ords.war
[oracle@dspl1225 ORDS]$ java -jar ords.war
Feb 27, 2018 5:01:31 AM oracle.dbtools.common.config.file.ConfigurationFolder logConfigFolder
INFO: Using configuration folder: /u01/ORDS/ords
Enter the name of the database server [localhost]:129.144.180.26
Enter the database listen port [1521]:
Enter 1 to specify the database service name, or 2 to specify the database SID [1]:2
Enter the database SID [xe]:EBSDB
Enter the database user name [APEX_PUBLIC_USER]:oracle$123
Enter the database password for oracle$123:[oracle@dspl1225 ORDS]$
[oracle@dspl1225 ORDS]$ java -jar ords.war
Feb 27, 2018 5:04:43 AM oracle.dbtools.common.config.file.ConfigurationFolder logConfigFolder
INFO: Using configuration folder: /u01/ORDS/ords
Enter the name of the database server [localhost]:129.144.180.26
Enter the database listen port [1521]:
Enter 1 to specify the database service name, or 2 to specify the database SID [1]:2
Enter the database SID [xe]:EBSDB
Enter the database user name [APEX_PUBLIC_USER]:
Enter the database password for APEX_PUBLIC_USER:
Confirm password:
Enter 1 to enter passwords for the RESTful Services database users (APEX_LISTENER,APEX_REST_PUBLIC_USER), 2 to use the same password as used for APEX_PUBLIC_USER or, 3 to skip this step [1]:1
Enter the database password for APEX_LISTENER:
Confirm password:
Enter the database password for APEX_REST_PUBLIC_USER:
Confirm password:
Feb 27, 2018 5:05:35 AM oracle.dbtools.common.config.file.ConfigurationFiles update
INFO: Updated configurations: defaults, apex, apex_al, apex_rt
Enter 1 if you wish to start in standalone mode or 2 to exit [1]:1

Static Image location need to give Apex images: /u01/apex/images

nohup java -jar ords.war &


Login to Apex Admin Console

1.Create Workspace and assign default schema as apps.
2.Login to workspace as you created .
Ex:
Workspace Name :Mobile
Username              : admin
Password               : XXXXXXXXX






3. Creating the Web Service
Navigation: SQL Workshop > RESTful Services > Create 








Source
SELECT hca.account_number,
hp.party_name customer_name,
hca.cust_account_id,
hca.object_version_number cust_object_version_number,
TO_CHAR(hca.creation_date,'mm/dd/yyyy') creation_date,
hca.status,
hca.customer_type,
hca.customer_class_code,
hca.sales_channel_code,
hp.tax_reference,
hp.address1,
hp.address2,
hp.city,
hp.postal_code,
hp.state,
hp.object_version_number party_object_version_number
FROM ar.hz_cust_accounts hca, ar.hz_parties hp  WHERE hp.party_id = hca.party_id AND hca.account_number = :custnum


Set Bind Variables





Click TEST 










  









Creating a Custom Application in Oracle E-Business Suite Release 12.2


Step 1: Create A Custom Application Using AD Splice
  1. Download Patch 3636980 "Support Diagnostics (IZU) patch for AD Splice" from My Oracle Support.
  2. Manually copy the three .txt files from the 3636980\izu\admin directory to your own temporary directory.
  3. Rename izuprod.txt to <CUSTOM MODULE>prod.txt. In this example, we will be using "xxmzprod.txt".
  4. Rename izterr.txt to <CUSTOM MODULE>terr.txt. In this example, we will be using "xxmzterr.txt".
Ex:
Rename izuterr.txt to xxerpterr.txt
and         izuprod.txt to xxerpprod.txt
5. Change the details in the newprods.txt so that all references of "izu" to and all references of "IZU" to (i.e. keep the case sensitivity).
Ex:
In this example case, the modified version of this file will look like the following:
product=xxerp
base_product_top= *APPL_TOP*
oracle_schema=xxerp
sizing_factor=100
main_tspace= USER_DATA
index_tspace=USER_IDX
temp_tspace=TEMP
default_tspace= USER_DATA


6. We then create a  tablespace. In our example our tablespace name will be TSXXST
Note: Custom data and index tablespaces are defaulted to APPS_TX_TX_DATA and APPS_TS_TX_IDX.

7.After we create the tablespace, we continue with the user creation. We add the required privileges so that this use can work
Ex:
CREATE USER XXERP
  IDENTIFIED BY xxerp
  DEFAULT TABLESPACE XXERP
  TEMPORARY TABLESPACE TEMP
  PROFILE DEFAULT
  ACCOUNT UNLOCK;
    -- 1 Role for XXERP 
  GRANT CONNECT TO XXERP;
  ALTER USER XXERP DEFAULT ROLE ALL;
    -- 13 System Privileges for XXERP 
  GRANT ALTER ANY OUTLINE TO XXERP;
  GRANT ALTER SESSION TO XXERP;
  GRANT ANALYZE ANY TO XXERP;
  GRANT CREATE ANY OUTLINE TO XXERP;
  GRANT CREATE CLUSTER TO XXERP;
  GRANT CREATE MATERIALIZED VIEW TO XXERP;
  GRANT CREATE SEQUENCE TO XXERP;
  GRANT CREATE SESSION TO XXERP;
  GRANT CREATE TABLE TO XXERP;
  GRANT CREATE TRIGGER TO XXERP;
  GRANT CREATE TYPE TO XXERP;
  GRANT DROP ANY OUTLINE TO XXERP;
  GRANT QUERY REWRITE TO XXERP;
  
  ALTER USER XXERP QUOTA UNLIMITED ON XXERP;
Change all references to prodid 278 to your own application ID.

If you are upgrading, and the custom application already exists in the database, you should specify the same application ID. If you are performing a new installation, choose a number above 50,000 that is not already in use.

You can run the following SQL to find out if your selected custom application ID number is available:
SQL>select decode(count ,0, 'Selected number is available', 'Selected number is already in use') Status, &&enter_custom_applID selected_number
from
(
select count(*) as count from
(
select 'x' from fnd_oracle_userid
where oracle_id= &&enter_custom_applID
union
select 'x' from fnd_application
where application_id= &&enter_custom_applID
)
);
Note: This example will use a prodid of 50001.

8. Open xxmzterr.txt in a text editor.
  1. Change all references of "izu" to <custom module> and all references of "IZU" to <CUSTOM MODULE> (keeping the case sensitivity).
  2. Note: In this example, references to "izu" will to changed to "xxerp", and references to "IZU" will be changed to "XXERP".
  3. Copy the following text files to the $APPL_TOP/admin directory:
    1. xxmzprod.txt
    2. xxmzterr.txt
    3. newprods.txt
9.Change directory to the admin directory under $APPL_TOP

10.Run AD Splice

Note: In Oracle E-Business Suite Release 12.2, AD Splice first makes the new user edition-enabled, and then enables Edition-Based Redefinition (EBR) for the custom objects.

AD Splice must be run from the admin directory under APPL_TOP, and is invoked by running the command:

$ adsplice

When prompted for the following, you can press Enter to accept the default location:
Enter the directory where your AD Splicer control file is located.
The default directory is [/oracle/VIS/apps/apps_st/appl/admin] :
When prompted for the following, you can press Enter to accept the default filename:
Please enter the name of your AD Splicer control file [newprods.txt] :
When prompted for the following, you can press Enter to accept the default value and regenerate the environment file:
Do you wish to regenerate your environment file [Yes] ?
AutoConfig will be run automatically as part of this procedure.


  1. Review the AD Splice log file to ensure the procedure completed successfully.
  2. Review the AutoConfig log file to ensure the procedure completed successfully.
Verify Creation of Custom Product in the Database

Log in to SQL*Plus as APPS, and run the following SQL to confirm that the fnd_application table has one row:
SQL>select * from fnd_application where application_short_name = 'XXERP';
This statement should return one row only.
Run the following SQL to check the product installations table has one row for your custom product:
SQL>select * from fnd_product_installations where APPLICATION_ID = 50001;
This statement should return one row only.
Run the following SQL to check the database user:
SQL>select * from dba_users where username = 'XXERP';
This statement should return one row only.
To ensure the new environment file is picked up, log out and back in again as applmgr, then run the following command to confirm the $XXERP_TOP variable is correctly set:
$ env | grep XXERP
Run the following command to check the file system has been created correctly. You should see a directory listing returned as shown:
$ ls $XXERP_TOP
admin log mesg out sql


Setting Up and Using the Integration Repository Parser


Setting Up and Using the Integration Repository Parser
Installing Perl Modules on all UNIX platforms

Perform the following steps to install Perl modules on all UNIX platforms mentioned above:
1.    Establish the Oracle E-Business Suite application environment.
From the Oracle E-Business Suite APPS_BASE, establish the run file system APPL_TOP environment by running the EBSapps.env script.
2.    In both the run and patch file systems, locate the Perl configuration files that need to be modified and back up these files.
For example, on OEL 6 the Config.pm is located in the following directory:
find . -name Config.pm -print
/FMW_Home/webtier/perl/lib/5.10.0/x86_64-linux-thread-multi/Config.pm
Before Backup the config.pm and then do the changes:
cp -rp ./FMW_Home/webtier/perl/lib/5.10.0/x86_64-linux-thread-multi/Config.pm /tmp/

$FMW_HOME/webtier/perl/lib/5.10.0/x86_64-linux-thread-multi/Config.pm
3. In both the run and patch file systems, modify the Perl configuration file Config.pm to point to the Perl directory in $FMW_HOME/webtier.
For example, on Oracle Solaris, these are the statements that need to be modified with the absolute path of $FMW_HOME/webtier/perl:
Note: <FMW_HOME> is the value of $FMW_HOME.
archlibexp =>relocate_inc('<FMW_HOME>/webtier/perl/lib/5.10.0/x86_64-linux-thread-multi ')
privlibexp =>relocate_inc('<FMW_HOME>/webtier/perl/lib/5.10.0')
sitearchexp =>relocate_inc('<FMW_HOME>/webtier/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi ')
sitelibexp =>relocate_inc('<FMW_HOME>/webtier/perl/lib/site_perl/5.10.0')
Ex:
# tie returns the object, so the value returned to require will be true.
tie %Config, 'Config', {
    archlibexp => relocate_inc('/u01/install/APPS/fs1/FMW_Home/webtier/perl/lib/5.10.0/x86_64-linux-thread-multi'),
    archname => 'x86_64-linux-thread-multi',
    cc => 'cc',
    d_readlink => 'define',
    d_symlink => 'define',
    dlsrc => 'dl_dlopen.xs',
    dont_use_nlink => undef,
    exe_ext => '',
    inc_version_list => ' ',
    intsize => '4',
    ldlibpthname => 'LD_LIBRARY_PATH',
    libpth => '/usr/local/lib /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib64',
    osname => 'linux',
    osvers => '2.6.9-34.0.1.0.11.elsmp',
    path_sep => ':',
    privlibexp => relocate_inc('/u01/install/APPS/fs1/FMW_Home/webtier/perl/lib/5.10.0'),
    scriptdir => '/u01/install/APPS/fs1/FMW_Home/webtier/perl/bin',
    sitearchexp => relocate_inc('/u01/install/APPS/fs1/FMW_Home/webtier/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi'),
    sitelibexp => relocate_inc('/u01/install/APPS/fs1/FMW_Home/webtier/perl/lib/site_perl/5.10.0'),
    useithreads => 'define',
    usevendorprefix => undef,
    version => '5.10.0',
};
4. Create a directory 'perl' in $APPL_TOP_NE where the new Perl modules will be installed. For example,
mkdir $APPL_TOP_NE/perl
chmod 755 $APPL_TOP_NE/perl
In the run file system, set the following environment variables in APPL_TOP environment:
  1. Prepend PATH with the path to the C compiler installed as a requirement of the Integration Repository Parser.
  2. Prepend PERL5LIB with $FND_TOP/perl and $APPL_TOP_NE/perl in that order.
For example, export PERL5LIB=$FND_TOP/perl:$APPL_TOP_NE/perl:$PERL5LIB.
  1. Add $FMW_HOME/webtier/lib to LIBPATH if it is not present.
For example, export LIBPATH=$LIBPATH:$FMW_HOME/webtier/lib.
  1. Set $FMW_HOME/webtier as ORACLE_HOME.
For example, export ORACLE_HOME=$FMW_HOME/webtier.
  1. Prepend LD_LIBRARY_PATH with $ORACLE_HOME/lib32 and $ORACLE_HOME/lib.
For example, export LD_LIBRARY_PATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib:$LD_LIBRARY_PATH.
  1. Set JAVA_HOME to the JDK top directory.
Obtain the path returned by 'which java' and set JAVA_HOME to the current JDK top directory.
For example, on Oracle Linux:
which java
          /u01/install/APPS/fs1/EBSapps/comn/util/jdk32/jre/bin/java
export JAVA_HOME=/prod/EBS122/fs1/FMW_Home/jdk









Tuesday, March 20, 2018

Ansible: Install and Configure Ansible Tower On oracle linux 7

Ansible: Install and Configure Ansible Tower On oracle linux 7


Ansible has two components: Ansible Core and Ansible Tower. Core provides the Ansible runtime that executes playbooks (yaml files defining tasks and roles) against inventories (group of hosts). Ansible Tower provides management, visibility, job scheduling credentials, RBAC, auditing / compliance.

Install Ansible Tower


Download latest Ansible Tower release.


Configure Setup.

Ansible Tower uses an Ansible playbook to deploy itself. As such configuration parameters or groupvars are stored in inventory file.


Example Inventory file


Example Inventory file for an external existing database


   Run setup


   Configure Ansible Tower

Ansible Tower Provides a RESTful API, CLI and UI. To connect to the UI simply open browser using http/https and point to your Ansible Tower IP or hostname.

https://<Ansible Tower IP or Hostname>