Tuesday 30 June 2015

R12 How Can we Import Multiple Distribution For Single Line In AP Invoice Interface

How can we import multiple distribution for single line in AP invoice interface
e.g. invoice 'Invoice123' has single line as invoice_ line1,  this line has two distributions like invoice_line_dist1 and invoice_line_dist2.
Solution :- To insert multiple distibution line against single invoice line while inserting data into AP_INVOICE_LINES_INTERFACE insert value for DISTRIBUTION_SET_NAME or DISTRIBUTION_SET_ID.
The only way to specify that an imported invoice line have more than one distribution (without matching to a PO) is to specify a distribution set in the row in AP_INVOICE_LINES_INTERFACE.Distribution_Set_Name or
AP_INVOICE_LINES_INTERFACE.Distribution_Set_ID. When the invoice is distributed (either by clicking on the Distributions button in the form or during validation) the system will create distributions based on the distribution set.

DISTRIBUTION_SET_ID: Internal identifier for the Distribution Set. If you enter a value for DISTRIBUTION_SET_NAME or DISTRIBUTION_SET_ID, then during import Payables automatically creates distributions for you based on the Distribution Set.
Note :Do not enter a value here if you are matching this line to a purchase order or if you enter an account.
Validation:


This must be an existing, active value for AP_DISTRIBUTION_SETS.DISTRIBUTION_SET_ ID
Destination:


None

DISTRIBUTION SET NAME : Name of the Distribution Set. You define distribution sets in the Distribution Sets window. If you enter a distribution set name, during Payables Open Interface Import Payables automatically creates distributions for you based on the Distribution Set. If you enter a value here, you do not need to enter the corresponding value for DISTRIBUTION_SET_ID.
Note : Do not enter a value in this column if you are matching to a purchase order or if you provide an account.
Validation:


This must be an existing, active value for AP_DISTRIBUTION_SETS.DISTRIBUTION SET_NAME. If you are matching to a purchase order and you enter a value in this column, Payables Open Interface Import will reject the invoice.
Destination:


None


Setup for Distribution Sets in Payable:

There are two types of distribution set in Payables.
  1. Full Distribution Sets
  2. Skeleton Distribution Sets
Navigation Path :
Payables -> Setup -> Invoice -> Distribution Sets

Header part enter information for Below fields
Operating Unit :Vision Operations
Name : Full_dist_set
Description : Full Destribution Set (Not Mandetory)
Inactive On : Blank ( When we deactivate it it will have deactive date value)

Line
Here we can specify number of distribution lines we want to generate against single line. We can also mention % amount value which tell you how much percentage of amount we can devide Line amount for this line. we also need to enter data for account with all code combination.

Note:  Sum of all % must be 100%. e.g. if we want to have 3 distribution line for single invoice line then we can specify three line with percentage 25% for first line second line 25% and for third line we must have 50% aginst each account code combination.
 
Num%AccountDescription
12501-250-32061-000-000Distribution Account1
22501-250-32061-000-001Distribution Account 2
35001-250-32061-000-002Distibution Account 3

If you have Oracle Projects installed, you can associate a distribution with a project by entering project information on invoice distributions

Interface Table :

AP_INVOICE_INTERFACE_ALL
AP_INVOICE_INTERFACE_LINES_ALL

Base Table :

AP_INVOICES_ALL
AP_INVOICE_LINES_ALL
AP_INVOICE_DISTRIBUTIONS_ALL

How to create a SQL*Loader Concurrent Program

SQL*Loader : loads data from external files into tables of an Oracle database. It has a powerful data parsing engine that puts little limitation on the format of the data in the datafile. When building customizations for the Oracle E-Business Suite it might be needed to load data from external sources into specific tables. Table might be seeded interface table or customize staging table to do further validation.


                       To Load data from external system we might consider one option as SQL* Loader. In this mainly we required two thing.
  1. Data File( in .csv format) : We need to have a csv file with data - the csv can also contain header information. The header in a csv file can be skipped by adding a special parameter in the control file. Take note of the columns in the csv file
  2. Control File (.ctl ) : The control file tells the system how to import the csv file with data. The control file describes the table and columns to be loaded, what the seperator is of the incoming file etc.
Starting a SQL*Loader load can be done by command line by executing the below:

sqlldr apps/apps_password@host:port/sid control=control_file_name.ctl log=log_file_name.log

