Tuesday 17 January 2023

MSSQL ( 2008 , 2012 , 2014, 2016 , 2019)   to Oracle ( 19c , 21 c ) Migration using Oracle SQL developer offline method 


Follw the below detailed steps i have used for the migration of complete schema from MSSQL databsae to Oracle database, there is no clear documentation from oracle on this. This is based on my personal troubleshooting. 

1) Install oracle 19C 


2) Install Oracle SQL developer 


3) Create a new schema/user( here name is  xxcs_clob you can use any name)  in oracle (you will have to login using SYSTEM user to oracle DB to create new user) 

Note: Below xxcs_clob is higher level of permissions user this will be used to create the ECM export and import and a new user will be created, this xxcs_clob user can be deleted later once migration is successful
CREATE USER xxcs_clob
  IDENTIFIED BY xxcs_clob 
DEFAULT TABLESPACE users 
TEMPORARY TABLESPACE temp
  PROFILE DEFAULT
  ACCOUNT UNLOCK
  ENABLE EDITIONS;

GRANT ALTER ANY OUTLINE TO xxcs_clob;
GRANT ALTER SESSION TO xxcs_clob;
GRANT ANALYZE ANY TO xxcs_clob;
GRANT SELECT ANY TABLE TO xxcs_clob;
GRANT CREATE ANY EDITION TO xxcs_clob;
GRANT CREATE ANY PROCEDURE TO xxcs_clob;
GRANT CREATE ANY TABLE TO xxcs_clob;
GRANT CREATE ANY TRIGGER TO xxcs_clob;
GRANT CREATE ANY TYPE TO xxcs_clob;
GRANT CREATE SEQUENCE TO xxcs_clob;
GRANT CREATE SESSION TO xxcs_clob;
GRANT CREATE TABLE TO xxcs_clob;
GRANT CREATE TRIGGER TO xxcs_clob;
GRANT CREATE TYPE TO xxcs_clob;
GRANT CREATE VIEW TO xxcs_clob;
GRANT DROP ANY EDITION TO xxcs_clob;
GRANT DROP ANY OUTLINE TO xxcs_clob;
GRANT EXECUTE ANY PROCEDURE TO xxcs_clob;
GRANT QUERY REWRITE TO xxcs_clob;
GRANT ALL PRIVILEGES to xxcs_clob;

grant connect,resource,create view,create materialized view to  xxcs_clob with admin option;
grant resource  to  xxcs_clob with admin option ;
alter user xxcs_clob quota unlimited on users;
grant CREATE ROLE, CREATE USER,  ALTER ANY TRIGGER to xxcs_clob with  admin  option;

grant ALTER ANY ROLE  to xxcs_clob;
grant ALTER ANY SEQUENCE TO xxcs_clob;
grant ALTER ANY TABLE TO xxcs_clob;
grant ALTER TABLESPACE TO xxcs_clob;
grant ALTER ANY TRIGGER TO xxcs_clob;
grant cOMMENT ANY TABLE TO xxcs_clob;
grant CREATE ANY SEQUENCE TO xxcs_clob;
grant  CREATE ANY TABLE TO xxcs_clob;
grant CREATE ANY TRIGGER TO xxcs_clob;
grant CREATE VIEW TO xxcs_clob  WITH ADMIN OPTION;
grant CREATE MATERIALIZED VIEW TO xxcs_clob WITH ADMIN OPTION ;
grant CREATE PUBLIC SYNONYM TO xxcs_clob WITH ADMIN OPTION ;
grant CREATE ROLE TO xxcs_clob;
grant CREATE USER TO xxcs_clob;
grant DROP ANY SEQUENCE TO xxcs_clob;
grant DROP ANY TABLE  TO xxcs_clob;
grant DROP ANY TRIGGER TO xxcs_clob;
grant DROP USER TO xxcs_clob;
grant DROP ANY ROLE TO xxcs_clob;

