$FLEX$ AND $PROFILE$


                        $FLEX$ AND $PROFILE$


Request Set:
============


Colection of Concurrent Programs which will be used to submit the Cnocurrent Programs
either sequentially or Paraalley multiple programs

It is also like Request group but in Requuest group we can submit only one program at
a time from SRS Window.
where as in Request set we can submit multiple programs at a time.

1)Select the Programs which we would like to group in the set
Ex:Active Responsibilities
Active Users
Compile Reports
2)Open the Request Set form Select the button called Request set wizard and
enter the concurrent Program list.
Concurrent =>Set
3)Open the Request group Form attach the Request set by selecting the Type = Set
and attach the Request set.
4)Goto the SRS Window select the Option called Request set instead of Single Request.

Incompatibility:
============

Incompatibility is nothing but not compatible with the current concurrent program
For Ex
If we have three program A B C
If A program is running in the server system should not run the B and C programs
that time we wii define the Incompatibility
While createion of the A Program
Select the button called Incompatibility and enter the B and C Programs.

Run Alone Check box :if we would like to make the Program is not compatible with all
other concurrent Program then we will check this check box.

Use in SRS Window: Be default this check box will be enabled we uncheck this we can
find the Program at SRS window we have to submit from backend by using fnd_request
API.

Copy To button: While customizing the Concurrent Programs(Reports,Package…..)
we are suppose to create new concurrent Program with diff name then we will
go for using the Copy To button.

note: By default every concurrent Program will be executed in the CBO(Cost Based
Optimizer) if we would like to execute in the RBO(Rule Bases Optimizer)mode then
we will use the Session control buttion we will set the Rule Option.

:$FLEX$
:$PROFILES$

These two are Oracle apps reserved words will be used in the Value set creation

:$FLEX$: This will be used to Retrieve the Previous parameter value whatever we have
selected.

Syntax : :$FLEX$.Previous Parameter VAlue set Name.

For Ex: We have two Parameters

Supplier Name : Table Value set
Supplier Site Code : Table VAlue set

based on the Suplier name we are suppose to get the Site codes in the Second parameter

SELECT VENDOR_NAME FROM PO_VENDORS – First VAlue set

SELECT VENDOR_SITE_CODE FROM PO_vendor_sites_All -Second Value Set
where vendor_name = Whatever user has selected in the First PArameter
(To get this value we will use :$FLEX$.Previous Value set name).

23SUPPLIER – First Value set Name

23SITE
WHERE VENDOR_ID IN(SELECT VENDOR_ID
FROM PO_VENDORS
WHERE VENDOR_NAME = :$FLEX$.23SUPPLIER)

:$PROFILES$: This will be used to Get the Profile value in the Table Value set or
from the front end.

To get Profile values from backend we are using Fnd_Profile.Value or Fnd_Profile.get()

Syntax : :$PROFILES$.Profile Name

SELECT SEGMENT1
FROM PO_HEADERS_ALL

22USER : 204
23USER : 887
24USER : 911

SELECT SEGMENT1
FROM PO_HEADER_ALL
WHERE ORG_ID = :$PROFILES$.ORG_ID

Ex: Display the PO’s which are created by the current User

If 22user ope the LOV it has to display the PO’s which are created by 22 user

SELECT SEGMENT1
FROM PO_HEADERS_ALL
WHERE CREATED_BY = :$PROFILES$.USER_ID

==============================================================================
FLEX FIELDS:



Flex field are made up with Attribute columns or Segment columns . which are more flexible than the normal fields. we have two type of flexfields 
1)DFF (Descriptive Flex Field) 

2)KFF (Key Flex Field) DFF: It will be used to capture the Extra information from the end user without change the code in the form and without Alter the DB object. ATTRIBUTE Columns will be used to Capture the DFF data. KFF: it will be used to Capture the Key information from the User in code language for every code there will be a specific meaning. SEGMENT Columns will be used Capture the KFF Data We can find all the flexfield details in Application Developer Responsibility Flexfield=>Descriptive=>register=> CTRL+F11 for all DFF Flexfield=>Key =>register=> CTRL+F11 for all KFF We will Use the Segment form to Customize the DFF.