Syntax:
OPTIONS(SKIP=1)
LOAD DATA
infile '*'
REPLACE/INSERT/APPEND into table table_name
fields terminated by ','
optionally enclosed by '"'
trailing nullcols
(
Column1,
Column2,
Column3,
Column n
)

Note:- To register SQL Loader concurrent program you need to keep both control file .ctl and Data file .csv on bin folder of application. Suppose you are registering SQL loader program for XX_CUSTOM application then control and data file should place in XX_CUSTOM_TOP/bin folder.

OPTIONS(SKIP=1) : This sysntax used when we have column name as well in Data file. while loading data we want to skip first line which is column header and load data from second line. 

When you run SQL loader it will create three types of files.
  1. Bad File :- When we load data using sql loader due to some data descrepancy sql loader reject the records at this time bad file will create automatically. Extension of Bad file is '.bad'. SQL loder will reject records if data is in incorrect format or any internal error occurs while running sql loader.
  2. Discard File :- When we have written some condition in control file to load data conditionally. Discard file contain all those records which was rejected by sql loader for not satisfying SQL loader condition we write. Extension of this type of file is '.dis'.
  3. Log file :- Log file will be created automatically after completion of sql loader process. it contains information like count of success records and bad file and discard file details with location. Extension of log file will be '.log'
To register Concurrent program of Type SQL Loader :
  1.  Create the SQL*Loader Executable in Oracle E-Business Suite. Go to responsibility System Administrator - Concurrent - Program - Executable. Select Execution Method SQL*Loader to let EBS know SQL*Loader needs to be started. The Execution File Name holds the name of the control file you want to start (without extension .ctl ). The control file needs to be located in the bin directory of your customization application.
  2. Create the concurrent program in Oracle E-Business Suite. Go to responsibility System Administrator - Concurrent - Program - Define. In this use same Executable which we register in first step.
  3. Now create one parameter for Data file path. Assign 100 character value set. Optionally add a default value of path like XXCUSTOM_TOP/bin/data_file.csv





Sunday 28 June 2015

Autonomous Transaction In PLSQL

Autonomous Transaction :
An autonomous transaction is an independent transaction started by another transaction, the main transaction. Autonomous transactions do SQL operations and commit or roll back, without committing or rolling back the main transaction.
For example, if you write auditing data to a log table, you want to commit the audit data even if the operation you are auditing later fails; if something goes wrong recording the audit data, you do not want the main operation to be rolled back.

Main Transaction called as Parent Transaction and subprogram transaction called as child Transaction.
  •  In Autonomous Transaction Child transaction Runs independentely of its parent transaction.
  •  The child transaction can Rollback or commit and then Parent transaction will resume.
  •  The parent transaction can continue without affecting child transaction.
Syntax:
You need to declare transaction as Pragma autonomous transaction in Declare section of PLSQL block.

PRAGMA AUTONOMOUS_TRANSACTION;

Tuesday 23 June 2015

PLSQL|| Records

Records: Records is one of type PLSQL data types. It is composite data type which is combination of diffrent type of data types. And each scalar data type holds value same as row in table.

Syntax for Records:
TYPE xxrec_type IS RECORD
(
column1   datatype,
column2    datatype,
.......n
);

e.g.:
DECLARE
TYPE vendor_type IS RECORD
(
supplier_name varchar2(50),
supplier_number ap_suppliers.segment1%type,
vendor_id ap_suppliers.vendor_id%type,
supplier_alt_name varchar2(250),
currency_code ap_suppliers.invoice_currency_code%type
);
--
vendor_rec vendor_type;


we can assign value in select statement in execution block of plsql as shown below.

SELECT vendor_name,
segment1,
vendor_id,
invoice_currency_code
INTO
vendor_rec.supplier_name,
vendor_rec.supplier_number,
vendor_rec.vendor_id,
vendor_rec.currency_code
FROM ap_suppliers;

PLSQL ||Cursor and Type of Cursor

Cursor: A cursor is a temporary work area created in the system memory when a SQL statement is executed. A cursor contains information on a select statement and the rows of data accessed by it.
                A cursor can hold more than one row, but can process only one row at a time. The set of rows the cursor holds is called the active set of cursor.

There are two type cursor in PLSQL:
1. Implicit Cursor
2. Explicit Cursor

We will see type of cursor in detail.