grant INSERT ANY TABLE TO xxcs_clob;
grant SELECT ANY TABLE TO xxcs_clob;
grant UPDATE ANY TABLE TO xxcs_clob;

4) Login to xxcs_clob schema and click on the migration repository then click on associate migration repository
 



 
If you are getting any error in creating associate migration repository 
Provide below grant from system user and try recreating the migration repository 
            GRANT ALL PRIVILEGES to xxcs_clob;

You may need to truncate first and then delete the migration repository before recreating it using below option 
 



5) Connect to ECM  MSSQL database in Oracle SQL Sever , if you don’t see database type as MSSQL , download the jtds 1.3.1  jar file from https://sourceforge.net/projects/jtds/files/jtds/1.3.1/

Copy it to oracle SQL server installation directory 



 
Go to third party JDBC drivers and add the entry for this jar file 
 


6) Once connected to MSSQL database right click on DB and select migrate to oracle as below 
 



7) Click next select oracle DB connection 
 

 


 


 


 


Sequences are not migrated by default , click on next 









Wait until database migration is complete in the new poupup window as below x




 
If migration is successful you can see below message 
 
Below folders datamove and generated  will be created along with migration files
 


8) Navigate to generated  and run below master.sql file from oracle session connected with  xxcs_clob schema 
 



 
This will ask to enter the password for the new schema which will be Oracle schema where MSSQL DB will be migrated, keep the schema name default, you can change schema name and password later when DB migration is completed successfully 



 
This steps will create lot of migration files in below directory 
5_Migration(Documentation)\ECMMIG\datamove\2023-01-17_01-51-20\CSUserDatabase\csadmin_CSUserDatabase\data

9) Run the oracle_loader.bat file to  export the data generated in above script , this will migrate all the data to newly created user , this will take significant time depending on DB size 
 



10) Once the above step is complete try logging into new schema, schema name is mentioned in master.sql , if you are not able to login , login to system user and reset the password of the schema and unlock the schema (user)  
ALTER  USER  CSADMIN_CSUSERDATABASE   ACCOUNT UNLOCK;

ALTER USER CSADMIN_CSUSERDATABASE IDENTIFIED BY livelink;


11) Connect the new schema CSADMIN_CSUSERDATABASE   to OpenText ECM 

12) By default, Sequences are not migrated you will have to create it manually by creating new oracle schema and create CS tables inside it, and then whatever sequences that database has move it to the migrated database, current sequence value must match the source MSSQL db sequence value so that new ids generated are correct 

13) If you are coming across any unknown error check the thread logs and see if its pointing to any database object, you will have to resolve those errors manually.
14) After migration perform sanity check by comparing the database objhects , count of data in each table, please note that the newly created database will have more table and other objects than the source schema to hold the metadata information generated during migration . 


select * From user_objects where object_type='TABLE';

select * From user_objects where object_type='VIEW';

select * From user_objects where object_type='INDEX';

------ list of objects created in oracle DB------
select distinct object_type From user_objects;

for MSSQL objects statistics you  can use information_schema 


Saturday 22 May 2021

        Oracle Linux DBA basic commands/ Troubleshooting


 -----------Who logged in to Linux / Bruit force attack login history----------


who | cut -d' ' -f1 | sort | uniq
last


-----------------------Linux /Solaris Commands ----------------------------------------------
• Finding file in application tier 

find . -name O7533820.out


• Operating system details
bash-4.1$  uname -a
SunOS manihdevdb01 5.11 11.1 sun4v sparc sun4v

• Check folder size (Du disk utilization)
du -sh oacore_server1/
• Copy file to specific folder location 
cp oacore_server1.out metrics/

• Create a new  file from 1000 last lines of a file 
tail -n 1000 oacore_server1.out >> oacore_server1_1000.out
Above example will copy 1000 lilnes from .out file and create a  new file _1000.out

• Removing file with specific name and time +1 days 