==============================================================================

Value sets

Value Set: Value set is nothing but list of values with validations which will be
used to to restrict the user without entering the invalid data in the Parameters

we will use value sets in two locations.
1)Concurrent Progam parameters
2)Flexfields


NONE:
We are not providing any LOV, we can apply some format conditions as per that
conditions user should enter the data

Notes: 1)Once we create the Value set we can not Delete if we would like to delete
we have to release the value set from the all the concurrent program
parameters then only we can delete.
2)Value set name is case sensitive
3)Once we create Value set we can use for multiple Program parameters.

Navigation:
System administrator => Application=>Validation=>set=>
Enter value set name
format type
max size
Select validation type = “None” to create None type of Value sets.

Independent:
When we would like to provide list of values to the user then we will go for selection
of Independent value set.where we will provide LOV.
User must select the Value from the list otherwise values are not accepted.

Open the Value set form create value set by selecting the validation type=Independnent
Goto Values screen enter the value set name , Select Find Buttion
enter the values whatever we would like to display as LOV.
attach the value set to the Parameter.

Note:1)Once we enter the values we can not delete instead of that we can disable by
selecting the Enabled check box
or Effective Dates.


Dependent value Set:
====================

This is another LOV which will be used to displays the
list of values which are depending on the previous parameter value.

Before going to create Dependent first we have to create Independent
then we have to create Dependent

First parameter will be Independent
Second parameter will be Dependent.

Note:Without Independent we can not create Dependent Value set.

Country IND
US
UK
City Banglore Chennai Delhi Mumbai Pune
Chikago California Anderson
London Hungrant

1)We have to create Independent value set and enter the values.
2)Create Dependent value set attach independent and then enter values.

Job Manager
Developer
Programmer

Position Delivery Manager Project manager Financce manager
Software Developer Test Developer
Trainee Fresher


Navigation:
==========

1)Open the Value set form create Value set by selecting the validation type =Independent
2)Open the Values screen enter the VAlues .
3)Open the value set form enter Dependent value set by select validation type=Dependent
Select the Button called Edit Information button enter the Independent value set
4)open the values form enter the Dependent value set=>Find
enter the values based on the Independent values.

Table Value set :
=================


Table value set will be used to displays the list of values from the oracle apps base tables.
we have to give the table name and column name which will automatically displays the values.

Note: If values are not stored in the database table then we have to go for Independent value set.
If values are there in the table then we will create table value set.

1.Open the value set form Select validation type as table select the button called Edit 

Information enter table name and column name in the value field
2.Use where/Order By clause to implement Where/Order By clause.
3.Use Additional Columns field to displays extra columns for reference purpose.
4.Use the ID column to pass the ineternally other columns data for ex displaying username 

to the user and pass userID internally.
5.If multiple tables are required then enter the table names in the table name field with 

alias name and enter the Join Condition in the Where clause field.
6.If we know the table name we can find the Table application name from 

Application Developer responsibility
Application Developer => Application => Database => table
Query the records based on the table Name.

Note: If we are displaying additional Columns we are suppose to give the Alias Name

Translated Independent and Translated Dependent:
================================================

Both value sets will work like Independent and Dependent value sets will be used to 

displays the transalation values which will be enabled if there is multilanguage implementation.

Special and Pair:
=================

Both Value sets will be used to displays the Flexfield data as LOV to the User.

===============================================================================

Qry Find

1.CREATE A TABLE IN PARTICULAR MODULE. 