1. Implicit Cursor: These type of cursor created default whenever DML statement like INSERT, UPDATE, DELETE is executed.
Oracle provides some cursor attributes for implicit type cursor. Cursor attribute available for implicit type of cursor is %FOUND, %NOTFOUND, %ROWCOUNT and %ISOPEN.

e.g.:

DECLARE
l_variable number;
--
BEGIN
DELETE dept
WHERE deptno=20;
--
l_variable:= SQL%ROWCOUNT;
--
dbms_output.put_line('Total number of record deleted '|| l_variable);
--
end;

Explicit Cursor: As per name of cursor we need to create this cursor explicitly. It is created on select statement which return more than one rows.  Below given are syntax for explicit cursor.
DECLARE cursor in declaration section before BEGIN section.
OPEN the cursor in BEGIN section.
FETCH the data in declared variable in declare section of plsql block. Data should be fetch in Execution section.
CLOSE the cursor in execution section.

e.g.:

DECLARE
inv_rec ap_invoices_all%rowtype;
--
CURSOR inv_cur is
SELECT *
FROM ap_invoices_all
WHERE supplier_name='SMITH.K';
--
 BEGIN
OPEN inv_cur;
FETCH inv_cur into inv_rec;
dbms_output.put_line('Invoice Number'||inv_rec.invoice_num||' '|| 'Invoice Amount'||Amount);
CLOSE inv_cur;
END;

Wednesday 17 June 2015

Query to retrive Supplier Relationship Detail in iSupplier Portal

Below given query will give you supplier sites and its relationship details.

Query:


SELECT ExtRelationshipsEO.RELATIONSHIP_ID,
              ExtRelationshipsEO.PARTY_ID,
              hzp_inv.party_name SUPPLIER_NAME,
              ExtRelationshipsEO.SUPPLIER_SITE_ID,
              apsite_inv.vendor_site_code SUPPLIER_SITE_NAME,
              ExtRelationshipsEO.REMIT_PARTY_ID,
              hzp_rmt.party_name REMIT_SUPPLIER_NAME,
              ExtRelationshipsEO.REMIT_SUPPLIER_SITE_ID,
              apsite_rmt.vendor_site_code REMIT_SUPPLIER_SITE_NAME,
              ExtRelationshipsEO.FROM_DATE,
              ExtRelationshipsEO.TO_DATE,
              ExtRelationshipsEO.PRIMARY_FLAG,
              ExtRelationshipsEO.ADDITIONAL_INFORMATION,
              ExtRelationshipsEO.ACTIVE,
              ExtRelationshipsEO.CREATED_BY,
              ExtRelationshipsEO.CREATION_DATE,
              ExtRelationshipsEO.LAST_UPDATED_BY,
              ExtRelationshipsEO.LAST_UPDATE_DATE,
              ExtRelationshipsEO.LAST_UPDATE_LOGIN,
              ExtRelationshipsEO.OBJECT_VERSION_NUMBER,
              apsite_inv.org_id,
              hrou.name "Operating Unit Name"
   FROM IBY_EXT_PAYEE_RELATIONSHIPS ExtRelationshipsEO,
            hz_parties hzp_inv,
            hz_parties hzp_rmt,
            ap_supplier_sites_all apsite_inv,
            ap_supplier_sites_all apsite_rmt,
            hr_operating_units hrou
   WHERE ExtRelationshipsEO.party_id = hzp_inv.party_id
   AND ExtRelationshipsEO.remit_party_id = hzp_rmt.party_id
   AND ExtRelationshipsEO.supplier_site_id = apsite_inv.vendor_site_id
   AND ExtRelationshipsEO.remit_supplier_site_id = apsite_rmt.vendor_site_id
   AND hrou.organization_id = apsite_inv.org_id;

Tuesday 16 June 2015

VLOOKUP formula in Excel

VLOOKUP Means vertical lookup from diffrent sheet for excel column values.

Being functional or technical consultant in Oracle apps finance domain we must have good knowledge of excel as well. as most of trail balance, revenue and drill down report etc we need to tally in excel after taking dump from oracle report.

Below given is simplest formula we can use in Excel for VLOOKUP

We have two excel sheet one for supplier invoice detail and another containing supplier country details. we required vlookup kinds of formula when we have huge amount of data in doffrent diffrent sheet and we need to match or merge both sheet data into single sheet.

1. first sheet conatains supplier and invoice data




2. second sheet contains supplier country detail

3. Now we want country name against each supplier in sheet 1 from sheet 2, so we will write vlookup formula in sheet 1 as given below.

