Oracle 11i Application Developer – Technical FAQ – Part 2


Hello Friends, here is the second set of Questions on Application Developers , more of general questions, i am not digging in particular areas , only trying to put question which i normally ask with candidates. If you want help in any specific areas , plz advise, i will try to do that.

Q11 ) What is SET-OF-BOOKS?
Collection of Chat of Accounts and Currency and Calendars is called SOB

Q12 ) What is the interface?
Interface Table is a table which is used as medium for transfer of data between two systems.

Q13 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.

Q14) 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.
c) Operating unit — secures AR, OE, AP, PA and PO Information.
d) Organizations — is a specialize unit of work at particular locations

Q15) What are the User PARAMETERS in the Reports?
P_CONC_REQUEST_ID
P_FLEX_VALUE

Q16) 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

Q17) 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.

Q18.) 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.
n If the list of values needed to be dynamic and ever changing and define a table based values set.

Q19) What r the validation types in Value Set?
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.

Q20) Who information’s?
1) Created by
2) Creation date
3) Last _updated by
4) last_update_date

Thanks  — Shivmohan Purohit

Advertisements

Overview of Concurrent Programs and Requests


Overview of Concurrent Programs and Requests

A concurrent program is an executable file that runs simultaneously with other concurrent programs and with online operations, fully utilizing your hardware capacity. Typically, a concurrent program is a long-running, data-intensive task, such as posting a journal or generating a report.

Request Groups and Request Sets

Reports and concurrent programs can be assembled into request groups and request sets.

o A request group is a collection of reports or concurrent programs. A System Administrator defines report groups in order to control user access to reports and concurrent programs. Only a System Administrator can create a request group.

o Request sets define run and print options, and possibly, parameter values, for a collection of reports or concurrent program. End users and System Administrators can define request sets. A System Administrator has request set privileges beyond those of an end user.

Standard Request Submission and Request Groups

Standard Request Submission is an Oracle Applications feature that allows you to select and run all your reports and other concurrent programs from a single, standard form. The standard submission form is called Submit Request, although it can be customized to display a different title.

o The reports and concurrent programs that may be selected from the Submit Requests form belong to a request security group, which is a request group assigned to a responsibility.

o The reports and concurrent programs that may be selected from a customized Submit Request form belong to a request group that uses a code.

As System Administrator you can limit the number of requests that may be active (status of Running) for an individual user. This ensures that a user cannot monopolize the request queue. For example, if a user with an Active Request Limit of 5 submits 20 requests, only 5 requests will be run at the same time. The remaining requests will be run when the number of active requests for the user drops below 5. Use the Profile Options window to set the Concurrent: Active Request Limit profile. To set a global limit for all users, set this option at the site level. You can then modify limits for individual users by setting this profile option at the User level.

do share you feedback and comments. thanks – shivmohan purohit

Run Posting (GLPPOS), or other concurrent programs from the Command line


Run Posting (GLPPOS), or other concurrent programs from the Command line?

How to Run Posting (GLPPOS), or other concurrent programs from the Command line?

You can run any GL program from the command line. Follow these steps:

1) Verify that you run this at a time when there are no incompatible Programs running. To find the incompatible programs:

Responsibility = System Administrator

GUI Navigation = Concurrent/Program/Define

Query on GLPPOS in the Short Name field.

Click on the Incompatibilities button.

2) Change the profile “Concurrent Hold Request” to Yes.

Responsibility = System Administrator

GUI Navigation = Profile/System

Query on the profile option ‘Concurrent Hold Requests’.

Set it to Yes at the User level and Save.

3) Select a journal batch for posting. The request will be put on hold.

Responsibility = General Ledger Super User

GUI Navigation = Journals/Post

4) Go to the Concurrent Requests form and get the parameters for the Posting concurrent process.

The parameters for posting are:

set of books id

chart of accounts id

posting_run_id

5) Run posting from the command line.

$GL_TOP/bin/GLPPOS <username/pwd> 0 Y <parameters> X 2> <File name>

Where:   <username/pwd> : apps username and password

<parameters>   : The parameters for the program, separated by spaces. For NULL parameters you need to specify closed double quotes (“”).

X              : Indicates that you want to run the program in debug mode. This can be any character and is optional.

2> <File name> : Use this to redirect standard errors and output to a file. File name is the output file name it will create. It will be created in your current directory, if a full path is not specified. This is optional

but recommended.

Example:

If you go to the concurrent requests form and see in the Parameters field: 1,101,2546, you would enter the following command at the Unix prompt:

$GL_TOP/bin/GLPPOS <username/pwd> 0 Y 1 101 2546 X 2> <myfile.txt>

6) Change the profile option ‘Concurrent Hold Requests’ back to its original setting. Be sure to run the program from a directory for which you have write Privileges. That is where the log and out files will be created.

