imran erp good material

225
E E . . R R . . P P . .

Upload: suresh-kamakshigari

Post on 10-Dec-2015

18 views

Category:

Documents


7 download

DESCRIPTION

ERP Meterails

TRANSCRIPT

Page 1: Imran ERP Good Material

EE..RR..PP..

Page 2: Imran ERP Good Material

Dedication

This ERP was designed for the Beginners of the Oracle Applications.

I was very much thankful to my parents and friends and colleagues those who share the knowledge to me and help me in giving a good

shape to this book. This Book name E.R.P. was Dedicated to my

Regards,

Krishna Chaitanya.Vemparala, Technical Consultant.

Em@il: [email protected]

Parents Mr. & Mrs. V.Sambasivarao

Page 3: Imran ERP Good Material

SSSSSSSSEEEEEEEELLLLLLLLEEEEEEEECCCCCCCCTTTTTTTT ******** FFFFFFFFRRRRRRRROOOOOOOOMMMMMMMM CCCCCCCCOOOOOOOONNNNNNNNTTTTTTTTEEEEEEEENNNNNNNNTTTTTTTTSSSSSSSS;;;;;;;;

SQL CONCEPTSSQL CONCEPTSSQL CONCEPTSSQL CONCEPTS............................................................................................................................................................................................................................................................................................................................................................................................................................................................................

� CLASSIFICATION OF SQCLASSIFICATION OF SQCLASSIFICATION OF SQCLASSIFICATION OF SQL COMMANDSL COMMANDSL COMMANDSL COMMANDS .................................................................................................................................................................................................................................................................... 1111

� TABLESTABLESTABLESTABLES ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ 2222

� VIEWSVIEWSVIEWSVIEWS........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ 3333

� SEQUENCESSEQUENCESSEQUENCESSEQUENCES............................................................................................................................................................................................................................................................................................................................................................................................................................................................ 3333

� EXPLAIN PLANEXPLAIN PLANEXPLAIN PLANEXPLAIN PLAN ............................................................................................................................................................................................................................................................................................................................................................................................................................................ 4444

� SQLTRACESQLTRACESQLTRACESQLTRACE........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ 5555

� TKPROFTKPROFTKPROFTKPROF ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ 5555

PL SQL CONCEPTSPL SQL CONCEPTSPL SQL CONCEPTSPL SQL CONCEPTS ................................................................................................................................................................................................................................................................................................................................................................................................................................................

� BLOCK STRUCTUREBLOCK STRUCTUREBLOCK STRUCTUREBLOCK STRUCTURE .................................................................................................................................................................................................................................................................................................................................................................................................... 6666

� CURSORCURSORCURSORCURSORSSSS ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................7777

� CURSOR ATTRIBUTESCURSOR ATTRIBUTESCURSOR ATTRIBUTESCURSOR ATTRIBUTES .................................................................................................................................................................................................................................................................................................................................................................................... 8888

� EXCEPTIONSEXCEPTIONSEXCEPTIONSEXCEPTIONS ............................................................................................................................................................................................................................................................................................................................................................................................................................................................ 9999

� PROCEDURESPROCEDURESPROCEDURESPROCEDURES............................................................................................................................................................................................................................................................................................................................................................................................................................................ 10101010

� FUNCTIONSFUNCTIONSFUNCTIONSFUNCTIONS ............................................................................................................................................................................................................................................................................................................................................................................................................................................................11111111

� PACKAGESPACKAGESPACKAGESPACKAGES................................................................................................................................................................................................................................................................................................................................................................................................................................................................ 12121212

� TRIGGERSTRIGGERSTRIGGERSTRIGGERS.................................................................................................................................................................................................................................................................................................................................................................................................................................................................... 13131313

ORACLE APPLICATIONSORACLE APPLICATIONSORACLE APPLICATIONSORACLE APPLICATIONS ............................................................................................................................................................................................................................................................................................................................................................................................................

� ERP & AIM METHODOLOGERP & AIM METHODOLOGERP & AIM METHODOLOGERP & AIM METHODOLOGYYYY ................................................................................................................................................................................................................................................................................................................................................ 14141414

� INTRODUCTIONINTRODUCTIONINTRODUCTIONINTRODUCTION ................................................................................................................................................................................................................................................................................................................................................................................................................................ 15151515

� DATABASE STRUCTUREDATABASE STRUCTUREDATABASE STRUCTUREDATABASE STRUCTURE................................................................................................................................................................................................................................................................................................................................................................ 16161616

� FILE ARCHITECTUREFILE ARCHITECTUREFILE ARCHITECTUREFILE ARCHITECTURE............................................................................................................................................................................................................................................................................................................................................................................................ 17171717

� ENTERING ORACLE APPLENTERING ORACLE APPLENTERING ORACLE APPLENTERING ORACLE APPLICATIONS 11.5.9ICATIONS 11.5.9ICATIONS 11.5.9ICATIONS 11.5.9 ........................................................................................................................................................................................................................................ 18181818

� USER CREATIONUSER CREATIONUSER CREATIONUSER CREATION........................................................................................................................................................................................................................................................................................................................................................................................................................ 19191919

� STEPS TSTEPS TSTEPS TSTEPS TO REGISTER A REPORTO REGISTER A REPORTO REGISTER A REPORTO REGISTER A REPORT ........................................................................................................................................................................................................................................................................................................ 20202020

Page 4: Imran ERP Good Material

� PL/SQL PROCEDURE REGPL/SQL PROCEDURE REGPL/SQL PROCEDURE REGPL/SQL PROCEDURE REGISTRATION STEPSISTRATION STEPSISTRATION STEPSISTRATION STEPS ................................................................................................................................................................................................................27272727

� XML PUBLISHER REPORTXML PUBLISHER REPORTXML PUBLISHER REPORTXML PUBLISHER REPORT REGISTRATION STEPS REGISTRATION STEPS REGISTRATION STEPS REGISTRATION STEPS ............................................................................................................................................................................34343434

� TABLE REGISTRATION STABLE REGISTRATION STABLE REGISTRATION STABLE REGISTRATION STEPS IN APPSTEPS IN APPSTEPS IN APPSTEPS IN APPS ........................................................................................................................................................................................................................................................ 39393939

� VALUSETS EXPLANATIONVALUSETS EXPLANATIONVALUSETS EXPLANATIONVALUSETS EXPLANATION.................................................................................................................................................................................................................................................................................................................................................... 41414141

� WORKING WITH USER EXWORKING WITH USER EXWORKING WITH USER EXWORKING WITH USER EXITSITSITSITS ............................................................................................................................................................................................................................................................................................................................45454545

� PROFILESPROFILESPROFILESPROFILES ........................................................................................................................................................................................................................................................................................................................................................................................................................................................................ 49494949

� DIFFERENT API'S WITHDIFFERENT API'S WITHDIFFERENT API'S WITHDIFFERENT API'S WITH SYNTAX SYNTAX SYNTAX SYNTAX ........................................................................................................................................................................................................................................................................................................ 51515151

� MULTI ORGMULTI ORGMULTI ORGMULTI ORG ............................................................................................................................................................................................................................................................................................................................................................................................................................................................ 53535353

� FLEX FEIFLEX FEIFLEX FEIFLEX FEILDSLDSLDSLDS .................................................................................................................................................................................................................................................................................................................................................................................................................................................... 55555555

� INTERFACESINTERFACESINTERFACESINTERFACES....................................................................................................................................................................................................................................................................................................................................................................................................................................................56565656

� SQL LOADERSQL LOADERSQL LOADERSQL LOADER ................................................................................................................................................................................................................................................................................................................................................................................................................................................ 58585858

� CONVERSIONSCONVERSIONSCONVERSIONSCONVERSIONS.................................................................................................................................................................................................................................................................................................................................................................................................................................... 60606060

� ITEM CONVERSION CONVITEM CONVERSION CONVITEM CONVERSION CONVITEM CONVERSION CONVERSION SCRIPTERSION SCRIPTERSION SCRIPTERSION SCRIPT........................................................................................................................................................................................................................................62626262

� ITEM CATEGORIES CONVITEM CATEGORIES CONVITEM CATEGORIES CONVITEM CATEGORIES CONVERSION SCRIPTERSION SCRIPTERSION SCRIPTERSION SCRIPT ........................................................................................................................................................................................................................................70707070

� ITEM ATTACHMENTS CONITEM ATTACHMENTS CONITEM ATTACHMENTS CONITEM ATTACHMENTS CONVERSION SCRIPTVERSION SCRIPTVERSION SCRIPTVERSION SCRIPT.................................................................................................................................................................................................................... 77777777

� HOW TO CONNECT TO TEHOW TO CONNECT TO TEHOW TO CONNECT TO TEHOW TO CONNECT TO TELNET ?LNET ?LNET ?LNET ?............................................................................................................................................................................................................................................................................................................ 82828282

� REGISTERING FORM IN REGISTERING FORM IN REGISTERING FORM IN REGISTERING FORM IN ORACLE APPS ORACLE APPS ORACLE APPS ORACLE APPS ........................................................................................................................................................................................................................................................ 85858585

� FORM PERSONALIZATIONFORM PERSONALIZATIONFORM PERSONALIZATIONFORM PERSONALIZATION WITH SI WITH SI WITH SI WITH SIMPLE EXAMPLE MPLE EXAMPLE MPLE EXAMPLE MPLE EXAMPLE ............................................................................................................................................................ 88888888

� WORKING ON DISCOVEREWORKING ON DISCOVEREWORKING ON DISCOVEREWORKING ON DISCOVERERRRR ........................................................................................................................................................................................................................................................................................................................................ 92929292

� JOINS OF THE TABLES JOINS OF THE TABLES JOINS OF THE TABLES JOINS OF THE TABLES MODULE WISEMODULE WISEMODULE WISEMODULE WISE ........................................................................................................................................................................................................................................................ 105105105105

� PURCHASE ORDER WORKFPURCHASE ORDER WORKFPURCHASE ORDER WORKFPURCHASE ORDER WORKFLOWLOWLOWLOW....................................................................................................................................................................................................................................................................................................111111111111

� ORDER MANAGEMENT WORORDER MANAGEMENT WORORDER MANAGEMENT WORORDER MANAGEMENT WORKFLOWKFLOWKFLOWKFLOW .................................................................................................................................................................................................................................................................... 138138138138

� OM FLOWDIAGRAMOM FLOWDIAGRAMOM FLOWDIAGRAMOM FLOWDIAGRAM............................................................................................................................................................................................................................................................................................................................................................................................ 111149494949

� OM TABLE RELATION DIOM TABLE RELATION DIOM TABLE RELATION DIOM TABLE RELATION DIAGRAMAGRAMAGRAMAGRAM ................................................................................................................................................................................................................................................................................................ 151151151151

� FLOW HOW TABLE FLOW HOW TABLE FLOW HOW TABLE FLOW HOW TABLE EFFECTED WHILE BOOKIEFFECTED WHILE BOOKIEFFECTED WHILE BOOKIEFFECTED WHILE BOOKING ORDERNG ORDERNG ORDERNG ORDER................................................................................................................................ 152152152152

� TRADINGTRADINGTRADINGTRADING COMMUNITY ARCHI COMMUNITY ARCHI COMMUNITY ARCHI COMMUNITY ARCHITECTURE(TCA)TECTURE(TCA)TECTURE(TCA)TECTURE(TCA) .................................................................................................................................................................................................... 154154154154

� CREATION OF ITEMCREATION OF ITEMCREATION OF ITEMCREATION OF ITEM................................................................................................................................................................................................................................................................................................................................................................................................ 111158585858

� FREQUENTLY ASKED QUEFREQUENTLY ASKED QUEFREQUENTLY ASKED QUEFREQUENTLY ASKED QUERIESRIESRIESRIES........................................................................................................................................................................................................................................................................................................ 111163636363

Page 5: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

1111

SQL CONCEPTSSQL CONCEPTSSQL CONCEPTSSQL CONCEPTS

Structured Query Language(SQL) is the standard language designed to access

relational databases. SQL is pronounced either as the word Sequel or as the letters SQL.

SQL uses simple syntax that is easy to learn and use there are five types of SQL

statements given below.

Query Statements: Allow you to retrieve the rows stored in the database tables. You

write a query using the SQL SELECT statement.

Data Manipulation Language (DML) Statements: Allows you to modify the contents

of the tables. There are three DML statements.

� INSERT - Allows you to Insert row(s) into the Table.

� UPDATE - Allows you to change a Row.

� DELETE - Allows you delete the rows from the Table.

Data Definition Language (DDL): Allows you to define the Data structures, such as

tables that make up a database. There are five basic types of DDL statements.

� CREATE – Allows you to Create Database structure.

Ex: Create Table – Used to create a Table in the Database.

Create User – Used to create the database user.

� ALTER – Allows you to modify a database structure.

� DROP – Allows you to remove a database structure.

� RENAME – Allows you to change the name of the table.

� TRUNCATE – Allows you to delete the entire contents of the table.

Transaction Control (TC) Statements: Allows you to permanently record the changes

made to rows stored in a table or undo the changes. There are three TC Statements.

� COMMIT – Allows you to permanently record the changes made to the rows.

� ROLLBACK – Allows you to undo the changes made to the rows.

� SAVEPOINT – Allows you to set a SAVEPOINT to which you can rollback changes

you made.

Data Control Language (DCL): Allows you to change the permissions on the database

structures. There are two DCL statements.

� GRANT – Allows you to give another user access to your database structures,

such as tables.

� REVOKE – Allows you to prevent another user from accessing to your database

structures, such as tables.

Page 6: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

2222

Tables: Table is a database object which holds the data and contains one or more

columns associated with its datatypes

Creating a Table: we use the create table statement to create a table. The simple

syntax for the creation of table.

Syntax: CREATE Table table_name

(column_name type [CONSTRAINT constraint_def DEFAULT default_exp],

column_name type [CONSTRAINT constraint_def DEFAULT default_exp],

column_name type [CONSTRAINT constraint_def DEFAULT default_exp]…

)

[ON COMMIT {DELETE | PRESERVE} ROWS]

TABLESPACE tab_space;

Ex: SQL> Create table chaitu_0016(ename varchar2(10),

Eno number unique);

Table Created.

Altering a Table: we can alter the table using the alter statement. The alter table

statement perform such tasks given below.

� Add, modify, or drop a column.

� Add or drop a constraint.

� Enable or Disable a constraint.

Ex: SQL> Alter table chaitu_0016

Add address varchar2(10);

Modifying a Column:

Ex: SQL> Alter table chaitu_0016

Modify address varchar2(20);

Dropping a Column:

Ex: SQL> Alter table chaitu_0016

Drop address;

Renaming a Table: If we want to change the name of the table then we use this

RENAME statement.

Ex: SQL> Rename table chaitu_0016

To

Chaitu_0015;

Truncating a Table: If we want to delete all the rows existing in the table then we use

the TRUNCATE Statement.

Ex: SQL> Truncate table chaitu_0015;

Dropping a Table: If we want to drop the total structure along with the records existing

in the table we use this DROP statement.

Ex: SQL> Drop table chaitu_0015;

Page 7: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

3333

Views: A view is basically a predefined query on one or more tables. Retrieving

information from the view is done in the same manner as retrieving from the table.

Creating a View: by using the create view statement we can create a view.

Syntax: Create [Or Replace]

View view_name

[(allias_name[,allias_name….])]

AS subquery

[WITH {CHECK OPTION | READ ONLY} CONSTRAINT

Constraint_name];

Ex: SQL> Create view medha_0016_view AS

Select ename, eno, address from

Chaitu_0016;

View Created.

Performing an Insert using a View: we can also perform DML operations using the

views. Given below is the example for that.

Ex: SQL> Insert into medha_0016_view(

Ename, eno, address) Values (CHAITU, 0016, HYD);

1 Row Created.

Modifying a View: we can modify the view using the REPLACE. If there any view

existing with that name then it was modified with the current one.

Ex: SQL> Create or Replace

view medha_0016_view

AS

Select a.ename, a.eno, a.address, b.city from

Chaitu_0016 a, chaitu_0011 b

Where a.eno = b.eno;

Dropping a View: when want to drop the view we use this statement. Only the view

will be dropped from the database the table was not effected.

Ex: SQL> Drop view chaitu_0016_view;

Sequence: A sequence is a database item that generates a sequence of integers. We

create the sequence using the CREATE SEQUENCE statement.

Syntax: Create Sequence Sequence_name

[Start with Start_num]

[Increment by increment_num]

[ {MAXVALUE max_num | NOMAXVALUE} ]

[ {MINVALUE min_num | NOMINVALUE} ]

[ {CYCLE | NOCYCLE} ]

[ {ORDER | NOORDER} ];

Page 8: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

4444

Ex: SQL> Create Sequence medha_seq_0016

Start with 100 Increment by 1;

Sequence Created.

Using the Sequence:

Ex: SQL> Select medha_seq_0016.currval ”Currval”,

medha_seq_0016.nextval “Nextval”

From

Dual;

Output: Currval Nextval --------- ----------

101 101

Modifying the Sequence: If we want to modify the sequence by using the ALTER

SEQUENCE we can do that.

Ex: SQL> Alter Sequence medha_seq_0016

Start with 1000 Increment by 2;

Sequence Altered.

Dropping a Sequence: If we want to drop the sequence then we use this DROP

STATEMENT.

Ex: SQL> Drop Sequence medha_seq_0016;

Sequence Dropped.

Explain Plan: Explain plan gives the execution plan of the statement. PLAN_TABLE is

necessary for explain plan.

� If there is no PLAN_TABLE in your system then go with UTLXPLAN.SQL from the

SQL Prompt.

Syntax: SQL> Explain plan

Set statement_id = ‘chaitu_0016’

[into PLAN_TABLE ]

for

select * from scott.emp

where empno = 7369;

Plan Explained.

� In TOAD(Tools for Oracle Application Design) write the SQL statement and press

CTRL+E then it automatically shows the explain plan. It is the simple way to get the

explain plan instead of writing the explain plan in SQL.

Page 9: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

5555

SQL Trace: SQL Trace gives a wide range of information & statistics that used to tune a

group of SQL operations. We do the Sequel Trace at three levels.

1. SQL 2. Reports 3. Forms

� Trace the Sequel Statements. How much time it was taking, how many rows it was

fetching, all the information was given from SQL Trace.

Steps for generating Trace file:

� Enable the Trace.

� Run the DML statements.

� Disable the Trace.

� Get the Trace file.

� Convert the Trace File to Readable Format.

� The Trace file was generated with he extension .TRC. Oracle has give specified

directory for trace files. To get the path use the query below.

EX: SQL> Select value from V$PARAMETER Where name = ‘USER_DUMP_DEST’;

� To get the name of the Trace file also we have to use the Query.

SQL> Select c.value || ‘\ORA’ || TO_CHAR(a.spid, ‘FM00000’) || ‘.TRC’

From

V$PROCESS a,

V$SESSION b,

V$PARAMETER c

Where

a.addr = b.paddr

and b.ausid = userenv(‘sessionid’)

and c.name = ‘USER_DUMP_DEST’;

TKPROF: Copy the trace file, which was generated earlier, and paste it in your custom

directory.

Syntax: CMD> TKPROF d:\siri_0016.trc siri_0016.txt

� The Chaitu_0016.txt was created in the same drive where the Trace file was located.

Ex: --Query to Print the Cumulative Salary of the Employee table order by DEPTNO

SQL> Select deptno, ename, sal, sum(sal) over(partition by

deptno order by deptno, ename) “CUM_SAL”

from

scott.emp;

Page 10: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

6666

PL/SQL CONCEPTSPL/SQL CONCEPTSPL/SQL CONCEPTSPL/SQL CONCEPTS

Oracle added a procedural programming language known, as PL/SQL (Procedural

Language/SQL). PL/SQL is a third generation language and contains the standard

programming constructs.

Anonymous Block: An Unnamed block which will not store any where in the database is

know as Anonymous block.

Block Structure: PL/SQL programs are divided up into structures known as blocks, with

each block containing the PL/SQL and SQL statements. The syntax for the structure is

given below.