=vlookup then open bracket and click on supplier name first value i.e. "Yogesh".
4. Then click F4 3 times


in above screenshot we can see $ sign occurs before A2 after we click F4 3 times.

5. Now click on sheet 2 (this might be in another excel file as well)


6. Now select all data using mouse (here we can select entire sheet as well)

7. After selecting add one comma "," and enter number of column from selected excel column. in our case we will write 2 as we want to print country column value in sheet 1 from sheet 2.



8.  Then again enter comma "," and write false word after comma as shown in below screenshot.


9. after false kindly close bracket and press enter button it will show you match value for country against supplier name from sheet 2

10. Now drag formula present in c2 column upto c7 and you will see all matched value for country against supplier name. Value which not matched is shown as #N/A

The complete formaula in C2 as =VLOOKUP($A2,Sheet2!A1:B6,2,FALSE)







Thursday 11 June 2015

SQL Complex Queries

1. Select FIRST n records from a table.

select *
from emp
where rownum <= &n;

2. Find the 5th MAX salary in the emp table.

select distinct sal
from emp e1
where 5 = (select count(distinct sal)
                  from emp e2
                   where e1.sal <= e2.sal
                   );

3.Find the 5th MIN salary in the emp table.
select distinct sal
from emp e1
where 5 = (select count(distinct sal)
                  from emp e2
                where e1.sal >= e2.sal
                  );

4. How can I create an empty table emp1 with same structure as emp?

Create table emp1 as
select * from emp where 1=2;

5.If there are two tables emp1 and emp2, and both have common record. How can I fetch all the recods but common records only once?
Select * from emp
 Union
Select * from emp1;

6. How to fetch only common records from two tables emp and emp1?
Select * from emp
 Intersect
Select * from emp1;

7. For each department that has more than five employee, retrive the department number and the number of employee who are making more than 20,000 Rs.

select depno, count(*)
from dept, emp
where dept.deptno=emp.deptno
and emp.sal>=20000
and dept.deptno in
                          ( select deptno
                             from emp
                             group by deptno
                             having count(*)>5);


8. To fetch alternate records from a table.

select *
from emp
where rowid in
                (
                   select decode(
                                      mod (rownum,2)
                                      ,0
                                      ,rowid
                                      , null
                                     )
                  from emp
               );

How to set Org context in 11i and R12

In 11i:

Begin
dbms_application_info.set_client_info('&ORG_ID');
End;




In R12:

BEGIN
   MO_GLOBAL.SET_POLICY_CONTEXT('S', <orgid>);
END;


To set the mo security profile so that sqlplus will have same org context as given responsibility
DECLARE
   l_resp_id number; 
   l_user_id number;
   l_security_profile_id number;
   l_org_id number;

BEGIN

   SELECT user_id
     INTO l_user_id
     FROM fnd_user
    WHERE user_name LIKE '&USER_NAME';

   SELECT responsibility_id
     INTO l_resp_id
     FROM FND_RESPONSIBILITY_VL
    WHERE responsibility_name LIKE '&responsibility_name';

   FND_GLOBAL.APPS_INITIALIZE(l_user_id,
                              l_resp_id,
                              <Application ID>); -- APPLICATION_ID: Oracle Payables is 200
   MO_GLOBAL.INIT('SQLAP');
END;
/


In SQL*plus

SQL> exec mo_global.init('SQLAP');
exec mo_global.set_policy_context('S','&org_id');

Monday 8 June 2015

How to enable Personalization link on OAF page

Kindly set below given profile option value.

1. FND: Personalization Region Link Enabled ==> Yes
2. Personalize Self-Service Defn ==>Yes
3. Disable Self-Service Personal ==> No


1) FND: Personalization Region Link Enabled

2) Personalize Self-Service Defn


3) Disable Self-Service Personal



After setting all 3 profile option now we can see "Personalize Page" Link on OAF page

Table-types and names used in Oracle Apps

Here is a short list of the table-types and names used in Oracle Apps:

_ALL are multi-org tables.

_V are views.

_VL are views for multi language tables which combines the row of the base table with the corresponding row of the _TL table where the LANGUAGE = USERENV('LANG').

_TL are tables corresponding to another table with the same name minus the _TL. These tables provide multiple language support. For each item in the table without _TL there can be many rows in the _TL table, but all with different values in the LANGUAGE column.