find /u01/app/appldev/BRES/fs2/FMW_Home/user_projects/domains/EBS_domain_BRES/servers/oacore_server1/logs/*log* -mtime +1 -exec rm {} \;
Below will remove all with %log%
find *log*  -exec rm {} \;

• Removing all files from a directory 

rm -rf *
• Getting out of the command
Cntr + x
Cntrl + c
Cntrl + z
:q  
• Viewing file in the putty 
vi  $INST_TOP/admin/out/portpool.lst
•  TOP navigation 
Travel to any TOP by using command  cd $APPL_TOP  , cd $AU_TOP 
ls  list all files and folder
Use cd pwd for present working directory 
• Root user is the father of all usera
You can see all the users  by top command 
Once you logged in by root user you can enter to any user mode as follows 
Su -applmgr ( here applmgr is the application  user ) 
• Ho to find location of $CONTEXT_FILE 
ps -ef |grep $CONTEXT_FILE
Or 
Echo $CONTEXT_FILE


---------------------Oracle EBS Application Version/ Details -------------------------------


  select * from FND_PRODUCT_GROUPS;


Get Application EBS URL 

SELECT home_url   FROM icx_parameters;

EBS Version 
  select * from V$VERSION;
DB Version
SELECT * FROM PRODUCT_COMPONENT_VERSION;
Operating system
  select dbms_utility.port_string from dual;

  SELECT PRODUCT, VERSION FROM SYS.PRODUCT_COMPONENT_VERSION;

Finding Location of appl_top from dabatase 

Select distinct  variable_name, value  from fnd_env_context where variable_name like 'APPL_TOP';

Finding database tier location on server 

select name from v$database;



----- Checking  access to port    (TELNET on windows is wget on linux) -----------------
[cmarais@ebsapp-gmtuat01 ~]$ wget http://10.1.0.198:8080
--2021-02-09 11:28:39-- http://10.1.0.198:8080/
Connecting to 10.1.0.198:8080... connected.
HTTP request sent, awaiting response... 200
Length: unspecified [text/html]
Saving to: ‘index.html’
[ <=> ] 11,438 --.-K/s in 0.001s
2021-02-09 11:28:39 (18.2 MB/s) - ‘index.html’ saved [11438]


• Finding hosts file on oracle Server  for host entry


( needs to login through root user for editing the host file)



----------------------Concurrent manager IS DOWN --------------------------

Shutdown all the services and check the fndlbr


appclone@ebststcm02:/oraapp/ebsclone/inst/apps/EBSCLONE_ebststcm02/admin/scripts$ ps -ef | grep FNDLIBR|grep appclone

appclone  8328  7742   0 13:11:21 pts/1       0:00 grep FNDLIBR

appclone@ebststcm02:/oraapp/ebsclone/inst/apps/EBSCLONE_ebststcm02/admin/scripts$ cd

appclone@ebststcm02:~$ sqlplus apps/apps


SQL*Plus: Release 10.1.0.5.0 - Production on Fri Jun 21 13:11:27 2019


Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Data Mining

and Real Application Testing options


SQL> @cmclean.sql

DOC>

DOC>WARNING : Do not run this script without explicit instructions

DOC>from Oracle Support

DOC>

DOC>

DOC>*** Make sure that the managers are shut down ***

DOC>*** before running this script ***

DOC>

DOC>*** If the concurrent managers are NOT shut down, ***

DOC>*** exit this script now !! ***

DOC>

DOC>#

If you wish to continue type the word 'dual': dual

-----------------------------------------------------------------------

-- Updating invalid process status codes in FND_CONCURRENT_PROCESSES

0 rows updated.

-----------------------------------------------------------------------

-- Updating running processes in FND_CONCURRENT_QUEUES

-- Setting running_processes = 0 and max_processes = 0 for all managers


50 rows updated.

-----------------------------------------------------------------------

-- Updating invalid control_codes in FND_CONCURRENT_QUEUES


0 rows updated.

50 rows updated.

-----------------------------------------------------------------------

-- Updating any Running or Terminating requests to Completed/Error canceled by CMCLEAN

 0 rows updated.

----------------------------------------------------------------------

-- Updating any Runalone flags to 'N'


Updated 0 rows of runalone_flag in fnd_conflicts_domain to 'N'

-----------------------------------------------------------------------

Updates complete.

Type commit now to commit these updates, or rollback to cancel.

-----------------------------------------------------------------------

> commit

SQL> commit

2

SQL>Exit

 ---------------------Database is down /TNS listener is down ------------------------------------


Check if TNS is down using below command 

$ lsnrctl status

Enter the WebLogic Server password: 

adstpall.sh: Database connection could not be established. Either the database is down or the APPS credentials supplied are wrong. 

Set the database env variable then  sqlplus / as sysdba and then stratup as below to start db



To bounce the DB 

$ shut immediate 

-------------------- VNC SERVER--------------------------------------


To find Exisiting VNC server in linux use below command 

ps -ef|grep vnc

You can create new session for vnc with below command, here 5 is not a port number it’s a  new session number 



Enter above port 5 to ip address of server and hit enter 




Restarting VNC Server

$vncserver restart

Logging into VNC Server




You can change the VNC password as below 


------------------  Too many security failures  error  or authentication failed in VNC --------------------

This either means you have entered wrong password multiple time or you have brut force attack on server, to avoid this error kill the VNC session and restart it again 
Login to server using root user 







Use below command to kill the session and restart it again ,

sudo vncserver -kill :1
sudo vncserver :1



Sunday 16 June 2019

Display a iframe (HTML widget in oaf page) in  oaf page using CO Extension



Business case:  display a iframe (HTML widget in oaf page) at the bottom of oaf page

(using this you can display any HTML content/ PDF/JSP page inside the HTML widget)
  1. Turn on the personalization by setting the appropriate profile value from system administrator
  2. Navigate to page -> Personalize page as below



  1. Click on the personalize pencil icon for item which has CO associated with it 


4)    Here you can see controller class name is ProjectProfileCO

Now we need to create a custom class file and extend this class in our custom class file so that we can append our custom logic to the seeded OAF page. 

 Note: Make sure you note down the path where you are doing the personalization  , if class file has any error you wont be able to navigate to page where you are doing personalization   and eventually you wont be able to disable the personalization  , if you have personalization  path you can navigate to functional administrator and disable or edit the personalization  .
5) Create a class file with any name as below and copy this class file in server on the location as given in package. Make sure the location is named correctly , copy the file in $JAVA_TOP under specific folder structure.

Note: You can also use JDeveloper to create java file , this can help if you want to access any methods associated with standard java code, in order to do this you must import the required java class files in JDeveloper from oracle server e.g.  You may need to import classes located at oracle.apps.fnd.framework.* 

Below is the controller class file code , based on requirement you can either display it in PFR/PR to render on action or while page is rendered. 

package opentext.oracle.apps.xxxecm4o_bp.costingsheet.webui;

import java.awt.Window;

import oracle.apps.fnd.framework.OAApplicationModule;
import oracle.apps.fnd.framework.OAFwkConstants;
import oracle.apps.fnd.framework.OARow;
import oracle.apps.fnd.framework.OAViewObject;
import oracle.apps.fnd.framework.webui.OADataBoundValueFireActionURL;
import oracle.apps.fnd.framework.webui.OAPageContext;
import oracle.apps.fnd.framework.webui.OAUrl;
import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
import oracle.apps.fnd.framework.webui.beans.OASwitcherBean;
import oracle.apps.fnd.framework.webui.beans.OAWebBean;
import oracle.apps.fnd.framework.webui.beans.message.OAMessageStyledTextBean;

import mict.oracle.apps.xxcs.project.profile.webui.ProjectProfileCO;

import oracle.apps.fnd.framework.webui.beans.OAHTMLWebBean;
import oracle.apps.fnd.framework.webui.beans.layout.OAHeaderBean;

import oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean;

import oracle.cabo.ui.action.FireAction;
import oracle.cabo.ui.action.FirePartialAction;
import oracle.cabo.ui.collection.Parameter;


public class XxxecmProjectsCO54 extends ProjectProfileCO {
public static String xx_val;

 public void processRequest(OAPageContext pageContext, OAWebBean webBean) {
  super.processRequest(pageContext, webBean);


  try {
  
//  in case you need to display header to the i-frame use below //
 //  OAHeaderBean Bean = (OAHeaderBean) createWebBean(pageContext, HEADER_BEAN);
//   Bean.setLabel("Project Business Worksapce");

  // OAPageLayoutBean page = (OAPageLayoutBean) pageContext.getPageLayoutBean();
  // page.addIndexedChild(Bean);

   try {
    OAApplicationModule am = pageContext.getApplicationModule(webBean);

     pageContext.writeDiagnostics(this, "xxecm getting project_id value from opentext.oracle.apps.xxxecm4o_bp.costingsheet.webui.XxxecmProjectsCO51.class", OAFwkConstants.EXCEPTION);
      if (pageContext.getSessionValueDirect("TRX_PROJECT_ID") != null) {
     pageContext.writeDiagnostics(this, "xxecm inside if condition", OAFwkConstants.EXCEPTION);


             xx_val =
                pageContext.getSessionValueDirect("TRX_PROJECT_ID").toString();           
            }

   
if (pageContext.isLoggingEnabled(OAFwkConstants.EXCEPTION)) {
     pageContext.writeDiagnostics(this, "[TestCO]processRequest():- xxecm project ID value is "+xx_val, OAFwkConstants.EXCEPTION);
    }
   } catch (Exception e) {
    pageContext.writeDiagnostics(this, "Exception ocurred in getting am xxx:" + e,
     OAFwkConstants.STATEMENT);
   }



   String xx_msg_type;
   xx_msg_type = "Projects";
   //  pageContext.putSessionValue("211", xx_val);
   String final_url;
   final_url = "OA.jsp?page=/opentext/oracle/apps/xxxecm4o/bws/webui/workspacePG&xxotBOId=" + xx_val + "&xxotBOType=Projects&addBreadCrumb=Y&retainAM=Y";


   OAHTMLWebBean showWorksapce = (OAHTMLWebBean) createWebBean(pageContext, HTML_WEB_BEAN, null, "IFRAME");




   showWorksapce.setHTMLAttributeValue("src", final_url);
   //pdfBlob
   // p_output
   showWorksapce.setHTMLAttributeValue("width", "100%");
   showWorksapce.setHTMLAttributeValue("height", "65%");

   pageContext.getPageLayoutBean().addIndexedChild(showWorksapce);


  } catch (Exception e) {
   pageContext.writeDiagnostics(this, "Exception ocurred in class swapnil:" + e,
    OAFwkConstants.STATEMENT);
  }
 }

 /**
  * Procedure to handle form submissions for form elements in a region.
  *
  * @param pageContext
  *            the current OA page context
  * @param webBean
  *            the web bean corresponding to the region
  */
 public void processFormRequest(OAPageContext pageContext,
  OAWebBean webBean) {
  super.processFormRequest(pageContext, webBean);

 }
}