Also make sure that you are in the proper application environment.

Here is an example of the command and the output you will see.

$>$GL_TOP/bin/GLPPOS apps/apps 0 Y 8 50128 84 2 2> njpost2.out

DEBUG: started in debug_mode……

$> ls

L54536.log   L54540.log   O54536.out   O54540.out   njpost.out   post.out

L54538.logL54542.log   O54538.out   O54542.out   njpost2.out  test

$> more njpost2.out

Log filename    : L54542.log

Report filename : O54542.out

glpmai() fnd_user_id is -1

glpmai() fnd_user_name is ANONYMOUS

glpmai() req_id is 0

glpmai() sob_id is 8

etc.

selected General Ledger programs can be run in debug

mode by setting the profile option ‘GL: Debug Mode’ to Yes at the

appropriate level.

These programs are:

– GLCRVL – Revaluation

– GLPPOS – Posting

– GLTTRN – Translation

– GLCCON – Consolidation Transfer

– GLAMAS – Run MassAllocations

Oracle Applications – Basics – Part 1


Hello Friends, here i am posting some of basic oracle applications questions , will try to collect more and put in future posts, here i am putting quite easy and basic questions. If you like to know Questions of any specific area or modules, plz communicate so i will post those as well.

What are Oracle Apps API?

Where APIs are physically store? n What is the latest version of API?

They are Application Program Interfaces, which are standard stored procedure, package or functions created for performing specific activities in the Oracle Apps E-Business Suite.

Ex: The Order Import API when called would create orders corresponding to the record in the Order Interface tables.

How to attach reports in Oracle Applications?

The steps are as follows:

1.          Design your report.

2.          Generate the executable file of the report.

3.          Move the executable as well as source file to the appropriate product’s folder.

4.          Register the report as concurrent executable.

5.          Define the concurrent program for the executable registered.

6.          Add the concurrent program to the request group of the responsibility.

How to attach Forms in Oracle Applications

1. Develop the form in Developer 2000.

2. Save the FORM and move it to UNIX. [Form to be moved to $CUSTOM_TOP/forms/US]

3. Define the FORM in Application Developer

4. Define FORM as FUNCTION.

5. Identify MENU, where the FORM to be attached. [SysadminResponsibilityDefine]

6.Copy the above MENU and go to Application Developer and query on MENU tab

What is the difference between Customization and Personalization?

Customization is done by making the changes in the cutom.pll whereas the Form Personalization is done through the Front End in Oracle Apps.

Difference between Key and Descriptive Flexfield?

key flex fields are used to identify particular entity like(accounts,objects) supoose take debit cards each debit card contain unique number to identify them. eg; 100-023-323 key flex fields are used to store this number along with description.

Unique Identifier

Key Flexfield are stored in segment

For key flexfield there are flexfield Qualifier and segment Qualifier

DFF’s are used to capture additional informtion required for our organization without any programming.

To capture extra information
Stored in attributes
Context-sensitive flexfield is a feature of DFF. (descriptive flexfield)

What is the difference between data conversion and data migration?

Data Migration is upgrading from one version to another version fro e.g. from 11.5.9 to 11.5.10.. Data Conversion is receiving data from a legacy system or receiving data from another module ( e.g. PA), validating it and converting it to ur our the target module using the standard import program.

What is the difference between Organization_id and Org_id ?

OrgId: Org Id is an unique ID for the Operating Unit.Organisation Id: The Organisation Id is an ID for the Inventory Organisation which is under an Operating Unit.

What are _ALL tables in Oracle Apps?

_all tables will store information about multiple oraganizations. these table contain ORG_ID column that  picks particular organizations from multiple organizations. _all tables will be created when we install multiorg.

What is one full life cycle implementation?

Full Life Cycle means implementing a project from the begining to the production and maintenance stage.

(1) System Planning:

(Scope & Budget of the Project)

(2) Business Analysis:

(Business Requirements, Mapping & GAP Analysis)

(3) System Analysis & Design

(Design Conceptual & Functional Data Models)

(4) System Development

(Programming & System/Integration/Validation Testing)

(5) System Implementation

(Data Conversions, Interfaces, Extensions,User Manuals & User Training)

(6) System Maintenance & Support

Thanks – Shivmohan Purohit

Oracle Applications – Interview Questions (All Modules)


Oracle Applications – Interview Questions (All Modules)

Question: What are the key benefits of forms personalization over custom.pll?
Answer: Multiple users can develop forms personalization at any given point in time.
It is fairly easy to enable and disable forms personalization.
–>A programmer is not required to do simple things such as hide/disable fields or buttons.
–>Provides more visibility on customizations to the screen.