2.GRANT THE TABLE TO APPS. 
3.CREATE SYNONYM FOR THE TABLE. 
4.DOWNLOAD TEMPLATE.FMB AND APPSTAND.FMB FROM AU_TOP/RESOURCES TO LOCAL MACHINE USING FTP. 
5.RENAME TEMPLATE.FMB AND OPEN IT IN FORMBUILDER. 
6.OPEN APPSTAND.FMB IN THE SAME FORM. 
7.COPY QUERY-FIND FROM APPSTAND OBJECT GROUP TO TEMPLATE OBJECT GROUP. 8.DELETE BLOCKNAME IN CANVAS,WINDOWS,DATABLOCK LEVEL. 
9.CREATE NEW CANVAS,WINDOW,DATABLOCK USING CREATE BUTTON. 
10. (i)SELECT QUERY_FIND DATABLOCK.SELECT NEW BUTTON TRIGGER –>CHANGE BLOCK NAME (ii)SELECT FIND BUTTON TRIGGER –>CHANGE BLOCK NAME (iii)GO TO MAIN DATABLOCK SELECT ITEM TO QUERY PASTE IT IN QUERY_FIND BLOCK ITEMS (iv)SELECT COPIED ITEM PROPERTIES CHANGE CANVAS NAME. 
11.SELECT MAIN_BLOCK TRIGGERS CREATE PRE_QUERY_TRIGGER INSIDE THE TRIGGER TYPE if :parameter.g_query_find = ‘true’ then copy(:query_find_block.item,’main_block.item’); :parameter.g_query_find := ‘false’; end if; 
12.CREATE ONE MORE TRIGGER AT SAME BLOCKLEVEL TRIGGERNAME IS USER_NAMED INSIDE THE TRIGGER TYPE app_find.query_find(‘main_window’,'query_find_window’, ‘query_find_block’); 13.SELECT LOV BLOCK CREATE LOV. 
14.ATTACH LOV TO QUERY_FIND ITEM IN QUERY_FIND_DATABLOCK. 
15.SELECT MODULE LEVEL TRIGERS CUSTOMIZE PRE-FORM,WHEN-NEW-FORM-INSTANCE TRIGGER AND APP_CUST PACKAGE_BODY 
16.EXECUTE USERNAMED TRIGGER IN WHEN-NEW-FORM-INSTANCE TRIGGER BY USING EXECUTE_TRIGGER(‘TRIGGER_NAME’); 
17.SAVE THE FORM AND TRANFER FMB TO CUSTOM_TOP. 
18.GENERATE FORMEXECUTABLE(FMX) USING THE UNIX COMMAND F60GEN MODULE = FORMNAME.FMB USERNAME/PASSWORD. 
19.TRANSFER FMX TO PARTICULAR MODULE_TOP/FORMS FOLDER. 
20.LOG ON TO ORACLE APPS SELECT APPLICATIONDEVELOPER RESP. 
21.CREATE FORM. 
22.CREATE FUNCTION,ATTACH FORM TO FUNCTION. 
23.CREATE MENU ,ATTACH FUNCTION TO MENU. 
24.DEFINE RESPONSIBILITY,ATTACH MENU TO RESP. 

25.ATTACH RESP TO USER.

=========================================================================
note: In the Projects most of the profile values will be assigned at the Responsibility
level.

Diff Between Application and Responsibility:
=========== ===============


Applciation is nothing Colletion of Forms,Reports and Program which are related for
specific business functionality.

Responsibility is nothing but Colletion of Forms,Reports and Program which are related for
specific Position in the Organization.

For Ex : We have to create One Responsibility For the Clerk. Which is accesable by all
the Clerks.
It Contains the Forms and Reports which are required for the Clerk.

We have to Create new Responsibility for the Manager,Which is accesable by all the
Managers.
It COntains the Forms and Reports which are required for the manager.

Where as Application includes all the Forms,Reports and Programs.If we assign the
application to the user he will access all the forms and Reports.
Intead of that we will create the responsibility and we will assign to the User.

Common Profiles:
================


Gl:Set of Books: Which is Financial Profile option will be uset to assin SetofBooks
HR:Business Group : Which will used to assign the Business Group
MO:Operating Unit : To assign the Operating Unit (Branch) to the users.
MFG_ORGANIZATION_ID: Will Be used to assign the Manufacturing Organization ID.

USER_ID
USERNAME
RESP_NAME and so on………

We can find all the Profile details in Application Developer Responsibility.
We can assign the Profile values in System Administrator Responsibility.

Application Developer=>Profile =>Press CTRL+F11 we can find all the profiles.

System administrator=>profile=>System=> Select Profilename,Level =>Find button
then assign the Profile value.

Set Of Books :SOB is nothing but collection of Currency
Calendar
Chart of Accounts.
We will assign the SOB as a profile value to the user as per the Profile value system
will automatically change the application running.

Base on the SOB name we can find the change in the currency and calendar and accounts

SELECT NAME,
CURRENCY_CODE,
PERIOD_SET_NAME,
CHART_OF_ACCOUNTS_ID
FROM GL_SETS_OF_BOOKS

SELECT * FROM GLFV_CHARTS_OF_ACCOUNTS WHERE CHART_OF_ACCOUNTS_ID = 50713

22USER GL:Set Of Books Vision Operations (USA) USD
23USER GL:Set Of Books Vision Korea KRW
24USER GL:Set Of Books Vision Italy ITL

Create Three users
Assign Profile values from System administrator (Profile=>System)
open the GL Form and verify the curency values (GL=>Journal=>Enter=>new Journal)

Note: Most of the profile values will be assigned at Responsibility Level.

Retrieve the Profile Value from Backend:(SQL,PL/SQL,Forms6i,Reports6i)
======================================


Fnd_Profile.Get(‘ProfileName’,
local Variable);

local Variable:= Fnd_Profile.Value(‘Profile Name’);

Both API’s will be used to retrieve the Profile value frombackend

Get() is Procedure
Value() is Function

Oracle Has provided both Procedure and Function becuase in some of the areas we can not
use procedure then we can use function.

For Ex: in SELECT clause we can not use procedure we have to go for using the Function.

1)We would like to display the Set of Books name
User name
Respname in the first page of the report.