_F these are date tracked tables which occur in HR and Payroll. For these there are two date columns EFFECTIVE_START_DATE and EFFECTIVE_END_DATE which together with the PK identifies a row uniquely. The date intervals cannot overlap.

_B these are the BASE tables.
They are very important and the data is stored in the these table with all validations.
It is supposed that these table will always contain the perfect format data.
If anything happens to the BASE table data, then it is a data corruption issue.

_S are sequences, used for finding new values for the primary key of a table.

_A are Audit Shadow Tables.

_AVn and _ACn are Audit Shadow Views (when data was changed, and with what values).

Friday 5 June 2015

Oracle Apps Interview Question and Answer

1.   How to call flex fields in the form?
By using FND_FLEX.EVENT (EVENT varchar 2)

2.   How to register an executable and define a concurrent program through backend?
By using concurrent processing API’S
1. FND_CONC_GLOBAL.REQUES_DATA
                                    .SET_REQUEST_GLOBALS
2. FND_CONCURRENT.AF_COMMIT
                                  .AF_ROLLBACK
                                  .GET_REQUEST_STATUS
                                  .WAIT_FOR_REQUEST
                                  .SET_COMPLETION_STATUS
3. FND_FILE . PUT
                   . PUT_LINE
                   .NEW_NAME
                   .PUT_NAMES
                   .CLOSE
4. FND-PROGRAM    . MESSAGE
                             . EXECUTABLE
                             . REGISTER
                             . PARAMETER
                             . IN COMPATIBILITY
                             . EXECUTABLE_EXISTS
5. FND_REQUEST    . SET-OPTIONS
                             .SET_REPEAT_OPTIONS
                             .SET_PRINT_OPTIONS
                             .SUBMIT_REQUEST
                             .SET_MODE
6. FND_REQUEST_INFO     . GET_PARAM_NUMBER
                                      . GET_PARAM_INFO
                                      . GET_PROGRAM
                                      . GET_PARAMETER
7. FND_SET  . MESSAGE
                   .ADD_PROGRAM
                   .ADD_STAGE
                   .IN COMPATIBILITY
8. FND_SUBMIT       . SET_MODE
                             .SET_REQUEST_STATUS
                             .SUBMIT_PROGRAM
                             .SUBMIT_SET