Question: Tell me some limitations of forms personalization when compared to CUSTOM.pll?
Answer:
–>Can’t create record group queries, hence can’t implement LOV Query changes.
–>Can’t make things interactive, i.e. can’t have a message box that gives multiple choices for example Proceed or Stop etc.

Question: How can you import invoices into Oracle Receivables?
Answer:

You can either use AutoInvoice by populating tables RA_INTERFACE_LINES_ALL, RA_INTERFACE_DISTRIBUTIONS_ALL & RA_INTERFACE_SALESCREDITS_ALL.Alternately you may decide to use API ar_invoice_api_pub.create_single_invoice for Receivables Invoice Import.

Question: In OA Framework, once your application has been extended by substitutions, is it possible to revert back to remove those substitutions?

Answer: yes, by setting profile option “Disable Self-Service Personal%” to Yes, keeping in mind that all your personalizations will get disabled by this profile option. This profile is also very useful when debugging your OA Framework based application in the event of some error. By disabling the personalization via profile, you can isolate the error, i.e. is being caused by your extension/substitution code or by Oracle’s standard functionality.

Question: For a PL/SQL based concurrent program do you have to issue a commit at the end?

Answer: The concurrent program runs within its own new session. In APPS, the default database setting enforces a commit at the end of each session. Hence no explicit COMMIT is required.

Question: What is the difference between running Gather Stats and “Program – Optimizer[RGOPTM]” in Oracle General Ledger?

Answer: “Gather Stats” will simply gather the stats against existing tables, indexes etc. However Gather Stats does not create any new indexes. But “Program – Optimizer[RGOPTM]” can create indexes on GL_CODE_COMBINATIONS, provided accounting segment has the indexed flag enabled,

Question: How do you know if a specific Oracle patch has been applied in apps to your environment?

Answer: Use table ad_bugs, in which column bug_number is the patch number.

SELECT bug_number ,to_char(creation_date, ‘DD-MON-YYYY HH24:MI:SS’) dated

FROM apps.ad_bugs

WHERE bug_number = TRIM(‘&bug_number’) ;

Question: How to make concurrent program end with warning?

Answer: If the concurrent program is of type PL/SQL, you can assign a value of 1 to the “retcode” OUT Parameter. For a Java Concurrent program, use the code similar to below ReqCompletion lRC; //get handle on request completion object for reporting status IRC = pCpContext.getReqCompletion(); lRC.setCompletion(ReqCompletion.WARNING, “WARNING”);

Question: Which table is used to provide drill down from Oracle GL into sub-ledger?

Answer: GL_IMPORT_REFERENCES

Question: You have just created two concurrent programs namely “XX PO Prog1” & “XX PO Prog2”. Now you wish to create a menu for Concurrent Request submission such that only these two Concurrent Programs are visible from that Run Request menu. Please explain the steps to implement this?

Answer:

a) Define a request group, lets say with name “XX_PO_PROGS”

b) Add these two concurrent programs to the request group “XX_PO_PROGS”

c) Define a new Form Function that is attached to Form “Run Reports”

d) In the parameter field of Form Function screen, enter REQUEST_GROUP_CODE=”XX_PO_PROGS” REQUEST_GROUP_APPL_SHORT_NAME=”XXPO” TITLE=”XXPO:XX_PO_PROGS” e) Attach this form function to the desired menu.

Question: Which responsibility do you need to extract Self Service Personalizations?
Answer:Functional Administrator

Question: Can you list any one single limitation of Forms Personalization feature that was delivered with 11.5.10
Answer:You can not implement interactive messages, i.e. a message will give multiple options for Response. The best you can get from Forms Personalization to do is popup up Message with OK option.

Question: This is a very tough one, almost impossible to answer, but yet I will ask. Which Form in Oracle Applications has most number of Form Functions?

Answer: “Run Reports”. And why not, the Form Function for this screen has a parameter to which we pass name of the “Request Group”, hence securing the list of Concurrent Programs that are visible in “Run Request” Form. Just so that you know, there are over 600 form functions for “Run Reports”

Question: How will you migrate Oracle General Ledger Currencies and Sets of Books Definitions from one environment to another without Keying? Will you use FNDLOAD?

Answer: FNDLOAD can not be used in the scenario. You can use migrator available in “Oracle iSetup” Responsibility

Question: How can an end-user be given control to run a script developed by a developer, given that an end user will never have access to apps password (and rightly so)?

Answer: This script can be attached to a Concurrent Program via a concurrent program executable. The user will then be given access to this Concurrent Program.

Question: But how will the end user or Oracle Apps make this script run every 10hours daily?

Answer: A concurrent program can be scheduled to run at desired intervals. The schedule is defined at the time of submission.

Question: What are the basic steps when defining a concurrent program?

Answer: Broadly speaking there are three steps when developing a concurrent program in Oracle Apps Step 1. Make Oracle Apps identify the executable Step 2. Provide a handle to the executable by means of defining a concurrent program Step 3. Make this concurrent program accesible to selected users via their responsibility.