22USER
23USER
24USER

Ans)

1)Define the Local Variable
2)Goto before Report Trigger write the follwoing API

_SOBNAME:= Fnd_Profile.value(‘GL_SET_OF_BKS_NAME’);
:USERNAME := Fnd_Profile.value(‘USERNAME’);
Fnd_Profile.Get(‘RESP_NAME’,
:RESPNAME);
3)Goto Layout model Header section and Display the Variable Name.
4)Submit from Diff Users and test the Output we can find the Difference.

2)Develop the PL/SQL Program for vendor Name updation. Vendor name should be updated
if “OPERATIONS” user submit the Program for other users should not get update.

Parameters are VendorID
VendorName

Create Or Replace Procedure ven_update(Errbuf OUT varchar2,
Retcode OUT varchar2,
v_id IN number,
v_name IN varchar2) as
l_name varchar2(100);
begin
l_name:=Fnd_Profile.value(‘USERNAME’);
If l_name = ‘OPERATIONS’ then
UPDATE PO_VENDORS
SET VENDOR_NAME = v_name
WHERE VENDOR_ID =v_id;
commit;
Fnd_File.Put_line(Fnd_File.Output,’vendorname has updated succesfully’);
Else
Fnd_File.Put_line(Fnd_File.Output,’Access Denied for updateion’);
End If;
End;

Note: We can pass the profile value as default value by using Profile default type.
Select Default type = profile
Default Value= Profile Name
When we are passing Profile value as default we are suppose to hide the Parameter
because profile is confidential Information we are not suppose to give permission for
modifications.

=============================================================================
Profile :
Profile is one of the changable option it will change the way of
application execution.

When User Log in to the application and select the the resp or Appl
system will automatically captures all the profile value as per the
profile values application will run.