6) Copy the class file to server  and compile using javac command and create the .class file


Then navigate to personalization page and enter the custom class file name along with full path in $JAVA_TOP ( don’t enter the path from root folder) . 





As you can see the below page is integrated in OAF inside the iframe


Thursday 16 February 2017

Oracle Apps Technical Interview Questions 


SQL:
  1. Difference between materialized view and normal view
  2. Union and union all difference - union removes duplicate records union all doesn’t
  3. Can we create a view if table is not present?
                 -IT will throw error Table or view does not exist
  1. WHO columns significance ?
                              Created_by - User Id.
                              Created_date - SYSDATE.
                              Last_update_date - SYSDATE.
                              Last_updated_by - User ID.
                              Last_update_login - Login ID.
  1. Triggers
                Row trigger
  • Row trigger fires for each row , let's say an update statement update 50 rows trigger will be   fired 50 times
                  Statement Triggers
                   Before and after trigger
                Instead of trigger
  1. Mutating Table Error
-When a trigger is getting fired on specific table and When we are trying to modify the same  table within the trigger logic , mutating table will occurs
  1. Grants , performance Tuning
  2. Rank and Dense rank
  3. What is global temporary table ? (DECLARE GLOBAL TEMPORARY TABLE)  
TRUNCATE statement is issued against a temporary table, only the session specific data is truncated.
Data in temporary tables is automatically deleted at the end of the database session, even if it ends abnormally.