thanks - shivmohan purohit

Shell Script Tutorial for Oracle Applications


  • Steps to Register Shell Script as a concurrent program
  • Sample Shell Script to copy the file from source to destination
  • Basic Shell Script Commands

Steps to Register Shell Script as a concurrent program

step 1:
=======
Place the <name>.prog script under the bin directory for your
applications top directory.

For example, call the script KO_DEMO.prog and place it under
$CUSTOM_TOP/bin

step 2:
=======
Make a symbolic link from your script to $FND_TOP/bin/fndcpesr
For example, if the script is called KO_DEMO.prog use this:

 ln -s $FND_TOP/bin/fndcpesr KO_DEMO

This link should be named the same as your script without the
.prog extension.

Put the link for your script in the same directory where the
script is located.

step 3:
=======
Register the concurrent program, using an execution method of
‘Host’. Use the name of your script without the .prog extension
as the name of the executable.

For the example above:
Use KO_DEMO

step 4:
=======
Your script will be passed at least 4 parameters, from $1 to $4.

  $1 = orauser/pwd
  $2 = userid(apps)
  $3 = username,
  $4 = request_id

Any other parameters you define will be passed in as $5 and higher.
Make sure your script returns an exit status also.

Sample Shell Script to copy the file from source to destination

#Note: If you see # in front of any line it means that its a comment line not the actual code
#** ********************************************************************
# Created By : Shivmohan P

# Creation Date : 19-Sep-2008
# Script Name : KO_demo.prog
# Description : This Script accepts three parameters
# 1)Data File Name 2)Source Directory Path 3)Target Directory Path
# Then copy the file from source location to target location.
# If copy fails send the error status/message to concurrent program so that user can see status.
#
#
# ========
# History
# ========
# Version 1 shivmohan 19-sep-2008 Created for knoworacle.com users
#
#** ********************************************************************
#Parameters from 1 to 4 i.e $1 $2 $3 $4 are standard parameters
# $1 : username/password of the database
# $2 : userid
# $3 : USERNAME
# $4 : Concurrent Request ID
DataFileName=$5  
SourceDirectory=$6
TargetDirectory=$7
echo “————————————————–”
echo “Parameters received from concurrent program ..”
echo ” Time : “`date`
echo “————————————————–”
echo “Arguments : ”
echo ” Data File Name : “${DataFileName}
echo ” SourceDirectory : “${SourceDirectory}
echo ” TargetDirectory : “${TargetDirectory}
echo “————————————————–”
echo ” Copying the file from source directory to target directory…”
cp ${SourceDirectory}/${DataFileName} ${TargetDirectory}
if [ $? -ne 0 ]
# the $? will contain the result of previously executed statement.
#It will be 0 if success and 1 if fail in many cases
# -ne represents not “equal to”

then
echo “Entered Exception”
exit 1
# exit 1 represents concurrent program status. 1 for error, 2 for warning 0 for success
else
echo “File Successfully copied from source to destination”
exit 0
fi
echo “****************************************************************”

Basic Shell Script Commands

# Create Directory
mkdir <dirname>
# Remove Directory
rmdir <dirname>
#remove folder with files
rm -r -f <dirname>
# Change Directory
cd <newpath>
# Create new file
vi <newfile.ext>
#insert data into file
vi <openfilename.ext>
esc i <make changes>
#Save file
esc :wq enter
# exit with out saving changes
esc :q! enter
# open existing file
vi <existingfilename.ext>
#remove file
rm <filename.ext>
# copy file with same name
cp <sourcedir>/<sourcefilename.ext> <destinationdir>
# copy file with new name
cp <sourcedir>/<sourcefilename.ext> <destinationdir>/<newfilename.ext>
# Move file with same name
mv <sourcedir>/<sourcefilename.ext> <destinationdir>
# move file with data appended to filename in the front
mv <sourcedir>/<sourcefilename.ext> <destinationdir>/`date+%H%M%d%m%y`<filename.ext>
#print line
echo “your text here to print”
#print date
echo `date`

Export a concurrent program and executable using FNDLOAD


Hello Friends, a very useful easy to do……. How to export a concurrent program and executable using FNDLOAD?  

 

 

 

 

 

 

 

Please use the following FNDLOAD command to download a concurrent program to a flat file :
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct file_name.ldt PROGRAM APPLICATION_SHORT_NAME=”<your_application_short_name>” CONCURRENT_PROGRAM_NAME=”<your_concurrent_name>”

To upload it to another environment, use the following command :
FNDLOAD apps/apps O Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct file_name.ldt

You may found additional explanation in the Oracle Applications System Administrator’s Guide – configuration Release 11i ( appendix C)

 thanks – Shivmohan