Syntax: [DECLARE

Variable declaration

Begin

Executable_statements

[Exception

Exception_handling_statements]

End;

Ex: SQL> SET SERVEROUT ON;

SQL> Declare v_1 number; v_2 number; v_3 number;

Begin

v_1:=&v_1; v_2:=&v_2;

v_3:=&v_3; if v_1 < v_2 and v_1 < v_3 then

dbms_output.put_line('1st is small'); elsif v_2 < v_3 then

dbms_output.put_line('2nd is small'); else

dbms_output.put_line('3rd is small'); end if;

Exception

When zero_divide then DBMS_OUTPUT.PUT_LINE(‘Division by ZERO’);

End;

O/p: It will ask for the three input values and will display the smallest number in that.

Difference between PL/SQL and SQL: In PL/SQL there is no buffer to hold the values

so we pass into variables. Here in SQL there is buffer to hold the data temporarily.

Ex: SQL> Select ename from emp where is empno = 7788;

SQL> Declare V_name varchar2(10);

Begin Select ename into v_name from emp where empno = 7788;

Page 11: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

7777

End; Cursors: Cursor is a private SQL area provided by the oracle engine. It is mainly used to

retrieve the data from more than one column. There are two types of cursors they are

given below.

� Implicit Cursors

� Explicit Cursors

Implicit Cursors: Implicit cursor raises implicitly when we use INSERT, UPDATE,

DELETE and SELECT..INTO statements. Because the Implicit cursor is opened and closed

by the PL/SQL engine.

Ex: SQL> declare

v_edata emp%ROWTYPE; begin

select * into v_edata from emp where empno=7788;

if sql%notfound then dbms_output.put_line('Record Not Found');

else dbms_output.put_line('Record Found');

end if; end;

Processing Explicit Cursors: The four PL/SQL steps necessary for explicit cursor

processing are as follows.

� Declare the cursor.

� Open the cursor for a Query.

� Fetch the results into PL/SQL variables.

� Close the Cursor.

Declaration of Cursor: The declaration of the cursor is associated with the select

statement. The syntax for the cursor is given below.

Syntax: CURSOR cursor_name IS select_statement;

Ex: -- To print the Cumulative SAL of the Employee table order by empno

SQL>declare

v_sal number; v_dno number; l_count number;

cursor test_cursor is select * from scott.emp order by empno; begin v_sal:=0; v_dno:=0;

for i in test_cursor loop if(i.deptno!=v_dno) then

v_sal:= 0;

end if; v_sal:=v_sal+i.sal; dbms_output.put_line('Ename: ' || i.ename||' Sal: '|| i.sal || '_

Cum_sal: '|| v_sal || 'Deptno: ' || i.deptno); l_count:=test_cursor%rowcount;

end loop; dbms_output.put_line(l_count||' Row(s) Fetched by the Cursor');

Page 12: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

8888

end test_cursor; Cursor Attributes: There are four cursors available in PL/SQL that can be applied to

cursors. Those are given below.

� %FOUND � %NOTFOUND

� %ISOPEN � %ROWCOUNT

%FOUND: %FOUND is a Boolean attribute. It returns TRUE if the previous FETCH

returned a row and FALSE if it didn’t.

%NOTFOUND: %NOTFOUND is also a Boolean attribute. It returns FALSE if the

previous FETCH returned a row and TRUE if it didn’t. It behaves opposite to the

%FOUND.

%ISOPEN: %ISOPEN is a Boolean attribute. It returns TRUE if the associated cursor is

open other wise it will return FALSE.

%ROWCOUNT: %ROWCOUNT is a Numeric attribute. It returns number of rows

returned by the cursor so far.

Declaring, Opening Fetching and Closing the Cursor:

Ex: SQL> declare v_eno number; v_ename varchar2(20);

l_count number; cursor razia_cursor is select empno,ename from scott.emp;

begin open razia_cursor;

loop fetch razia_cursor into v_eno, v_ename; exit when razia_cursor%notfound; l_count:=razia_cursor%rowcount;

dbms_output.put_line('Ename: ' || v_ename||' ENUM: '|| v_eno); end loop; close razia_cursor;

dbms_output.put_line(l_count||' Row(s) Fetched by the Cursor'); end;

Ex: SQL> -- Example to print the odd rows in the Table EMP declare

n number;

l_count number; cursor razia_cursor is select empno,ename,rownum from scott.emp; begin for i in razia_cursor

loop n:=mod(i.rownum,2); if (n>0) then

dbms_output.put_line('Empno: ' || i.empno||' NAME: '|| i.ename||' ROWNUM: '|| i.Rownum);

end if; l_count:=razia_cursor%rowcount;

end loop; dbms_output.put_line(l_count||' Number of Row(s) Fetched by the Cursor');

end razia_cursor;

Page 13: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

9999

Exceptions: An Exception is a error handling statement. It is used when ever our

program terminates abnormally by using the exception we can execute the program

from abnormal termination to normal termination. There are mainly two types of

exceptions they are given below.

� Predefined Exceptions.

� User defined Exceptions.

Predefined Exceptions: Oracle has predefined several exceptions that correspond to

the most common oracle errors. Some predefined exceptions are given below.

LOGIN_DENIED NO_DATA_FOUND

ZERO_DIVIDE TOO_MANY_ROWS STORAGE_ERROR

ROWTYPE_MISMATCH

INVALID_CURSOR CURSOR_ALREADY_OPEN

Ex: SQL> declare cursor test_cursor is select e.ename, d.deptno, d. dname from scott.emp e, scott.dept d

where e.deptno=20 and d.dname='RESEARCH'; begin

for i in test_cursor

loop dbms_output.put_line(i.ename || ' ' || i.deptno ||' '|| i.dname);

end loop; exception

when no_data_found then dbms_output.put_line('NO DATA FOUND EXCEPTION RAISED'); when others then

dbms_output.put_line(' An Error Raised ' || sqlerrm);

end test_cursor;

User Defined Exceptions: A user defined exception is an error defined by the

programmer. User defined exceptions are declared in the declarative section of the

PL/SQL block just like variables.

Syntax: DECLARE E_myexception EXCEPTION;

Ex: SQL> create or replace procedure razia_proc(v_sal in number) as v_sl number;

razia_excep exception; begin if(v_sal >= 5000)

then raise razia_excep; else select sal into v_sl from emp order by deptno;

end if; exception

when razia_excep then dbms_output.put_line( 'YOU HAVE PERFORMED AN ILLEGAL OPERATION');

end razia_proc;

Page 14: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

10101010

Procedures: Procedures are also known as subprograms. Given below is the syntax for

the creation of the procedure.

Syntax: CREATE [OR REPLACE] PROCEDURE procedure_name

[(argument [{IN | OUT | IN OUT}] type,

[(argument [{IN | OUT | IN OUT}] type) ] {IS | AS}

BEGIN

procedure_body

END procedure_name;

Ex: SQL> create or replace procedure razia_proc as v_sal number; cursor razia_cursor is select * from emp order by deptno;

begin

v_sal := &v_s; for i in razia_cursor

loop if(i.sal > v_sal) then dbms_output.put_line( 'Employee Name: ' || i.ename);

end if;

end loop; exception when others then

dbms_output.put_line( 'YOU HAVE PERFORMED AN ILLEGAL OPERATION'); dbms_output.put_line( 'THE PROGRAM MAY TERMINATE NOW');

end razia_proc; Execution: exec razia_proc;

Passing IN Parameter to the Procedures:

Ex: SQL> create or replace procedure kanthi_proc(p_inpar in number) as v_name varchar2(30); begin select ename into v_name from emp where empno=p_inpar;

dbms_output.put_line( 'Employee Name: ' || v_name); exception when others then

dbms_output.put_line( 'YOU HAVE PERFORMED ILLEGAL OPERATION'); end kanthi_proc;

Using IN and OUT parameters to Procedures:

Ex: SQL> create or replace procedure

shabbir_proc(p_outpar out varchar2,p_inpar in number) as begin select ename into p_outpar from emp where empno=p_inpar;

end; --To Catch the Output variable out side the procedure in the SQL declare v_name varchar2(20);

v_num number; begin mypro(v_name,&v_num);

dbms_output.put_line( 'Employee Name: ' || v_name);

end shabbir_proc;

Page 15: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

11111111

Functions: Function is similar to a procedure except that a function must return a value

to the statement from which it is called. The syntax for creating a function is given

below.

Syntax: SQL> CREATE [OR REPLACE] FUNCTION function_name

[(parameter_name[IN | OUT | IN OUT] type [,….])]

RETURN type;

{IS | AS}

BEGIN

Function_body

END function_name;

Ex: create or replace function haritha_func(p_empno number)

return varchar2 is

v_ename varchar2(20);

v_sal number;

begin

select ename,sal into v_ename, v_sal from emp where empno=p_empno;

if v_sal>=6000 then

return 'TRUE';

else

return 'FALSE';

end if;

end haritha_func;

Execution: SQL> select haritha_func(7788) from dual;

Ex: SQL> create or replace function haritha_fun(p_radius number)

return number as

v_pi number := 3.141;

v_area number;

begin

v_area := v_pi * POWER(p_radius,2);

return v_area;

end haritha_fun;

Execution: SQL> select haritha_fun(7) from dual;

Dropping Function and Procedure: When we want to drop the function or procedure

then we use this DROP statement the syntax for the DROP is given below.

Syntax for Dropping Function:

DROP FUNCTION function_name;

Syntax for Dropping Procedure:

DROP PROCEDURE procedure_name;

Page 16: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

12121212

Packages: Package is declarative part of the functions and procedures which are stored

in that package. There are two blocks in defining a package.

� Package Specification

� Package body

Package Specification: The package specification contains information about the

contents of the package. It does not contain code for any subprograms.

Syntax: CREATE [OR REPLACE] PACKAGE package_name {IS | AS}

Type_definition |

Procedure_specification |

Function_specification |

Variable_declaration |

Exception_declaration |

Cursor_declaration |

Pragma_declaration

END [package_name];

Package Body: The package body is separate data dictionary object from the package

header. It cannot be successfully compiled unless the package header is already been

successfully compiled.

Syntax: CREATE [OR REPLACE] PACKAGE BODY package_name {IS | AS}

….

BEGIN

Initialization_code;

END package_name;

Ex: SQL> create or replace package vamsi_pack as procedure razia_proc(mynum in number);

end vamsi_pack;

-- Declaration of Package Body and passing value to the procedure

create or replace package body vamsi_pack as

procedure razia_proc(mynum in number) as

cursor mycursor is select ename,empno,sal from emp where empno=mynum; begin

dbms_output.put_line(' NAME ' || ' NUMBER ' || ' SALARY '); for i in mycursor loop dbms_output.put_line(' '||i.ename||' '|| i.empno ||' '|| i.sal);

end loop; exception when others then dbms_output.put_line('YOU HAVE DONE AN ILLEGAL OPERATION ');

end myproc;

end vamsi_pack;

Execution: SQL> exec vamsi_pack.razia_proc(7788);

Page 17: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

13131313

Triggers: A Trigger is a procedure that will fire automatically by the database. When a

specified DML statement is run against the specified table. Triggers are useful for doing

things like advanced auditing of changes made to a column values in a table. The syntax

for creating the trigger is given below.

Syntax: CREATE [OR REPLACE] TRIGGER trigger_name

{BEFORE | AFTER | INSTEAD OF} trigger_event

ON table_name

[FOR EACH ROW [WHEN trigger_condition]]

BEGIN

Trigger_body;

END;

Ex: This example is when we insert into a table t1 then the same data has to be inserted

into the table t2. For that we require two tables of one same column.

SQL> CREATE TABLE t1(

Eno number);

SQL> CREATE TABLE t2(

Eno number,

Ins_date date);

SQL> CREATE OR REPLACE TRIGGER razia_trigger

BEFORE INSERT ON TABLE t1

FOR EACH ROW

BEGIN

INSERT INTO TABLE t2

VALUES(:new.eno,sysdate);

END;

Note: For every insert operation on t1 it will insert the eno col values to t2 along with the current

sysdate in the other column.

Disabling and Enabling Trigger: We can stop the trigger from firing by disabling the

trigger by using the ALTER TRIGGER statement. The syntax for enabling the trigger and

disabling the trigger is given below.

Syntax: ALTER TRIGGER trigger_name DISABLE;

ALTER TRIGGER trigger_name ENABLE;

Dropping a Trigger: If we want to drop the trigger from the database then we have to

use DROP TRIGGER statement. The syntax for dropping the trigger is given below.

Syntax: DROP TRIGGER trigger_name;

Page 18: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

14141414

ERP: Enterprise Resource Planning

Here Resource means 5 m’s

1. Money

2. Man power

3. Machinery

4. Material and

5. Management

ERP Purpose: Planning for proper utilization of resources for a business organization .

ERP as a Product : all objects(i.e. forms, reports )and all other programs are developed and throwly tested and those will be provided with these ERP. Methodology : the process used to implement ERP Product for a business Organization.

AIM (APPLICATION IMPLEMENTATION METHODOLOGY):

Methodology for Oracle Apps is AIM(Applications Implementation Methodology) Phases in Aim Methodology:

1. Definition Phase

2. Operational Analysis Phase

3. Solution Design Phase

4. Build Phase

5. Transition Phase

6. Production Phase

1. Definition Phase: Here the functional consultants prepare the sample structure

(Blue Print) for the real business by gathering the information.

2. Operational Analysis phase: In this the functional consultant prepare BR100

(Business Requirement).

3. Solution Design Phase: here the functional consultant will prepare MD50 by using

BR100. MD50 is the functional document.

4. Build Phase: here the technical consultant converts MD50 to MD70. MD70 is the

technical document. Then the technical consultant prepare the final object and go

with testing, i.e. Unit Testing.

5. Transition Phase: here SIT(System Integration Testing) and UAT(User

Acceptance Testing) is done. Functional consultant does SIT. After this the

functional consultant will train the user in oracle apps product and user does UAT.

If it is satisfied by the user, it is sign off and product will be given to the user.

6. Production phase: loading the project in the client place. Where the server of

oracle apps in the client place.

Page 19: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

15151515

Introduction: The Oracle Applications is an ERP, which was developed by the

Oracle Corp and was used by the several companies to utilize several resources

contained with them.

Business Flow of Oracle Applications:

Oracle Applications is designed for the Financial and Manufacturing clients. The

categories in the modules are given below.

Financial Modules: Account Payables, Account Receivables, General Ledger and Fixed

Assets.

Manufacturing Modules: Purchasing, Inventory, Bill Of Materials, Work in Progress and

Order Management.

In HRMS we maintain all the details of the employee as well as the organization details.

Module: It is a collection of forms and reports which are related to particular business

process.

Purchase order module has the forms and reports which are related to the purchasing

business process. It contains nearly 50,000 tables they are accessed by only purchase

order module.

Page 20: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

16161616

Oracle Applications Database Structure:

Schema: Schema is a place in database which contains the database objects like tables,

indexes, sequences, views and synonyms.

In oracle applications database we have individual schemas for each module

application. These schemas contain the database objects of only that particular module.

When we connect any database schema we can access only that schema database

objects. We can’t access other database objects. For data integrity purpose the oracle

has deigned one more schema called Apps schema which contains only synonyms and

this schema have the rights to access any other module database objects.

Note: Apps Schema will not contain the tables it contain only synonyms.

Projects in Oracle Applications:

� Implementation Projects: Implementation means we will develop the forms,

reports from the scratch. In this project we will be work in the areas of the forms,

reports, interface, customizations and interfaces.

� Customization Projects: In this we customize some standard reports.

� Migration / Up gradation Projects: This will be moving from the Old version to the

New version.

� Support / Maintenance Projects: Solving the issues which are raised by the end

user while entering the data.

� Post Implementation Projects: This will be done at free of cost. It’s a real time

testing.

Page 21: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

17171717

Types of Docs in Oracle Apps:

� MD 050 -- Module design by the functional consultant.

� MD 070 -- Technical Document designed by the technical consultant.

� MD 020 -- Technical document designed by the functional document.

� MD 0120 -- Migration and user training document by the technical consultant.

� CV 040 -- Conversion of the functional document by the functional consultant.

� CV 060 -- Conversion of the technical document by the technical consultant.

Note: Conversion means moving the data from the legacy system to the apps system.

Oracle Apps File Architecture:

We will have Linux/Unix server for oracle apps we will be connecting to the server

by using the FTP/TOAD/FILEZILLA/WINSEP3

File Architecture:

The Server first top will be application top “Appl-top” we can change the name

according to the client wish. Under that we have the product top. Each module has go it

individual top.

Page 22: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

18181818

Note: We will move the (download/upload) forms and reports from the local machine to the server

always in binary mode. We save any information only on the server not in the local machine.

Entering the Oracle Applications: First it will prompt for the username and password and then click on the connect button then it will give us responsibilities form. Select to

which responsibility you want to login then you will enter to the oracle applications.

We get the screen as given below when we enter into the system administrator responsibility.

Page 23: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

19191919

User Creation: Connect to the oracle applications 11i as we shown above and enter into the system administrator responsibility. The navigation to create the user is Security ���� User ���� Define. The window is given below. Enter the username, password

and assign responsibilities what ever you want and save the user will be created.

Note: when ever we login next time we can enter the user name and password that what we created now.

Steps to Register a Report:

1. Develop the report in 6i according to the client requirements.

2. Transfer the object from the local system to the server and placing that in the appropriate directory.

3. Creating the executable and set the execution method as oracle reports as we are registering the report. Set the executable file name as the object name which we

modified or developed.

4. Create the concurrent program and set the executable to the concurrent program.

If your program has any parameters then go with the parameters button and submit the parameter tokens.

5. Set the concurrent program to the request group and the request group to the

responsibilities.

6. User having that responsibility will only can run that request or submit the request of the report.

Note: Every form contains 3 types of fields those are

1. Yellow Colored fields --- Mandatory. With out entering these mandatory fields we

can’t save the form.

2. Green Colored fields --- Read only.

3. White Colored fields --- Optional.

4. Blue colored indicates the form in the query mode. We enter into the query mode by

pressing F11 and enter data which was already saved to retrieve the record press

CTRL+F11.

Page 24: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

20202020

Creating the Concurrent Program Executable: Before we start the registration

process we have to create a report according to the client requirements and place the

report in the appropriate directory (Custom top). The navigation for this form is

Concurrent ���� Program ���� Executable. The given below is the executable window.

Window help:

Executable: Set the executable name as we like here we entered the name as per the

program.

Short Name: Set the short name of the executable as related to the executable because

we have to remember them.

Application: Select the Appropriate Application from the list of applications here we

selected the Oracle Receivables because we saved our report (valueset.RDF) in the AR

(Receivables) folder only.

Page 25: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

21212121

Description: This field is not a mandatory field if we want to describe the concurrent

program executable we use this field.

Execution Method: There are eleven execution methods we can choose what ever we

want as per the requirements. Those are stated below.

Host: The execution file is a host script. When ever we have an UNIX scripting

programs then we use this execution method.

Immediate: The execution file is a program written to run as a subroutine of the

concurrent manager. We recommend against defining new immediate concurrent

programs, and suggest you use either a PL/SQL Stored Procedure or a Spawned C

Program instead.

Java Stored Procedure: The execution file is a Java stored procedure.

Java Concurrent Program: The execution file is a program written in Java.

Multi Language Function: The execution file is a function (MLS function) that supports

running concurrent programs in multiple languages.

Oracle Reports: The execution file is an Oracle Reports file. To register a report which

we done in report6i we use this method.

PL/SQL Stored Procedure: The execution file is a PL/SQL stored procedure.

Spawned: The execution file is a C or Pro*C program.

SQL * Loader: The execution file is a SQL script.

SQL * Plus: The execution file is a SQL*Plus script.

Note:

1. According to the requirement of the user and the type of the report we created

the execution method will depend.

Execution File Name: We have to set the executable filename as our report name. Here

we create the report name as valueset so; we set the name as valueset.

Subroutine Name: Only immediate programs or spawned programs using the Unified C

API use the subroutine field.

Staging function Parameters (Button): The Stage Function Parameters button opens a

window that allows you to enter parameters for the Request Set Stage Function. This

button is only enabled when you select Request Set Stage Function as your Execution

Method.

After entering all the fields save the form and go to the Concurrent Programs Form. The

Navigation for this is Concurrent ���� Program ���� Define.

Page 26: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

22222222

Window Help:

Program: Enter the Program name as we like it is not standard we gave here as

cs_value_prg as per our program.

Enabled (Check Box): Disabled programs do not show up in users' lists, and do not

appear in any concurrent manager queues. You cannot delete a concurrent program

because its information helps to provide an audit trail.

Short Name: The short name is also like the short name in the executable form. We

have to give the name as per the program name.

Application Name: Select the application name as Oracle Receivables. We have to select

the application as what we select in the Executable form.

Description: This field is not a mandatory field if we want to describe the concurrent

program we use this field.

Executable:

Name: Set the executable name as the short name of the executable which we give in

the previous Executable form.

Method: when we enter the executable name there in the name field it was automatically

set which we saved in the executable form.

Priority: you can assign this program it own priority. The concurrent managers process

requests for this program at the priority you assign here.

Page 27: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

23232323

Request:

Type: If you want to associate your program with a predefined request type, enter the

name of the request type here.

Incrementor: For use by Oracle Applications internal developers only. The Incrementor

function is shown here.

MLS Function: The Multilingual Concurrent Request feature allows a user to submit a

request once to be run multiple times, each time in a different language. If this program

utilizes this feature the MLS function determines which installed languages are needed

for the request

Use in SRS (Check Box): Check this box to indicate that users can submit a request to

run this program from a Standard Request Submission window.

Run Alone (Check Box): If you check the Use in SRS box, you can also check this box to

allow a user to enter disabled or outdated values as parameter values.

Enable Trace (Check Box): Turns on SQL tracing when program runs.

Allow Disabled Values (Check Box): If you check the Use in SRS box, you can also check

this box to allow a user to enter disabled or outdated values as parameter values.

Restart on system failure Run Alone (Check Box): Use this option to indicate that this

concurrent program should automatically be restarted when the concurrent manager is

restored after a system failure.

NLS Complaint (Check Box): This box is checked if the program allows for a user to

submit a request of this program that will reflect a language and territory that are

different from the language and territory that the users are operating in.

Output:

Format: There are several formats as per the requirements in the report we use this

format here we use the TEXT format.

Save (Check Box): Indicate whether to automatically save the output from this program

to an operating system file when it is run. This value becomes the default for all requests

submitted for this program.

Print (Check Box): If you enter No, your concurrent program's output is never sent to

the printer.

Columns/Rows: Enter the minimum column and row length for this program's report

output. Oracle Applications uses this information to determine which print styles can

accommodate your report.

Style: There are several styles which we can use A4, Landscape, BACS and other styles.

Style Required (Check Box): If your program requires a specific print style (for example,

a check writing report), use this check box to enforce that print style.

Printer: If you want to restrict your program's output to a single printer, enter the name

of the printer to which you want to send your output.

Page 28: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

24242424

Buttons:

Copy to (Button): Create another concurrent program using the same executable,

request and report information as the current program. You can optionally copy the

incompatibility and parameter details information as well.

Session Control (Button): Use this window to specify options for the database session of

the concurrent program when it is executed.

Incompatibilities (Button): Identify programs that should not run simultaneously with

your concurrent program because they might interfere with its execution. You can

specify your program as being incompatible with itself.

Parameters (Button): If there are any parameters for our report then we go with the

parameters button. We get the window called parameters when we go with the button.

Note: The window help of the Parameter window will be given in the next steps.

Setting the Concurrent Program to the Request Group: To set the concurrent

program to the request group we have to go to the responsibilities screen. The

navigation is Security ���� Responsibility ���� Define. Then we get the window as shown

below.

Note: Here if we want we can create new responsibility or we can use the existing one. Here we

use the existing one retrieved the existing responsibility name using query mode (F11) as we

discussed earlier.

Now copy the request group name and go to the navigation Security ���� Responsibility ���� Request. Then Request Groups window will be opened as shown below. By entering the query mode we have to paste the Request Group name

at the Group field and press CTRL+F11. This form is case sensitive. After that click on new button and enter the concurrent program name at the name column and go with save button.

Page 29: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

25252525

Submitting the Request: Now switch to the appropriate responsibility then only we can run the request. Here as per our example we have to enter into the

Receivable Vision Operations. After enter into the responsibility go with the navigation.

Menu ���� View ���� Requests then we get the window find request go with Submit a New Request button. It will prompt for the Single Request or Request Set. As our program is the single we go with the Single option. After that we get another window.

Page 30: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

26262626

Enter the concurrent program name at the name field and go with the submit button.

Then we get another window as shown below.

To view the outputs of your program then go with the output button. To view any error

messages you go with the View log button.

Page 31: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

27272727

Process to Register a PL/SQL Stored Procedure: This is the PL/SQL Stored Procedure using the Table Valuesets.

Creating the Procedure:

EX:

SQL> create or replace procedure chaitu_proc(errbuf out varchar2, retcode out varchar2, p_dno in number, p_dname in varchar2) as

cursor test_cursor is select e.ename, d.deptno, d.dname from scott.emp e,

scott.dept d where e.deptno=p_dno and d.dname=p_dname; begin

for i in test_cursor

loop dbms_output.put_line(i.ename || ' ' || i.deptno ||' '|| i.dname); end loop; end chaitu_proc;

Procedure Created.

Note: Here we have to use fnd_file.put_line to view the output in Oracle apps, because dbms_output.put_line will not work in Oracle Apps

Here in the Procedure there are two mandatory out parameters those are errbuf and retcode.

Errbuf: Used to write the error message to log or request file.

Retcode: if the RETCODE is set to 0 - Then concurrent program will Completed NORMAL. 1 - Then concurrent program will Completed WARNINGS.

2 - Then concurrent program will Completed ERROR.

Creating the Concurrent Program Executable: Before we start the registration

process we have to create a package or Procedure according to the client requirements. The navigation for this form is Concurrent ���� Program ���� Executable. The given below is the Navigator window.

Page 32: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

28282828

When we go with the above navigation the Executable form will be open then we have

to enter the mandatory fields.

Executable: Set the executable name as we like here we entered the name as per the

program.

Short Name: Set the short name of the executable as related to the executable because

we have to remember them.

Application: Select the application name from the list of applications here we selected

the Oracle Receivables as per our requirements.

Description: This field is not a mandatory field if we want to describe the program we

use this field.

Execution Method: We have to select the PL/SQL Stored Procedure as execution method

to register the myproc1 procedure.

Execution File Name: We have to set the executable filename as procedure name. Here

we our procedure name is mrproc1 so; we set the name as myproc1.

After entering all the fields save the form and go to the Concurrent Programs Form.

The Navigation for this is Concurrent ���� Program ���� Define.

Page 33: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

29292929

Enter all the mandatory fields and save the form.

Program: Enter the Program name as we like it is not standard we gave here as

cs_value_prg as per our program.

Short Name: The short name is also like the short name in the executable form. We

have to give the name as per the program name.

Application Name: Select the application name as Oracle Receivables. We have to select

the application as what we select in the Executable form.

Executable Name: Set the executable name as the short name of the executable which

we give in the previous Executable form.

Format: There are several formats as per the requirements in the report we use this

format here we use the TEXT format.

Style: There are several styles which we can use A4, Landscape, BACS and other styles.

Here we are having the two parameters go with Parameters button in the Screen. The

Concurrent Program Parameters window will show below.

Page 34: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

30303030

Note: There is no token required where we are working with the PL/SQL STORED PROCEDURE and observe that the token field in the above window is grayed it won’t allow any values into that field.

Window Help:

Seq: Choose the sequence numbers that specify the order in which your program

receives parameter values from the concurrent manager.

Parameter: We enter the parameter name that we are passing. Same was passed to the prompt when we press tab.

Description: This is the optional field to describe the input parameter.

Enabled (Check Box): Disabled parameters do not display at request submission time and are not passed to your execution file.

Validation:

Valueset: Enter the name of the value set you want your parameter to use for validation. You can only select from independent, table, and non-validated value sets. As per our example we defined two valuesets for two parameters and set the two valuesets

respectively.

Default Type: If you want to set a default value for this parameter, identify the type of

value you need.

Required (Check Box): If the program executable file requires an argument, you should require it for your concurrent program.

Enable Security (Check Box): If the value set for this parameter does not allow security

rules, then this field is display only. Otherwise you can elect to apply any security rules defined for this value set to affect your parameter list.

Display:

Display Size: Enter the field length in characters for this parameter. The user sees and fills in the field in the Parameters window of the Submit Requests window.

Concatenated Description Size: Enter the display length in characters for the parameter

value description. The user sees the parameter value in the Parameter Description field

Page 35: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

31313131

of the Submit Requests and View Requests forms. The Parameter Description field concatenates all the parameter values for the concurrent program.

Note: We recommend that you set the Concatenated Description Size for each of your

parameters so that the total Concatenated Description Size for your program is 80 or

less, since most video screens are 80 characters wide.

Prompt: Enter the message that will prompt for the input at the submit request form.

Token: For a parameter in an Oracle Reports program, the keyword or parameter

appears here. The value is case insensitive. For other types of programs, you can skip

this field.

After modifying the parameter form, save the program. Now go the

Request Group form and the set the concurrent program to the appropriate request

group. The navigation for this is Security ���� Responsibility ���� Request. Then Request

Groups form will open as shown below. Enter into Query mode by pressing F11 then

enter the Request Group Name and press CTRL+F11. This form is case sensitive. After

that click on new button and enter the concurrent program name at the name column

and go with save button.

Ex:-- Some Request Group Names

For Receivables : Receivables All For Inventory : All Inclusive GUI

For Order Management : OM Concurrent Programs For Purchase Order : All Reports

If we don’t know the Request group name then we have to go for the navigation

Security ���� Responsibility ���� Define we already explained in the above example.

Page 36: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

32323232

Switch to the appropriate responsibility and run the request. When we enter the

name of the program in the run request window then parameter window will be open.

Then you will get the parameter screen enter the required parameters and go with ok

button.

After entering both the parameters then press ok and then submit the request.

After that submit the request to and go with find button to view the status of the

request. After it completed normal we can view the output from the output button. If the

Status of the program completed error then go with View Log button.

Page 37: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

33333333

Out Put:

Page 38: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

34343434

XML Publisher Registration Steps:

Purpose: For CFD(Customer Facing Document)

1. Develop a report according to the client requirements and register the concurrent

program.

Ex: The Concurrent program name is CS_XML_REP

Note: The only difference is we have to set the format type as XML in the

concurrent program window while registering

2. Create a Template with specified formats like rtf, pdf… using the appropriate

tools.

3. Then go with the XML Publisher Administrator Responsibility and click on the Data

definition.

Page 39: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

35353535

4. Then you will get the screen now go with the Create Data definition button in the

screen.

5. The Create Data Definition screen will appear enter all the fields and click on

apply button.

Window Help

Name: This name is your data definition name, which you are going to create now.

Application: We have to select the appropriate application, which our concurrent

program has been registered

Code: The code must match the concurrent program short name, which we registered

earlier.

Page 40: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

36363636

Start Date: It specifies the start date of your application.

Description: To describe your Data Definition enter the data.

6. Now go with Template tab in the same screen.

7. Click on the Create template button then the following screen will appear.

Window Help:

Name: This is the Template Name, which we are going to create.

Application: We have to select the appropriate application, which our concurrent

program has been registered

Type: Select the format type of your template, which you created earlier.

Code: Enter the code for the template that is short name.

Data Definition: Enter the data definition name, which was created earlier.

Start Date: It specifies the start date of your application.

Description: To describe your Template enter the data.

File: Click on Browse and select the template file, which you have created.

Language: Choose a specific language according to the Customer Specifications

Territory: Territory specifies the language belongs to which nation.

Then go with Apply button.

Page 41: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

37373737

8. Now Switch to the appropriate responsibility and run the CS_XML_REP concurrent

program, which we created earlier.

9. Then copy the Request_id in the Requests window.

10. Switch the responsibility to the XML Publisher Responsibility and run the XML

Publisher Report. You will get the following Input Screen.

Page 42: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

38383838

Output: After completion of the request go with view output window Button.

Report Code: -- This code will appear on the After parameter form in our report

function AfterReport return boolean is

l_request number; l_appl NUMBER; begin SELECT FCP.APPLICATION_ID

INTO l_appl FROM FND_CONCURRENT_PROGRAMS FCP,FND_CONCURRENT_REQUESTS R WHERE FCP.CONCURRENT_PROGRAM_ID = R.CONCURRENT_PROGRAM_ID

AND R.REQUEST_ID = :P_CONC_REQUEST_ID; l_request := fnd_request.submit_request( 'XDO', 'XDOREPPB', null, null, FALSE,

:P_CONC_REQUEST_ID,'xmlreporttemp',l_appl,'US','N',NULL,NULL,NULL,NULL,

NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,

NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,

NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); srw.message(100, ' Request submitted ' || l_request);

SRW.USER_EXIT('FND SRWEXIT'); return (TRUE);

EXCEPTION

WHEN OTHERS THEN RETURN NULL; end;

Page 43: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

39393939

Table Registration in APPS: 1. Create a table .

Ex: Sql> Crete table wip_item(ITEM VARCHAR2(15), ITEMDESCRIPTION VARCHAR2(100), ITEMCOST NUMBER(8),

CATEGORYK VARCHAR2(100), CREATION_DATE DATE, CREATED_BY NUMBER(7), LAST_UPDATE_DATE DATE,

LAST_UPDATED_BY NUMBER(7), ATTRIBUTE_CAT VARCHAR2(100), ATTRIBUTE1 VARCHAR2(100), ATTRIBUTE2 VARCHAR2(100),

ATTRIBUTE3 VARCHAR2(100), ATTRIBUTE4 VARCHAR2(100), ATTRIBUTE5 VARCHAR2(100));

2. If you are in different user for Ex: scott/tiger then you have to grant permission to

APPS.

Ex: Grant all on wip_item to apps;

3. Connect apps/apps@PROD.

4. Create synonym for the table which we are going to register in APPS.

Ex: Create public synonym wip_item for wip.wip_item.

5. Registering the table by using AD_DD Package

Syntax: Exec AD_DD.REGISTER_TABLE

(p_appl_short_name, p_tab_name, --table name

p_tab_type, p_next_extent, -- Enter the initial and next extent sizes in kilobytes for your

table. You must enter values greater than 0. p_pct_free,--free storage. p_pct_used);-- used storage.

EXEC AD_DD.REGISTER_TABLE('WIP','WIP_ITEM','T',8,10,90);

Registering the Columns:

Syntax: EXEC AD_DD.REGISTER_COLUMN p_appl_short_name,

p_tab_name, p_col_name, p_col_seq, p_col_type,

p_col_width, p_nullable, p_translate,

p_precision default null, p_scale default null);

Page 44: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

40404040

Ex:

EXEC AD_DD.REGISTER_COLUMN('WIP','WIP_ITEM','ITEM',1,'VARCHAR2',15,'N','Y');

EXEC AD_DD.REGISTER_COLUMN('WIP','WIP_ITEM','ITEMDESCRIPTION',2,'VARCHAR2',100,'N','Y');

EXEC AD_DD.REGISTER_COLUMN('WIP','WIP_ITEM','ITEMCOST',3,'NUMBER',8,'N','Y');

EXEC AD_DD.REGISTER_COLUMN('WIP','WIP_ITEM','CATEGORYK',4,'VARCHAR2',100,'N','Y');

EXEC AD_DD.REGISTER_COLUMN('WIP','WIP_ITEM','CREATION_DATE',5,'DATE',11,'N','Y');

EXEC AD_DD.REGISTER_COLUMN('WIP','WIP_ITEM','CREATED_BY',6,'NUMBER',7,'N','Y');

EXEC AD_DD.REGISTER_COLUMN('WIP','WIP_ITEM','LAST_UPDATE_DATE',7,'DATE',11,'N','Y');

EXEC AD_DD.REGISTER_COLUMN('WIP','WIP_ITEM','LAST_UPDATED_BY',8,'NUMBER',7,'N','Y');

EXEC AD_DD.REGISTER_COLUMN('WIP','WIP_ITEM','ATTRIBUTE_CAT',9,'VARCHAR2',100,'N','Y');

EXEC AD_DD.REGISTER_COLUMN('WIP','WIP_ITEM','ATTRIBUTE1',10,'VARCHAR2',100,'N','Y');

EXEC AD_DD.REGISTER_COLUMN('WIP','WIP_ITEM','ATTRIBUTE2',11,'VARCHAR2',100,'N','Y');

EXEC AD_DD.REGISTER_COLUMN('WIP','WIP_ITEM','ATTRIBUTE3',12,'VARCHAR2',100,'N','Y');

EXEC AD_DD.REGISTER_COLUMN('WIP','WIP_ITEM','ATTRIBUTE4',13,'VARCHAR2',100,'N','Y');

EXEC AD_DD.REGISTER_COLUMN('WIP','WIP_ITEM','ATTRIBUTE5',14,'VARCHAR2',100,'N','Y');

6. Check in APPS go to Application Developer Responsibility

Application ���� Database ���� Table

Then we will get Tables Screen as Shown below and press F11 then enter the

table_name and press CTRL+F11 then we will get the data as shown below.

Page 45: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

41414141

Valuesets: Valueset is nothing but the list of values with validation. We will be using the

valuesets whenever the concurrent programs have parameters and while defining the

flex fields we attach this flex fields. The given below are the types of valuesets.

None

Independent Dependent Table

Translatable Dependent Translatable Independent Special and

Pair.

None: It is used whenever we want to apply some format condition like max.length,

numbers, and capital letters so on. There wont be any list of values in none valueset.

Independent: This valueset is used whenever we want to show some hard coded values

to the end user that time we will create. Navigation to get the Valueset screen in

Application ���� Validation ���� Set

After that go with the Navigation Application ���� Validation ���� Values then we will get

the screen given below. Enter the valueset name, which we created earlier.

Page 46: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

42424242

Dependent: It is a list of values, which are depending on the Independent valueset. To

create dependent valueset go with same process we mentioned above and set the

validation type as Dependent and click on the Edit Information button then we will get

the Dependent valueset information screen enter the mandatory fields like independent

valueset name which we created earlier.

Table: It will be used whenever we want to show the list of values from the table

column name. When we select this option then the Edit Information in this window will

become active. When we go with that Edit Information button we get the Validation

information window. That is shown below.

To define the valueset the Navigation is Application ���� Validation ���� Set. The

Valueset form is shown below.

Page 47: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

43434343

Window Help:

Value Set Name: Define your own value set name.

Format Type: Select the appropriate datatype that what we are passing as parameter

through this valueset. This field is mandatory.

Maximum Size: Enter the maximum size of the parameter that what we are passing to

the report. This field is mandatory.

Validation Type: Select validation type as Table and go with the edit information button. then the Validation table information window will be open. Enter the mandatory fields as required. Now go with the edit information button then we get the Validation Table Information

window will appear as shown below.

Table Name: Here we can enter the table name or we can write a query. Query must be

written in braces only.

Ex: (select distinct (empno) from scott.emp)

Value: Enter the column name which we want to display in the parameter window.

Meaning: Meaning is to provide the additional information along with the list of values.

ID: To column is used to pass a value to the parameter. The scenario of using this id will

be if we want to pass a value to the parameter, which is associated with, the list of

values select by the user.

Where/Order By: To incorporate any filters in the list of values we can do that in where

clause and order by is used to sort the list of values in ascending or descending order.

Additional Columns: when we want to display any other Additional columns in the

output form we use this. We use these two as per the requirements.

Syntax: Column name “Alias Name” (Width)

Page 48: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

44444444

Note: When we are working with table valueset only the edit information button is active. For

other valuesets it is not active.

Using $FLEX$: $FLEX$ is used to hold the data which was selected by the previous

valueset for that we have to define another table valueset with different name as per the

above process. In the new valuset we used the $FLEX$ as given below screen.

Note:

Whenever you assign the valueset to any concurrent program then you are not allowed to

modify the valueset. We have to remove from the valueset from the concurrent program

to modify the valueset, which was already created.

For more information you go to the example given below with detailed explanation of table

valueset.

When ever we select the validation type as table then the edit information button in the

valuesets window will be enabled. It will be disabled for the other valuesets only for the

table valueset.

Translatable Dependent & Translatable Independent: These two valuesets are

used whenever you are working with multi-lingual implementation.

Special: Special valueset is used for display flexfields data as parameter values.

Pair: This valueset is used to display parameters in pairs.

EX: Date from & Date To…etc. (To specify a range in pair we use such type of valuesets).

Page 49: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

45454545

Working with User Exits in Reports 6i: User Exits are 3GL programs used to transfer

the control from the report builder to Oracle Applications or any and it will perform some

actions and return to the report builder. There are five types of user exits those are

given below.

� FND SRWINIT

� FND SRWEXIT

� FND FORMAT_CURRENCY

� FND FLEXSQL

� FND FLEXIDVAL

FND SRWINIT: Used to write in before report trigger. It is used to fetch the concurrent

request information and also used to set the profile options.

FND SRWEXIT: We will write this in after report trigger. Used to free the memory which

has been allocated by the other user exits

FND FORMAT_CURRENCY: This is used to convert amounts or currency from one

currency to other currency values and also used to display currency amounts in formats.

EX: SRW.USER_EXIT(‘FND FORMAT_CURRENCY’,

Code = ‘currency_code’,

Display_width=’15’,

Amount = ‘:cf_feb’,

Display = ‘:cd_feb’);

Return (:cd_feb);

FND FLEXSQL: This is used to get the data from flex fields. We will use in formula

columns.

FND FLEXIDVAL: This is used to get the data from flex fields. We will use them in

formula columns.

Note:

1. We use the User Exits in the Report triggers like before report, after report, before

parameter form, after parameter form.

2. We have to create a mandatory parameter called P_CONC_REQUEST_ID when we work

with FND SRWINIT, FND SRWEXIT.

3. The user exits are case sensitive we have to write them in capital letters only otherwise they will raise an error.

Page 50: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

46464646

Designing the Report: Create a new report manually. Go to data model and click on

the SQL Query then a dialog box SQL Query Statement will open write your query in

that.

Data Model:

Ex: SELECT E.EMPNO,E.ENAME,E.SAL,D.DNAME FROM

SCOTT.EMP E,SCOTT.DEPT D

WHERE D.DEPTNO=E.DEPTNO order by e.deptno

Layout Model: Now go to the layout model and design your report view as per the requirements. See here in the below diagram we created P_CONC_REQUEST_ID in the user parameters.

Page 51: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

47474747

Report Triggers: Report triggers execute PL/SQL functions at specific times during the execution and formatting of your report. The types of report triggers are given below.

Before Parameter Form: If we want to pass any initial values to the parameter we use

this trigger.

After Parameter Form: This trigger will fire after the entering the parameter values. To

validate the parameters and use to populate the lexical parameters, we use this trigger.

Before Report: In oracle 11i we use this trigger to initialize profile values.

Between Pages: This trigger is used to format the output and fires once per each page except for the first page.

After Report: This trigger is used to free the memory or drop the temporary objects that

are created in the begining of the report or to send the output as mail.

Note:

1. In the report triggers we cant use any SQL statements directly there is package called

srw(Standard Report Writer) using this we can write any SQL statements.

Syntax: srw.do_sql(‘create sequence myseq Increment by 1 Start with 1’);

2. To display any message box in the triggers or at any stage in reports6i we use another

procedure in srw package.

Syntax: srw.message(1001,’Hai this is a Simple Message from CHAITU’);

Go to the before report trigger and use the FND SRWINIT which is used to fetch the

concurrent request information and also to set the profile options.

Page 52: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

48484848

Ex: Code in the before report trigger

function BeforeReport return boolean is begin SRW.USER_EXIT('FND SRWINIT');

return (TRUE);

end; After writing the code then click on the compile button if there is no error then we will get the successfully compiled message at the down right corner.

Now go after report trigger and write the code as given below and compile it after successfully completion then close the window.

EX:

function AfterReport return boolean is

begin

SRW.USER_EXIT('FND SRWEXIT'); SRW.message(100,'P_CONC_ID: '||:P_CONC_REQUEST_ID); return (TRUE);

end;

Note: Now our report is ready, save it and register the report in the oracle applications. Then we will get the output as given below.

Output Window:

Page 53: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

49494949

Profiles: Profiles are the changeable options which affect the way application runs. To get these profiles we use three API’s those are given below.

1. FND_PROFILE.GET(‘Name of the Profile’, variable name);

2. variable name := FND_PROFILE.VALUE(‘Name of the profile’);

3. FND_PROFILE.SET(‘Name of the profile’, value of the profile);

The 1st and 2nd are same but, the only difference is FND_PROFILE.GET is the

procedure and FND_PROFILE.VALUE is the function so, it return a value. The Profile

values will be set in different levels those are given below.

� Site

� Application

� Responsibility

� User

� Server

� Organization

Site: This field displays the current value, if set, for all users at the installation site.

Application: This field displays the current value, if set, for all users working under

responsibilities owned by the application identified in the Find Profile Values block.

Responsibility: This field displays the current value, if set, for all users working under the

responsibility identified in the Find Profile Values block.

User: This field displays the current value, if set, for the application user identified in the

Find Profile Values block.

Profile: Enter the name of the profile option whose values you wish to display. You may

search for profile options using character strings and the wildcard symbol (%). For

example, to find all the profile options prefixed by "Concurrent:” you could enter

"Conc%" and press the Find button.

The navigation to get the system profile values information is Profile ���� System.

Page 54: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

50505050

The profiles are of two types those are given below.

1. System Profile and

2. User Profile.

The above given window is the System Profile window and the user profile window is

given below and the navigation is Profile ���� Personal.

Note: To view personal profiles enter into the query mode and enter the profile name which we have already then we get profile value details.

Some important Profiles:

ORG_ID

MFG_ORGANIZATION_ID

GL_SET_OF_BKS_ID

USER_ID

RESP_ID

RESP_APPL_ID

Note: To get the RESP_ID or RESP_APPL_ID…. Go with the following navigation.

Menu ���� Help ���� Diagnostics ���� Examine. Then it will prompt for the oracle password,

enter that then we get the Examine and Variable Values window as shown below.

In the same way we can get the ORG_ID, RESP_APPL_ID, USER_ID…., by entering

what ever we want at the Field column in the above Examine window.

Page 55: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

51515151

API’s To Register Concurrent Program: FND_PROGRAM.EXECUTABLE: To Create executable and set the appropriate execution

method Syntax:

FND_PROGRAM.EXECUTABLE(EXECUTABLE, APPLICATION, DESCRIPTION,

EXECUTION_METHOD, EXECUTION_FILE_NAME);

FND_PROGRAM.REGISTER: To create concurrent program Syntax:

FND_PROGRAM.REGISTER(PROGRAM, APPLICATION, ENABLED, SHORT_NAME,

DESCRIPTION,….); FND_PROGRAM.PARAMETERS: To set the parameter and to pass appropriate tokens

through the concurrent program Syntax:

FND_PROGRAM.PARAMETER(PARAMETERNAME, VAlUESET, TOKEN, PROMPT,

SIZE);

FND_PROGRAM.REQUEST_GROUP: To set the parameter and to pass appropriate tokens through the concurrent program

Syntax:

FND_PROGRAM.REQUEST_GROUP(REQUEST_GROUP_NAME, APPLICATION, CODE, DESCRIPTION,..);

FND_GLOBAL_APPS_INITIALIZE: When ever we are working with profiles in PL/SQL

and submitting through the SQL we need to use this API the syntax for this API is given

below.

Syntax: FND_GLOBAL_APPS_INITIALIZE(user_id, resp_id, resp_appl_id,

[Security_group_id, server_id]);

Note: In this FND_GLOBAL_APPS_INITIALIZE the parameters user_id… and others we have to get

them manually from apps the process we discussed above see. The navigation is

Menu ���� Help ���� Diagnostics ���� Examine.

EX: Declare i number;

begin

FND_GLOBAL_APPS_INITIALIZE(1007899,20420,1); i:=FND_PROFILE.VALUE(‘ORG_ID’); dbms_output.put_line(‘Operation ID: ‘|| i);

end;

O/p: Operation ID: 204

FND_CLIENT_INFO.SET_ORG_CONTEXT: This is the API used to set the ORG_ID

value from the backend, so that system will retrieve the data from the database which is

related to mention the organization.

Syntax: Begin FND_CLIENT_INFO.SET_ORG_CONTEXT(ORG_ID); end;

EX: Begin FND_CLIENT_INFO.SET_ORG_CONTEXT(204); end;

Page 56: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

52525252

FND_REQUEST.SUBMIT_REQUEST: When ever we want to submit the request to the

apps through the SQL we use this API. The syntax and a simple example were given

below.

Syntax: FND_REQUEST.SUBMIT_REQUEST(

Application, � we have to pass the short name of the application concurrent

Program in which we registered (Ex: Oracle Receivables = AR).

Program, � Pass the short name of the concurrent program

Description, � description of the concurrent program

Start-time, � start time of the concurrent program

Sub-request, � if there any other request, pass true other wise false.

Arg-1,

- - � These arg1 to arg100 are used to pass the parameters to the

concurrent program.

Arg100); � Totally FND_REQUEST.SUBMIT_REQUEST API is having the 105 parameters.

EX: Declare

id number;

begin

FND_GLOBAL_APPS_INITIALIZE(1007899,20420,1);

Id:=FND_REQUEST.SUBMIT_REQUEST(‘AR’,CSPROC,NULL, NULL, FALSE, 20, RESEARCH);

dbms_output.put_line(‘Request ID:’ || id);

commit;

end;

O/P: Request ID: 2725363

FND_FILE.PUT_LINE: This API is used to send messages to output file or log file while

we are working with PL/SQL Stored procedures

� For sending messages to output file we use this syntax

Syntax: FND_FILE.PUT_LINE(FND_FILE.OUTPUT,’OUTPUT MESSAGE’);

� For sending messages to log file we use this syntax

Syntax: FND_FILE.PUT_LINE(FND_FILE.LOG,’LOG MESSAGE’);

Difference between ORG_ID & ORGANIZATION_ID: ORG_ID will come under

operating unit in Multiorg. ORGANIZATION_ID will come under inventory organization.

ORG_ID is used to distinguish the data of different business organizations.

ORGANIZATION_ID is used to identify the items belongs to which inventory organization

it has assigned.

Page 57: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

53535353

MULTI ORGANIZATION (MULTIORG): Multiorg is nothing but under single oracle

application implementation maintaining multiple organizations and multiple set of books.

We will have Multiorg tables (table which is ending with _ALL). When ever we enter the

data, which will be stored in the Multiorg tables only.

Ex: OE_ORDER_HEADERS_ALL

OE_ORDER_LINES_ALL

OE_ORDER_HOLDS_ALL

PO_HEADER_ALL

PO_LINES_ALL

Multiorg Structure:

Business Groups: The business groups represent the highest level in the organization

structure like major divisions etc. business group secures human resources information

for example when we request a list of employees we can see the employees assign to

the business groups.

Set of books: It is a financial reporting entity uses a particular chart of accounts

functional currency and accounting calendar. Oracle GL secures transaction information

like general entries balances by set of books. When we assign to the oracle GL

responsibilities there will be a set of books assignment. We can see the information for

that set of book only. The navigation in that responsibility is

Setup ���� Financials ���� Books ���� Define.

Page 58: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

54545454

Legal Entities: It is a legal company for which we prepare physical or tax reports. We

will assign tax identifiers and other legal information.

Operating Units: It is one of the organizations where exactly company is being sales,

purchasing payments and receiving and so on. It may be sales office or a division or a

department. At operating unit level PO, AP, AR, OM modules will be implemented.

Inventory Organization: It is an organization where we are going to maintain

manufacturing information and items information. It captures inventory transactions,

balances. Oracle inventory, WIP, BOM will be implemented at inventory organization

level.

Sub Inventory: Sub inventory is nothing but stocks or goudons or warehouses, which

will be define under inventory organization.

Locators: Stock Locators is nothing but the specific location inside the sub inventory

where we will place the item.

Note:

• When ever we write a statement like SELECT * FROM OE_ORDER_HEADERS then

it shows “NO ROWS RETURN” as an output.

• When ever we are working with the Multiorg views if we want to get the data

from those views we have to set the ORG_ID of which Operating unit it is belongs

by using the API (FND_CLIENT_INFO.SET_ORG_CONTEXT(ORG_ID)). Then we

get the required information from the view.

• We found the list of ORG_ID’s in the HR_OPERATING_UNITS.

• To find the system is in Multiorg or not the query is

EX: SELECT MULTI_ORG_FLAG FROM FND_PRODUCT_GROUPS;

O/p: Y ���� If it is a Multiorg system otherwise it is N.

Page 59: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

55555555

Flex Fields: A flex field is a flexible data field that your organization can customize to

your business needs without programming. Oracle Applications uses two types of

flexfields, those are given below.

1. Key flexfields(KFF) and

2. Descriptive flexfields(DFF).

Key Flexfields: Key Flexfeilds are used to store the key information of data in

segments. We can call these segments as intelligent keys. For KFF we define flexfeild

qualifiers and segment qualifiers. The data of this key flexfeilds will store in segment cols

in a table.

EX:

1. Accounting Flexfeild (GL)

2. System Item(INV)

3. Item Catalog(INV)

4. Item Category(INV)

5. - -

Descriptive Flexfields: The descriptive flexfeilds are used to add the additional

information to the existing data. These DFF values will store in attributes column in

table. There is no need to define Flexfeild qualifiers and Segment qualifiers in DFF.

• The table FND_FLEX_VALUES will help us to retrieve the flexfields data in our

programs.

Existing DFF Customization:

� Go with the Application developer responsibility and in that go through the

navigation Flexfeilds ���� Descriptive ���� Registers. Query the records as per the

table name and retrieve.

� Copy the Title and go to the Segments form the navigation is

Flexfeilds ���� Descriptive ���� Segments. Query the records as per the title.

� Uncheck the Check box Freeze Flexfeild Definition.

� Now go with the Segments button and attach new column and we can attach

valueset.

� Click the open button and make that as field as required (or) optional by

checking / unchecking Required box.

� Even we can select default value type. We can also change the size and save it.

� Now check the Freeze Field Definition.

� Click compile button. Save it and close.

Note: When ever we click compile button system will submit Flexfield View Generator

concurrent program internally to create descriptive flexfeild view.

Page 60: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

56565656

INTERFACES: It is nothing but a program; it will be used to transfer the data from flat file to data

base table or from data base table to flat file. Two types of interfaces given below.

1. Outbound Interface

2. Inbound Interface

Outbound Interface: it will be used to transfer the data from oracle apps base table to

legacy system flat file. We will develop a concurrent program, which is pl/sql procedure.

Inside of that we will use UTL_FILE package to generate the flat file.

UTL_FILE: it is one of the pl/sql package, which will be used to transfer the data from

oracle data base table to flat files or from flat files to oracle data base tables. But we will

use sql loader to transfer data from flat file to data base tables .

By using following 3 functions we will generate flat file

1. Declare the file pointer to find out file location.

UTL_FILE.FILE_TYPE;

2. To open or create file.

UTL_FILE.FOPEN(‘PATH’,’FILENAME’,’W’);

3. To transfer data into file

UTL_FILE.PUT_LINE(FILE POINTER, COLUMN NAME);

4. To close file

UTL_FILE.FCLOSE(FILE POINTER);

STEPS:

1. Develop the pl/sql program.

2. Define the cursor to get the data from the data base tables.

3. Open the cursor and open the file by using UTL_FILE package.

4. Transfer the data from cursor variable into flat files by using UTL_FILE.

5. Close the file by using UTL_FILE package.

6. Register the program as concurrent program.

7. This program is scheduled at SRS window.

Ex: Create or replace procedure inventoryout (errbuf out varchar2,

Retcode out varchar2) as Cursor cur_inv is select inventory_item_id,organization_id,segment1,

description from mtl_system_items_b; Outpointer utl_file.file_type;

Begin Outpointer:=utl_file.fopen('c:\temp','inventoryflat.txt','w');

-- To get the path:

-- Select value from V$parameter where name like ‘utl_file_dir’;

Page 61: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

57575757

For c in cur_inv loop Utl_file.put_line(outpointer,c.inventory_item_id||'-'||c.organization_id||'-'||

c.segment1 ||'-'||c.description); end loop; utl_file.fclose(Outpointer);

exception

when others then fnd_file.put_line(fnd_file.log,'error while generating flat file'); end inventoryout;

UTL_FILE EXCEPTIONS:

1. UTL_FILE.INVALID_OPERATION

2. UTL_FILE.INVALID_PATH

3. UTL_FILE.INVALID_MODE

4. UTL_FILE.INVALID_FILEHANDLE

5. UTL_FILE.READ_ERROR

6. UTL_FILE.INTERNAL_ERROR

INIT.ORA: This file contains the accessible directories list. Inbound Interface or Conversion: it will be used to upload the data from legacy

system flat file to oracle apps base table. For this we will use SQL LOADER program and

pl/sql program.

Ex: -- To load data from flat file to Tables using SQLLDR

-- Writing the Control File CS_CTL.CTL

LOAD DATA

INFILE ‘C:\CHAITU_CS.CSV’

BADFILE ‘CS_BAD.DAT’ -- Naming the BAD FILE

DISFILE ‘CS_DISC.DAT’ -- Naming the DISCARD FILE

INSERT INTO TABLE CS_0016

FIELDS TERMINATED BY ‘,’

TRAILING NULCOLS

(

COL1,

COL2,

COL3

)

-- SQLLDR SYNTAX

CMD> SQLLDR APPS/APPS@PROD CONTROL = CS_CTL

Page 62: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

58585858

SQL Loader: This is a CUI (Character User Interface) Tool, which is used to load data

from flat files to tables. We have to feed control file to the SQL Loader this control file

contains information about the flat file and into which table needs to be loaded.

Syntax:

LOAD DATA

INFILE <FILENAME>

[INSERT / REPLACE / TRUNCATE / APPEND]

INTO TABLE <TABLENAME>

FIELDS TERMINATED BY ‘ , ’

OPTIONALLY ENCLOSED ‘ “ ‘

TRIALING NULLCOLLS

WHERE ---[CONDITION]

Filler Clause: The filler clause is used to skip one column data in the flat file.

Ex: -- Example using all functions in the control file

-- Create a Table ABC with 4 cols

Create table ABC(Col1 number,

Col2 varchar2(10)

Col3 number,

Col4 varchar2(10),

Col5 varchar2(10),

Col6 date);

-- Table Created

-- Create the Control File with the name mycontrol.ctl

LOAD DATA

INFILE ‘C:\NEW.CSV’

INSERT

INTO TABLE ABC

(COL1, Sequencename.nextval, � getting the sequence number

COL2, “upper(:col2)”

COL3, constant ‘ABC’ � it fills the each row with the constant value

COL4, NULLIF COL4= ‘EX’ � if there is no value then it is filled with the

COL5, FILLER, � to skip the column

COL6, “to-date(:col4, ‘dd-mm-yyyy’)); � to print the date.

After completion of the control file save it as .ctl extension and to execute the control file

go to the command prompt in UNIX or WINDOWS use the following syntax.

Page 63: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

59595959

Syntax:

Prompt> SQLLDR USERNAME/PASSWORD@HOSTNAME

CONTROL = CONTROL FILE NAME

[DIRECT = TRUE / FALSE [DEFAULT]

SKIP = NUMBER

ROWS = NUMBER

ERRORS = NUMBER]

Ex: -- Executing the control file mycontrol.ctl

--Prompt> SQLLDR USERNAME/PASSWORD@HOSTNAME

CONTROL = mycontrol.ctl

In the execution there are more options, which are stated below. And those options

we give after the CONTROL in the SQLLDR are optional according to our requirement we

will use them.

Conventional Path: It is the default path which will create insert statements and it will

insert data into table method is very slow. Here the auto commit will be carried for every

64 records.

Direct Path: This will be used when ever the volume of data is high. It will make the

entire data into set of blocks and it will create one insert statement for each block and

insert data into tables. This method is very fast also parallel loading will be working while

working with direct path. By default it will be false.

Skip: Used to skip the rows from flat file while loading the data into tables.

Rows: In conventional path the commit will happen for every 64 records by default if we

want to make it to 1000 EX: ROWS = 1000

Errors: This indicates that how many no of errors can be tolerated while loading data

into tables. The default value is 50.

As a part of the execution the SQLLDR creates three files according to the output type

those are given below.

1. Bad File: Which will be created whenever there are records, which are rejected

while inserting into the table from the flat file?

2. Discard File: It will be created whenever there are records which are not

satisfying the filtering criteria specified in the where clause of the control file.

3. Log File: This file contains the complete information of data it will be created at

all times when ever we fire SQLLDR.

Page 64: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

60606060

Conversion: Conversion is a preimplementation load which will transfer the data from

the legacy system to the oracle apps system. After the completion of load we will drop

all the objects which we have used for the conversion.

Conversion Process:

1. We will get the flat file to convert, based on the flat file we will generate the

temporary file and by using SQLLDR we transfer data from flat file to temporary

table.

2. Create staging table, which is replica of interface table provided by oracle.

3. Develop a package which have different program units for validation and moving to

interface tables

4. Run the validation procedure to validate the data which has been loaded into

staging table. Use extra cols in a staging table ERRFLAG and MESSAGETEXT that

are used to identify valid and invalid records with respective error messages.

5. We transfer the successful records into interface table and change the ERRFLAG

status from V(Validated) to M(Moved)

• ERRFLAG � E � ERROR

• ERRFLAG � V � VALIDATED

• ERRFLAG � M � MOVED

6. As we are working with open interface we will run the import program provided by

oracle used to pull the data from interface table and load into base table.

7. If any records got failed while importing these will exist under oracle defined errors

tables.

Conversion Process (Brief):

1. Based on the flat file provided write the control file to transfer the data into staging

tables.

2. Validate the data that has been loaded into staging tables.

3. Insert the validated records into interface tables.

4. This is an open interface we run the import program to import the data into base

tables.

Interface: Interface is a post implementation load which will be helpful to import the

data after golive.

EX: ARLOCKBOX interface

The object that we have developed for this interface will be registered in the oracle

applications.

Page 65: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

61616161

Types of Interfaces: There are two types of interfaces.

1. Open Interface.

2. Custom Interface.

Open Interface: Open interface is nothing but it provides interface tables and import

programs to import data into base tables.

Customer Interface: Whenever oracle has not provided any import programs or API to

import data into base tables we call it as a custom interface.

Interface Process:

1. Based on the flat file w e will develop the control file and insert the data into

staging table.

Note: Place the control file in the bin directory of your custom application directory.

2. Register that in oracle 11i applications by taking execution method as

SQL * LOADER we develop the packages which will be having procedures like

validate the staging table, moving the validated data to the interface tables, run

import program after that register that package in oracle 11i applications

Note: While transferring the data into base tables we pass three extra cols those are given

below.

� Process_flag (Number)

� Transaction_type (Varchar2)

� Set_process_id

Process_flag: To check the status of the row which we fetched into the table. We pass

different values that indicate the status of the row those are given below.

� 1 � To be process

� 2 � Import Success

� 3 � Error

� 4 � Validation Under Process

� 7 � Validation Successful.

Transaction_type: This is used to identify which transaction was done those are CREATE,

UDATE.

Set_process_id: It is used to split the no. of records to use memory correctly without

getting any SGA MEMORY error.

Note: We can’t load more than one organization records at a time. First we have to load the

master organization and then child organization.

Page 66: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

62626262

Item Conversion: 1. We transfer the data from flat file to the staging table.

2. Validate the data, which has been loaded into the staging table.

� Check the ITEM_NUMBER is existing or not.

� Check whether the ORG_CODE is existing or not.

� Description should not be NULL

� Template name should be validated from MTL_ITEM_TEMPLATES table.

� Validate the PLANNERS_CODE from MTL_PLANNERS table.

� Validate the HAZARDS_CLASS from PO_HAZARD_CLASSES table.

3. After doing the above validation if the record got successfully validated we will set

the record status to ‘V’ else ‘E’ with appropriate error message.

4. Transfer the validated data from staging to interface table.

(MTL_SYSTEMS_INTERFACE).

5. As we are working with open interface we will run the standard concurrent program

to import the data from interface table to base table. Before running this import

program we have to set the organization to which we are loading the items. The

program will ask for six parameters. The navigation is Import ���� Import Items in

the Inventory responsibility.

All Organizations: If we go with YES it will load the same item into all organizations else

it will load into a specific organization.

Page 67: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

63636363

Validate Items: If this is YES then import program revalidate the data existing in the

interface table.

Process Items: If this is YES after validation it will load the validated records into

MTL_SYSTEM_ITEMS_B table.

Delete Processed Rows: If this is yes the successfully imported records will be deleted

from the interface table.

Process Set(NULL for ALL): This is the only parameter which is not mandatory. What

ever value will be provided compared with the SET_PROCESS_ID column in the

MTL_SYSTEMS_ITEM_INTERFACE table. The main purpose of this table is to make or

spread the data into batch which makes import easy. If we provide NULL for the

irrespective of SET_PROCESS_ID then it will pull all the records for the process.

Create or Update Items: If it is 1 it will check the records in the interface table whose

transaction type is CREATE and pull those records for import. If we provide 2 it means

we are trying to UPDATE the existing items. So it will pull the records whose transaction

type is UPDATE.

� After the submission of the request and when it got completed to identify the load

status of records check with the PROCESS_FLAG column in the

MTL_SYSTEM_ITEMS_INTERFACE. We discuss the different status of the process

flag in the above discussion.

General Errors:

� The general error that occur when we are dealing with the Item Conversions that

is Master-Child Conflict this error will occur when ever we are trying to load

child org with out loading to the master.

� Items cannot have pick the components = “YES” when ever the MRP planning

method is not defined.

Note:

� To find the records which got erroredout and their proper messages oracle provided

MTL_INTERFACE_ERRORS table. The join between this interface table and error table is

TRANSACTION_ID.

� To set the master items to the child organizations also then we have to go with the

Master Items then retrieve the item and go with the Organization Assignment button on

the top left side.

Page 68: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

64646464

Conversion Script for Item Load:

/*------------------------------------------------------------------------------------------------- CS SOFTWARE SOLUTIONS, INDIA

File Name : CS_item_load_structures.sql

Author : Krishna Chaitanya.Vemparala and Naaga Sirisha

Created Date : 03-june-06 Version : 1

Purpose : The Purpose of this script is to create the temporary table(s)

Version Modified By Modified Date Purpose

--------------------------------------------------------------------------------------------------- 1.1

-------------------------------------------------------------------------------------------------*/ -- Temporary Table

DROP TABLE CS_ITEM_LOAD_TEMP; CREATE TABLE CS_ITEM_LOAD_TEMP

(

ITEM_NUMBER VARCHAR2(30)

,DESCRIPTION VARCHAR2(240)

,TEMPLATE_NAME VARCHAR2(30)

,ORG_CODE VARCHAR2(10)

);

-- Staging Table

CREATE TABLE CS_ITEM_LOAD_STG

AS

SELECT *

FROM MTL_SYSTEM_ITEMS_INTERFACE

WHERE 1=0;

ALTER TABLE CS_ITEM_LOAD_STG

ADD

(VALID_STATUS VARCHAR2(3)

,ERR_MSG VARCHAR2(4000)

);

Page 69: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

65656565

/*-------------------------------------------------------------------------------------------------

CS SOFTWARE SOLUTIONS, INDIA

File Name : CS_item_load.ctl

Author : Krishna Chaitanya.Vemparala and

Naaga Sirisha Created Date : 03-june-06

Version : 1 Purpose : The Purpose of this control file is to import

Data from flat file to table.

Version Modified By Modified Date Purpose ---------------------------------------------------------------------------------------------------

1.1 -------------------------------------------------------------------------------------------------*/ LOAD DATA

INFILE 'C:\ITEM_DATA.CSV'

INSERT INTO TABLE CS_ITEM_LOAD_TEMP

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED '"'

TRAILING NULLCOLS

(ITEM_NUMBER,

DESCRIPTION,

TEMPLATE_NAME,

ORGANIZATION_CODE

)

Note: This is the Control file using the SQLLDR we execute the control file to move the data from

flat file to staging table.

Page 70: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

66666666

/* ------------------------------------------------------------------------------------------------ CS SOFTWARE SOLUTIONS, INDIA

File Name : CS_item_load_pkg.sql Author : Krishna Chaitanya.Vemparala and

Naaga Sirisha

Created Date : 03-june-06 Version : 1

Purpose : the puruose of this package is to import items data. Move_to_staging

this procedure is used to insert records

from temp table into staging table

Validate_staging

This procedure is used to validate the date which has

been moved to staging table. The valid records

having the valid_status to 'V' other wise 'E'.

Move_to_iface

The record which through with the validations

(valid_status ='V') will be transferred to interface

table(MTL_SYSTEM_ITEMS_INTERFACE).

Version Modified By Modified Date Purpose ---------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------*/

--Package Specification

CREATE OR REPLACE PACKAGE CS_item_load_pkg AS

PROCEDURE move_to_staging;

PROCDURE validate_staging; PROCEDURE move_to_iface;

END CS_item_load_pkg;

Page 71: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

67676767

--Package Body

CREATE OR REPLACE PACKAGE BODY CS_item_load_pkg AS -- Procedure to move_to_staging

PROCEDURE move_to_staging IS i number; BEGIN

-- Inserting data into staging table

INSERT INTO CS_item_load_stg ( segment1 -- item_number

,description -- description

,template_name -- template_name ,organization_code -- org_code ,set_process_id

) SELECT item_number ,description

,template_name ,org_code ,1

FROM

CS_item_load_temp; DBMS_OUTPUT.PUT_LINE(' Total Reocrd(s) inserted '|| SQL%ROWCOUNT );

EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(' ERROR => ' || SQLERRM);

END move_to_staging; --Procedure to validate the data

PROCEDURE validate_staging AS l_err_flag number:=0;

l_err_msg varchar2(1000); l_count number; CURSOR c is select a.rowid row_id , a.SEGMENT1, A.DESCRIPTION, a.template_name ,

a.organization_code from CS_item_load_stg a where nvl(VALID_STATUS,'T') in ('T','E');

BEGIN FOR c_rec in c LOOP BEGIN

--- Initialize the variables l_err_flag := 0; l_err_msg := NULL;

Page 72: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

68686868

--Validate the item number l_count := 0;

select count(*) into l_count from MTL_SYSTEM_ITEMS_B where segment1 = c_rec.segment1;

IF l_count > 0 THEN l_err_flag := 1; l_err_msg := '**Invalid Item number ';

END IF; -- Validate the Description

if c_rec.description is null then l_err_flag := 1;

l_err_msg := l_err_msg || '**Invalid Description ';

END IF; --Validate the Template Name

l_count := 0; select count(1) into l_count

from mtl_item_templates where template_name = c_rec.template_name;

IF l_count = 0 then

l_err_flag := 1; l_err_msg := l_err_msg || '**Invalid Template name ';

END IF;

--Validate the Organization Code

l_count := 0; select count(1) into l_count from org_organization_definitions where organization_code = c_rec.organization_code;

if l_count = 0 then l_err_flag := 1; l_err_msg := l_err_msg || '**Invalid Organization code ';

end if; -- check the valid status to update the row status if l_err_flag = 1 then

update CS_item_load_stg set valid_status ='E'

,err_msg = l_err_msg where rowid = c_rec.row_id; else

update CS_item_load_stg set valid_status ='V' where

Page 73: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

69696969

rowid = c_rec.row_id; end if;

EXCEPTION WHEN OTHERS THEN NULL;

END; END LOOP; dbms_output.put_line(' Validatin completed successfully ');

END validate_staging; --PROCEDURE

PROCEDURE move_to_iface AS

i number;

BEGIN insert into mtl_system_items_interface (

segment1 ,description ,template_name ,organization_code

,process_flag -- hard coding to 1 ,transaction_type -- hard code to CREATE ,set_process_id

)

SELECT segment1 ,description

,template_name ,organization_code ,1 ,'CREATE'

,1 from CS_item_load_stg where valid_status ='V';

dbms_output.put_line(' Total Record(s) inserted ' || sql%rowcount); exception when others then

dbms_output.put_line( ' Error => '|| sqlerrm); END move_to_iface; END CS_item_load_pkg;

Page 74: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

70707070

Item Categories:

1. Convert the data from flat file to staging table.

2. Validate the data which has been loaded into staging.

� Validate the ITEM_NUMBER whether it exists or not from

MTL_SYSTEM_ITEMS_B table.

� Validate the organization from ORG_ORGANIZATION_DEFINITIONS

� Validate the CATEGORY_SET from MTL_CATEGORY_SETS_B and

MTL_CATEGORY_SET_TL.

� Validate the CATEGORY_CODE from MTL_ITEM_CATEGORIES_INTERFACE

table.

3. As we are working with open interface we have to run this import

ITEM_CATEGORY_ASSIGNMENTS program to import assignment data from

interface table (MTL_ITEM_CATEGORIES).

Transaction Types:

Create: Create used to create new item category assignment.

Delete: Delete used to delete the default category assignments.

Update: This is a new transaction type come up with the 11.5.10 version of oracle

applications. Instead of delete or create the new assignments we can update default

category value or category code.

Note: The validation process for the item categories script was given below as the step by step

process.

Customer Items: Customer items are the items how the customer will identify our

items.

Items Relationship: Item relationship which is used to maintain some relationships

with item, with relationship types, with related substitute and service.

Page 75: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

71717171

Conversion Script for Item Categories:

/*------------------------------------------------------------------------------------------------- CS SOFTWARE SOLUTIONS, INDIA

File Name : CS_create_structures.sql

Author : Krishna Chaitanya.Vemparala and

Naaga Sirisha

Created Date : 03-june-06

Version : 1

Purpose :

Used to create the table structures.

Version Modified by Modified Date Purpose

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

-------------------------------------------------------------------------------------------------*/ DROP TABLE CS_ITEM_CAT_LOAD_TEMP;

CREATE TABLE CS_ITEM_CAT_LOAD_TEMP

(

ITEM_NUMBER VARCHAR2(30)

,ORG_CODE VARCHAR2(10)

,CAT_SET_NAME VARCHAR2(30)

,CAT_CODE VARCHAR2(20)

);

DROP TABLE CS_ITEM_CAT_LOAD_STG;

CREATE TABLE CS_ITEM_CAT_LOAD_STG

AS

SELECT * FROM MTL_ITEM_CATEGORIES_INTERFACE

WHERE 1=0 ;

ALTER TABLE CS_ITEM_CAT_LOAD_STG

ADD

( VALID_STATUS VARCHAR2(10)

, ERR_MSG VARCHAR2(2000)

);

Page 76: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

72727272

/*-------------------------------------------------------------------------------------------------

CS SOFTWARE SOLUTIONS, INDIA

File Name : CS_sqlldr.ctl

Author : Krishna Chaitanya.Vemparala and Naaga Sirisha

Created Date : 03-june-06

Version : 1

Purpose :

Used to create the table structures.

Version Modified by Modified Date Purpose ---------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------*/ LOAD DATA

INFILE ‘C:\ITEM_CAT_DATA.CSV'

INSERT

INTO TABLE CS_ITEM_CAT_LOAD_TEMP

FIELDS TERMINATED BY ','

(

ITEM_NUMBER

,ORG_CODE

,CAT_SET_NAME

,CAT_CODE

)

Note: This is the Control file using the SQLLDR we execute the control file to move the data from

flat file to staging table.

Page 77: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

73737373

/*-------------------------------------------------------------------------------------------------

CS SOFTWARE SOLUTIONS, INDIA File Name : CS_ITEM_CAT_LOAD_PKG.pks

Author : Krishna Chaitanya.Vemparala and Naaga Sirisha

Created Date : 03-june-06

Version : 1

Purpose :

Package Specification

-------------------------------------------------------------------------------------------------*/

CREATE OR REPLACE PACKAGE CS_ITEM_CAT_LOAD_PKG AS

-- Procedure to transfer the data from Temp table to Staging table

PROCEDURE move_to_staging;

-- Procedure to validate the data PROCEDURE validate_data; -- Procedure to Transfer the validated data from staging to interface table

PROCEDURE move_to_iface; END CS_ITEM_CAT_LOAD_PKG;

--Package Body CREATE OR REPLACE PACKAGE BODY CS_ITEM_CAT_LOAD_PKG

AS

-- Procedure to transfer the data from Temp table to Staging table PROCEDURE move_to_staging IS

BEGIN insert into CS_item_cat_load_stg (ITEM_NUMBER -- ITEM NUMBER

,ORGANIZATION_CODE -- ORG_CODE ,CATEGORY_SET_NAME -- CAT_SET_NAME ,CATEGORY_NAME -- CAT_CODE ,SET_PROCESS_ID -- HARDCODE TO 1

)

SELECT ITEM_NUMBER

,ORG_CODE ,CAT_SET_NAME ,CAT_CODE ,1

FROM CS_ITEM_CAT_LOAD_TEMP; DBMS_OUTPUT.PUT_LINE(' Total Number of Record(s) Inserted ' ||sql%rowcount); EXCEPTION

WHEN OTHERS THEN

Page 78: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

74747474

DBMS_OUTPUT.PUT_LINE(' ERROR => '|| SQLERRM); END move_to_staging; --Procedure to Validate the Data

PROCEDURE validate_data IS l_err_flag number ; l_err_msg varchar2(2000);

l_count number; Cursor c is select a.rowid row_id ,a.item_number ,a.category_set_name ,a.category_name

,a.organization_code from CS_item_cat_load_stg a where

nvl(valid_status,'T') in ('T','E');

BEGIN FOR c_rec in C

loop l_err_flag := 0; l_err_msg := NULL; l_count := 0;

-- Validate the Item Number

select count(1) into l_count from mtl_system_items_b msi,

ORG_ORGANIZATION_DEFINITIONS ood where

msi.organization_id = ood.organization_id and ood.organization_code = c_rec.organization_code and msi.segment1 = c_rec.item_number;

if l_count = 0 then l_err_flag := 1; l_err_msg := ' ** Item not existed ';

end if; -- Validate the category set name

l_count := 0;

select count(1) into l_count

from mtl_category_sets where category_set_name = c_rec.category_set_name; if l_count = 0 then

l_err_flag := 1; l_err_msg := l_err_msg || ' ** Category Set name is not valid '; end if;

--Validate the Category Code

l_count := 0; select count(1) into l_count from mtl_categories mc, mtl_category_sets mcs

where mcs.category_set_name = c_rec.category_set_name

Page 79: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

75757575

and mc.segment1 = c_rec.category_name; if l_count = 0 then l_err_flag := 1; l_err_msg := l_err_msg || ' ** Category name is not valid '; end if;

if l_err_flag = 1 then

update CS_item_cat_load_stg set err_msg = l_err_msg,

valid_status = 'E' where rowid = c_rec.row_id; else update CS_item_cat_load_stg

set valid_status ='V' where rowid = c_rec.row_id; end if; end loop;

DBMS_OUTPUT.PUT_LINE(' Total Number of Record(s) Validated '

||sql%rowcount);

EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(' Error => '|| sqlerrm); END validate_data;

-- Procedure to Transfer the validated data from staging to interface table PROCEDURE move_to_iface

is begin

insert into mtl_item_categories_interface (

item_number ,organization_code ,category_set_name ,category_name

,set_process_id ,process_flag ,transaction_type

) select

item_number ,organization_code

,category_set_name ,category_name ,1

,1 ,'CREATE' from CS_item_cat_load_stg

where valid_status ='V';

DBMS_OUTPUT.PUT_LINE(' Total Record(s) inserted '|| Sql%rowcount); exception

when others then dbms_output.put_line(' error => ' || sqlerrm); end move_to_iface; END CS_ITEM_CAT_LOAD_PKG;

Page 80: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

76767676

Item Attachments:

Flat file contains the data like item_number, organization_id, document_category,

datatype, sequence, attachment.

Validations:

� Validate the Item is exists with respective organization or not.

� Validate the document category from FND_DOCUMENT_CATEGORIES_TL.

� Validate the datatype from FND_DOCUMENT_DATATYPES.

� Validate the Sequence which should not be NULL

As there are no interface tables we will load the validated data to the base tables

directly. For that we have to write the procedure.

Page 81: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

77777777

/*-------------------------------------------------------------------------------------------------

CS SOFTWARE SOLUTIONS, INDIA File Name : BIAS_ITEM_ATTCH.pks

Author : Krishna Chaitanya.Vemparala and

Naaga Sirisha

Created Date : 03-june-06

Version : 1

Purpose :

Package Specification and Package Body.

-------------------------------------------------------------------------------------------------*/

-- PACKAGE SPECIFICATIONS: BIAS_ITEM_ATTCH

CREATE OR REPLACE PACKAGE BIAS_ITEM_ATTCH AS

PROCEDURE MOVE_TO_STAGING;

PROCEDURE VALIDATE_STAGING;

PROCEDURE LOAD_TO_BASE;

END BIAS_ITEM_ATTCH; -- PACKAGE BODY: BIAS_ITEM_ATTCH

CREATE OR REPLACE PACKAGE BODY BIAS_ITEM_ATTCH AS

--PROCEDURE MOVE_TO_STAGING

PROCEDURE MOVE_TO_STAGING AS

BEGIN INSERT INTO BIAS_ITEM_ATTCH_STG (

ITEM_NUMBER, ORGANIZATION, DOCUMENT_CATEGORY, DATA_TYPE,

ATTACHMENT ) SELECT ITEM_NUMBER,

ORGANIZATION, DOCUMENT_CATEGORY, DATA_TYPE,

ATTACHMENT FROM BIAS_ITEM_ATTCH_TEMP A WHERE

NOT EXISTS( SELECT 1 FROM BIAS_ITEM_ATTCH_STG B

Page 82: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

78787878

WHERE A.ITEM_NUMBER = B.ITEM_NUMBER AND A.ORGANIZATION = B.ORGANIZATION);

DBMS_OUTPUT.PUT_LINE('ROW(S) INSERTED'|| SQL%ROWCOUNT); COMMIT; EXCEPTION

WHEN OTHERS THEN

DBMS_OUTPUT.PUT_LINE('ERROR: '|| SQLERRM); END MOVE_TO_STAGING;

-- PROCEDURE TO VALIDATE_STAGING

PROCEDURE VALIDATE_STAGING AS

L_VALID_ROW NUMBER; L_ERR_MSG VARCHAR2(1000); L_COUNT NUMBER;

L_ITEM_ID NUMBER;

L_ORG_ID NUMBER; L_CATEGORY_ID NUMBER; L_DATATYPE_ID NUMBER;

CURSOR C1 IS SELECT A.ROWID ROW_ID, A.* FROM BIAS_ITEM_ATTCH_STG A WHERE NVL(A.STATUS,'T')='T'; BEGIN FOR C IN C1

LOOP L_VALID_ROW:=0; L_ERR_MSG:=NULL;

-- VALIDATE ITEM TO ORGANIZATION

BEGIN

SELECT A.INVENTORY_ITEM_ID, B.ORGANIZATION_ID INTO L_ITEM_ID, L_ORG_ID FROM MTL_SYSTEM_ITEMS_B A, ORG_ORGANIZATION_DEFINITIONS B

WHERE A.ORGANIZATION_ID =B.ORGANIZATION_ID AND B.SEGMENT1 = C.ITEM_NUMBER AND

B.ORGANIZATION_CODE = C.ORGANIZATION; EXCEPTION WHEN OTHERS THEN L_VALID_ROW:=1;

L_ERR_MSG:='INVALID ITEM NUMBER TO ORGANIZATION'; END;

---VALIDATE DOCUMENT_CATEGORY

BEGIN SELECT CATEGORY_ID INTO L_CATEGORY_ID

FROM FND_DOCUMENT_CATEGORIES_TL WHERE USER_NAME = C.DOCUMENT_CATEGORY; EXCEPTION WHEN OTHERS THEN

L_VALID_ROW:=1; L_ERR_MSG:=L_ERR_MSG || ' INVALID DOCUMENT_CATEGORY'; END;

Page 83: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

79797979

--VALIDATE DATATYPE

BEGIN

SELECT DATATYPE_ID INTO L_DATATYPE_ID

FROM FND_DOCUMENT_DATATYPES WHERE USER_NAME=C.DATA_TYPE; EXCEPTION WHEN OTHERS THEN

L_VALID_ROW:=1; L_ERR_MSG:=L_ERR_MSG || ' INVALID DATA_TYPE'; END;

IF L_VALID_ROW=1 THEN UPDATE BIAS_ITEM_ATTCH_STG SET STATUS='E',

ERR_MSG=L_ERR_MSG

WHERE ROWID=C.ROW_ID; ELSE UPDATE BIAS_ITEM_ATTCH_STG

SET STATUS='V', CATEGORY_ID=L_CATEGORY_ID, DATA_TYPE_ID=L_DATATYPE_ID, ITEM_ID=L_ITEM_ID,

ORGANIZATION_ID=L_ORG_ID, WHERE ROWID=C.ROW_ID; END IF;

END LOOP;

EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('ERROR: ' || SQLERRM);

END VALIDATE_STAGING;

---PROCEDURE LOAD_TO_BASE

PROCEDURE LOAD_TO_BASE(P_ITEM_NUMBER IN VARCAHR2 DEFAULT NULL) AS CURSOR C1 IS SELECT A.ROWID ROW_ID, A.* FROM BIAS_ITEM_ATTCH_STG A

WHERE STATUS='V' AND A.ITEM_NUMBER=NVL(P_ITEM_NUMBER,A.ITEM_NUMBER); L_DOC_ID NUMBER; L_ATT_DOC_ID NUMBER;

L_MEDIA_ID NUMBER; L_ERR_MSG VARCHAR2(255); BEGIN FOR C IN C1

LOOP BEGIN SELECT FND_DOCUMENTS_S.NEXTVAL INTO L_DOC_ID FROM DUAL;

INSERT INTO FND_DOCUMENTS ( DOCUMENT_ID, DATATYPE_ID,

CATEGORY_ID, CREATION_DATE, CREATED_BY,

Page 84: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

80808080

LAST_UPDATED_DATE, LAST_UPDATED_BY, SECURITY_TYPE,

PUBLISH_FLAG, USAGE_TYPE )

VALUES

( L_DOC_ID, L_DATATYPE_ID, L_CATEGORY_ID,

SYSDATE, 1007919, SYSDATE,

1007919, 1, 'Y',

'O'

); SELECT FND_DOCUMENTS_SHORT_TEXT_S.NEXTVAL INTO L_MEDIA_ID FROM DUAL; INSERT INTO FND_DOCUMENTS_TL

( DOCUMENT_ID, CREATION_DATE, LAST_UPDATE_DATE,

LAST_UPDATED_BY, LAST_UPDATE_LOGIN, LANGUAGE,

SOURCE_LANG,

MEDIA_ID ) VALUES

( L_DOC_ID, SYSDATE, -1,

SYSDATE, -1, -1,

'US', 'US', L_MEDIA_ID );

SELECT FND_ATTACHED_DOCUMENTS_S.NEXTVAL INTO L_ATT_DOC_ID FROM DUAL; INSERT INTO FND_ATTACHED_DOCUMENTS ( ATTACHED_DOCUMENT_ID,

DOCUMENT_ID, CREATION_DATE, CREATED_BY,

LAST_UPDATE_DATE, LAST_UPDATED_BY, LAST_UPDATE_LOGIN, SEQ_NUM,

ENTITY_NAME, AUTOMATICALLY_ADDED_FLAG, PK1_VALUE,

Page 85: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

81818181

PK2_VALUE ) VALUES

( L_ATT_DOC_ID, L_DOC_ID,

SYSDATE,

-1, SYSDATE, -1, -1,

2, 'MTL_SYSTEM_ITEMS', 'N',

C.ORGANIZATION_ID, C.ITEM_ID );

INSERT INTO FND_DOCUMENTS_SHORT_TEXT

( MEDIA_ID, SHORT_TEXT

) VALUES ( L_MEDIA_ID,

C.ATTACHEMENT ); COMMIT;

UPDATE BIAS_ITEM_ATTCH_STG

SET STATUS='P' WHERE ROWID=C.ROW_ID;

EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('ERROR: ' || SQLERRM); ROLLBACK;

L_ERR_MSG:='ERROR: '||SQLERRM; UPDATE BIAS_ITEM_ATTCH_STG SET STATUS='E',

ERR_MSG=L_ERR_MSG WHERE ROWID=C.ROW_ID; END;

END LOOP; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('ERROR: ' || SQLERRM);

END LOAD_TO_BASE; END BIAS_ITEM_ATTCH;

Page 86: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

82828282

How to connect to Telnet: First we go for the navigation Windows ���� Run

In that run dialog box we type the address followed by the telnet. The Address will

provide by the DBA. Then it prompts for the username and password

Telnet Commands:

Go for the particular top by using the command

[/oracle@vis~]$ cd $FND_TOP – to go for the FND_TOP

[/oracle@vis~]$ cd $AU_TOP – to go for the AU_TOP

To copy filename from one location to other location

[/oracle@vis US]$ cp FNDSCRSP.fmx FNDCS.fmx – to Copy file with the other name.

To List out the files available in the particular directory

[/oracle@vis US]$ ls � LS for list of the files.

To get the path of the directory where you are.

[/oracle@vis US]$ pwd

Page 87: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

83838383

How to connect to FTP: FTP is used to transfer the file from the local desktop to the

Server.

In that run dialog box we type the address followed by the ftp. The Address will provide

by the DBA. Then it prompts for the username and password

After providing the username and password we will initially in the “/oracle” home

directory. When we want to download any file from FND_TOP then we go for the

particular path using the following command.

ftp> cd visappl/fnd/11.5.0/forms/US

To download any file from the server first we have to go for the directory where the file

is located after that we have to set the local directory to where you want to load in your

desktop.

Page 88: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

84848484

FTP Commands:

1. To download or upload in the binary mode then we use the command by default it is

in ASCII mode.

ftp> bin � to set the download or upload process to Binary mode 2. We need to set the local directory of our system to which we have to download the

file from server. The command for that is given below.

ftp> lcd c:\phani � now all the files are downloaded to the phani directory in your desktop and also uploaded from the same directory.

3. To download the file from server to desktop the command is mget. Then again it

prompts the same if you give y then the file will be downloaded to the local directory,

which you set.

ftp> mget SRIFRM.fmb

mget SRIFRM.fmb? y 4. To upload the file from local system to the server then we go for mput

ftp> mput SRIFRM.fmb mput SRIFRM.fmb? y

Page 89: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

85858585

Registering Form in Apps:

1. First we develop or customize a form as per the requirements of the client

2. Using the FTP we will upload to the server in the appropriate top.

3. Then we will compile in the server. Then we will go for the telnet and to the

appropriate top.

oracle@vis~CUS_TOP]$ f60gen userid=apps/apps module=AAA.fmb

module_type=form

���� This command will compile the form(fmb) file which there is in server. Here AAA is

the form name. After the compilation if there any error it will display the messages

other wise no compilation errors.

oracle@vis~CUS_TOP]$ output_file=AAA.fmx

���� It will creates the fmx file for the form after its compilation is successful.

4. Then we go for the application developer responsibility.

5. In that we go for the navigation Application ���� Form. Then the following window we

will get.

Window Help:

Form: We has to enter the form name, which we have developed or customized.

Application: We have to enter the application top where we loaded the form.

User Form Name: It is the mandatory field we can enter any name.

Description: It is the description on your form.

6. In that we go for the navigation Application ���� Function. Then the following

window we will get.

Page 90: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

86868686

Window Help:

Description Tab:

Function: It is a mandatory field, enter the function name.

User Function: Enter the user function name.

Form Tab:

Function: Function name, enter the function name it is a mandatory field.

Form: Select the form from the list, which we created earlier.

Page 91: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

87878787

7. If we have the menu we query the menu and other wise we create the menu. For

that we go for the navigation Application ���� Menu.

-- Query the Appropriate menu to which responsibility you want to attach this form

here in this example we are taking menu name “India Localization Inventory Menu”

which is for the inventory responsibility.

Fields:

Seq: Enter the Seq that has to be entered manually.

Prompt: This prompt is the manual field.

Function: Here you have to select the form function which we have created earlier.

Description: The description is the thing which will available in the Menu. The name

which we have entered will be displayed in the Inventory responsibility or for the

appropriate responsibility.

� After that click on save button and switch the responsibility to that appropriate

inventory or what ever you have changed the menu structure. Then there it will be

available that Form with the description which you have entered in the menu.

Page 92: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

88888888

Form Personalization:

Most of the customers wish to modify the way the forms look and behave. They want to

change the labels on the form fields, hide fields, hide buttons, amend custom logic etc.

The motives could be

• The fields are unneeded

• To match the customer specific business requirements

• Or to match the lingo used by the customer

The Solution

Oracle Applications release 11.5.10 has provided a user interface “Personalization form” which will be used to define the personalization rules. These personalization rules establish the custom actions to be performed by the forms during runtime. The actions may include changing prompts, showing custom messages or prevent the user from

doing the transactions etc. This feature also provides a well-built controlling mechanism which restricts the execution of the personalization rules at different levels (Industry, site responsibility and user). The personalization doesn’t violate the support from Oracle

and these rules also conceded with the future upgrades without any additional effort.

���� The personalization form should be used to implement the custom rules on a specific form.

The personalization form is invoked by…

Menu Navigation: Help ���� Diagnostics ���� Custom Code ���� Personalize

By default, this menu option is enabled when any of the standard forms are opened, but at other times this menu option is disabled.

Note: The personalization form cannot be opened when the user is on the responsibility navigator. This means the specific form should be opened first, then invoke the

“Personalization form” using the above navigation.

By default the “Personalize” menu is visible to all the users; this can be controlled with help of profile options. By setting up the below profile options, the access to the

Page 93: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

89898989

Personalize menu can be limited for the authorized users. This will prevent unauthorized users from changing the look and behavior of the forms.

The profile options are…

• Utilities: Diagnostics = Yes/No • Hide Diagnostics = Yes/No

When invoked the personalization form automatically queries the function, form and pre-defined personalization rules, if any exists for the specific form.

The below picture shows the form name as OEXOEORD i.e. Sales Order form on which the personalization form is opened

The form mainly contains four sections. They are…

• Rules

• Conditions • Context • Actions

The purpose of each section is explained below… Rules: Rules administer the personalization needs to be implemented on the form. Each rule contains a sequence number and the description. The rule can be activated or de-

activated using the “Enabled” checkbox. The rule can be deleted when no longer needed.

Trigger Event specifies the occurrence where the rule should be executed.

Trigger Object is the object on the form to determine at what level the rule should be

executed. The values can be “<Form Name>”, ‘<Block Name>” or “<Item Name>”

Condition is any SQL statement to control the execution of rule when the mentioned

criterion is met.

Page 94: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

90909090

Example: Trigger Event = WHEN-NEW-ITEM-INSTANCE Trigger Object = ORDER_NUMBER Condition = trim(to_char(sysdate,”DAY”)) = ‘SUNDAY’

Click on Validate button, it should show the evaluation as True and then save the Changes which you have done.

Note: This Example will show that not to enter sales order on Sundays.

Actions: Actions decide the exact operation to be performed when the conditions and context return true during the runtime. Usually each rule should be associated with at

least one action. The types of actions available are…

• Property • Message • Builtin • Special

Each action contains a sequence number, description and language. Actions can be enabled, disabled or deleted. Based on the action type selected, the fields on the right sector of the actions tab will be refreshed where the action parameters are entered.

Action Type: Property: The action type “Property” is used to set the properties of the objects. The various objects include “Item, Window, and Block etc”. Actual object name

defined in the form should be entered after selecting the object type. Property Name is the property to be changed Value is the new desired value for the property.

Page 95: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

91919191

The current value of the property will be displayed when clicked on the “Get Value” button.

Example: On Actions tab, enter or select the following values

• Sequence = 10 • Type = Message

• Description = weekend • Language = All • Enabled = Yes

• Message Type = Error • Message Text = Enter Your own Message Text.

Click on the “Validate” button, and then click on “Apply Now” button. Now Close the

forms and Try to open the Sales order form. If today Sysdate is Sunday then it will give the following message.

Page 96: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

92929292

Working on Discoverer: Working on Discoverer is a very easy task than to work on the Report6i tool. Here we have given the entire steps with the necessary screen shots.

-- Here the only thing we do in the discoverer is we will create a view for the query we have written to make the report.

-- For Ex: The requirement is to display all the Order_details in the Order

Management. We will write the query for the requirement to do it in the report6i. Note: Discoverer is having some limitations that we will learn from now. Like how to do calculations and all. Let us proceed with the simple example.

Query for Report6i:

select oh.Order_number

, OOL.ORDERED_ITEM , OOL.ORDERED_QUANTITY ,OOL.UNIT_SELLING_PRICE

from oe_order_headers_all oh, oe_order_lines_all ol

where ol.header_id = oh.header_id order by oh.order_number desc

For Discoverer: create or replace view cs_view as select oh.Order_number ,OOL.ORDERED_ITEM

,OOL.ORDERED_QUANTITY , OOL.UNIT_SELLING_PRICE from oe_order_headers_all oh, oe_order_lines_all ol

where ol.header_id = oh.header_id

order by oh.order_number desc Connecting To Oracle Discoverer Administrator: After Clicking the Oracle Discoverer

Administrator then it will give the screen below.

After getting the Admin screen then provide the username, password and database

name and click on connect. Then it will give one child window having the list of responsibilities choose the appropriate responsibility that according to the task which you

are working.

Page 97: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

93939393

After choosing the appropriate responsibility then click on the OK button. Then you will get another screen that regarding the business area.

As you are creating an new business area then click on the “Create New Business Area”

and then Next button will be enabled. Then click on the Next button. Then you will be getting one more window it is the step2. You have to select the Database link and check or select the current user as shown below. Here the database is APPS that’s why we checked that in the screen-shot.

Page 98: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

94949494

After that click on the next button then the step3 window will be appear as shown below.

And select the view that you have stored in the database and click on the finish button then the business area will be created then close the administrator and open the Discoverer Desktop tool.

Page 99: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

95959595

Discoverer Desktop: After Clicking on the Discoverer Desktop the login screen as shown below will appear provide the password and username and click on the connect button. Then the responsibility screen will be open as shown below.

Select one of the appropriate Responsibility.

Then the Workbook wizard screen will be open. As we are creating the new workbook click on the create new workbook and select the type of the report which you want to design now. Basically there are four types as shown below.

Page 100: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

96969696

After selecting the type of the report then click on the Next button. And then the given

below screen will be open.

Select the proper bussiness area which we have defined in the Discoverer Administrator

as shown above. Then the views what ever we have created in the discoverer administrator will come here. Note that the responsibility has to be common. If we create the business area in the Order Management responsibility then here also it will

appear in the order management only.

Page 101: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

97979797

Select the view which you want to display in the report output. And double click on it.

After the click on finish the output file will be generated as given below.

Page 102: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

98989898

Output Screen: Now save this as work book and every time we can directly go for

output window of this workbook.

Changing the Output Styles: If you want to display only the order number related to

the item then select the Ordered Item Column and drag to the Page items which is lying just above to the header then the output will be changed to the format as shown below.

Doing Calculations: Assume the we require Cost price of the order. Now we are going to do calculation to get the Cost Price. To open the calculations we have follow the

navigation as below. Menu ���� Tools ���� Calculations

Page 103: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

99999999

Then the calculations screen will open as below.

Then, select the column name that what we are using for the calculation and after that click on new. Then edit calculation Screen will open give your own name for the calculation and do the calculation.

Page 104: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

100100100100

After entering your own name then select the cols what ever you require in the calculations and click on the paste button. We can use the buttons that are shown below for the arithmetic operators.

Calculation: Ordered quantity SUM*Unit Selling Price SUM

After the completion of the calculation click on the Ok button.

If you want to go for one more new calculation then click on new again the edit calculation window or else you click on ok.

Then the query will run and it automatically and updates current output.

Page 105: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

101101101101

Registering Discoverer Report to Apps: After saving the workbook go for the

navigation as below. File ���� Manage Workbooks ���� Properties

After selecting the properties we will get one child window that is Workbook properties box. Copy the identifier existing in that field which is selected text in the below diagram.

If it was not there please enter some name related to your work book and click on ok.

Page 106: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

102102102102

Then go for the Oracle Applications System Administrator Responsibility. In the navigation is Application ���� Function.

Create a function with the identifier which we have copied in the discoverer desktop. And

go for the properties tab and select the property as SSWA plsql function from the list of values as shown below.

And in the Web HTML tab fill HTML call field as OracleOasis.RunDiscoverer as shown below.

Page 107: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

103103103103

Attach the function which you have created for the discoverer report to one of the existing menu or create new menu. Here in this we have take the existing menu for the inventory responsibility. The navigation for this is Application ���� Menu.

After that go for the Responsibility screen and attach the menu for the appropriate responsibility. But here it is the standard responsibility there is no need to attach separately. Here it will come to the Inventory Responsibility.

Then go with the switch responsibility and switch to the Inventory responsibility here we

can found the Workbook which we have registered now as shown below.

Page 108: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

104104104104

Click on that the output window will be opened directly or it may ask for the Discoverer

Authentication. After that output will be available.

Page 109: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

105105105105

Some Important Tables in Different Modules: Inventory (INV)

MTL_SYSTEM_ITEMS_B MTL_CATEGORY_SETS_B

MTL_ITEM_CATEGORIES MTL_SECONDARY_LOCATORS

MTL_RELATED_ITEMS MTL_ONHAND_QUANTITIES

CST_ITEM_COST MTL_PARAMETERS

Order Management (OM):

OE_ORDER_HEADERS_ALL OE_ORDER_LINES_ALL

OE_ORDER_HOLDS_ALL OE_TRANSACTION_TYPES_TL

WSH_DELEVERY_DETAILS WSH_NEW_DELEVERIES

WSH_DELEVERY_ASSIGNMENTS

Account Receivables (AR):

RA_CUSTOMER_TRX_ALL RA_CUSTOMER_TRX_LINES_ALL

RA_CUSTOMER_TRX_TYPE_ALL RA_CUSTOMER_TRX_LINE_GL_DIST_ALL

RA_CUSTOMERS RA_TERMS

HZ_PARTIES HZ_PARTY_SITES

HZ_CUST_ACCOUNTS HZ_CUST_ACCOUNT_SITES_ALL

HZ_LOCATIONS HZ_CUST_SITE_USES_ALL

HZ_CONTACT_POINTS HZ_CUST_CONTACT_POINTS

Quality Pricing (QP):

QP_LIST_HEADERS_ALL QP_LIST_LINES

QP_PRICING_ATTRIBUTES QP_QUALIFIERS

QP_PRICING_PHASES

Purchase Order (PO):

PO_REQUISITION_HEADERS_ALL PO_REQUISITION_LINES_ALL

PO_REQ_DISTRIBUTIONS_ALL PO_HEADERS_ALL

PO_LINES_ALL PO_DISTRIBUTIONS_ALL

PO_VENDORS PO_VENDOR_SITES_ALL

PO_VENDOR_CONTACTS PER_ALL_PEOPLE_F

General Ledger(GL):

GL_PERIODS GL_JE_BATCHES

GL_INTERFACE GL_JESOURCES

GL_JE_HEADERS GL_SET_OF_BOOKS

GL_JE_LINES

Note: These are some of the tables we use regularly in the modules and there are many more to

view them all according to the module vise. Apply this query in SQL or TOAD.

SQL> SELECT TABLE_NAME FROM ALL_TABLES WHERE TABLE_NAME LIKE ‘OE%ALL’

� This query retrieves the tables from the OM module start with OE If we want to retrieve from

the other modules apply the same query changing the where condition.

Page 110: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

106106106106

Page 111: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

107107107107

Page 112: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

108108108108

Page 113: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

109109109109

Page 114: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

110110110110

Page 115: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

111111111111

Purchase Order Flow: Whenever employee requires materials he will create the

requisition. After requisition is approval RFQ(Request For Quotation) will be created. This

RFQ will be sent to multiple suppliers. After that we will receiving the quotation from

supplier then company will do the quote analysis, one quotation will be selected as

purchase order will send this PO to the supplier, as per PO terms & conditions supplier

will supply the material while receiving the material we will create the document called

the receipt. After the creation of receipt AP & Inventory Interfaces will be affected, which

are going to update both AP & Inventory Modules. The given below is the representation

of the PO Flow.

Requisition: We have two types of requisitions

� Internal and

� Purchase

Internal Requisition: Internal Requisition will be created whenever we are receiving

the material from another organization in the company.

Purchase Requisition: Purchase Requisition will be created whenever company is

purchasing material from suppliers.

Requisition information will be entered in 3 Levels

1. Headers 2. Lines and 3. Distributions

Creating Requisition: The navigation for the Requisition screen is given below.

1. Go With Purchasing, Vision Operations(USA) Responsibility.

2. Go with Requisitions ���� Requisitions Navigation.

3. Then we will get the screen as given below. Enter the fields item, quantity that

represent how much you required to purchase and what you want to purchase.

4. This is one-to-many Relationships, after completion of the document, select

Approve Button, then requisition will be sent for the approval.

Page 116: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

112112112112

Catalog Screen: By using this Catalog Button we can attach the predefined Requisition

templates from the requisition template list.

Select Catalog Button, select requisition template and Select Find Button and list

of items which are required and click the button select.

Page 117: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

113113113113

Distributions: When ever we click on the Distributions button on the Requisitions window then we will get this distributions window

Approval Screen: When we click on the Approve button on the Requisition Screen we

will get this window. Here we will check the Submit for Approval check box then click on

Ok button.

5. After Completion of the approval we will select form called Requisition Summary.

Page 118: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

114114114114

Then we will get the alert box as our requisition has been submitted. Then click on ok.

Requisition Summary: To Check whether the requisition is approved or not we will go

with the navigation Requisitions ���� Requisitions Summary then we will get the

screen given below enter the requisition number and press find button.

Requisition Headers Summary: Whenever we press the find button we will get the

window given below. Here our current requisitions number 5646 Approval status is

approved.

Note: Once the Requisition is approved then only we will go for RFQ.

Page 119: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

115115115115

If you want to cancel the requisition, then select Tools from menubar the navigation is

Tools ���� Control then select the option called Cancel Requisition and mentions the

reason for canceling.

Creating Requisition Number Manually:

Go With navigation Set up ���� Organizations ���� Purchasing Options and go to

Numbering Tab

Page 120: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

116116116116

The Tables that effect Requisitions are:

1. Header level Information -> PO_REQUISITION_HEADERS_ALL

Select * from PO_REQUISITION_HEADERS_ALL where segment1=’5646’

--requisition_header_id=56635.

Here segment1 is the Requisition Number. And REQUISITION_HEADER_ID.

2. Line Level Information-> PO_REQUISITION_LINES_ALL

Select * from PO_REQUISITION_LINES_ALL where

requisition_header_id=56635;

--requisition_line_id = 60546 60547

3. Distribution Level Information -> PO_REQ_DISTRIBUTIONS_ALL

select * from PO_REQ_DISTRIBUTIONS_ALL

where requisition_line_id in(60546,60547);

RFQ(Request For Quotation): Once the requisition has approved RFQ will be created

and this RFQ will be sent to suppliers if suppliers are agreed with the terms & conditions,

which we have specified in RFQ document, they will send the quotations to the company,

we have 3 types of RFQ’s

� Bid

� Catalog

� Standard

The navigation for the RFQ is RFQ’s and Quotations ���� RFQ’s then we will get the RFQ

Screen as shown below.

Bid: BID RFQ will be created for the large & expensive items where you will not find any

discount means no price breaks.

Catalog: Catalog RFQ will be created for the items, which we are purchasing frequently

where we can get the price breaks and terms & conditions.

Standard: This will be created for the items, which we will purchase only once not very

often. If we are sending Bid RFQ, to the suppliers then we will receive the bid quotation

from the suppliers for the catalog RFQ’s we will be receiving quotations and for standard

RFQ, standard quotation will be sent by the suppliers.

RFQ information will be entered at 3 levels

� Headers

� Lines &

� Shipments

Headers: In Header level we will specify RFQ number, type & ship_to, bill_to location

Lines: In Line Level we will specify the items.

Shipment: At Shipment level we will specify discount details.

Page 121: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

117117117117

RFQ(Request For Quotation):

The table that effect this RFQ are

1. HEADER LEVEL: PO_HEADERS_ALL

Select * from PO_HEADERS_ALL where segment1=’312’

and type_lookup_code=’RFQ’ -- Po_header_id=32560

2. LINE LEVEL : PO_LINES_ALL

Select * from PO_LINES_ALL where po_header_id=32560

--po_line_id=37768 37769

3. SHIPMENT LEVEL (PRICE BREAKS): PO_LINE_LOCATIONS_ALL

Select * from PO_LINE_LOCATIONS_ALL where po_line_id=37768

Currency: When we click on the Currency button in RFQ’s window we will get the

window.

The table for Currency Screen: FND_CURRENCIES

Page 122: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

118118118118

Terms and Conditions: When we click on the Terms button in RFQ’s window we will get

the window.

The table that affects this is AP_TERMS. Price Breaks: When we click on the Price Breaks button in RFQ’s window we will get the

window.

The table affects this PO_LINE_LOCATIONS.

Page 123: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

119119119119

Suppliers: When we click on the Suppliers button in RFQ’s window we will get the RFQ Suppliers window.

THE TABLE AFFECT THIS SCREEN IS PO_VENDORS AND PO_VENDOR_SITES_ALL

Auto Create: Through this auto create option we can directly create either RFQ’s or

Purchase orders from the approved requisition. The navigation for auto create is in the

Purchasing Vision Operations responsibility Auto Create will be there directly. Whenever

we click on the Auto create then we will get the screen given below.

Page 124: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

120120120120

Enter the requisition number, which we created earlier and go with the find button. Then

we will get the screen given below.

PURCHASE ORDER:

After receiving the quotations from supplier then we will create the

purchase order. We will approve that purchase order will send po to the supplier. As per

the po document terms and conditions supplier will supply the material.

We have 4 types of Purchase Order

1. Standard PO

2. Planned PO

3. Blanket Purchase Agreement

4. Contract Purchase Agreement

Purchase Order Type Summary:

Standard PO Planned PO Blanket PA Contract PA

1. Terms & Conditions

Known

Yes Yes Yes Yes

2. Goods or Services Known

Yes Yes Yes No

3. Pricing Known Yes Yes May be No

4. Quantity Known Yes Yes No No

5. Account Distributions

Known

Yes Yes No No

6. Delivery Schedule Known

Yes May be No No

7. Can be Encumbered Yes Yes No No

8. Can encumber releases N/A Yes Yes N/A

Page 125: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

121121121121

Standard PO: For all the Purchase Orders we will use Standard PO as the PO type

where we will specify terms & conditions items, price, quantity, delivery Schedule and so

on.

Planned PO: if delivery schedule is not confirmed then we will create planned PO

Blanket Agreement: Supplier and Buyer will have the agreements where we will find

terms & conditions and items price may or may not. Whenever buyer is required

material he will release the order as per that supplier will supply material.

Contract PA: we will have only terms and conditions buyer can purchase any item from

the supplier.

Purchase order Information will be entered at 4 Levels:

1. Header level

2. Line Level

3. Shipments

4. Distributions

Purchase Order:

1. Go with Purchasing, Vision Operations(USA) Responsibility.

2. Go with Purchase Orders ���� Purchase Orders.

The table that affects this screen is

1. HEADER LEVEL: PO_HEADERS_ALL

Select * from PO_HEADERS_ALL where segment1=4465

and type_lookup_code=’Standard’ -- po_header_id=32588

Page 126: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

122122122122

2. LINE LEVE: PO_LINES_ALL

Select * from PO_LINES_ALL where po_header_id=32588 –- po_line_id=37797

SHIPMENTS: When we click on the Shipments button in Purchase order window we will

get this Shipments window.

Here in the Shipments window we will click on more tab then we are going to select

the match approval whether 2-Way or 3-Way or 4-Way.

3. SHIPMENT LEVEL: PO_LINE_LOCATIONS_ALL

Select * from po_line_locations_all where po_line_id=37797

--line_location_id=72173

RECEIVING CONTROLS: When we click on the Receiving Controls button in Shipment

window we will get this window.

Page 127: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

123123123123

DISTRIBUTIONS: When we click on the Distributions button in Shipment window we

will get this window.

4. DISTRIBUTIONS LELVEL: PO_DISTRIBUTIONS_ALL

Select * from PO_DISTRIBUTIONS_ALL where line_location_id=72174

--po_distribution_id

SHIP TO BILL TO: HR_LOCATIONS

APPROVING THE PO: Then click on the Approve Button on the PO screen then PO

will be submitted for Approval.

Page 128: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

124124124124

After approving the PO, the Status will be changed to Approved.

To view whether the purchase order is approved or not we will go with the navigation

Purchase Orders ���� Purchase Order Summary then we will get the screen given

below.

Enter the PO number and Select Find Button.

Page 129: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

125125125125

After entering the Po number then Click on the find button we will get the Purchase order Headers window.

Go for Lines Button – it will display the line level details i.e items, price, quantity so on.

If you want to cancel PO or if you want to keep the PO on hold. Then go with menubar

the navigation is Tools ���� Control you will get the following screen.

Page 130: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

126126126126

RECEIPTS: It is one of the purchasing document will be created while receiving the

material from supplier. While creating the purchase order we will have the option called

MATCH APPROVAL like

1. 2-way �PO, Invoice

2. 3-way �PO, Receipt, Invoice

3. 4-way �Po, Receipt, Inspection, Invoice

Receipt Types:

1. Standard Receipt (3 –Way).

2. Direct Delivery (2-Way)

3. Inspection Required (4 – Way)

Navigation:

1. Go with Receiving � Receipts.

2. Enter the PO number and go with Find Button.

Page 131: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

127127127127

Enter the purchase order number and click on find button. Then we will get the receipts

window. Here in this window lines will be appear if we want receive that item(line) then

we have to check the check box which was bolded in the below figure.

If we want to get the headers screen then click on Headers button and drag on to the lines tab then we will get receipt header window as shown below.

Page 132: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

128128128128

Here in this window the receipt date should be in the open period. If you want to know

the open period then go with the navigation

Setup ���� Financials ���� Accounting ���� Open and Close periods.

Tables that affect these Receipts are

1. RCV_SHIPMENT_HEADERS

2. RCV_SHIPMENT_LINES

3. RCV_TRANSACTIONS

AP(ACCOUNT PAYABLES):

In this the company is paying amount to the supplier. In this we are having 3 steps

1. Creation of Invoice. � Approve invoice

2. Make the payment.

3. Transfer to GL (General Ledger).

Page 133: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

129129129129

Invoice Types:

1. Standard Invoice: For supplier Standard payment will select this standard invoice,

where we are going to create invoice with supplier name and supplier site name.

2. Credit Memo and Debit Memo: Both will come under negative amount.

Credit Memo will be created if supplier is giving discount.

Debit Memo will be created when buyer is going to deduct the amount.

3. Pre Payment Type: whenever suppler required advance payment that time we will

select prepayment amount.

4. PO Default: we will give the PO Number as per the PO amount invoice will be

generated.

5. Quick Match Invoice: we will match the invoice either with PO or invoice with

receipt, as the matching payments will be done.

6. Expense Reports: fro employee expenses we will select the invoice type as

expense reports.

7. Recurring Invoices: for fixed amount and fixed duration, we will select recurring

invoices. Like rent accounts and so on.

8. Mixed Type Invoice: for company miscellaneous expenses we will create mixed

type.

9. With Holding Tax: if suppler is not registered suppler on behalf of suppler,

company will make the income tax to the government.

Navigation: 1. Go with PAYABLES, VISION OPERATIONS(USA) Responsibility.

2. Go with Invoices � Entry �Invoices.

3. Open the invoice form

Enter Supplier, Supplier num and site invoice amount.

Page 134: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

130130130130

4. Go with Distributions Button and Enter distribution details.

The invoice total and distribution total is equal. Then save the form.

5. After that go with Match Button you are matching your invoice with your PO then

go with Purchasing Order.

Page 135: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

131131131131

Go with Find Button then we will get the window given below.

Go with Actions Button and check the check box Validate

Page 136: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

132132132132

After this the Invoice Status will be change to Validated.

Again Go with Actions Button check the check box Create Accounting

Page 137: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

133133133133

It will create accounting transactions. We can see the account transactions from

Go with the menu Tools ���� View Accounting. The tables that affect Invoice are

1.AP_INVOICES_ALL –invoice_number, vendor_id, invoice_id

Distributions:

AP_INVOICE_DISTRIBUTIONS_ALL --invoice_id

Accounting Transactions:

1. AP_AE_HEADERS_ALL

2. AP_AE_LINES_ALL

Distribution Set:

If we want to create distribution transactions by using the system then we will go

for creation of distribution set.

Navigation:

Set up�invoice�distribution sets

1. Enter distribution set name, percentage and account transactions.

2. Attach this distribution set while creating invoice of header level.

Page 138: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

134134134134

Invoice Batches:

If we want to create multiple invoices by specifying batch name, then we will

select the option called invoice batches.

Invoice Gateway:

If we are retrieving invoice data from legacy system then we will use this invoice

gateway option.

PAYMENTS:

1. Go with Actions button check the check box Pay in full.

1. Select the payment type either

1. Manual

2. Quick

3. Refund

2. Enter bank accounts, document. System will automatically generate the document

number (check number) and enter the supplier details.

3. Go with Enter/Adjust invoice button

4. Give the invoice number and save the transaction.

5. System will automatically generate payment transactions

6. Select payment overview button where we can find out complete payment details.

Page 139: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

135135135135

7. Select the bank button where we can find out bank information and bank accounts.

Page 140: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

136136136136

TABLES:

1. AP_INVOICE_PAYMENTS_ALL

2. AP_CHECKS_ALL

3. AP_BANK_ACCOUNTS

4. AP_BANK_BRANCHES

5. AP_CHECK_FORMATS

AP TO GL TRANSFER:

1. Create invoice and approve it

2. Make payments and generate accounting transactions.

3. Go to SRS Window, select concurrent program called Payables Transfer to GL.

Enter invoice date in from date and to date parameters, system will submit the

program internally called Journal Import.

4. Copy the request id of journal import.

5. Go to the responsibility � General Ledger Super user and go with the navigation

Journals ���� Enter , paste the request id of Journal Import in the batch field

Page 141: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

137137137137

Select find button it will shows the payment details.

The table’s affects GL are

1. GL_JE_HEADERS

2. GL_JE_LINES

3. GL_JE_BATCHES

Page 142: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

138138138138

Order Management Flow: Booking Order: Go with the Navigation to open sales order window

Orders, Returns����Sales Orders. Then we will get the Sales Order – (NEW) Form as shown below.

Note: When we open the sales order form the order is created and the status of the order is in Entered state after that we update the order only. Don’t think that the order is created when we click on the Book Order button.

Enter the customer name which exists in the database here we take CDS, INC as

example. In this form there are two mandatory fields those are bolded in the figure above. Here when we click save then we will get the Order_Number By moving to the Line-items tab we will get another view of the screen given below.

Page 143: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

139139139139

Now enter the Ordered Item and Quantity. To check weather the Ordered_item is

existing then go with Availability button. if we book the order with out the availability of

item then the backorder will be created automatically. The Availability window is shown

below.

In this window the ATP Details button is Available To Promise that means how

many items can we give to the customer and Global Availability button is used for check

weather there is availability of the item in any other ware house or not. By clicking on

the Global Availability button we will get this dialog box.

���� Here in this stage two tables will get affected. The complete header information

will store in the OE_ORDER_HEADERS_ALL and line information will store in the

OE_ORDER_LINES_ALL now the status of the line is awaiting shipping.

Then go with Book Order button to book the Order then the status of your order is

changed to BOOKED from the ENTERED state here WSH_DELIVERY_DETAILS table will

be affected. Copy the Order_Number then close the Sales Order Form. Now go with

navigation to pick Release the order.

Shipping����Release Sales Orders����Release Sales Orders

Then we will get another window “Release Sales Orders for Picking “

Page 144: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

140140140140

Enter the Order Number which we created in the Sales Order form above and go with online button. Then we will get the message that Online completed successfully. Then go with the navigation. Here the status is in pick release the tables affected are MTL_RESERVATIONS and MTL_ONHAND_QUANTITIES.

Shipping����Transactions

Then we will get the Query Manager form shown below in the form enter the Order Numbers fields

Page 145: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

141141141141

Then go with the find button we will get now Shipping Transactions Form as shown below.

Go with Delivery tab and change the Actions to Ship Confirm and go with

Go(B) Button then other dialog box will open.

Now a document set will run to view the result go with view Requests. Here five

programs will run those are Interface Trip Stop, Commercial Invoice, Packing Slip

Report, Bill of Lading, Pick Slip Report. These all programs must be completed normal

other wise our order go wrong.

Page 146: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

142142142142

Creating Invoice: To create the invoice after all the five programs completed normal we have to run manually a request named “Workflow Background Process”.

After we submit the request Workflow Background Process then “Auto Invoice

Import Program” will run automatically and the Invoice will generate based on the

reference of the Order_Number. Here RA_CUSTOMER_TRX_ALL and RA_CUSTOMER_TRX_LINES_ALL will get affected.

Page 147: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

143143143143

After the auto invoice program status come to completed normal then go with the

following navigation to view the invoice.

Receivables����Transactions����Transactions

Then we will get the Transactions(Vision Operations) Form as shown below. By this

window we can retrieve the Invoice Number. Press F11 by enters into the query mode

we have to enter the Order number in the Reference field. Press ctrl+F11 to retrieve the

invoice number.

To view the balance of the customer goes with balances button according to the

requirements. The given below is the balances screen where the customer payment

details are in this window. Based on the amount He pay we made a receipt for him. Here

according to the below form the customer has to pay 100,000 we are making receipt for

that amount only if he pay.

Page 148: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

144144144144

Making Receipts: After taking amount from the customer, we have to make a receipt. Copy the Invoice number and close the Transactions form. Now go with the following navigation.

Receivables����Receipts����Receipts

Then we get a Receipts form. Enter the Invoice number at the Receipt number field and Trans number which we round in the below figure observe that because based on the invoice number only we have to raise the receipt to the customer.

After entering all the mandatory fields in the form then go with Applications

button. Then we get Application window just save it then your receipt is generated based on the Invoice Number.

Here in the Applications form there Chargebacks and Adjustments buttons. If there

any Adjustments of any reductions in the amount then we go with Adjustments button.

Page 149: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

145145145145

Transfer to General Ledger: Run the request General Ledger Transfer Program to create a general in GL and also

to post it. The navigation for this is Interfaces ���� General Ledger in the Receivable

Responsibility.

Then it will ask for the Request, enter the request name as

General Ledger Transfer Program then it will ask for the parameters the given below

screen will appear. The mandatory parameters for this request are GL Posted Date and

Post in Summary.

By clicking on the OK button then the request will be submitted then go for menu view

requests to view the status of the request which we submitted then the current created

receipt will be submitted to the GL successfully.

Page 150: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

146146146146

Returning Order: Enter the company name and other details same like booking the order as we mentioned above. There is a change in the Line items tab. Change the line type as Return Receipt because we taking returns from the customer.

Now go with Returns tab in the Line Items tab. The Returns view is shown below. Here the Return Reason is the mandatory column on what purpose they are returning the goods we have to enter here we take Damaged goods. Now go to the reference field

here rounded in the figure.

Page 151: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

147147147147

Then another dialog box will open given below. Enter the field’s reference type as Customer PO or Invoice or Sales Order or Serial number. Here we take Customer PO as reference we have to enter the Customer PO when we book the sales order. At the same

time when we choose the reference as Invoice or any other options we mentioned above also the same process.

By Pressing ok here and click on the Book Order button then the Return order is

booked successfully message will be displayed.

Now go with the navigation Purchasing ���� Receiving ���� Receipts then we will ask

for the choose the Organization here we will select M1 as we are working with M1

organization.

Then another window Find Expected Receipts(M1) will open given below. Go to the

Customer tab enter the order number which we create there for the sales return order.

After entering the RMA Num (Return Order Number).

Page 152: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

148148148148

Go with the find button then another window Receipts(M1) will open. Check the

rounded check box and enter the mandatory field Sub inventory and other if necessary

then go with save button then automatically the receipt number will be generated.

Click on the Header button then receipt header form will be open. Now the receipt

number is generated then close the form.

When the Receipt was generated then two Requests will run in the background

automatically they are shown below in the Request window.

Page 153: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

149149149149

Order to Cash Flow with Order Management and Process Inventory

Entering and managing orders is performed in Order Management. Shipping Execution

allows you to plan and confirm your shipments. Inventory to satisfy your order

requirements is allocated and picked in Process Inventory.

The following diagram illustrates the components of the Order Management for Process

flow and is described in the following steps. Note that this is a sample flow and can be

modified.

1. Sales orders are entered and booked through Order Management. Reserving the

order creates a high-level allocation in Process Inventory.

2. Before an order can be picked and shipped, it must be pick released. The Pick

Release process can invoke automatic inventory allocation and creates a process

move order.

3. Process move orders allow you to manually assign available Process Inventory to

a move order or pick from a list of available lots. Lines that have been

automatically allocated may be viewed and edited. Once an order line is allocated

(detailed), it is pick confirmed.

4. Deliveries and trips are created in Shipping Execution. Containers can also be

used.

5. Once you have verified the allocation of inventory to an order, it needs to be Pick

Confirmed. This step can be automated or done through the process move orders

form in Process Inventory. After the pick confirm, allocated inventory is marked

as staged.

6. Ship confirm is the final process in Shipping Execution which records the actual

shipped amounts and creates backorders, if necessary. At the completion of ship

confirm, on hand inventory is decremented for the shipped quantity.

7. Auto Invoicing allows billing of confirmed shipments. This process can be setup to

run automatically upon shipment of an order or be invoked manually. Invoicing

and cash receipt are handled within Oracle Receivables.

8. The final step in the process is the running of the subsidiary ledger update to

create the entries for Inventory and Cost of Goods Sold.

Page 154: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

150150150150

Diagrammatic Representation

Page 155: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

151151151151

Order Management

Table Relation Diagram

1. User Parameters

Item No From Item No To Customer From Customer To Order No From Order No To Customer Class from Customer Class To

2. HZ_CUST_ACCOUNTS Account_Number (Customer No) Party_id Customer_class_code cust_account_id

5.MTL_SYSTEM_ITEMS Organization_Id Inventory_Item_Id Segment1 (Item_Number) Description (Title) Inventory_item_status_code

l. Inventory_Item_Id= si.Inventory_Item_Id l. Ship_from_org_id si.Organization_Id

3.OE_ORDER_HEADERS_ALL Order_number (Order No) Header_id

4.OE_ORDER_LINES_ALL Inventory_item_id Cust_Po_Number (Cust PO NO) Sold_to_org_id Line_id Open_Flag=’Y’ Party_id Sysdate-requested_date (Days Old) Ship_from_org_id

Header_id

Order_No

5. WSH_DELIVERY_DETAILS Organization_Id Line_Id Requested_Quantity (BO Qty) Release_Status = ‘B’ Requested_quantity*l.unit_selling_price (BO Amt)

Line_Id

Organization_Id

sold_to_org_id=hca.cust_account_id

Customer Number

Customer_class

OE_PRICE_ADJUSTMENTS Line_id List_header_id

Line_id

QP_LIST_HEADERS_B Attribute1=’DM’ List_header_id

List_header_id

List_header_id QP_LIST_HEADERS_TL

List_header_id Name (Ad Key)

MTL_ITEM_STATUS Inventory_item_status_code Description (Pb Status)

Item no

Inventory_item_status_code

HZ_PARTIES Party_Name (Customer name) Party_id

Party_Id

OE_ORDER_HOLDS_ALL Released_flag='N' Hold_id Line_Id

OE_HOLD_DEFINITIONS ATTRIBUTE1='YES' hold_id

Line_id=line_id

header_id=header_id

OE_HOLD_SOURCES_ALL Hold_source_id Hold_id

Hold_source_id= Hold_source_id

Hold_id=hold_id

Party_Id

Page 156: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

152152152152

Flow How the Tables Effected

ENTERED: NAV-> ORDERS. RETURNS -> SALES ORDERS

SELECT * FROM OE_ORDER_HEADERS_ALL WHERE ORDER_NUMBER = 56728 -- HEADER_ID = 94100 (FLOW_STATUS_CODE = ENTERED, OPEN_FLAG=Y,

BOOKED_FLAG=N) SELECT * FROM OE_ORDER_LINES_ALL WHERE HEADER_ID = 94187

-- LINE_ID = 195947(FLOW_STATUS_CODE=ENTERED)

NOTE: - If U have set the auto schedule option your order should have a schedule date at this point.

BOOKED: NAV-> ORDERS. RETURNS -> SALES ORDERS -> HIT BOOKED TAB

SELECT * FROM OE_ORDER_HEADERS_ALL WHERE ORDER_NUMBER = 56728 -- HEADER_ID = 94100 (FLOW_STATUS_CODE = BOOKED, OPEN_FLAG=Y, BOOKED_FLAG=Y)

SELECT * FROM OE_ORDER_LINES_ALL WHERE HEADER_ID = 94100 -- LINE_ID = 195947(FLOW_STATUS_CODE=AWAITING_SHIPPING)

SELECT * FROM WSH_DELIVERY_DETAILS WHERE SOURCE_HEADER_ID = 94100 -- (RELEASED_STATUS = R)

PICK RELEASED:

NAV-> SHIPPING -> RELEASE SALES ORDERS -> RELEASE SALES ORDERS SELECT “BASE ON RULE” AS –> STANDARD

PROVIDE THE “ORDER NUMBER” THEN HIT “EXECUTE NOW”

HERE U CAN CHECK THROUGH THE FRONT END IN LINE LEVEL STATUS WILL BE “PICKED”.

SELECT * FROM WSH_DELIVERY_DETAILS WHERE SOURCE_HEADER_ID = 94100 -- (RELEASED_STATUS = Y)

SELECT * FROM WSH_PICKING_BATCHES WHERE ORDER_HEADER_ID = 94100

SELECT * FROM WSH_NEW_DELIVERIES WHERE SOURCE_HEADER_ID = 94100

SHIP CONFIRMED: NAV-> SHIPPING -> TRANSACTIONS

SELECT * FROM WSH_DELIVERY_DETAILS WHERE SOURCE_HEADER_ID = 94100 -- (RELEASED_STATUS = C)

Page 157: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

153153153153

EXAMPLE: select

ooh.order_number,

ooh.ORDERED_DATE,

ooh.FLOW_STATUS_CODE,

ool.line_number,

msi.SEGMENT1,

msi.DESCRIPTION,

ool.ordered_quantity,

ool.UNIT_SELLING_price,

ool.UNIT_SELLING_price*ool.ordered_quantity total,

ooh.sold_to_org_id,

ooh.ship_to_org_id,

ooh.invoice_to_org_id,

ool.inventory_item_id

from

oe_order_headers_all ooh,

oe_order_lines_all ool,

hz_cust_accounts hca,

mtl_system_items msi

where

ooh.header_id=ool.header_id

and ooh.sold_to_org_id=hca.cust_account_id

and msi.INVENTORY_ITEM_ID=ool.INVENTORY_ITEM_ID

and msi.ORGANIZATION_ID=ool.SHIP_FROM_ORG_ID

and ooh.order_number=56308

order by ool.line_number

Page 158: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

154154154154

TCA – Trading Community Architecture Parties are entities, of type Person, Organization, or Group, that can enter into business

relationships.

A relationship represents the way two entities interact with each other, based on the role that each entity takes with respect to the other. For example, the employment relationship between a person and an organization is defined by the role of the person as

the employee and the organization as the employer.

Relation ship type

Each relationship phrase and role pair belongs to a relationship type, which categorizes

the types of relationships that you can create.

Relationship Group

Relationship groups are used to determine which relationship roles and phrases are displayed in specific application user interfaces. Groups can also be used to categorize

roles and phrases for other functional uses.

TCA Registry

The TCA Registry is the central repository of party and other information for all Oracle applications. The party information includes details about organizations and people, the relationships among the parties, and the places where the parties do business.

Hz_parties –

Party_id -- This table mainly stores the party_id, party_number,

Party_type(Person/Organization) and the name(First Name/Last Name and Party_name(first-last name together)) of the party/customer. The first name or last name should be given to create a party.

Hz_cust_accounts/Hz_cust_accounts_all –

This has mainly the party_id and Cust_account_id -- (called as Customer_id) Account_number -- (called as Customer_number)

(The hz_cust_accounts_all(till version 11.5.9), is not populating the org_id column. So

this table is anyway meaning less for these versions. Not sure though there is a set up related to it which can enable this field.)

This table can have multiple records pertaining to one party_id. This means a party can have multiple accounts. Ie; ,we can have multiple cust_account_ids created for a single party in hz_cust_account table. And also under each cust_account_id we can have multiple addresses,

To create another customer_account(differenct cust_account_id), select the customer with the Name from the standard customer creation search screen,(Take care not to select the customer from LOV, since it directly selects the

cust_account_id/account_number and once you press OK, you get only that

cust_account_id/account number and not all the customer accounts. So enter manually the customer name, press OK and this takes you to the screen,

Page 159: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

155155155155

Select the top most records. Here we can see 4 records. 1st is the Main Line, which needs

to be selected for creating new customer accounts for this customer. We can see that there are 2 different customer numbers(account number, in this screen cust_account_ids

won’t be shown) here(1441, and 1442). 1442 is repeating because that account is having 2 different sites(address sites).

Hz_cust_acct_sites_all –

HZ_CUST_ACCT_SITES_ALL stores information about customer sites. One customer

account can have multiple sites. The physical address is maintained in HZ_LOCATIONS.

Gives you all the sites or address defined pertaining to an account.

(although the cust_account_id is same, the org_id's might be different.)

[ If the records are related to an order, you can take the ship_to_org_id, which is nothing but the cust_account_id related to the Bill_to address and link it with the table, hz_cust_accounts (using cust_account_id) and then link it with the cust_account_id of hz_cust_acct_sites_all table like this,

FROM OE_ORDER_HEADERS_ALL OH, HZ_CUST_ACCOUNTS HCA,

HZ_CUST_ACCT_SITES_ALL HCAS, hz_cust_site_uses_all HCSU WHERE OH.SOLD_TO_ORG_ID = HCA.CUST_ACCOUNT_ID

AND HCA.CUST_ACCOUNT_ID = HCAS.CUST_ACCOUNT_ID

AND HCAS. CUST_ACCT_SITE_ID = HCSU.CUST_ACCT_SITE_ID AND HCAS.BILL_TO_FLAG = ‘P’ Hz_cust_site_uses_all --

HZ_CUST_SITE_USES_ALL stores information about site uses or business purposes. A single customer site can have multiple site uses, such as bill to or ship to, and each site use is stored as a record in this table.

Link this table with hz_cust_account_site_all with the field, CUST_ACCT_SITE_ID. Here is where the and each address can have one(only one primary) Bill_to or Ship_to

address. The primary bill_to, ship_to will be the ones which are normally used for ‘site use’ level transactions. For one cust_account_id with different addresses,(see it in

Page 160: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

156156156156

hz_cust_acct_sites_all table for these different address lines), we can make only one bill_to or ship_to as primary.

If we get multiple records pertaining to an account, for a Bill_to, check for the field,

BILL_TO_FLAG = 'P' (Means primary). IF we have multiple address/site for a particular cust_account_id, Only one bill_to address can be 'P', under a cust_account_id, although we can define multiple bill_to addresses(Note : one address/site can have only one

bill_to)and all the transactions through the system will be done with the primary bill_to

address.

Hz_contact_points –

This table stores the contact details of the customer. The contact details are stored against a site, if owner_table_name is equated against the hz_party_sites table. If it is

equated against the hz_parties then the contacts are against the customer not against the customer site.

If a contact point is created against a customer site(address).

SELECT LTRIM(hcp.phone_country_code||'-'||hcp.phone_area_code||'-'||hcp.phone_number,'-') Home_Phone, hcp.PRIMARY_BY_PURPOSE,hcas.org_id, hcas.party_site_id,hca.cust_account_id,hcas.cust_acct_site_id, hcp.CONTACT_POINT_ID,hcp.CONTACT_POINT_TYPE,hcp.PHONE_LINE_TYPE,

hcp.OBJECT_VERSION_NUMBER FROM hz_parties hp, hz_party_sites hps,

hz_cust_accounts hca, hz_cust_acct_sites_all hcas, hz_contact_points hcp

WHERE hp.party_id = hps.party_id

AND hca.party_id = hp.party_id AND hp.party_type IN ('ORGANIZATION', 'PERSON') AND hp.status = 'A' AND hcas.party_site_id = hps.party_site_id

AND hca.cust_account_id = hcas.cust_account_id AND hcp.contact_point_type = 'PHONE' AND (hcp.OWNER_TABLE_NAME = 'HZ_PARTY_SITES' AND hps.party_site_id =

hcp.owner_table_id) AND hcp.phone_line_type = 'TELHOME' AND hcp.status = 'A'

If a contact point is create against a customer.

SELECT LTRIM(hcp.phone_country_code||'-'||hcp.phone_area_code||'-'||hcp.phone_number,'-') Home_Phone, hcp.PRIMARY_BY_PURPOSE, hca.cust_account_id,hcp.CONTACT_POINT_ID,hcp.CONTACT_POINT_TYPE,hcp.PHONE_L

INE_TYPE,hcp.OBJECT_VERSION_NUMBER FROM hz_parties hp, hz_cust_accounts hca, hz_contact_points hcp

WHERE hca.party_id = hp.party_id

AND hp.party_type IN ('ORGANIZATION', 'PERSON') AND hp.status = 'A' AND hcp.contact_point_type = 'PHONE'

AND (hcp.OWNER_TABLE_NAME = 'HZ_PARTIES' AND hp.party_id = hcp.owner_table_id) AND hcp.status = 'A'

HZ_customer_profiles --

There will normally be a default profile attached against a customer as soon as the customer is created.

Page 161: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

157157157157

Since the default profile is attached against the customer(and not against the site_use level), when you query the hz_customer_profiles tables we can see that that site_use_id for this particular profile would be null.

If the profile is created against the customer site_use level, then the corresponding site_use_id will be populated for this customer profile record in the hz_customer_profiles table.

See the below query for reference,

[ select hcp.CUST_ACCOUNT_PROFILE_ID, hcp.OBJECT_VERSION_NUMBER, hcp.cust_account_id, hcp.ATTRIBUTE1 LTV_Veh_sales,

hcp.ATTRIBUTE2 LTV_Number_Of_Veh, hcp.ATTRIBUTE3 LTV_Service_Sales, hcp.attribute4 LTV_Service_In,

hcp.attribute5 Cust_Cate_RFM_Veh,

hcp.attribute6 Cust_Cate_RFM_Service_In, hcp.ATTRIBUTE7 Customer_Remark, hcp.ATTRIBUTE8 Latest_Vehicle_Sales_Date,

hcp.ATTRIBUTE9 Latest_Service_In_date, hcp.ATTRIBUTE10 Latest_Contact_Date, hcp.ATTRIBUTE11 Expected_Contact_Date,

hcp.ATTRIBUTE12 Expected_Sales_Date, hcp.ATTRIBUTE13 Expected_service_Date, hcp.ATTRIBUTE14 Hobby1, hcp.ATTRIBUTE15 Hobby2

FROM

hz_customer_profiles hcp, hz_cust_acct_sites_all hcas, hz_cust_site_uses_all hcsu where hcas.cust_account_id = hcp.cust_account_id and hcas.cust_acct_site_id = hcsu.cust_acct_site_id

and hcp.site_use_id = hcsu.site_use_id and hcp.status = 'A' ]

Page 162: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

158158158158

Process that how to Create an Item: Creating an Item: As the first step in creating the item go to the Inventory responsibility and in that master items screen. The navigation is

Items ���� Master Items. The given below is the Master items window. Note: Before you got the master items screen you will ask for the choose organization screen then you get this screen. Here we choose the “V1” so, the items was set to V1 by default as the master organization. If we want we can assign this item to any other child organizations see the process in

the coming steps.

Enter all the fields like item, description, Long Description such fields as per the requirement. After go to the Tools menu and in that go with Copy From option in that as we shown in the below figure. Then we get the Copy from window.

Page 163: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

159159159159

Enter the Template name from the list which we want to assign to the current item BAGS and go with the Apply after that Done. Then the template was copied to the current item. Then go with the Organization Assignment option as we round in the given

below figure then the view of the window will be changed as below.

Assign the item to the child organizations what ever you want. Then go with the save button then the item was created successfully. Now we have to set the price list for the

item then only we can view the item in the sales order like that. Now go with the Order Management responsibility. The navigation for the price list setup is Pricing ���� Price Lists ���� Price List Setup. Then you get the Advanced Pricing window.

Note: There are different price lists “Corporate” is default when we are creating the sales order so, we are adding our item to the “Corporate” price list. If we want we can create new price list as per the requirements.

After getting the Pricelist window then go with F11 query mode gets the price list what ever you want and add the item and enter all the mandatory fields such as Product Context, Product Attribute, Product Value(Item Name), price, to it after that go with save button. Then the item was successfully added to the price list.

Page 164: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

160160160160

Enter all the details correctly before saving. Here in the form the rate of the item is described as value in that field we have to enter the rate of the item.

Now at this stage the item was created and added to the price list was successful but the on hand quantity of the particular item is ZERO (0). That means we can’t book the

orders on that item. To increase the on hand quantity of any particular item is given below. We have to go with the Inventory responsibility and the navigation is Transactions ���� Miscellaneous Transaction. Then you will ask for the organization

Page 165: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

161161161161

then select the child organization which we have selected for the item created above. Then we get the window as below.

Enter the mandatory fields and then go with the transaction lines. Then we get the

window given below. Enter the item name, sub inventory, Amount and quantity as per the requirement. Here we entered 120 as ex.

When we enter the tab position to the amount then we get the Operations

Accounting window given below. Select the appropriate option from the list of options. Here we selected the Cash as per our Ex.

After entering the amount field then go with the save button. Then the items quantity

will be increased. Now we can go with the orders now.

Page 166: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

162162162162

To check the on-hand-quantity of any item we have to go with the Inventory

responsibility and the navigation is On-Hand, Availability ���� On-Hand Quantity. Then

we get the Query Material window we have to enter the item name which we want to

check the quantity and go with the find button below the screen.

After that we get other window in that we get the details of the item on-hand and other.

Here there is the Availability button when we go with that we get the same details in

the short window.

Page 167: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

163163163163

SSSSSSSSQQQQQQQQLLLLLLLL QQQQQQQQUUUUUUUUEEEEEEEERRRRRRRRYYYYYYYY BBBBBBBBAAAAAAAANNNNNNNNKKKKKKKK

1. Difference between DCL and DML commands?

DCL commands will commit implicitly where in DML commands we have to

commit explicitly.

2. Table, Rowid, Rownum

Table is a database object, which is having more than one column associated with

its data type. Rowid is the unique binary address of the row in a table

Rownum it is a temporary number in a memory and was assigned to each row

selected by the statement.

3. Pseudo-Columns

Columns that are not created explicitly by the user and can be used explicitly in

queries. The pseudo-Columns are rowid, rownum, currval, nextval, sysdate, and

level

4. What is a View?

View is Virtual Table, which hold the data at runtime

5. Difference between ordinary view and complex view?

Simple views can be modified easily and these cant hold the data where as

complex views cant be modified directly and complex view can hold the data to

modify a complex view we have to use INSTEAD OF TRIGGERS.

6. Forced view

Creating a view on a table, which is not there in the database.

7. Inline view

Inline view is basically a subquery with an alias that you can use like a view

inside a SQL statement.

8. What is an INDEX and what are the types?

INDEX is a database object used in oracle to provide quick access to rows.

9. Synonym

Synonym is an alias name for any database object like tables, views, functions,

procedures.

10. SELECT statement syntax?

SELECT <Column name>

From <table name>

Where <condition>

Having <statement>

Group by <column name>

Connect prior

Page 168: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

164164164164

11. What is Constraint? Different Constraints?

Constraints are representators of the columns to enforce data entity and

consistency. UNIQUE, NOT NULL, Primary key, foreign key, Check.

12. Difference between Primary key and Unique + Not Null constraints?

Unique + Not Null is a combination of two constraints and we can use more than

one Unique + Not Null in any table. Primary Key is a single constraint we can use

only one time for a table. It can be a referential key for any column in any table.

13. What is NULL?

Default Value.

14. Dual Table

It is a one row, one column table with value X.

15. Difference between Truncate and Delete?

Truncate will delete all the rows from the table with out any condition. It will

commit automatically when it fires Where delete will delete all or specified rows

based upon the condition here we have to commit explicitly.

16. Difference between Char and Varchar2?

Varchar2 is similar to char but can store available number of characters and while

querying the table varchar2 will trims the extra spaces and fetches the rows that

exactly match the criteria.

17. Difference between LOB and LONG data types?

The maximum size of an LOB is 4GB. It will support random access to data where

in LONG maximum size is 2GB. It will support sequential access to data.

18. Single Row functions: It will work on single row and give result for all the rows.

Ex: to_char, to_date etc.

19. Group Functions: It will work on group of rows in a table and gives a single row

result. Ex: Sum(), Avg(), min(), max().. Etc.

20. String Handling Functions?

Instr – it returns the position of the string where it occur according to the

parameters. Instrb – instr and instrb returns same but in the form of bytes. Substr – It returns the portion of a string depending on the parameters from and

to.

Substrb – Substr and Substrb returns the same thing but Substrb returns in the

form of bytes

21. Sign: Sign is a function it will take numbers, as inputs and it will give

i. 1 for positive integer

ii. -1 for negative integer

iii. 0 for ZERO

SQL> Select sign(-1234) from dual; O/P: -1

Page 169: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

165165165165

22. Differences between UNION and UNION ALL?

Union: The values of the first query are returned with the values of the second

query eliminating the duplicates.

Union All: The values of the first query are returned with the values of the second

query including the duplicates.

23. Difference between NVL and NVL2 functions?

NVL is used to fill a NULL value to known value. NVL2 will identify the NULL

values and Filled values it returns exp3 if it is null otherwise it returns exp2. We

have to pass 3 parameters for NVL2 and 2 parameters for NVL.

24. How can we compare range of values with out using the CASE?

By using Decode with in Decode.

25. Can we Decode with in a Decode?

YES

26. Decode and Case Difference?

Case compares a Range of values and Decode will work as if else statement.

27. Difference between Replace and Translate?

Replace is used to replace the whole string and we can pass null values in

replace. Translate is used to translate character-by-character here we have to

pass the three parameters.

28. Difference between where and having clause?

Where used to specify condition and used to restrict the data. Having used to

specify the condition on grouped results and used to filter the data.

29. Difference between IN and EXISTS clause?

EXISTS gives the status of the inner query. If the inner query is success then it

returns true other wise it returns false and IN will compare the list of values.

30. Difference between subquery and correlated subquery?

Query with in a query is subquery. Inner query will executes first and based on

the result the outer query will be displayed. Correlated subquery outer query will

executes first and then inner query will be executed.

31. What is EXPLAIN PLAN? Syntax?

Explain plan gives the execution plan of the statement. For using this explain plan

we have the plan_table in the database.

Syntax: SQL> Explain plan

Set statemet_id = ‘xyx’

[Into plan_table]

for

DML STATEMENTS;

Page 170: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

166166166166

32. SQL TRACE Definition, Process and Query to get the Trace file path?

SQL trace gives the wide range of information and statistics that used to tune a

group of SQL operations. To get the trace file we have to follow some steps

� Enable the Trace.

� Run DML statements.

� Disable the Trace.

� Convert the Trace file into readable format using the TKPROF.

Trace file Path: SQL> select value from v$parameter

Where

Name = ‘user_dump_dest’; 33. PL/SQL Block structure?

DECLARE

Variable declarations;

BEGIN

Statements;

Exception

Exception block;

END;

34. Anonymous Block?

It is a PL/SQL block with no name and set of statements and cannot be stored in

the database.

35. Procedure and Function Differences?

The procedure may or may not return a value. It will return the values by its own

name and function must and should return a value and it will return values with

function name.

36. Package procedure and Procedure differences?

The package procedure is faster than the ordinary procedure because if we call

the package in a procedure it will load into the SGA memory and then it starts

functioning. The ordinary procedures use this SGA memory at runtime only.

37. Global Variable?

Declaring the variable in the package specification is the Global variable.

38. Triggers and Procedures differences?

Triggers is a database object which will fire implicitly when the event occur and

TCL command will not work in the triggers by using the PRAGMA AUTONOMOUS

TRANSACTION only we can use the TCL commands in triggers.

Procedure is a database object where we have to raise explicitly and TCL

commands will work in the Procedures.

Page 171: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

167167167167

39. Dynamic SQL?

If we want to do DML and DDL operations in the PL/SQL block we use this

dynamic SQL. Two types are there in the Dynamic SQL

DBMS_SQL

Execute immediate

40. Difference between DBMS_SQL and execute immediate?

DBMS_SQL is slower process when compare to execute immediate because in the

DBMS_SQL we have to open, parse, fetch and execute to do the DML operations.

It is the version of 7.3.

Execute immediate is earlier version 9i it is a one step process used to execute

fastly.

41. Define a Cursor, Types and its attributes?

Cursor is a private SQL area provided by the oracle engine its main use is to fetch

more than one row.

� Implicit

� Explicit

Implicit cursor rises whenever we use DML statements in the PL/SQL block. User

does not have control over it

Explicit cursor used to process select statement, which is used to retrieve more

than one row. We have to open, fetch, close the cursor manually. User has

control over it.

Cursor Attributes:

%ROWCOUNT – It returns the integer that how many rows that previous fetch

returns.

%FOUND – It returns TRUE if the previous fetch returns a row otherwise FALSE.

%NOTFOUND – It returns FALSE if the previous fetch returns a row otherwise

TRUE.

%ISOPEN – It returns TRUE if the named cursor is open otherwise FALSE.

42. PL/SQL Tables

It is an object type table and is used to hold the data at runtime and the size of

the PL/TABLE is dynamic.

43. VARRAYS and PL/SQL Table Differences?

VARRAYS size is fixed and PL/SQL table size is dynamic.

44. Difference between PL/SQL table and Cursor?

Cursor will not use index to fetch the fifth row it has to fetch all the five rows to

give the fifth row.

Cursor will not work on multiple tables.

Page 172: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

168168168168

PL/SQL table will use the index. By using the index we can directly fetch whatever

row we want in the table

PL/SQL table can work on multiple tables.

45. What is Pragma?

Pragma is a precompiler directive, which directs the compiler before compilation

of the program.

46. Pragma Autonomous Transaction

Used to split the whole transaction into two parts parent and child, which run

parallely and both have the relation ship

Ex: ITEM ATTCHMENTS CONVERSION

47. Pragma Exception_Init?

Used to associate a user-defined exception with oracle-defined error.

Ex: Bank Account Min Balance

48. Raise_Application_Error?

It is used to create our own error messages, which can be more descriptive than

named exceptions.

Syn: RAISE_APPLICATION_ERROR (error_number, error_message,

[Keep_errors]);

Where error_number is between –20,000 and –20,999, error_message is

the text associated with this error, and keep_errors is a Boolean value.

49. Mutating Error, Mutating table?

It will occur whenever we try to do DML operations on a table, which is effected

by a trigger. The table, which is affected by trigger, is known as Mutating Error.

50. Difference between Package Procedure and Procedure?

Whenever we create a procedure in the package it will compile at that time. When

we call it will execute directly. Where in the ordinary procedure each and every

time it compiles and execute. The main difference is package procedure better in

performance.

Page 173: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

169169169169

SSSSSSSSQQQQQQQQLLLLLLLL QQQQQQQQUUUUUUUUEEEEEEEERRRRRRRRYYYYYYYY BBBBBBBBAAAAAAAANNNNNNNNKKKKKKKK

1. Query for retrieving N highest paid employees FROM each Department. I

2. Query that will display the total no. of employees, and of that total the number who were

hired in 1980, 1981, 1982, and 1983. II

3. Query for listing Deptno, ename, sal, SUM(sal in that dept). III

4. Matrix query to display the job, the salary for that job based on department number, and

the total salary for that job for all departments. IV

5. Nth Top Salary of all the employees. V

6. Retrieving the Nth row FROM a table. VI

7. Tree Query. VII

8. Eliminate duplicates rows in a table. VIII

9. Displaying EVERY Nth row in a table. IX

10. Top N rows FROM a table. X

11. COUNT/SUM RANGES of data values in a column. XI

12. For equal size ranges it might be easier to calculate it with DECODE(TRUNC(value/range),

0, rate_0, 1, rate_1, ...). XII

13. Count different data values in a column. XIII

14. Query to get the product of all the values of a column. XIV

15. Query to display only the duplicate records in a table. XV

16. Query for getting the following output as many number of rows in the table. XVI

17. Function for getting the Balance Value. XVII

18. Function for getting the Element Value. XVIII

19. SELECT Query for counting No of words. XIX

20. Function to check for a leap year. XX

21. Query for removing all non-numeric. XXI

22. Query for translating a column values to INITCAP. XXII

23. Function for displaying Rupees in Words. XXIII

24. Query for deleting alternate even rows FROM a table. XXIV

25. Query for deleting alternate odd rows FROM a table. XXV

26. Procedure for sending Email. XXVI

27. Alternate Query for DECODE function. XXVII

28. Create table adding Constraint to a date field to SYSDATE or 3 months later. XXVIII

29. To list all the suppliers who r supplying all the parts supplied by supplier 'S2'. XXIX

30. Query to get the last Sunday of any month. XXX

31. Query to get all those who have no children themselves. XXXI

32. Query to SELECT last N rows FROM a table. XXXII

33. SELECT with variables. XXXIII

Page 174: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

170170170170

34. Query to get the DB Name. XXXIV

35. Getting the current default schema. XXXV

36. Query to get all the column names of a particular table. XXXVI

37. Spool only the query result to a file in SQLPLUS. XXXVII

38. Query for getting the current SessionID. XXXVIII

39. Query to display rows FROM m to n. XXXIX

40. Query to count no. Of columns in a table. XXXX

41. Procedure to increase the buffer length. XXXXI

42. Inserting an & symbol in a Varchar2 column. XXXXII

43. Create Query to restrict the user to a single row. XXXXIII

44. Query to get the first inserted record FROM a table. XXXXIV

45. Concatenate a column value with multiple rows. XXXXV

46. Query to delete all the tables at once. XXXXVI

47. SQL Query for getting Orphan Records. XXXXVII

48. Removing Trailing blanks in a spooled file. XXXXVIII

49. Samples for executing Dynamic SQL Statements. XXXXIX

50. Differences between SQL and MS-Access. XXXXX

51. Query to display all the children, sub children of a parent. XXXXXI

52. Procedure to read/write data from/to a text file. XXXXXII

53. Query to display random number between any two given numbers. XXXXXIII

54. Time difference between two date columns. XXXXXIV

55. Display the Nth Max Sal of the Employee where Salary must be Distinct. XXXXXV

56. Display the Current username, which you have logged on. XXXXXVI

57. Will this query work if it works then what will be the output? XXXXXVII

58. Display the Count that how many columns existing in the Table? XXXXXVIII

Page 175: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

171171171171

I. The following query retrieves "2" highest paid employees FROM each Department:

SELECT deptno, empno, sal FROM emp e WHERE

2 > ( SELECT COUNT(e1.sal)

FROM emp e1 WHERE e.deptno = e1.deptno AND e.sal < e1.sal ) ORDER BY 1,3 DESC;

II. Query that will display the total no. Of employees, and of that total the number who were hired in 1980, 1981, 1982, and 1983. Give appropriate column headings.

I am looking at the following output. We need to stick to this format.

Total 1980 1981 1982 1983

----------- ------------ ------------ ------------- ----------- 14 1 10 2 1

SELECT COUNT (*), COUNT(DECODE(TO_CHAR (hiredate, 'YYYY'),'1980', empno)) "1980", COUNT (DECODE (TO_CHAR (hiredate, 'YYYY'), '1981', empno))

"1981", COUNT (DECODE (TO_CHAR (hiredate, 'YYYY'), '1982', empno)) "1982",

COUNT (DECODE (TO_CHAR (hiredate, 'YYYY'), '1983', empno)) "1983"

FROM emp; III. Query for listing Deptno, ename, sal, SUM(sal in that dept) :

SELECT adaptor, ename, sal, (SELECT SUM(sal) FROM emp b WHERE a.deptno = b.deptno) FROM emp a

ORDER BY a.deptno; OUTPUT:

======= DEPTNO ENAME SAL SUM (SAL) ========= ======= ==== ========= 10 KING 5000 11725

30 BLAKE 2850 10900 10 CLARK 2450 11725 10 JONES 2975 11725 30 MARTIN 1250 10900

30 ALLEN 1600 10900 30 TURNER 1500 10900 30 JAMES 950 10900

30 WARD 2750 10900 20 SMITH 8000 33000 20 SCOTT 3000 33000 20 MILLER 20000 33000

Page 176: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

172172172172

IV. Create a matrix query to display the job, the salary for that job based on department number, and the total salary for that job for all departments, giving each column an appropriate heading.

The output is as follows - we need to stick to this format:

Job Dept 10 Dept 20 Dept 30

Total ---------- --------------- ------------- ------------- --------- ANALYST 6000

6000 CLERK 1300 1900 950 4150

MANAGER 2450 2975 2850 8275 PRESIDENT 5000

5000

SALESMAN 5600 5600

SELECT job "Job", SUM (DECODE (deptno, 10, sal)) "Dept 10", SUM (DECODE (deptno, 20, sal)) "Dept 20", SUM (DECODE (deptno, 30, sal)) "Dept 30", SUM (sal) "Total"

FROM emp GROUP BY job ;

V. 4th Top Salary of all the employees:

SELECT DEPTNO, ENAME, SAL

FROM EMP A WHERE 3 = (SELECT COUNT(B.SAL) FROM EMP B

WHERE A.SAL < B.SAL) ORDER BY SAL DESC; VI. Retrieving the 5th row FROM a table :

1. SELECT DEPTNO, ENAME, SAL FROM EMP WHERE ROWID = (SELECT ROWID FROM EMP WHERE ROWNUM <= 5

MINUS SELECT ROWID FROM EMP WHERE ROWNUM < 5)

2. SELECT * FROM EMP A

WHERE &N = (SELECT COUNT(ROWID) FROM EMP B WHERE A.ROWID >= B.ROWID);

VII. Tree Query : Name Null? Type

------------------------------------------------------------------- SUB NOT NULL VARCHAR2(4) SUPER VARCHAR2(4) PRICE NUMBER(6,2)

Page 177: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

111173737373

SELECT sub, super FROM parts CONNECT BY PRIOR sub = super

START WITH sub = 'p1'; VIII. Eliminate duplicates rows in a table :

DELETE FROM table_name A WHERE ROWID > ( SELECT min(ROWID) FROM table_name B WHERE A.col = B.col);

IX. Displaying EVERY 4th row in a table : (If a table has 14 rows, 4,8,12 rows will be selected)

SELECT * FROM emp WHERE (ROWID,0) IN (SELECT ROWID, MOD(ROWNUM,4)

FROM emp);

X. Top N rows FROM a table : (Displays top 9 salaried people)

SELECT ename, deptno, sal FROM (SELECT * FROM emp ORDER BY sal DESC) WHERE ROWNUM < 10;

XI. How does one count/sum RANGES of data values in a column? A value x will

be between values y and z if GREATEST(x, y) = LEAST(x, z). SELECT

f2,

COUNT(DECODE(greatest(f1,59), least(f1,100), 1, 0)) "Range 60-100",

COUNT(DECODE(greatest(f1,30), least(f1, 59), 1, 0)) "Range 30-59", COUNT(DECODE(greatest(f1,29), least(f1, 0), 1, 0)) "Range 00-29" FROM my_table

GROUP BY f2; XII. For equal size ranges it migth be easier to calculate it with

DECODE(TRUNC(value/range), 0, rate_0, 1, rate_1, ...). SELECT ename "Name", sal "Salary", DECODE( TRUNC(sal/1000, 0), 0, 0.0,

1, 0.1,

2, 0.2, 3, 0.3) "Tax rate"

FROM emp; XIII. How does one count different data values in a column?

COL NAME DATATYPE ---------------------------------------- DNO NUMBER SEX CHAR

SELECT dno, SUM(DECODE(sex,'M',1,0)) MALE,

SUM(DECODE(sex,'F',1,0)) FEMALE, COUNT(DECODE(sex,'M',1,'F',1)) TOTAL

FROM t1 GROUP BY dno;

Page 178: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

174174174174

XIV. Query to get the product of all the values of a column : SELECT EXP(SUM(LN(col1))) FROM bias_table;

XV. Query to display only the duplicate records in a table:

SELECT num

FROM satyam GROUP BY num HAVING COUNT(*) > 1;

XVI. Query for getting the following output as many number of rows in the table :

* ** ***

****

***** SELECT RPAD(DECODE(temp,temp,'*'),ROWNUM,'*')

FROM bias_table1; XVII. Function for getting the Balance Value :

FUNCTION F_BALANCE_VALUE (p_business_group_id number, p_payroll_action_id number, p_balance_name varchar2, p_dimension_name varchar2) RETURN NUMBER

IS

l_bal number; l_defined_bal_id number; l_assignment_action_id number;

BEGIN SELECT assignment_action_id INTO l_assignment_action_id FROM

pay_assignment_actions WHERE assignment_id = :p_assignment_id

AND payroll_action_id = p_payroll_action_id; SELECT defined_balance_id

INTO l_defined_bal_id FROM pay_balance_types pbt,

pay_defined_balances pdb, pay_balance_dimensions pbd WHERE

pbt.business_group_id = p_business_group_id AND UPPER(pbt.balance_name) = UPPER(p_balance_name) AND pbt.business_group_id = pdb.business_group_id AND pbt.balance_type_id = pdb.balance_type_id

AND UPPER(pbd.dimension_name) = UPPER(p_dimension_name) AND pdb.balance_dimension_id = pbd.balance_dimension_id;

Page 179: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

175175175175

l_bal := pay_balance_pkg.get_value(l_defined_bal_id,l_assignment_action_id); RETURN (l_bal);

exception WHEN no_data_found THEN

RETURN 0;

END; XVIII. Function for getting the Element Value :

FUNCTION f_element_value( p_classification_name in varchar2, p_element_name in varchar2,

p_business_group_id in number, p_input_value_name in varchar2, p_payroll_action_id in number,

p_assignment_id in number

) RETURN number IS

l_element_value number(14,2) default 0; l_input_value_id pay_input_values_f.input_value_id%type; l_element_type_id pay_element_types_f.element_type_id%type; BEGIN

SELECT DISTINCT element_type_id INTO l_element_type_id FROM pay_element_types_f pet,

pay_element_classifications pec

WHERE pet.classification_id = pec.classification_id AND upper(classification_name) = upper(p_classification_name) AND upper(element_name) = upper(p_element_name)

AND pet.business_group_id = p_business_group_id; SELECT input_value_id INTO l_input_value_id

FROM pay_input_values_f WHERE upper(name) = upper(p_input_value_name) AND element_type_id = l_element_type_id;

SELECT NVL(prrv.result_value,0) INTO l_element_value FROM pay_run_result_values prrv,

pay_run_results prr, pay_assignment_actions paa WHERE prrv.run_result_id = prr.run_result_id AND prr.assignment_ACTION_ID = paa.assignment_action_id

AND paa.assignment_id = p_assignment_id AND input_value_id = l_input_value_id AND paa.payroll_action_id = p_payroll_action_id;

RETURN (l_element_value); exception

WHEN no_data_found THEN RETURN 0; END;

Page 180: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

176176176176

XIX. SELECT Query for counting No of words : SELECT ename,

NVL(LENGTH(REPLACE(TRANSLATE(UPPER(RTRIM(ename)),'ABCDEFGHIJKLMNOPQRSTUVWXYZ'' ',' @'),' ',''))+1,1) word_length FROM emp;

Explanation : TRANSLATE(UPPER(RTRIM(ename)),'ABCDEFGHIJKLMNOPQRSTUVWXYZ'' ',' @') -- This will translate all the characters FROM A-Z including a single quote to a

space. It will also translate a space to a @. REPLACE(TRANSLATE(UPPER(RTRIM(ename)),'ABCDEFGHIJKLMNOPQRSTUVWXYZ'' ','

@'),' ','') -- This will replace every space with nothing in the above result. LENGTH(REPLACE(TRANSLATE(UPPER(RTRIM(ename)),'ABCDEFGHIJKLMNOPQRSTUVWX

YZ'' ',' @'),' ',''))+1 -- This will give u the count of @ characters in the

above result.

XX. Function to check for a leap year : CREATE OR REPLACE FUNCTION is_leap_year (p_date IN DATE) RETURN VARCHAR2 AS

v_test DATE; BEGIN v_test := TO_DATE ('29-Feb-' || TO_CHAR (p_date,'YYYY'),'DD-Mon-YYYY');

RETURN 'Y';

EXCEPTION WHEN OTHERS THEN RETURN 'N';

END is_leap_year; SQL> SELECT hiredate, TO_CHAR (hiredate, 'Day') weekday FROM emp

WHERE is_leap_year (hiredate) = 'Y'; XXI. Query for removing all non-numeric :

SELECT TRANSLATE(LOWER(ssn),'abcdefghijklmnopqrstuvwxyz- ','') FROM DUAL;

XXII. Query for translating a column values to INITCAP: SELECT

TRANSLATE(INITCAP(temp), SUBSTR(temp, INSTR(temp,'''')+1,1), LOWER(SUBSTR(temp, INSTR(temp,'''')+1))) FROM bias_table1;

XXIII. Function for displaying Rupees in Words : CREATE OR REPLACE FUNCTION to_word_i

(amount IN NUMBER) RETURN VARCHAR2 AS

Page 181: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

177177177177

v_length INTEGER := 0; v_num2 VARCHAR2 (50) := NULL; v_amount VARCHAR2 (50) := TO_CHAR (TRUNC (amount));

v_word VARCHAR2 (4000) := NULL; v_word1 VARCHAR2 (4000) := NULL; TYPE myarray IS TABLE OF VARCHAR2 (255);

v_str myarray := myarray (' Thousand ',

' Lakh ', ' Crore '); BEGIN IF ((amount = 0) OR (amount IS NULL)) THEN

v_word := 'zero'; ELSIF (TO_CHAR (amount) LIKE '%.%') THEN IF (SUBSTR (amount, INSTR (amount, '.') + 1) > 0) THEN

v_num2 := SUBSTR (amount, INSTR (amount, '.') + 1); IF (LENGTH (v_num2) < 2) THEN v_num2 := v_num2 * 10;

END IF;

v_word1 := ' AND ' || (TO_CHAR (TO_DATE (SUBSTR (v_num2, LENGTH (v_num2) - 1,2), 'J'), 'JSP' ))|| ' paise ';

v_amount := SUBSTR(amount,1,INSTR (amount, '.')-1); v_word := TO_CHAR (TO_DATE (SUBSTR (v_amount, LENGTH (v_amount) - 2,3), 'J'), 'Jsp' ) || v_word;

v_amount := SUBSTR (v_amount, 1, LENGTH (v_amount) - 3); FOR i in 1 .. v_str.COUNT LOOP

EXIT WHEN (v_amount IS NULL);

v_word := TO_CHAR (TO_DATE (SUBSTR (v_amount, LENGTH (v_amount) - 1,2), 'J'), 'Jsp' ) || v_str (i) || v_word; v_amount := SUBSTR (v_amount, 1, LENGTH (v_amount) - 2);

END LOOP; END IF; ELSE v_word := TO_CHAR ( TO_DATE ( TO_CHAR ( amount, '999999999') , 'J'),

'JSP'); END IF;

v_word := v_word || ' ' || v_word1 || ' only '; v_word := REPLACE (RTRIM (v_word), ' ', ' '); v_word := REPLACE (RTRIM (v_word), '-', ' ');

RETURN INITCAP (v_word); END to_word_i; XXIV. Query for deleting alternate even rows FROM a table :

DELETE FROM bias_table

WHERE (ROWID,0) IN (SELECT ROWID, MOD(ROWNUM,2) FROM bias_table); XXV. Query for deleting alternate odd rows FROM a table :

DELETE FROM bias_table

Page 182: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

178178178178

WHERE (ROWID,1) IN (SELECT ROWID, MOD(ROWNUM,2) FROM bias_table);

XXVI. Procedure for sending Email : CREATE OR REPLACE PROCEDURE Send_Mail

IS

sender VARCHAR2(50) := '[email protected]'; recipient VARCHAR2(50) := '[email protected]'; subject VARCHAR2(100) := 'Test Message'; message VARCHAR2(1000) := 'This is a sample mail ....';

lv_mailhost VARCHAR2(30) := 'HOTNT002'; l_mail_conn utl_smtp.connection; lv_crlf VARCHAR2(2):= CHR( 13 ) || CHR( 10 );

BEGIN l_mail_conn := utl_smtp.open_connection (lv_mailhost, 80); utl_smtp.helo ( l_mail_conn, lv_mailhost);

utl_smtp.mail ( l_mail_conn, sender);

utl_smtp.rcpt ( l_mail_conn, recipient); utl_smtp.open_data (l_mail_conn); utl_smtp.write_data ( l_mail_conn, 'FROM: ' || sender || lv_crlf);

utl_smtp.write_data ( l_mail_conn, 'To: ' || recipient || lv_crlf); utl_smtp.write_data ( l_mail_conn, 'Subject:' || subject || lv_crlf); utl_smtp.write_data ( l_mail_conn, lv_crlf || message); utl_smtp.close_data(l_mail_conn);

utl_smtp.quit(l_mail_conn); EXCEPTION WHEN OTHERS THEN

DBMS_OUTPUT.PUT_LINE('Error');

END; XXVII. Alternate Query for DECODE function :

SELECT case WHEN sex = 'm' THEN 'male' WHEN sex = 'f' THEN 'female' ELSE 'unknown'

END FROM mytable;

XXVIII. Create table adding Constraint to a date field to SYSDATE or 3 months later: CREATE TABLE bias_table(dt1 date DEFAULT SYSDATE, dt2 date,

CONSTRAINT check_dt2 CHECK ((dt2 >= dt1) AND (dt2 <= ADD_MONTHS(SYSDATE,3))); XXIX. Query to list all the suppliers who supply all the parts supplied by

supplier 'S2' : SELECT DISTINCT a.SUPP

FROM ORDERS a WHERE a.supp != 'S2' AND a.parts IN (SELECT DISTINCT PARTS FROM ORDERS WHERE supp = 'S2')

GROUP BY a.SUPP HAVING COUNT(DISTINCT a.PARTS) >=

Page 183: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

179179179179

(SELECT COUNT(DISTINCT PARTS) FROM ORDERS WHERE supp = 'S2'); Table : orders

SUPP PARTS -------------------- -------

S1 P1

S1 P2 S1 P3 S1 P4 S1 P5

S1 P6 S2 P1 S2 P2

S3 P2 S4 P2 S4 P4

S4 P5

XXX. Query to get the last Sunday of any month :

SELECT NEXT_DAY(LAST_DAY(TO_DATE('26-10-2001','DD-MM-YYYY')) - 7,'sunday') FROM DUAL; XXXI. Query to get all those who have no children themselves :

table data : id name parent_id

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

1 a NULL - the top level entry 2 b 1 - a child of 1 3 c 1

4 d 2 - a child of 2 5 e 2 6 f 3 7 g 3

8 h 4 9 i 8 10 j 9

SELECT ID FROM MY_TABlE WHERE PARENT_ID IS NOT NULL

MINUS SELECT PARENT_ID FROM MY_TABlE;

XXXII. Query to SELECT last N rows FROM a table : SELECT empno FROM emp WHERE ROWID in

(SELECT ROWID FROM emp MINUS SELECT ROWID FROM emp WHERE ROWNUM <= (SELECT COUNT(*)-5 FROM emp));

Page 184: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

180180180180

XXXIII. SELECT with variables: CREATE OR REPLACE PROCEDURE disp

AS xTableName varchar2(25):='emp'; xFieldName varchar2(25):='ename';

xValue NUMBER;

xQuery varchar2(100); name varchar2(10) := 'CLARK'; BEGIN xQuery := 'SELECT SAL FROM ' || xTableName || ' WHERE ' || xFieldName ||

' = ''' || name || ''''; DBMS_OUTPUT.PUT_LINE(xQuery);

EXECUTE IMMEDIATE xQuery INTO xValue; DBMS_OUTPUT.PUT_LINE(xValue);

END;

XXXIV. Query to get the DB Name:

SELECT name FROM v$database; XXXV. Getting the current default schema :

SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA') FROM DUAL; XXXVI. Query to get all the column names of a particular table :

SELECT column_name FROM all_tab_columns WHERE TABLE_NAME = 'ORDERS';

XXXVII. How do I spool only the query result to a file in SQLPLUS : Place the following lines of code in a file and execute the file in SQLPLUS :

set heading off set feedback off

set colsep ' ' set termout off set verify off spool c:\chaitu.txt

SELECT empno,ename FROM emp; /* Write your Query here */ spool off /

XXXVIII. Query for getting the current SessionID : SELECT SYS_CONTEXT('USERENV','SESSIONID') Session_ID FROM DUAL;

XXXIX. Query to display rows FROM m to n : To display rows 5 to 7 :

SELECT DEPTNO, ENAME, SAL FROM EMP

Page 185: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

181181181181

WHERE ROWID IN (SELECT ROWID FROM EMP WHERE ROWNUM <= 7

MINUS SELECT ROWID FROM EMP WHERE ROWNUM < 5);

OR SELECT ename FROM emp

GROUP BY ROWNUM, ename HAVING ROWNUM > 1 and ROWNUM < 3;

XXXX. Query to count no. Of columns in a table:

SELECT COUNT(column_name)

FROM user_tab_columns WHERE table_name = 'MYTABLE';

XXXXI. Procedure to increase the buffer length : dbms_output.enable(4000); /*allows the output buffer to be increased to the specified number of bytes */

DECLARE

BEGIN

dbms_output.enable(4000); FOR i IN 1..400 LOOP

DBMS_OUTPUT.PUT_LINE(i); END LOOP; END; /

XXXXII. Inserting an & symbol in a Varchar2 column :

Set the following to some other character. By default it is &. set define '~'

XXXXIII. Create Query to restrict the user to a single row : CREATE OR REPLACE TRIGGER TRIG_N BEFORE UPDATE OR DELETE ON EMP

FOR EACH ROW WHEN(OLD.EMPNO=7788) BEGIN

RAISE_APPLICATION_ERROR('-20001' ,'CANT DO ANY OPERATION ON THIS ROW'); END; SQL> UPDATE EMP SET SAL=SAL+1 WHERE EMPNO=7788;

Page 186: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

182182182182

XXXXIV. Query to get the first inserted record FROM a table : SELECT * FROM T_N WHERE ROWNUM=1;

XXXXV. How to concatenate a column value with multiple rows :

XXXXVI. Query to delete all the tables at once :

XXXXVII. SQL Query for getting Orphan Records :

XXXXVIII. How do you remove Trailing blanks in a spooled file :

Change the Environment Options Like this : set trimspool on set trimout on

XXXXIX. Samples for executing Dynamic SQL Statements : Sample :1

CREATE OR REPLACE PROCEDURE CNT(P_TABLE_NAME IN VARCHAR2) AS SqlString VARCHAR2(200);

tot number;

BEGIN SqlString:='SELECT COUNT(*) FROM '|| P_TABLE_NAME; EXECUTE IMMEDIATE SqlString INTO tot;

DBMS_OUTPUT.PUT_LINE('Total No.Of Records In ' || P_TABLE_NAME || ' ARE=' || tot); END; Sample :2

DECLARE sql_stmt VARCHAR2(200); plsql_block VARCHAR2(500);

emp_id NUMBER(4) := 7566; salary NUMBER(7,2); dept_id NUMBER(2) := 50; dept_name VARCHAR2(14) := ’PERSONNEL’;

location VARCHAR2(13) := ’DALLAS’; emp_rec emp%ROWTYPE; BEGIN EXECUTE IMMEDIATE 'CREATE TABLE bonus (id NUMBER, amt NUMBER)';

sql_stmt := 'INSERT INTO dept VALUES (:1, :2, :3)'; EXECUTE IMMEDIATE sql_stmt USING dept_id, dept_name, location;

sql_stmt := 'SELECT * FROM emp WHERE empno = :id'; EXECUTE IMMEDIATE sql_stmt INTO emp_rec USING emp_id;

plsql_block := 'BEGIN emp_pkg.raise_salary(:id, :amt); END;'; EXECUTE IMMEDIATE plsql_block USING 7788, 500;

Page 187: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

183183183183

sql_stmt := 'UPDATE emp SET sal = 2000 WHERE empno = :1 RETURNING sal INTO :2'; EXECUTE IMMEDIATE sql_stmt USING emp_id RETURNING INTO salary;

EXECUTE IMMEDIATE 'DELETE FROM dept WHERE deptno = :num' USING dept_id;

EXECUTE IMMEDIATE ’ALTER SESSION SET SQL_TRACE TRUE’; END;

Sample 3 CREATE OR REPLACE PROCEDURE DEPARTMENTS(NO IN DEPT.DEPTNO%TYPE) AS

v_cursor integer; v_dname char(20); v_rows integer;

BEGIN

v_cursor := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(v_cursor, 'select dname from dept where deptno > :x', DBMS_SQL.V7);

DBMS_SQL.BIND_VARIABLE(v_cursor, ':x', no); DBMS_SQL.DEFINE_COLUMN_CHAR(v_cursor, 1, v_dname, 20); v_rows := DBMS_SQL.EXECUTE(v_cursor); LOOP

IF DBMS_SQL.FETCH_ROWS(v_cursor) = 0 THEN EXIT; END IF;

DBMS_SQL.COLUMN_VALUE_CHAR(v_cursor, 1, v_dname);

DBMS_OUTPUT.PUT_LINE('Deptartment name: '||v_dname); END LOOP; DBMS_SQL.CLOSE_CURSOR(v_cursor);

EXCEPTION WHEN OTHERS THEN DBMS_SQL.CLOSE_CURSOR(v_cursor); raise_application_error(-20000, 'Unknown Exception Raised: '||sqlcode||'

'||sqlerrm); END;

XXXXX. Differences between SQL and MS-Access : Difference 1: Oracle : select name from table1 where name like 'k%';

Access: select name from table1 where name like 'k*'; Difference 2: Access: SELECT TOP 2 name FROM Table1; Oracle : will not work there is no such TOP key word.

XXXXXI. Query to display all the children, sub children of a parent :

SELECT organization_id,name FROM hr_all_organization_units WHERE organization_id in (

SELECT ORGANIZATION_ID_CHILD FROM PER_ORG_STRUCTURE_ELEMENTS CONNECT BY PRIOR ORGANIZATION_ID_CHILD = ORGANIZATION_ID_PARENT

Page 188: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

184184184184

START WITH ORGANIZATION_ID_CHILD = (SELECT organization_id FROM hr_all_organization_units

WHERE name = 'EBG Corporate Group')); XXXXXII. Procedure to read/write data from a text file :

CREATE OR REPLACE PROCEDURE read_data AS c_path varchar2(100) := '/usr/tmp'; c_file_name varchar2(20) := 'EKGSEP01.CSV';

v_file_id utl_file.file_type; v_buffer varchar2(1022) := This is a sample text’; BEGIN

v_file_id := UTL_FILE.FOPEN(c_path,c_file_name,'w'); UTL_FILE.PUT_LINE(v_file_id, v_buffer); UTL_FILE.FCLOSE(v_file_id);

v_file_id := UTL_FILE.FOPEN(c_path,c_file_name,'r');

UTL_FILE.GET_LINE(v_file_id, v_buffer); DBMS_OUTPUT.PUT_LINE(v_buffer); UTL_FILE.FCLOSE(v_file_id);

END; XXXXXIII. Query to display random number between any two given numbers :

SELECT DBMS_RANDOM.VALUE (1,2) FROM DUAL; XXXXXIV. How can I get the time difference between two date columns :

SELECT FLOOR((date1-date2)*24*60*60)/3600) || ' HOURS ' ||

FLOOR((((date1-date2)*24*60*60) - FLOOR(((date1-date2)*24*60*60)/3600)*3600)/60) || ' MINUTES ' || ROUND((((date1-date2)*24*60*60) -

FLOOR(((date1-date2)*24*60*60)/3600)*3600 - (FLOOR((((date1-date2)*24*60*60) - FLOOR(((date1-date2)*24*60*60)/3600)*3600)/60)*60)))

|| ' SECS ' time_difference FROM my_table; XXXXXV. Display Nth MAX Sal of Employee where Salary must be Distinct:

SELECT * FROM EMP WHERE SAL=(SELECT SAL FROM (SELECT DISTINCT(SAL) FROM EMP ORDER BY SAL DESC) HAVING ROWNUM=4

GROUP BY ROWNUM, SAL) XXXXXVI. Display Current Username which you have logged in:

1. SELECT USER FROM DUAL;

2. SELECT S.USERNAME FROM V$PROCESS P, V$SESSION S

WHERE P.ADDR = S.PADDR AND

Page 189: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

185185185185

S.AUDSID = USERENV('SESSIONID')

XXXXXVII. Will This Query Works and What will be the output: 1. SELECT 'A ''WRONG'' word.' FROM DUAL;

2. SELECT DISTINCT * FROM EMP;

3. SELECT ROWID

ROWNUM,

ENAME,

SAL

FROM EMP;

XXXXXVIII. Count the Columns in the table name:

SELECT

COUNT(*)

FROM USER_TAB_COLUMNS

WHERE TABLE_NAME LIKE 'EMP'

Page 190: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

186186186186

EEEEEEEERRRRRRRRPPPPPPPP QQQQQQQQUUUUUUUUEEEEEEEERRRRRRRRYYYYYYYY BBBBBBBBOOOOOOOOOOOOOOOOKKKKKKKK

1. Can we give extensions in executable file name?

a) No, because it wont allow periods and spaces in execution file name. 2. How many colors are there in forms?

b) Yellow - Mandatory White - Optional

Blue - Query Mode

Grey - Read Only

3. What is the PRIORITY field in the Concurrent Program?

a) According to user priority the concurrent program will run.

4. What are the mandatory columns in Executable?

a) Executable Short name

Applications

Executtion Method Execution file name

5. What is the Application in Executable?

a) It will give the location of the object.

6. What is the Range function in the concurrent program parameter window?

a) It will give low and high values.

7. What is Copy to Button in concurrent program window?

a) It is used to get the new copy of existing concurrent program with parameters

and Incompatibilities.

8. What is a Session Control button in concurrent program window?

a) If we have bulk of inserts and updates when we want to rollback those we will use It has three parametes

� Consumer group � Rollback Segment

� Optimizer mode

9. What are the types of incompatibilities concurrent program window?

a) Two types � Domain � Global

10. What are the types of Output formats in concurrent program window?

a) There are 6 types of Output formats

� HTML

� PDF � PCL � TEXT

� XML � POST SCRIPT

Page 191: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

187187187187

11. What are the Styles in concurrent program window?

> A4 - 80×66 > landscape - 132×66 > landwide - 180×66

> Bacs - 2000×66

12. What is Application Top? What are the types and Purpose?

a) When we connect to the server we will find the top called application top. Its Types.

� Product top � Custom top

Product top is the default top built by the manufacturer and Custom top is used to select the Client for his business purposes. Customizations are done with the Custom top.

13. What is US folder in the Custom Top?

It is a language specific folder used to store the G.U.I like reports and forms.

14. what are mandatory parameters of Procedures and what the use of those?

a) Errorbuf: It is used to returns the error messeges and sent it to the log file. b) Retcode: It is used to show the status of the Procedure with 0,1,2 0 for Completed Normal 1 for Completed Warning 2 for Completed Error

15. What is Apps Schema and Schema?

a) Schema: Schema is the location in database contains database objects like views, tables, synonyms. Apps Schema: It is used to connect the all schemas to get the information from The database.

16. Token

a) Use to transfer values to report builder and it is not case sensitive.

17. AOL Objects?

a) The objects which reside under the FND tables are AOL Objects.

18. Difference between FORM, Function and Menu?

a) A menu is a hierarchical arrangement of functions and menus. Each responsibility has a menu assigned to it. A function is a part of an application that is registered under a unique name for the purpose of assigning it to be including it from a menu.

19. Valueset Definition?

a) Valueset is nothing but a list of values with validation.

20. Naming Conventions of Valuset?

a) While defining the Valueset we have to follow some naming conventions No Spaces it will allow, It will Allow periods, Special Characters, and it is Case sensitive.

Page 192: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

188188188188

1) What is ERP? Architecture of apps?

A packaged business software system that lets a company automate and integrate the

majority of its business processes; share common data and practices across the

enterprise; [and] produce and access information in a real-time environment.

2) Tell me some thing about SQL-LOADER.

Sql * loader is a bulk loader utility used for moving data from external files into the

oracle database.

Sql * loader supports various load formats, selective loading, and multi-tables loads.

1) Conventional

--The conventional path loader essentially loads the data by using standard ‘insert’

statement.

2) Direct

-- the direct path loader (direct = true) by possess of logic involved with

that, and loads directly in to the oracle data files.

EX:-

My data.csv file

1001, “scott tiger”,1000,40

1002,”gvreddy”,2345,50

Load data

Infile ‘c:\data\mydata.csv’

Into table emp

Fields terminated by “,” optionally enclosed by ‘”’

(empno, empname,sal,deptno)

>sqlldr scott/tiger@vis

control=loader.ctl log= gvlog.log bad=gvbad.bad discard=gvdis.dsc .

3) how do u dump data from pl/sql block to flat files?

Using utl_file package, we can dump data from pl/sql block to flat file.

PRE-REQUIREMENTS for UTL_FILE is specify the accessible directories for the UTL_FILE function in the initialization file (INIT.ORA) Using the UTL_FILE_DIR parameters. Ex: UTL_FILE_DIR = <Directory name>

EX:- --remember to update INITSID.ORA,

--utl_file_dir = ‘c:\oradata’

Declare

Fp utl_file.file_type;

Begin

Fp := utl_file.fopen(c:\oradata’,tab1.txt’,’w’);

Page 193: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

189189189189

Utl_file.putf(fp,’%s %s \n ‘text field’, 55);

Utl_file.fclose(fp);

End;

4) What is SET-OF-BOOKS?

Collection of Chart of Accounts and Currency and Calendars is called SOB

5) What is the interface?

Interface Table is a table which is used as medium for transfer of data between

two systems.

6) What is invoice?

Send you a request for payment

7) What is INBOUND and OUT BOUND? (Different types of interfaces)

Inbound Interface:

For inbound interfaces, where these products are the destination,

interface tables as well as supporting validation, processing, and maintenance

programs are provided.

Outbound Interface:

For outbound interfaces, where these products are the source, database

views are provided and the destination application should provide the validation,

processing, and maintenance programs

8) Tell me what r the Base tables in the AR?

hz_parties (party_id) (store info about org, groups and people)

HZ_PARTIES stores information about parties such as organizations, people, and groups, including the identifying address information for the party.

hz_cust_accounts (cust_account_id) HZ_CUST_ACCOUNTS stores information about customer relationships. If a party becomes a customer, information about the customer account is stored in this table. You can establish multiplecustomer relationships with a single party, so each party

can have multiple customer account records in this table.

hz_cust_acct_sites_all (cust_acct_site_id)

HZ_CUST_ACCT_SITES_ALL stores information about customer sites.One customer account can have multiple sites. The address is maintained in HZ_LOCATIONS.

hz_cust_site_uses_all (site_use_id)

HZ_CUST_SITE_USES_ALL stores information about site uses or business purposes. A single customer site can have multiple site uses, such as bill to or ship to,

and each site use is stored as a record in this table.

hz_party_sites (party_site_id) HZ_PARTY_SITES stores information about the relationship between Parties and Locations. The same party can have multiple party sites.Physical addresses are

stored in HZ_LOCATIONS.

Page 194: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

190190190190

hz_locations (location_id) HZ_LOCATIONS stores information about physical locations.

hz_Person_Profiles (person_profile_id) HZ_PERSON_PROFILES stores detail information about people.

hz_Organization_Profiles (organization_profile_id)

HZ_ORGANIZATION_PROFILES stores credit rating, financial statistics, socioeconomic and corporate linkage information for business sites. The primary key for this table is ORGANIZATION_PROFILE_ID.

9) What r the table’s interface tables in the customer interface tables?

1) Ra_customers_interface_all

This table stores customer, address, and business purpose information. You do

not have to enter values in this table if you do not want to import customers, addresses, or business purposes.

ADDRESS1 through 4 Enter the address for your customer in these four columns. You can enter up to four lines of an address.

Validation: If you enter a value in ORIG_SYSTEM_ADDRESS_REF, you must enter a value in ADDRESS1. For multiple rows with the same address reference, insert values in address

1–4.

Destination: HZ_LOCATIONS.ADDRESS1,

HZ_LOCATIONS.ADDRESS2, HZ_LOCATIONS.ADDRESS3, HZ_LOCATIONS.ADDRESS4

2) Ra_customer_profile_int_all

A customer level profile must exist in A_CUSTOMER_PROFILES_INTERFACE for new

customers and each bill–to business purpose.

3) Ra_contact_phones_int_all

This table stores telephone numbers for customers, addresses and contacts as well as

contacts for customers and addresses. 4) Ra_customer_banks_int_all

This table stores bank information for a customer or for a specific Bill–To address, you

must enter a bank account for this customer, 5) Ra_cust_paymethod_int_all

To import payment methods for customers and bill–to business purposes,

10) What r the staging tables in the customer interface?

Ra_customers_stg

Ra_customers_address_stg

Ra_customers_point_stg

Ra_customers_contact points_stg

Ra_customers_relate_stg

Ra_customer_error.

Page 195: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

191191191191

11) Tell me some mandatory columns in the customer interface tables?

a) Ra_customers_interface_all

1) Orig_system_customer_ref

2) insert_update_flag

3) customer_number

4) customer_status

5)last_updated_by

6) last_updated_date 7)created_by

8) creation_date. b) Ra_customer_profile_int_all

1) customer_profile_class_name

c) Ra_contact_phones_int_all

1)orig_system_telephone_ref

2)telephone

3) telephone_type

d) Ra_customer_banks_int_all

1) bank_a/c_name

2)bank_a/c_no

3)bank_a/c_currency_code

e) Ra_cust_paymethod_int_all

1) payment_method_name

12) Tell me the Navigation for customer interface?

Receivables � Interface � Customers

Page 196: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

192192192192

1. What tables cannot be updated through customer interface?

No updates will be allowed to be made through customer interface for Following tables.

RA_SITE_USES_ALL

RA_CUSTOMER_RELATIONSHIPS_ALL

RA_CUST_RECEIPT_METHODS

AP_BANK_BRANCHES

AP_BANK_ACCOUNTS_ALL

AP_BANK_ACCOUNT_USES_ALL

2. How to send additional customer and address information through customer

interafce

Here is where attribute columns are used.

* Additional Customer data can be populated in

RA_CUSTOMERS_INTERFACE_ALL.customer_attribute1 to 15

This will go into RA_CUSTOMERS.attribute1 to 15

* Additional address information can be populated in

RA_CUSTOMERS_INTERFACE_ALL.address_attribute1 to 15

This will go into RA_ADDRESSES_ALL.attribute1 to 15

And so on.

5. What should be the batch size (number of customer records) general

guidelines for optimal performance

About 10,000 records per bacth is ideal, it is suggested to keep the batch

size small.

6. Why does customer interface error out if there is mismatch in

address information?

Because the code validates against these mismatches. arplscin.sql and arplbcin.sql It

validates the address being inserted or updated with respect to the tax location flexfeild

structure. For each row being inserted or updated in RA_CUSTOMERS_INTERFACE, and

that has not already been marked in error, the set_location_ccid function is called to

return either an existing ccid for the address entered or to create a new entry in

AR_LOCATION_VALUES for this new address. The RA_CUSTOMERS_INTERFACE record

is then updated with the value of the ccid returned.

7. How do you send records at customer level profile and address/site

level profile?

For every customer record in RA_CUSTOMERS_INTERFACE_ALL, insert two records in

table RA_CUSTOMER_PROFILES_INT_ALL. (Refer Note: 1070800.6 )

8. Does Customer Interface import salesperson data?

No, Refer Enhancement Bug: 147495

Page 197: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

193193193193

9. Customer Interface process can be used for updating the customer

information How does the UPDATE work?

Current functionality of Customer Interface is to update all the data. You cannot run

Customer Interface to update only changed data. (Refer Bug: 879121 for the intended

functinality)

10. What are some of the important fields that Customer Interface does not

load?

Not all fields in RA_CUSTOMERS are being loaded by the interface.

SIC_CODE

GSA_INDICATOR

FOB_POINT

SALES_CHANNEL_CODE

FREIGHT_TERM

WAREHOUSE_ID

PRICE LIST

SHIP_PARTIAL

PAYMENT_TERM_ID in RA_SITE_USES.PAYMENT_TERM_ID

(Refer Enhancement Request Bug: 245300)

11. New TCA/Customer Model, how to load customer as PERSON or

ORGANIZATION through Customer Interface?

a) Populate ra_customers_interface_all . person_flag = 'Y'

Run Customer Interface process will load this record as PERSON

b) Populate ra_customers_interface_all . person_flag = 'N' ( or NULL )

Run Customer Interface process will load this record as ORGANIZATION

12) Tell me what is the procedure to develop an interface?

a. First we will get the Requirement document.

b. We will create control file based on that plot file.

c. Then the control files which loads the data into staging tables.

d. Through pl/sql programs we will mapping and validate the data and then

dump into the interface tables.

e. Through the standard programs we will push the data from interface tables

to Base tables.

13) What validations u did in the customer interface?

f. customer name : the same customer reference can’t have different

customer names with in this table

HZ_PARTIES.PARTY_NAME

Page 198: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

194194194194

g. customer number : must be null if your r using automatic customer

numbering, must exit if you are not using automatic customer numbering.

This value much be unique with in HZ_PARTIES

h. customer status : must be ‘A’ for active or ‘I’ for inactive

HZ_PARTIES_STATUS

i. bank account num or bank account currency code :

if the bank a/c already exist do not enter a value

if the bank a/c does not exist you must enter a value

j. bank a/c name : it must exist in AP_BANK_ACCOUNTS or if it does not

exist values must exist for BANK_A/C_CURRENCY_CODE

BANK_A/C_NUM

BANK_NAME

BANK_BRANCH_NAME

Note : every interface table has two error msg

1) Error code.

2) Error msg.

14) How can u call a standard interface program from sql or pl/sql code?

FND_REQUEST.SUBMIT_REQUEST (‘PO’,’EXECUTABLE NAME’,,,,PARAMETERS)

15) API’s FOR CUSTOMER INTERFACE?

HZ_CUST_A/C_VZPUB.UPDATE_CUST_A/C

HZ_CUST_A/C_VZPUB.CREATE_CUST_A/C

FND_PROFILES

FND_APPLICATIONS

FND_GLOBAL

FND-FILE

FND_CONCSUB(can submit conc program in host invironment)

16) Tell me some API?

FND_FILE.PUTLINE(FND_FILE.LOG)

FND_FILE.PUTLINE(FND_FILE.OUTPUT)

Is the Program exits, delete conc program and its executables.

IF FND_PROGRAM.PROGRAM_EXITS(‘EMP’,APPLICATION_NAME_IN) THEN FND_PROGRAM.DELETE_PROGRAM(‘EMP’,APPLICATION_NAME_IN)

FND_PROGRAM.DELETE_EXECUTABLE(‘EMP’,APPLICATION_NAME_IN) END;

17) What are profile options?

Is the Functional and Technical behavior of Oracle Applications Package.

EX: - I want to assign the user3 responsibility to p4 printer then

System Administrator ����Profile ����System

(FND_PROFILE_OPTIONS)

Page 199: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

195195195195

18) Oracle E-Business suite?

Oracle apps + analytical components software.

(Oracle discover)

(Oracle sales analyzer) (Oracle financial analyzer) (Oracle marketing analyzer)

19) What is multi org?

“Legal entity has more than one operating unit is called as multi org”

a) Business group --- Human resources information is secured by

Business group

b) Legal entity. --- inter-company and fiscal/tax reporting.

Security ���� responsibility ���� operating unit.

c) Operating unit --- secures AR, OE, AP, PA and PO Information.

d) Organizations --- is a specialize unit of work at particular locations

20) What are the User PARAMETERS in the Reports?

P_CONC_REQUEST_ID

P_FLEX_VALUE

21) FND USER EXITS:-

FND SRWINIT sets your profile option values, multiple organizations and allows

Oracle Application Object Library user exits to detect that they have been called by an

Oracle Reports program.

FND SRWEXIT ensures that all the memory allocated for AOL user exits have been

freed up properly.

FND FLEXIDVAL are used to display flex field information like prompt, value etc

FND FLEXSQL these user exits allow you to use flex fields in your reports

FND FORMAT_CURRENCY is used to print currency in various formats by using formula

column

22) PL/SQL stored procedure parameters? (or) what are the two parameters

that are mandatory for pl/sql type concurrent program? Procedure/function (ERRBUF OUT RETCODE OUT ………………….)

ERRBUF :- Used to write the error message to log or request file. RETCODE :- Populate log request file with program submission details info.

23) What is Value Set?

--The value set is a collection (or) container of values.

--When ever the value set associated with any report parameters. It provides list of

values to the end user to accept one of the values as report parameter value.

Page 200: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

196196196196

-- If the list of values needed to be dynamic and ever changing and define a table

based values set.

24) What r the validation types?

1) None -------- validation is minimal.

2) Independent ------input must exist on previously defined list of values

3) Dependent ------input is checked against a subset of values based on a

prior value.

3) Table ----- input is checked against values in an application table

4) Special ------values set uses a flex field itself.

5) Pair ------ two flex fields together specify a range of valid values.

6) Translatable independent ----- input must exist on previously defined list

of values; translated values can be used.

7) Translatable dependent ------- input is checked against a subset of values

based on a prior values; translated value can be used.

25) Form development process?

a) open template form

b) Save as <your form>.fmb

c) Change the form module name as form name.

d) Delete the default blocks, window, and canvas

e) Create a window.

f) Assign the window property class to window

g) Create a canvas (subclass info)

h) Assign canvas property class to the canvas

I) assign the window to the canvas and canvas to the window

j) Create a data block

k) Modify the form level properties. (sub class item � Text item)

l) Modify the app_cusom package. In the program unit.

m) Modify the pre-form trigger (form level)

n) Modify the module level properties ((console window, First navigation

p) Save and compile the form.

Place the .fmx in the server directory.

25.a) Register in the AOL

APPLICATION � FORM

APPLICATION � FUNCTION

APPLICATION � MENU

Page 201: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

197197197197

26) How does u customize the Reports?

a. Identify the Short name of the standard report in which module we have

to customize

Ex: - if u wants to customize in the AR module path is

Appl top\ar\11.5.0\reports\US\ .rdf

b. Open the .rdf file in Report builder and change the name of the module.

c. Open the data module and modify the query (what is client requirements)

assign the columns to the attributes.

d. Go to report wizard and select, what r the newly created columns.

e. Then Compile it. Then u will get a .rep file in the specified module. If it is

not in the specified directory then we have to put in the server directory.

f. Then Register in the AOL Concurrent ���� Executable.

Concurrent ���� Program.

g. Go to system administrator Security����Responsibility����request.

h. Add and assign a concurrent program to a request group

27) Registering parametric report?

Any applications will have two parameters,

1) from-period 2) to-period

a) Go to object navigator and create the parameters.

User parameters ���� from_no, to_no (data type char and width 30)

b) Open the report layout and write the query(we have to reg the table in AOL)

Select empno,ename,from g_emp where empno between :from_no and to_no

c) Compile and put the .RDP file in the server directory.

d) Registering in AOL.

Concurrent ���� executable

Concurrent ���� program then go to “PARAMETERS”

e) Go to Application ���� validation ����set. then go to “EDIT INTO”

After entering the VALUE SETS (1) And TOKENS (2)

f) Go to Administrations

Sequrity ���� responsibility ���� Request

h) Add and assign a concurrent program to a request group

28) Tell me some report names and their table names in GL, AP, AR, and PO?

1) ra_customer_trx_all customer_trx_id

trx_number (invoice no, debit memo no, credit memo no)

cust_trx_type_id 2) ra_customer_lines_all (details of invoice) cutomer_trx_id

3) ar_payment_schdules_all

Page 202: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

198198198198

check_id This table stores all transactions except adjustments and miscellaneous cash receipts. Oracle Receivables updates this table when activity occurs against an

invoice, debit memo, chargeback, credit memo, on account credit, or receipt. 4) ra_cust_trx_types_all (invoice types)

cust_trx_type_id

5) ra_batches_all

Batch_id This table stores information about each receipt batch that you create in

Oracle Receivables. Each row includes information about a specific batch such as batch source, status, batch type, control count, and control amount

6) ra_receivable_application_all 7) ra_adjustments_all

This table stores information about your invoice adjustments. Each row includes

general information about the adjustment you are making such as activity name, amount, accounting information, reason, and type of adjustment. You need one row for each adjustment you are making to an invoice.

8) ra_cash_receiots_all

Cash_receipt_id This table stores one record for each receipt that you enter. Oracle

Receivables creates records concurrently in the AR_CASH_RECEIPT_HISTORY_ALL, AR_PAYMENT_SCHEDULES_ALL, and AR_RECEIVABLE_APPLICATIONS tables for invoice–related receipts.

1) ap_invoice_all invoice_amount, base_amount, payment_status_flag(‘y’ –fully paid ‘n’—unpaid

‘p’ –partially paid) 2) ap_invoice_payments_all invoice_id,

3) ap_invoice_distibutions_All amount, base_amount, dist_code_combination_id, line_type_lookup_code

4) ap_payment_schdules payment_status_flag(“ ‘’’’’”) 5) ap_payment_dustributions_all 6) ap_checks_all check_id,

AP_CHECKS_ALL stores information about payments issued to suppliers or refunds received from suppliers. You need one row for each payment you issue to a supplier or refund received from a supplier. Your Oracle Payables application uses this

information to record payments you make to suppliers or refunds you receive from suppliers.

7) ap_accounting_events_all

8) ap_bank_accounts_all

AP_BANK_ACCOUNTS_ALL contains information about your bank accounts. You need one row for each bank account you define. Each bank account must be

affiliated with one bank branch. When you initiate an automatic payment batch, enter a

Page 203: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

199199199199

manual check, or create a Quick payment, you can select a bank account that you define in this table.

9) ap_bank_accounts_uses_all AP_BANK_ACCOUNT_USES_ALL stores information for the internal and external bank accounts you define in Oracle Payables and Oracle Receivables applications.

1) po_vendors_all

2) po_vendors_sites_all

3) po_headers_all

po_header_id

4) po_lines_all

po_line_id

5) po_line_locations_All

6) po_distributions_all

po_distribution_id,

1) Gl_code_combinations GL_CODE_COMBINATIONS stores valid account combinations for each Accounting Flexfield structure within your Oracle General Ledger application. Associated with each account are certain codes and flags, including whether the account is enabled,

whether detail posting or detail budgeting is allowed, and others. 2) Gl_je_batches.

GL_JE_BATCHES stores journal entry batches.

3) Gl_je_headers GL_JE_HEADERS stores journal entries. There is a one–to–many relationship

between journal entry batches and journal entries. Each row in this table includes the associated batch ID, the journal entry name and description, and other information about the journal entry. This table corresponds to the Journals window of the Enter Journals form. STATUS is ’U’ for unposted, ’P’ for posted. Other statuses indicate that an

error condition was found. A complete list is below. 4) Gl_je_lines.

GL_JE_LINES stores the journal entry lines that you enter in the Enter Journals form. There is a one–to–many relationship between journal entries and journal entry

lines. Each row in this table stores the associated journal entry header ID, the line number, the associated code combination ID, and the debits or credits associated with

the journal line. STATUS is ’U’ for unposted or ’P’ for posted

5) Gl_set of books GL_SETS_OF_BOOKS stores information about the sets of books you define in your Oracle General Ledger application. Each row includes the set of books name, description, functional currency, and other information. This table corresponds to the Set of Books form.

6) Gl_periods GL_PERIODS stores information about the accounting periods you define using the Accounting Calendar form. Each row includes the start date and end date of the period, the period type, the fiscal year, the period number, and other information. There

is a one–to–many relationship between a row in the GL_PERIOD_SETS table and rows in this table.

Page 204: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

200200200200

1) OPEN-DEBIT MEMO REPORT? This report shows all the open-debit memo transactions, based on customer number and dates.

Columns :- type, customer_no, trx_no, amt_due, remaining. Parameter :- type, customer, from_date, to_date. 2) GENERATING POSITIVE PAY FILE FOR BANK REPORT?

Basically this report generates a flat file of all the payments in order to send in to

the bank. 3) UPDATE POSITIVEPAY CHECKS REPORT?

This report which updates the data into the (AP) account payables system from the plot file, the file which is sent by bank

4) UPDATE POSITIVEPAY OUT STANDING CHECKS? This report which shows the out standing checks

5) CUSTOMER PAYMENT DETAILS REPORT? Which shows each customer original amount, amount pay and due amount based on transaction type (books, pens)

Transaction types in AR

Credit memo transaction types

Invoice, debit memo, and charge back transaction types

Commitment transaction types

30) HOW DO YOU RECTIFY THE ERRORS IN INTERFACE TABLES?

Depending on the naming convention used, errors appear in either alphabetical order or

by error code number.

31) How do u identity its name of report?

System administrator � concurrent � program � define

System administrator � concurrent � program �executable

32) Who information’s?

1) Created by

2) Creation date

3) Last _updated by

4) last_update_date

5) last_update_value

33) FLEX FIELDS?

Used to capture the additional business information.

DFF KFF

Additional Unique Info, Mandatory

Captured in attribute prefixed columns Segment prefixed

Not reported on standard reports Is reported on standard reports

To provide expansion space on your form With the help of []. [] Represents descriptive Flex field.

FLEX FILED : DESCRIPTIVE : REGISTER

Used for entering and displaying key information For example Oracle General uses a key Flex

field called Accounting Flex field to uniquely identifies a general account.

FLEX FILED : KEY : REGISTER

Page 205: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

201201201201

Oracle Applications KEY FLEX FIELDS

1) GL :- ACCOUNTING

2) AR :- SALES TAX LOCATION, TERRITORY,

3) AP :- BANK DETAILS, COST ALLOCATION, PEOPLE GROUP

Oracle Applications DESCRIPTIVE FLEX FIELDS (Partial)

1) GL :- daily rates 2) AR :- credit history, information

3) PA :- bank branch, payment terms, site address,

34) What are the requests groups? a) Single request: - this allows you to submit an individual request. b) Request set : - this allows you to submit a pre-defined set of requests.

35) Sys Admin Module? a) Define Custom Users, b) Define Login Users, c) Register oracle DB users,

d) Define Concurrent Programs, e) Register Concurrent Executables, f) Setting Profile

Option Values, g) Define Request Types. 36) AOL?

a) Registering tables. b) Registering views c) Registering db sequences d) Registering profile options e) Registering lookups and lookup codes f) Registering forms g) Registering Form and Non-Form functions i) registering Menus and sub-menus. j) Registering DFF and KFF. k) Libraries

37) What r the type Models in the system parameters of the report?

1) Bit map 2) Character mode 38) .What is SRW Package? (Sql Report Writer)

The Report builder Built in package know as SRW Package This package extends reports ,Control report execution, output message at runtime, Initialize layout fields, Perform DDL statements used to create or Drop temporary table, Call User Exist, to format width of the columns, to page break the column, to set the colors

Ex: SRW.DO_SQL, It’s like DDL command, we can create table, views, etc.

SRW.SET_FIELD_NUM SRW. SET_FILED_CHAR SRW. SET FILED _DATE

39) Difference between Bind and Lexical parameters?

BIND VARIABLE:

-- are used to replace a single value in sql, pl/sql -- bind variable may be used to replace expressions in select, where, group, order

by, having, connect by, start with cause of queries. -- bind reference may not be referenced in FROM clause (or) in place of reserved words or clauses.

LEXICAL REFERENCE:

-- You can use lexical reference to replace the clauses appearing AFTER select, from, group by, having, connect by, start with. -- You can’t make lexical reference in pl/sql statements.

40) Matrix Report: Simple, Group above, Nested

Simple Matrix Report: 4 groups 1. Cross Product Group 2. Row and Column Group

3. Cell Group

Page 206: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

202202202202

4. Cell column is the source of a cross product summary that becomes the cell content.

Frames: 1. Repeating frame for rows(down direction)

2. Repeating frame for columns(Across ) 3. Matrix object the intersection of the two repeating frames

41) what is Flex mode and Confine mode? Confine mode

On: child objects cannot be moved outside their enclosing parent objects. Off: child objects can be moved outside their enclosing parent objects. Flex mode:

On: parent borders "stretch" when child objects are moved against them.

Off: parent borders remain fixed when child objects are moved against them.

42) What is Place holder Columns?

A placeholder is a column is an empty container at design time. The placeholder can hold a value at run time has been calculated and placed in to It by pl/sql code from

anther object. You can set the value of a placeholder column is in a Before Report trigger. Store a Temporary value for future reference. EX. Store the current max salary as records are retrieved.

43) What is Formula Column? A formula column performs a user-defined computation on another column(s) data, including placeholder columns.

44) What is Summary columns?

A summary column performs a computation on another column's data. Using the Report Wizard or Data Wizard, you can create the following summaries: sum, average, count, minimum, maximum, % total. You can also create a summary column manually

in the Data Model view, and use the Property Palette to create the following additional summaries: first, last, standard deviation, variance.

45) What is cursor?

A Cursor is a pointer, which works on active set, I.e. which points to only one row at

a time in the context area’s ACTIVE SET. A cursor is a construct of pl/sql, used to

process multiple rows using a pl/sql block.

46) Types of cursors? 1) Implicit: declared for all DML and pl/sql statements. By default it selects

one row only. 2) Explicit: Declared and named by the programmer. Use explicit cursor to

individually process each row returned by a multiple

statements, is called ACTIVE SET. Allows the programmer to

manually control explicit cursor in the Pl/sql block a) declare: create a named sql area b) Open: identify the active set. c) Fetch: load the current row in to variables. d) Close: release the active set.

CURSOR ATTRIBUTES

a) %is open: evaluates to true if the cursor is open.

b) %not found: evaluates to true if the most recent fetch does not return a row

Page 207: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

203203203203

c) %found: evaluates to true if the most recent fetch returns a row. d) %row count: evaluates to the total number of rows returned to far.

Example for cursor: 1) Declare

Vno emp.empno%type; Vname emp.ename %type; Cursor emp_cursor is Select empno,ename

From emp; Begin Open cursor;

For I in 1..10 loop Fetch emp_cursor into vno,vname;

Dbms_output.putline(to_char(vno) ||’ ‘||vname); End if;

End; 2) Begin Open emp_cursor; Loop Fetch when emp_cursor % rowcount >10 or

Emp_curor % not found; Bdms_output_put_line(to_char(vno)||’ ‘|| vname); End loop;

Close emp_cursor;

End;

CURSOR FOR LOOP

A) cursor for loop is a short cut to process explicit cursors

B) it has higher performance

C) cursor for loop requires only the declaration of the cursor, remaining things like

opening, fetching and close are automatically take by the cursor for loop

Example:

1) Declare

Cursor emp_cursor is

Select empno,ename

From emp;

Begin

For emp_record in emp_cursor loop

Dbms_output.putline(emp_record.empno);

Dbms_output.putline(emp_record.ename)

End loop

End;

Can we create a cursor without declaring it?

Yes – by using cursor for loop using subqueries.

BEGIN

Page 208: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

204204204204

FOR emp_record IN ( SELECT empno, ename FROM emp) LOOP -- implicit open and implicit fetch occur

IF emp_record.empno = 7839 THEN ... END LOOP; -- implicit close occurs

END;

a) for update clause:

1) use explicit locking to deny access for the duration of a transaction 2) lock the rows before update or delete Ex : select …….

From……. For update[ of column ref] [no_wait] b) where current of clause? 1) use cursor to update or delete the current row Where current of < column ref>

47) Attribute data types?

1) %type 2) %row type.

48) Exception Handling? Is a mechanism provided by pl/sql to detect runtime errors and process them with out halting the program abnormally

1) pre-defined 2) user-defined.

PRE-DEFINED:

1) cursor_already_open--------attempted to open an already open cursor. 2) Dup_val_on_index --------attempted to insert a duplicate values.

3) Invalid_cursor -------- illegal cursor operation occurred. 4) Invalid_number -------- conversion of character string to number fails. 5) Login_denied ---------loging on to oracle with an invalid user name

and password. 6) program_error -------- pl/sql has an internal problem. 7) storage_error -------- pl/sql ran out of memory or memory is

corrupted.

8) to_many_row ---------single row select returned more than one row. 9) value_error -------- arithmetic,conversion,truncation or size constraint error occurred. 10) zero_devided -------- attempted to divided by zero.

USER-DEFINED:

Declare : name the exception Raise : explicitly raise the exception by using the raise statements Reference: exception handing section.

The Raise_Application_Error_Procedure:

� You can use this procedure to issue user-defined error messages from stored sub

programs. � You can report errors to your applications and avoid returning unhandled

exceptions.

Raise_Application_Error(error_number,message[,{true/false}]

Error number � between -20000 to -20999

Page 209: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

205205205205

pragma exception_init? It tells the compiler to associate an exception with an oracle error. To get an error message of a specific oracle error.

Ex: pragma exception_init(exception name, oracle error number)

Example for Exceptions?

1) Check the record is exist or not?

Declare E emp% rowtype Begin

e.empno := &empno; select * into e from emp where empno =e.empno;

Dbms_output.putline(‘empno’ || e.empno); Exception

When no_data_found then Dbms_output.putline(e.empno ||’doest exist’); End;

2) User defined exceptions? Define p_dept_desc =’gvreddy’

Define p_dept_number =1236 Declare E_invalid_dept exception;

Begin Update departments Set dept_name=’&p_dept_desc’ Where dept_id =’&p_dept_number’;

If sql% not found then Raise e_invalid_departments;

End if;

Commit; Exception When e_invalid_departments then Dbms_output.putline(‘no such dept’);

End; 49) What is REF Cursor?

To execute a multi-row query, oracle opens an unnamed work area that stores

processing information, to access the information, an explicit, which names the work

area or, a cursor variable, which points to the work area.

where as a cursor always refers to the same query work area, a cursor variable can

refer to a different work areas, cursor variable area like ‘c’ or ‘pascal’ pointers, which

hold the memory location(address) of some object instead of the object itself.

So, declaring a cursor variable creates a pointers, not an object.

50) Can u define exceptions twice in same block? No 51) Can you have two functions with the same name in a pl/sql block?

Yes

52) Can you have two stored functions with in the same name? Yes 53) Can function be overload? Yes

Page 210: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

206206206206

54) What is the maximum number of statements that can be specified in a trigger statement? One.

55) Stored procedure? Stored procedure is a sequence of statements that perform specific function.

56) What is procedure?

---- is a named pl/sql block to perform a specific task.

---- A procedure may have DML statements.

---- It may or may not return a value.

---- Procedure can return more than one value.

Example for procedure

1) To accept the year as a parameter and list emp belong to the year?

Create or replace

Procedure empy(y number) is Cursor emp_cursor is Select * from emp where to_char(hiredate,’yyyy’)=’y’;

Emp_record emp%rowtype; Begin For emp_record in emp_cursor loop Print (emp_record.empno);

Print (emp_record.ename); Print (emp_record.sal); End loop;

End;

Output : var empx number;

Begin :empx := ‘1234’; End; Exec empy(:empx);

Print empy; 57) What is function?

---- is a named pl/sql block to perform a specific task, is mainly used for calculation

purpose.

---- A function is called as part of an exception.

---- Every function should return a value

Example for function

Create or replace

Function get_sal(p_id in emp.emp_no% type) Return number Is

v_sal emp.sal%type :=0; Begin Select salary into v_salary From emp Where emp_no = p_id;

Return v_salary End get_sal; End;

Page 211: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

207207207207

Output : var g_sal number;

Exec :g_sal := get_sal(99); Print g_salary;

58) Can functions be overloaded ?

Yes.

59) Can 2 functions have same name & input parameters but differ only by

return datatype

No.

60) What is the package?

---- Group logically related pl/sql types, items and subprograms.

1) package specification

2) package body

Advantages of a package:

• Modularity

• Easier Application Design • Information Hiding • Overloading

You cannot overload:

•Two subprograms if their formal parameters differ only in name or parameter mode.

(datatype and their total number is same). •Two subprograms if their formal parameters differ only in datatype and the different datatypes are in the same family (number and decimal belong to the same family)

•Two subprograms if their formal parameters differ only in subtype and the different subtypes are based on types in the same family (VARCHAR and STRING are subtypes of VARCHAR2) •Two functions that differ only in return type, even if the types are in different

families.

61) What is FORWARD DECLARATION in Packages?

PL/SQL allows for a special subprogram declaration called a forward declaration. It

consists of the subprogram specification in the package body terminated by a semicolon. You can use forward declarations to do the following: • Define subprograms in logical or alphabetical order.

• Define mutually recursive subprograms.(both calling each other).

• Group subprograms in a package

Example of forward Declaration:

CREATE OR REPLACE PACKAGE BODY forward_pack IS PROCEDURE calc_rating(. . .); -- forward declaration

PROCEDURE award_bonus(. . .)

IS -- subprograms defined BEGIN -- in alphabetical order

calc_rating(. . .); . . . END;

PROCEDURE calc_rating(. . .) IS

Page 212: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

208208208208

BEGIN . . . END;

END forward_pack;

62) What are triggers?

---- triggers are similar to procedures, in that they are the named pl/sql blocks with declarative, executable and exception-handling sections, how ever a procedure is executed explicitly from another block via a procedure call, which can also pass

arguments. ---- A trigger is executed implicitly when ever a particular event task places. And is nothing but a event.

---- The triggering event is a DML (insert, update, delete) operations on a data base

table ----- fires whenever a data event(such as DML) or system event(such as login or shutdown) occurs on a schema or database

Trigger timing : 1) before 2) after 3) instead of ( this is used for views) Triggering events : 1) insert

2)update 3) delete Trigger type : 1) statement level

3) row level.

Firing sequence of database triggers

1) before statement trigger

2) before row trigger 3) after row trigger 4) after statement trigger

Ex: - 1) Create or replace trigger secure_emp

Before Insert on emp Begin If (to_char(sysdate,’dy’) in(‘sat’,’sun’)) or

To_char(sysdate,’hh24:mi’) Not between ’08:00’ and ’18:00’) Then raise_application_error(-20500,’u can insert in the office timings’)

End if; End; Ex :- 2) write a program to all transitions with name smith?

Create or replace Trigger trigger_name

Before insert or update or delete On emp

For each row When (old.ename =’smith’ or

New.ename =’smith’) Begin Raise_application_error(-20003,’smith’); End;

Page 213: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

209209209209

63) Difference between triggers and procedures?

Defined with create trigger Defined with create procedure

The data dictionary contains source code in the user_triggers.

Data dictionary contains source code in user_source

Implicitly invoked Explicitly invoked

Commit, save point and rollback are not allowed(TCL)

Those are allowed

64) LOCKS?

-- Is to reduce concurrency

1) share lock ---it allows the other users for only reading not to insert or update or delete. 2) exclusive lock --- only one user can have the privileges of insert or update and delete of

particular object --- others can only read. 3) update lock ----multiple user can read, update delete

Lock levels : 1) table level 2) table space 3) data base level. 65) What is template?

a) The TEMPLATE form is the required starting point for all development of new Forms.

b) The TEMPLATE form includes platform–independent attachments of several Libraries. APPSCORE :- It contains package and procedures that are required of all forms to

support the MENUS ,TOOLBARS. APPSDAYPK :- It contains packages that control the oracle applications CALENDER FEATURES. FNDSQF :- it contains packages and procedures for MESSAGE DICTONARY, FLEX

FIELDS, PROFILES AND CONCURRENT PROCESSING.

CUSTOM :- it allows extension of oracle applications forms with out modification of oracle application code, you can use the custom library for customization such as zoom

( such as moving to another form and querying up specific records)

66) What are ad-hoc reports? Ans.: Ad-hoc Report is made to meet one-time reporting needs. Concerned with or

formed for a

particular purpose. For example, ad hoc tax codes or an ad hoc database query

67) What is responsibility? Is collection of menus, request security groups and data groups

Menus: collection of forms is nothing but menus

Request security groups: collection of programs.

Data groups: is a group of modules to be made accessible by the user through

Responsibility System admin����security����define.

Security����user����define.

68) What are different execution methods of executables?

FlexRpt The execution file is wrnitten using the FlexReport API.

FlexSql The execution file is written using the FlexSql API.

Page 214: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

210210210210

Host The execution file is a host script.

Oracle Reports The execution file is an Oracle Reports file.

PL/SQL Stored Procedure The execution file is a stored procedure.

SQL*Loader The execution file is a SQL script.

SQL*Plus The execution file is a SQL*Plus script.

SQL*Report The execution file is a SQL*Report script.

Spawned The execution file is a C or Pro*C program.

Immediate The execution file is a program written to run as a subroutine of the concurrent manager. We recommend against defining new immediate concurrent programs, and suggest you use either a PL/SQL Stored Procedure or a Spawned C Program

instead.

Composite Datatypes : – PL/SQL TABLES

– PL/SQL RECORDS - Nested TABLE - VARRAY

69) What is the sequence of functions – group by,having,orderby in a select

statements ? Select…..

Group by… Having… Orderby..

Difference between User and Super User? User : login user or front end user Super user : it has full access of particular module

Page 215: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

211211211211

1. Execution methods? Ans. a. Host b. Immediate

c. Java Stored Procedure d. Java Concurrent Program e. Multi Language Function

f. Oracle Reports

g. PL/SQL Stored Procedure h. Request Set Stage Function i. Spawned j. SQL*Loader

k. SQL*Plus 2. What is TCA (Trading Community Architecture)?

Ans. Oracle Trading Community Architecture (TCA) is a data model that allows you to manage complex information about the parties, or customers, who belong to your commercial community, including organizations, locations, and the network of

hierarchical relationships among them. This information is maintained in the TCA

Registry, which is the single source of trading community information for Oracle E-Business Suite applications.

3. Difference between Application Developer and System Administrator? Ans. Role of Technical Consultant:

a. Designing New Forms, Programs and Reports b. Forms and Reports customization c. Developing Interfaces

d. Developing PL/SQL stored procedures e. Workflow automations

Role of System Administrator: a. Define Logon Users b. Define New/Custom Responsibility c. Define Data Groups d. Define Concurrent Managers e. Define Printers f. Test Network Preferences g. Define/Add new Modules

Role of an Apps DBA:

a. Installing of Application b. Upgradation c. Migration d. Patches e. Routing maintenance of QA f. Cloning of OA

4. What are Flexfields?

Ans. A Flexfield is a customizable field that opens in a window from a regular Oracle Applications window. Defining flexfields enables you to tailor Oracle Applications to your own business needs. By using flexfields, you can:

(a) Structure certain identifiers required by oracle applications according to your own business environment.

(b) Collect and display additional information for your business as needed. Key Flexfields: You use key flexfields to define your own structure for many of the

identifiers required by Oracle Applications. Profile – ‘Flexfields:Open Key Window’ (FND_ID_FLEXS)

Page 216: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

212212212212

Descriptive Flexfield: You use descriptive flexfields to gather additional information about your business entities beyong the information required by Oracle Applications. Profile – Flexfields: Open Descr Window’ (FND_DESCRIPTIVE_FLEXS)

5. Report registration process? Ans.

1. Create the report using the report builder. 2. Place the report definition file in the module specific reports directory. 3. Create an executable for the report definition file. 4. Create a concurrent program to that executable. 5. Associate the concurrent program to a request group.

6. User exits in Reports? Ans.

USER EXITS are used in Oracle APPS to access user profile values and perform proper calculation. Ex. of Other AOL User exits available in Reports are given below.

FND SRWINIT - This is a User Exit which sets your profile option values and allows Oracle AOL user exits to detect that they have been called by oracle repots. Can be used in BEFORE-REPORT Trigger.

FND_SRWEXIT - This user exit ensures that all the memory allocated for

AOL user exits has been freed up properly. Can be used in AFTER- REPORT Trigger

FND FORMAT_CURRENCY - To format the currency amount dynamically

depending upon the precision of the actual currency value, standard precision, users

profile values and location (country) of the site.

FND FLEXSQL - This user exits allows you to use Flex fields in Reports

FND FLEXIDVAL - This user exits allows you to use Flex fields in Reports

7. Request Set and Where do you define it ?

Ans. Request sets allow you to submit multiple requests together using multiple execution path. A request set is a collection of reports and /or programs that are grouped together.

A stage is a component of a request set used to group requests within the set. All of the requests in a given stage are executed in parallel. Advantages of stages are the ability to execute several requests in parallel and then move sequentially to the next stage.

Responsibility: System Administrator Nav: Concurrent -> Set

7(A). Define Request Group? Ans. A request security group is the collection of requests, request sets, and concurrent programs that a user, operating under a given responsibility, can select from the Submit Requests window.

8. Registration of PL/SQL with parameters? Ans.

1. Create the procedure in the module specific schema.

2. Create a public synonym for that procedure in the Apps schema. 3. Create the executable for that procedure. 4. Create a concurrent program. 5. Attach the concurrent program to that procedure.

Note: There are two mandatory parameters 1. Errbuf 2. Retcode. Any parameter which are to be passed should be succeeded with these two parameters and have to be registered. When calling the procedure, these two parameters are not mentioned.

Page 217: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

213213213213

9. How many groups in Matrix Report? Ans. The minimum of groups required for a matrix report are 4.

10. Lexical Parameters and Bind Parameters? Ans.

Lexical references are placeholders for text that you embed in a SELECT statement. You can use lexical references to replace the clauses appearing after SELECT, FROM, WHERE,

GROUP BY, ORDER BY, HAVING, CONNECT BY, and START WITH. You create a lexical reference by entering an ampersand (&) followed immediately by the column or parameter name.

Bind references (or bind variables) are used to replace a single value in SQL or PL/SQL, such as a character string, number, or date. Specifically, bind references may be used

to replace expressions in SELECT, WHERE, GROUP BY, ORDER BY, HAVING, CONNECT BY, and START WITH clauses of queries. Bind references may not be referenced in FROM clauses or in place of reserved words or clauses. You create a bind reference by entering a colon (:) followed immediately by the column or parameter name.

11. Value Sets?

Ans. Oracle Application Object Library uses values, value sets and validation tables as important components of key flexfields, descriptive flexfields, FlexBuilder, and Standard Request Submission.

When you first define your flexfields, you choose how many segments you want

to use and what order you want them to appear. You also choose how you want to validate each of your segments. The decisions you make affect how you define your value sets and your values.

You define your value sets first, either before or while you define your flexfield segment structures. You typically define your individual values only after your flexfield has been completely defined (and frozen and compiled). Depending on what type of value set you use, you may not need to predefine individual values at all before you can

use your flexfield. You can share value sets among segments in different flexfields, segments in

different structures of the same flexfield, and even segments within the same flexfield

structure. You can share value sets across key and descriptive flexfields. You can also

use value sets for report parameters for your reports that use the Standard Report Submission feature.

Navigation Path: Login – Application Developer -> Application -> Validation -> Set

11(A). Value Validation Types? Ans.

1. Dependant 2. Independent 3. None 4. Pair 5. Special 6. Table 7. Translate Independent 8. Translate Dependent

11(B). How to define a value set depending on other value set?

Ans. Navigation Path: Login -> AOL -> Application -> Validation -> Set Select the

validation type as “Dependant” and click on ‘Edit Information’ button. In Dependant

value set information screen mention the Independent value set name.

Page 218: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

214214214214

12. Incompatibility in report registration and Run Alone?

Ans. Identify programs that should not run simultaneously with your concurrent

program because they might interfere with its execution. You can specify your program as being incompatible with itself.

Application: Although the default for this field is the application of your concurrent

program, you can enter any valid application name.

Name: The program name and application you specify must uniquely identify a

concurrent program. Your list displays the user-friendly name of the program, the short name, and the description of the program.

Scope: Enter Set or Program Only to specify whether your concurrent program is incompatible with this program and all its child requests (Set) or only with this program (Program Only).

Run Alone: Indicate whether your program should run alone relative to all other

programs in the same logical database. If the execution of your program interferes with the execution of all other programs in the same logical database (in other words, if your program is incompatible with all programs in its logical database, including itself), it should run alone.

13. AR-Invoices (Class)?

Ans. 1. Chargeback

2. Credit Memo

3. Debit Memo

4. Deposit

5. Guarantee

14. AP-Invoice types? Ans.

1. Standard

2. Credit Memo

3. Debit Memo

4. Expense Report

5. PO Default

6. Prepayment

7. Quick match

8. Withholding Tax

9. Mixed

15. Customer Interface?

Ans. Use Customer Interface to import and validate current or historical customer information from other systems into Receivables. Once customer information is imported into Oracle Receivables, you can use Customer Interface to import additional data for

that customer (such as additional contacts or addresses) and to update existing information. You can also manually update and enter new information using the Customer windows.

The following diagram shows how customer information is imported into the Oracle

Receivables tables.

Error! Unknown switch argument.

Page 219: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

215215215215

16. Multi Org? Ans.

Business Group (each one own Set of Books) Legal Entity (Post to a Set of Books)

Operating Units Inventory Organizations

Manufacturing Modules (Order Entry, Purchasing, MRP etc.) Financial Modules

17. What are Profiles? Ans. A user profile is a set of changeable options that affect the way your application

looks and behaves. As System Administrator, you control how Oracle Applications

operate by setting user profile options to the values you want. You can set user profile options at four different levels: site, application, responsibility, and user. Your settings affect users as soon as they sign on or change responsibility.

Navigation Path: Login – System Administrator -> Profile -> System

Examples: Signon Password Hard to Guess

Signon Password Length

Set of Books Name

Flexfields: Autoskip

18. Employee Details? Ans. Enter employee records. Either your Human Resources department enters employee information in the People window (if HRMS is installed), or the appropriate department enters employee information in the Enter Person window. To ensure that

Payables can create a supplier record during Invoice Import, the following are requirements for each employee record:

• the employee name is unique

• reimbursement address for either Home or Office exists • address lines 1-3 for the home address do not exceed 35 characters

• City/State/Country does not exceed 25 characters • Zip Code for the home address does not exceed 20 characters

19. What is the Multi Org and what is it used for?

Ans. Multi Org or Multiple Organizations Architecture allows multiple operating units and

their relationships to be defined within a single installation of Oracle Applications. This keeps each operating unit's transaction data separate and secure. Use the following query to determine if Muli Org is intalled: “select multi_org_flag from

fnd_product_groups;”

20. AR Invoice Tables?

Ans. When you enter an invoice either through the Transaction window or through the AutoInvoice program, Receivables uses the following tables to store your invoice information:

RA_CUSTOMER_TRX RA_CUSTOMER_TRX_LINES

RA_CUST_TRX_LINE_GL_DIST AR_PAYMENT_SCHEDULES

Page 220: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

216216216216

21. Bitmap Report? Ans. Bitmapped reports are output as PostScript files. The PostScript file is a set of instructions telling the printer exactly what to print and how to print it. To get a

landscape report, the Post Script file must be generated as landscape. If you want a landscape bitmapped report, specify this either in the Reports Designer or in the execution options of your concurrent program. When printing bitmapped reports, a print

style is still needed to determine the printer driver used. To avoid confusion, create a

special print style for bitmapped reports and make that the required style for all bitmapped reports in the Define Concurrent Programs form.

22. Difference between character and bitmap report? Ans.

Bitmap vs. Character-Mode Report Design

Here is an example to help explain how Oracle Reports are designed and printed in both

the bitmap and character-mode environments.

Assume you wish to print "Cc" where "C" is a different font and a larger point size than "c" and is in boldface type (where "c" is not). In Oracle Reports Designer, bitmap mode, you can make "C" bold and in a different font

and point size than "c". This is because you are generating postscript output. Postscript is a universal printer language and any postscript printer is able to interpret your different design instructions.

In Oracle Reports Designer, character mode, the APPLICATIONS STANDARDS REQUIRE

the report to be designed in ONE FONT/ ONE CHARACTER SIZE. Character mode

reports generate ASCII output. In ASCII you cannot dynamically change the font and character size. The standard is in effect so a report prints as identically as possible from both conventional and postscript printers.

Bitmap vs. Character-Mode Report Printing

These sequences contrast the two printing environments. In postscript, "C" can be in a

different font and point size than "c". Both or either could also be bold, for example.

In ASCII, "C" must be in the same font and character size as "c". Both or either could also be bold, for example.

23. What is difference between .rdf and .rep? Ans. Report definition file <report name>.rdf

Report runfile <report name>.rep

24. Module related Flex fields?

Ans. Key Flexfields Descriptive Flex fields

General Ledger - Accounting Flex field Daily Rates Assets - Asset Category Flexfield Bonus Rates

Receivables - Sales Tax Location Credit History Information Territory Flex field

25. Difference between Global segments and Context-Sensitive segments? Ans. Gobal Segments: Global segments are segments that appear regardless of context. Columns used for global segments cannot hold an context-sensitive segments.

Context-Sensitive segments: Context-Sensitive segments occur depending on the

context. 26. Data conversion Vendor data effected tables?

Ans. 1. PO_VENDORS 2. PO_VENDOR_SITES_ALL 3. PO_VENDOR_CONTACTS

Page 221: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

217217217217

27. Data conversion Customer data effected tables? Ans.

1. RA_CUSTOMERS_INTERFACE_ALL 2. RA_CUSTOMER_PROFILES_INT_ALL

28. AP Invoice conversion data effected tables?

Ans.

1. AP_INVOICES_INTERFACE 2. AP_INVOICE_LINES_INTERFACE

29. Report Triggers? Ans.

1. BEFORE PARAMETER FORM

2. AFTER PARAMETER FORM

3. BEFORE REPORT

4. BETWEEN PAGES

5. AFTER REPORT

The order of events when a report is executed is as follows:

1 Before Parameter Form trigger is fired.

2 Runtime Parameter Form appears (if not suppressed). 3 After Parameter Form trigger is fired (unless the user cancels from the Runtime

Parameter Form).

4 Report is "compiled."

5 Queries are parsed. 6 Before Report trigger is fired. 7 SET TRANSACTION READONLY is executed (if specified via the READONLY

argument or setting). 8 The report is executed and the Between Pages trigger fires for each page except

the last one. (Note that data can be fetched at any time while the report is being formatted.) COMMITs can occur during this time due to any of the following--

user exit with DDL, SRW.DO_SQL with DDL, or if ONFAILURE=COMMIT, and the report fails.

9 COMMIT is executed (if READONLY is specified) to end the transaction.

10 After Report trigger is fired. 11 COMMIT/ROLLBACK/NOACTION is executed based on what was specified via the

ONSUCCESS argument or setting.

30. Define Alerts in Apps? Ans. Oracle Alerts are used to monitor unusual or critical activity within a designated database. The flexibility of ALERTS allows a database administrator the ability to monitor activities from tablespace sizing to activities associated with particular

applications (i.e. AP, GL, FA). Alerts can be created to monitor a process in the database and to notify a specific individual of the status of the process. There are 2 types of alerts: Event Alerts and

Periodic Alerts

a) EVENT ALERTS are triggered when an event or change is made to a table in the

database.

b) PERIODIC ALERTS are activated on a scheduled basis to monitor database activities or changes.

31. Steps to Create a Bit Map Report? Ans.

1.Build the query 2.Draw the layout

3. Close the Layout Editor window. Under Data Model, open up the 'System

Parameters'

Page 222: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

218218218218

4.Right Click on 'MODE' and select 'Properties' Enter 'BITMAP' as the 'Initial Value' and click OK. Save the report - call it 'first.rdf'. 5. Copy the report file in the appropriate directory.

6. Set the FORMAT to POSTSCRIPT and style as A4. in the concurrent program.

32. What is Token and used for? Ans. Token in Concurrent Program creation : For a parameter in an Oracle Reports program, the keyword or parameter appears here. The value is case insensitive. For other types of

programs, you can skip this field. Procedure:

Defines an error token and substitutes it with a value. Calls to TOKEN( ) and RAISE( ) raise predefined errors for Oracle Workflow that are stored in the WF_RESOURCES table.

The error messages contain tokens that need to be replaced with relevant values when the error message is raised. This is an alternative to raising PL/SQL standard exceptions

or custom-defined exceptions. Syntax

procedure TOKEN (token_name in varchar2,

token_value in varchar2); 33. Difference between function and procedure?

Ans. Procedures and functions consists of set of PL/SQL statements that are grouped

together as a unit of solve a specific problem or perform set of related tasks. Procedures do not return values which functions return one One Value.

Packages: Packages provide a method of encapsulating and storing related procedures, functions, variables and other package contents.

34. Form registration setps? Ans.

1. Create the form using the form builder. 2. Generate the executable code (.fmx)

3. Place the .fmb file in AU_TOP forms directory

4. Place the .fmx file in Module specific top forms directory. 5. Register the form with AOL 6. Associate a form function for the form

7. Attach the form function to a menu

35. Interface Tables details? Ans. 1. General Ledger : GL_INTERFACE GL_INTERFACE_CONTROL

GL_INTERFACE_HISTORY GL_BUDGET_INTERFACE GL_DAILY_RATES_INTERFACE 2. Account Receivables: AR_PAYMENTS_INTERFACE_ALL

AR_TAX_INTERFACE HZ_PARTY_INTERFACE HZ_PARTY_INTERFACE_ERRORS

RA_CUSTOMER_INTERFACE_ALL RA_INTERFACE_DISTRIBUTIONS_ALL RA_INTERFACE_ERROR_ALL RA_INTERFACE_LINES_ALL

RA_INTERFACEA_SALESCREDITS_ALL 3. Account Payables: AP_INTERFACE_CONTROL AP_INTERFACE_REJECTION

Page 223: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

219219219219

AP_INVOICES_INTERFACE AP_INVOICE_LINES_INTERFACE 4. Purchasing: PO_DISTRIBUTIONS_INTERFACE

PO_HEADER_INTERFACE PO_LINES_INTERFACE PO_INTERFACE_ERROR

PO_REQUISITIONS_INTERFACE_ALL

36. Explain Tkprof? Ans. TKProf converts the raw trace files into a more readable format SYNTAX: TKProf tracefile outputfile [sort=option][explain=username/password] Ex. TKProf a12345.trc mytrace.out explain scott/tiger

Tracefile The name of the trace statistics file, which is found in the user_dump_dest

directory (Normally $ORACLE_HOME/rdbms/log) Outputfile The name of the output file

Sort= [option1,option2,….] sorts the SQL statements in the output file

Explain=username/password instructs the TKProf to run explai on the SQL statement in order to explain the access path. This is essential for performance investigation Sys=no TKProf skips recursive SQL and statements run as the SYS user. Used

rarely.

37. Adhoc Report? Ans. You can define ad hoc financial reports as necessary to meet special reporting needs. An ad hoc report is one you define at the time you run financial reports. You do

not assign a name to an ad hoc report. Instead, General Ledger automatically names ad hoc reports as follows: FSG-AD HOC-<Sequence Generated Number>.

Suggestion: We recommend that you delete ad hoc reports periodically to improve system performance.

Prerequisite : 1. Define a row set. 2. Define a column set. To define and run an ad hoc financial report:

1. Navigate to the Run Financial Reports window. 2. Choose the Define Ad Hoc Report button. 3. Enter a name for your report Title. If this field is empty, the report title will default to the Row Set Description. If Row Set Description is empty, the report title will default to

Row Set Name. 4. Enter the Row Set and Column Set to use for the report. 5. Enter any additional report information, including Budget, Encumbrance, and Currency

control values. 6. Choose OK to return to the Run Financial Reports window.

38. Call_Form, Open_Form and New_Form Definitions? Ans. CALL_FORM: Runs an indicated form while keeping the parent form active. Form Builder

runs the called form with the same Runform preferences as the parent form. When the

called form is exited Form Builder processing resumes in the calling form at the point from which you initiated the call to CALL_FORM.

OPEN_FORM: Opens the indicated form. Use OPEN_FORM to create multiple-form applications, that is, applications that open more than one form at the same time.

NEW_FORM: Exits the current form and enters the indicated form. The calling form is terminated as the parent form. If the calling form had been called by a higher form,

Form Builder keeps the higher call active and treats it as a call to the new form. Form Builder releases memory (such as database cursors) that the terminated form was using.

Form Builder runs the new form with the same Runform options as the parent form. If the parent form was a called form, Form Builder runs the new form with the same

options as the parent form.

Page 224: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

220220220220

39. Form and Non-Form function? Ans. Form (Form Function): A form function (form) invokes an Oracle Forms form. Form

functions have the unique property that you may navigate to them using the Navigate window.

Subfunction (Non-Form Function): A non-form function (subfunction) is a securable

subset of a form's functionality: in other words, a function executed from within a form. Statement Printing AR

Source files : ARXGSP internally calling ARXSGPO

Tables Effected:

TEMP_ARSHR - AR_STATEMENT_HEADERS TEMP_ARSLC - AR_STATEMENT_LINE_CLUSTERS

TEMP_ADJ - AR_ADJUSTMENT HZ_CUST_ACCOUNTS

HZ_PARTIES

HZ_LOCATIONS HZ_CUST_ACCT_SITES HZ_PARTY_SITES FND_TERRITORIES

Lookup Tables: AR_LOOKUPS

AR_PAYMENT_SCHEDULES

Style – Group Above

Groups – Header Level Call FND_CLIENT_INFO in Before Report Trigger Landscape – 66 / 80 - Height / Width

AR Invoice Printing

Source File : RAXINV_SEL

Tables:

AR_INVOICE_HEADERS_V

AR_INVOICE_LINES_V AR_TAX_LINES_V Call FND_CLIENT_INFO in Before Report Trigger

FND_CLIENT_INFO.SET_ORG_CONTEXT(81);

Purchase Order Report

Source File : POXPRPOP

1) On Plane paper 2) Logo on Top Left 3) Move Address to center 4) Border for some fields

Tables:

PO_HEADERS_PRINT

PO_LINES_PRINT

Lookup Objects:

PO_LINE_LOCATIONS_PRINT

PO_VENDOR_CONTACTS PO_DISTRIBUTIONS_ALL HR_EMPLOYEES

HR_LOCATIONS

Page 225: Imran ERP Good Material

Oracle Applications 11.5.9 CS – Software Solutions

221221221221

Check Printing

Source : APXPBFEL

1) Company Logo 2) No Check number 3) Stationary 8.5 X 11

Positive Pay

Source : APXPOPAY

Statement for bank

Date Check Numbers Amount Description 1-10 11 – 22 23 – 30 31 – 70

MM/DD/YY Number Number 9,2 Alpha Number Left Right Left Left

General Report Modifications

a. Pre printed stationary b. Portrait format c. Header level changes

d. Line level changes e. Decode usage f. Zero ‘0’ suppressing

g. Plan paper - logo and address and borders

>>>>>>>C>>>>>>TEAM WORK MEANS MORE THAN WE<<<<<<<S<<<<<<

>>>>>>>C>>>>>>>FACE INTERVIEWS CONFIDENTLY<<<<<<<<S<<<<<<

>>>>>>>C>>>>>>>>>>>>>>Good Luck<<<<<<<<<<<<<<<<S<<<<<<

>>>>>>>C>>>>>>>>>>[email protected]<<<<<<<<<<<S<<<<<<