CREATE GLOBAL TEMPORARY TABLE my_temp_table (
  id           NUMBER,
  description  VARCHAR2(20)
)
ON COMMIT DELETE ROWS;
  1. Select * from per_all_people_f where rownum=10; will it return value or go into error ?  Ans: No rows return
  2. Any arithmetic operation with null value results into null ; e.g.   Select 5+null from dual;

PLSQL

  1. Function
  2. Procedures
  3. Exceptions
  4. Temporary tables ( temporary global table )
  5. Collection ( V array , Associative array /index by array , nested array  )
  6. Bulk collect (How to use nested array in bulk collect) ? Benefit of bulk collect?
  7. Commit in exception
  8. Pragma types
  9. Query processing
  10. What is API what are common or default in and out parameters in oracle provided API?
  11. Significance of P_API_VERION_NUMBER in API
  12. IN/ OUT parameter
  13. Difference between varchar and vharcha2
  14. Run concurrent program through plsql
  15. AuthID in oracle package

If table A is in schema apps and  package xyz is created in schema apps, if we execute  xyz.xyz_1 from schema scott it will be executed successfully even though Scott doesn’t have synonym of table A

CREATE OR REPLACE PACKAGE XYZ AUTHID DEFINER
AS
PROCEDURE XYZ_1;
END XYZ;