Ex: If client have three Organizations 1)Hyd
2)Ban
3)Chn
If “hyd” users connect to the Application system will retrive the
data from database which is related to the Hyderabad branch.
If user is working for ‘CHN’ brnach then chennai branch setups or data
will be retrieved.

For every user we will assign the Profile value

Ex: Operation

Position – Profile Name
Profile Values
————–
Manager
Supervisior
Clerk
Operator
Trainess

When we want assign any profile value we have four levels
we have to select any one of the level.

Profile Level Profile Profile Value
————- ——- ————–
User - OPERATIONS - Print – 10(This is for for Operations)
Responsibility – 22Responsi - Print - 5(This is for 22resp users)
Application – GL Applica - Print - 4(This is for GL App Users)
Site - — - Print - 2(This is for ALL Users)

Site : this is lowest level to assign the Profile values site values
are applicable for all the users.when we install Application by default
site level values will be assigned.

Application: These values are applicable for the users who are having
the access for the application. If user is eligible for both
application and site level values then application level value will
override the site level value.

Responsibility:We will select the responsibility name assign the value
which is applicalbe only for the users who are having the access for
specified responsibility.

Responsibility level value will override both application and site
level values.

User: This is highest level in the profile option.
we will select the user name and assign the profile value which is
applicable only for this user.
User level value will override all other profile level values.

Diff between Application and Responsibility:
============================================

Both are Group of Forms(Menu)
Group of ConcurrentPrograms(Request Group)
Group of Users (Data group)
But Application as per the Business functionality requirement
Responsibility will group as per the position requirement.

Some of the Imp Profile Names:

GL:Set Of Books
MO:Operating Unit
Hr:Business Groups
MFG_ORGANIZATION_ID
USER_ID
RESP_ID
USERNAME
RESP_NAME and so on……….

==============================================================================
User Creation

Creation of New User:

1)Open the internet Explorer connect to Oracle Applications
2)Enter the User Name :OPERATIONS
Password :WELCOME
3)Select the Responsibility called ‘System Administrator’
4)Open the User form.
Security => User =>Define

5)Enter User Name and Password attach the Responsibilities whatever we required
for ex System Administrator
Application Developer

6)Exit from the Appication
File => Exit Oracle Applications

7)Connect to Oracle apps enter new user name password system will shows the message
like ‘Password Has Expired’

8)Enter the New Password Press Ok Button

Short Cuts:
===========


1)To Query All the Records Press CTRL+F11
2)To Query Specific Records
i)Open the Form
ii)Press F11 (Form will comes into Query mode)
iii)Enter Search Criteria in any field
iV)Press CTRL+F11
3)To Close Form = F4
5)To Save the Records CTRL+S

Effective Date From and To:
===========================


In most of the Oracle Application forms we will find two field like
Effective Date From
Effective Date To

In some of the forms once we create records and save. We can not delete from database
that time we can go for Disable/Enable the record by using these two fields

Finding Table NameS/Column Names:
=================================


1)Help => Record History which will shows the Table Name
2)Help Menu=>Diagnastics=>Examine=>Enter the Password(APPS)=>We can find the Column Name

WHO Columns:
=============


WHO Column Will be used to find out the History of the record
we can find from front End Also
Help=>Record History

CREATED_BY – Which User has created the Record(Userid)
CREATION_DATE – at what time user has created (SYSDATE)
LAST_UPATED_BY -Which User has updated recentley(UserID)
LAST_UPDATE_DATE -at what time user has Updated (SYSDATE)

LAST_LOGON_DATE – At what time user last Login Time

Find the Login UserName:
==========================

Help Menu=>About Oracle Applications




3 comments:

  1. best explanation.....good for understanding the apps concepts....

    ReplyDelete
  2. That was really helpful! its easy to understand the explanation. Thankyou very much!

    ReplyDelete
  3. thanks for this, it is really a big help on my end

    ReplyDelete

How to find all cancel Requisitions

SELECT prha . *   FROM po_Requisition_headers_all prha , po_action_history pah   WHERE      1 = 1        AND pah . object_id ...