* FND_PROGRAM.EXECUTABLE
-          is used to define a concurrent program executable
-          it takes 8 parameters ( all are IN mode )
syntax            procedure FND_PROGRAM.EXECUTABLE
          (executable IN varchar2,
(Full name) à application IN varchar2,
(executable short name) à short name IN varchar2,
                                     description IN varchar2 default null
                                    execution_method IN varchar2,
                                   execution_file_name IN varchar2 default null,
(only fol spauned & Immedaite) à subroutine_name IN varchar2 default null,
                                                icon_name IN varchar2 default null,
                                                language_code IN varchar2 default (VS)
(for Java Conc Program) à execution_file_path IN varchar2 default null,

* FND_PROGRAM.REGISTER
- this procedure no used to define a concurrent program.
- It has 30 IN parameters. Out of which 9 are mandatory, the remaining are default.
          Syntax à procedure FND_PROGRAM.REGISTER
                   (program                IN varchar2,
                    application            IN varchar2,
                   enabled                 IN varchar2,
                   short_name            IN varchar2,
                   description             IN varchar2, default null,
(executable_short_name) à executable_name IN varchar2
                                      executable_application IN varchar2,
                                       mls_function_shelt_name IN varchar2,
                                      mls_function_application IN varchar2,
                                      inerementor IN varhcar2);

3.    How to register a table and columns through back end?
* by using AD_DD package
-          for registering a table à AD_DD.REGISTER_TABLE
-          for registering columns à AD_DD.REGISTER_COLUMN.
-          AD_DD BPI doesn’t check for the existence of the registered table or column in the data base schema, but only updates the required SQL tables.
-          It should be ensured that, all the tables and columns registered exist actually and have the same format as that defined using AD_DD API.
-          Views need not be registered.

4.    How to write to a file through concurrent program.
* By using FND_FILE package and it can be used only for log and output files.
          à FND_FILE package contains procedures to write text to log and output files.
          à FND_FILE supports a maximum buffer line size of 32k for both and output files.

  1. FND_FILE.PUT
-          this is used to write text to a file with out a new line character
-          Multilane calls to FND_FILE.PUT will produce consummated text.
Procedure FND_FILE.PUT (which IN Number,
                                       Buff IN varchar2);
Which à log output file
-          can be FND_FILE.LOG or FND_FILE.OUTPUT.
  1. FND_FILE.PUT_LINE
-          this procedure as used to write a line of text to a file followed by a new line character.
Procedure FND_FILE.PUT_LINE (which IN number,
                                              buff  IN varchar2);
EX:- FND_FILE.PUT_LINE( FND_FILE.LOG, find_message_get);
  1. FND_FILE.NEW_LINE
- this procedure is used to write line terminators to a file
procedure FND_FILE.NEW_LINE (which IN number
                                                 LINES IN NATURAL:=1);
Ex:- to write two newline characters to a log file
       Fnd_file.new_line (fnd_file.log,2);
  1. FND_FILE.PUT_NAMES
-          this procedure as used to set the temporary log file and output filenames and the temporary directory to the user specified values.
-          This should be called before calling my other FND_FILE procedure and only once per a session.

Function
FND_REQUEST.SUBMIT_REQUEST
( application      in varchar2   default null,
  program          in varchar2   default null,
  description      in varchar2   default null,
  start-time                 in varchar2   default null,
  sub_request     in bookan     default False,
  argument1,
arguemnt2,
argument 100) return number;
* If this is submitted from oracle forms, all the arguments ( 1 to 100 ) must be specified.

5.    How to display Request ID in the reports?
* By using the parameter P_CONC_REQUEST_ID
which needs to be defined always in the reports.

6.    How to get username / user id in reports?
     - By using the API FND_PROFILE THE OPTION values
        can be manipulated in client / server profile caches
-          FND_PROFILE.GET, FND_GLOBAL.USER_ID
                                       FND_GLOBAL.USER_NAME
-          this procedure is located in FNDSQF library.
-          This procedure is to located to get the current value of the specified user profile option or null if the profile does not exist.
-          The server_side PL/SQL package FND_GLOBAL returns the values which need to set who columns for inserts and updates from stored procedures.
-          Procedure FND_PROFILE.GET ( name in varchar2,
       Value out varchar2);
          FND_PROFILE.GET (‘USER_ID’, user_id);

* FND_PROFILE.VALUE
- this function exactly works like GET, except it returns the values of the specified profile option as a function result
 Function FND_PROGILE.VALUE (name in varchar2
                                                 Return varchar2;  

*FND_PROFILE.PUT
-          this is used to put a value to the specified profile option
-           
-          if the option doesn’t exist, it can also be created with PUT.
Procedure FND_GET (‘USERNAME’, user name);
FND_PROFILE.GET (‘USER_ID’, user_id);
-          username, user-id, vsp_id , Appl_shrt_Name, Resp_Appl_Id, Form_Name, Form_id, Form_Appl_Name, Form_Appl_Id, Logon_Date, Last_Lagon_Date, login_id, Gone_Request_Id, Gone_Program_Id,Gone_program_Application_Id, Gone_Login_Id, Gone_Print_Output, Gone_printstyle_ these are the user profile options that can be accessed via user profile option routines .
-          the values of these profile options can be retrieved in forms, reports and program
-          these values cannot be changed except Gone_Print_Output and Gone_Print_Style.
-          SA’s and end users also cannot see the values or change these values.

7.   In which directory log and output files are stored?
* APPLCSF  is the top level directory in which the concurrent manager puts logs and output files.

* APPLLOG  and APPLOUT are the subdirectories in which the concurrent manager puts log and output files.

*APPLCSF variable need to be set in the prod.env ( environmental variable ), so that all product log files 
$ APPLCSF/ $ APPLLOG à log files
$APPLCSF/ $ APPLOUT à out files

* concurrent manager log and out put files should go to $ FND_TOP/ $ APPLOG and $ FND _TOP / $APPLOUT if $ APPLCSF is not set.

8.    How to submit concurrent programs through OS?
-          From the operating system the utility .CONCSUB  is used to submit is concurrent propgram.
-          This is basically used to test a concurrent program .
-          By using the WAIT token. The utility checks the request status every 60 seconds and returns the OS prompt upon completion of the request.
-          Concurrent manager does not abort, shutdown or start up until the concurrent request completes.

* If the concurrent program is compatible with it self, it can be checked for data integrity and dead locks by submitting it many times so that it runs concurrently with it self.
*PL/SQL procedures can submit a request to run a program as a concurrent process by calling.
FND_REQUEST. SUBMIT_REQUEST.
* Before submitting a request, the following functions also should be called optionally.
              FND_REQUEST.SET_OPTIONS
              FND_REQUEST.SET_REPEAT_OPTIONS
              FND_REQUEST.SET_PRINT_OPTIONS
              FND_REQUEST.SET_MODE

9.    How to checks the request states?
-          A PL/SQL procedure can check the status of a concurrent request by calling.
FND_CONCURENT.GET_REQUEST_STATUS
FND_CONCURRENT.WAIT_FOR_REQUEST
-          FND_CONCURRENT.GET_REQUEST_STATUS
-          This function returns the status of a concurrent request
-          If the request is already computed, it also returns the completion message.
-          This function returns both user friendly (translatable) phase and status values as well as developer phase and status vales that can drive program logic.

Syntax à Function FND_CONCURRENT.GET_REQUEST_STATUS
                   ( request_id in out number,
                   application in varchar2 default null,
                   program in varchar2 default null,
                   phase out varchar2,
                   status out varchar,
                   dev_phase out varchar2,
                   dev_status out varchar2,
                   message out varchar2) return BOOLEAN;
-          when application and program are specified, the request_id of the last request for the specified program should be returned to request_id.
-          Phase, and status values should be taken from
FND_LOOKUPS
dev_phase                                          dev_status
pending                                    normal, standby, scheduled, paused
running                                     normal, waiting, resuming, terminating.
Complete                                  normal, Error, warning, cancelled, terminated
Inactive                                     disabled, on-hold, No-manager, supended
-          FND_REQUEST.WAIT_FOR_REQUEST
-          This function waits for request completion, then returns the request phase/status and completion message to the caller.
-          Goes to sleep between checks for request completion.

Syntax àFND_CONCURRENT.WAIT_FOR_REQUEST
     ( request_id in number default null,
     interval in number default 60,
     max_wait in numbe default 0,
     phase out varchar2,
     status out varchar2,
dev_phase out varchar2,
dev_status out varchar2,
message out varchar2) return BOOLEN;

* FND_CONCURRENT.SET_COMPLETION_STATUS
-          this function should be called from a concurrent program to set its completion states.
-          This function returns TRUE on success, other wise FALSE.
Syntax à function FND_CONCURRENT.SET_COMPLETION_STATUS
     ( status in varchar2,          message in varchar2) return BOOLEAN;
Normal status  warning message à any message
          Error

11.    What is a Data Group?
·         A data group is a group of oracle applications and the Oracle ID’s of each application
·         Oracle ID grants access privileges to tables in an Oracle Database
·         Data group determines which Oracle Data base accounts a responsibilities forms, concurrent programs and reports connect to.

12.    What is a Responsibility?
·         Responsibility defines Applications Privileges
·         A responsibility is a level of authority in Oracle Applications that lets users only those Oracle Applications functions and data appropriate to their roles in an organization.
·         Each user has at list one or more responsibilities and several users can share the same responsibility
* Each responsibility allows access to
·         a specific application or a set of applications.
·         A set of books
·         A restricted list of windows that an user can navigate
·         Reports in a specific application.

13.    What are security Attributes?
·         Security Attributes are used by Oracle self service web Applications to allow rows of data to be visible to specified users responsibilities based on the specific data contained in the row.

14.    What is a Profile Option?
·         profile options are the set of changeable options that affects how the application looks and behaves.
·         By setting profile options, the applications can be made to react in different ways for different users depending on the specific user attributes.

15.    What are steps involved in developing a flex field?
·         designing the table structure
·         creating fields on the form (Visible/Hidden)
·         calling appropriate routines
·         registration of the flex field.
·         Definition of the flex field.
<Flex fields / key/ Register>
<Flex fields/Descriptions / Register>

16.    What is an application /Module?
·         Application is a collection of forms, function and menus

17.    What are Alerts?
·         Alert is a mechanism that checks the database for a specific exception condition.
·         An alert is characterized by the SQL select statements it contains.
·         A SQL select statement fells the application what database exception to identify as well as what output to produce for that exception.


How to resolve issue for BIP RTF template XML tags showing value as <?ref: 0000xx?>

 How to resolve issue for BIP RTF template XML tags showing value as <?ref: 0000xx?>  Sometime these xml data tags automatically chang...