CREATE OR REPLACE PACKAGE body XYZ
AS
PROCEDURE XYZ_1
IS
BEGIN
INSERT INTO A VALUES (1);
END XYZ_1;
END XYZ;

EXECTUE BLEOW FROM SCOTT
begin
xyz.XYZ_1;
end;

Below behaves opposite and it will throw error

CREATE OR REPLACE PACKAGE XYZ AUTHID CURRENT_USER
AS
PROCEDURE XYZ_1;
END XYZ;

CREATE OR REPLACE PACKAGE body XYZ
AS
PROCEDURE XYZ_1
IS
BEGIN
INSERT INTO A VALUES (1);
END XYZ_1;
END XYZ;

EXECUTE FROM SCOTT
begin
xyz.XYZ_1;
end;

Cursor
  1. Types of cursor ( implicit/explicit)
  2. Attributes of cursor ( %found , %Notfound , %isopen , %Rowcount )
  3. Ref Cursor
  4. UTL_FILE

AOL

  1. Types of value set / what is $FLEX$
    1. None ii) Independent iii) Dependent iv) Table v) Translated Independent vi) translated dependent
Vii ) special viii) Pair
  1. What are steps to register java concurrent program
  2. What are different types of concurrent program in oracle?


OAF
  1. MVC Architecture
  2. How do we move personalization's from one instance to other
  3. What is EO , VO , CO , AM
  4. Can we extend AM
  5. How to extend VO, CO
  6. How to check which co is to be extended
  7. What is association object (AO)
  8. Ways to pass values from one page to other
  9. Profile options to enable OAF personalization links


AME
  1. What is AME
  2. Sequence of configuration
  3. Can we dynamic approval groups without customizing workflow (Yes)
  4. Can we test AME configuration? How to test AME configuration ?

Workflow
  1. Can we trigger a workflow from PLSQL
  2. Parameters to be passed to function when called from the workflow (itemtype , itemkey , actid, funcmode, resulttype )
  3. Steps to customize workflow
  4. Access levels

Alerts
  1. Types of alerts
  2. Testing of alerts
  3. Alert how to fetch new and old value in alert
  4. Can we run the alert manually ???  How ??
  5. How to send an email notification alert to multiple users (distribution list)
Reports
  1. Have you created XML reports, XML Bursting , what are different ways to create xml output in oracle application?
Few ways are given in below URL

  1. Report Triggers
  2. Difference between after parameter and before report
  3. How to display a message  in the log file (  SRW_ message ( number, 'msg'))
  4. User Exit
  5. P_CONC_REQUEST_ID
  6. Coolum's in report (formula column , place holder columns)
  7. Mapping between the data template and concurrent program
  8. If a plsql procedure is called through conc program what are the parameters  ( errbuff , retcode)
  9. Significance of errbuff , retcode
  10. How to link two  query groups together in RDF which have common value ??


Interfaces/ Conversions/API:
  1. Difference between interface ,conversions  and API
Interfaces
  1. Interface is periodic activity
  2. It may be daily or weekly or monthly or quarterly or Yearly
  3. Both Legacy system and oracle system are active.
Conversion
1. Conversion is one time activity.
2. All the data will be transferred into oracle systems one time.
3. Legacy system will not be after conversion process.


Forms:
  1. Which top is the forms placed
  2. Custom.pll
  3. From trace
  4. Triggers
  5. Post command (Caching for particular session )
  6. Zoom trigger
  7. Which triggers are automatically created when we create master detail from
On-Populate-Details
On-Check-Delete-Master
  1. What are limitations of custom.pll and form personlizations
  2. How to use date tracking functionality and what package is used to enable date track functionality in oracle apps.
  3. Using form personalization I want to get a popup message based on the responsibility I am logged in with , example india resposnlility I should get message 'HI India' , with US responsibility I should get message 'Hi America' how to do this with personlizoation ?
           How to get message in different languages in this case???
-Using fnd_profile.value
  1. How static data which is entered in forms and not yet saved , can be validated when there are multiple line in master details form
Let's say we master detail form and we  have 10 lines in detail form and we need total of all these lines at header level without saving the form , it can be done by taking a extra field in either control block or header block where in property option we have calculation option which allows to create summery filed


  1. How to do one personalization which will behave differently at responsibility level



HRMS

  1. How security profile works?
  2. How to rehire employee ?
  3. How to terminate employee?
  4. What are types of assignment's in oracle ?
  5. How to terminate assignment ? Primary vs secondary assignments ?
  6. Payroll processing ?
  7. Element entries ?
  8. Payroll types ?
  9. Assignment types ?
  10. Date tracking https://blogs.oracle.com/manojmadhusoodanan/entry/date_tracking_in_oracle_hrms
Update modes
CORRECTION : Over writes the data. No history will maintain.
UPDATE : Keeps the history and new change will effect as of effective date
UPDATE_CHANGE_INSERT : Inserts the record and preserves the future
UPDATE_OVERRIDE : Inserts the record and overrides the future
Delete modes
ZAP : wipes all records
DELETE : Deletes  current record
FUTURE_CHANGE : Deletes current and future changes.
DELETE_NEXT_CHANGE : Deletes next change
 -Date track mode
  1.  Difference types of update mode https://blogs.oracle.com/manojmadhusoodanan/entry/date_tracking_in_oracle_hrms
            -API for deletion , insert , update employee, assignment data
  what is the significance of P_VALIDATE parameter in API
12. What is object version number
13. Difference Between EIT and SIT
       Which one is faster ?
       Can I store SSHR request information in EIT?