Professional Documents
Culture Documents
AOL is a collection of pre-built application components and facilities and it consists of forms, subroutines, concurrent programs and reports, database tables and objects, messages, menus, responsibilities, flexfield definitions, various guides and library functions.
6/19/2012
Main Menu
Menu
Menu
Application User
Profile Option Assignment
Form
Form
Security Rules
FlexFields Value
6/19/2012
Profile Option
6/19/2012
User(who uses the Application) Responsibility(Assigned to User) Profile(Level of Access) Concurrent Programs(To Perform Various Task) Valueset Requestset Request group Flexfield( To capture info) Etc.
6/19/2012
6/19/2012
6/19/2012
Users and Responsibilities are created in oracle applications in order to control the access to the data. Users are assigned a set of responsibilities through which they can retrieve or modify certain set of data. Responsibility is a grouping of access in a logical manner. Accounts payable responsibility would contain all the privileges to create invoices, make payments etc. All the users from the payables department would be given this responsibility. We can create users, responsibility through system administrator responsibility in oracle applications.
Author : Amit R Tiwari 6/19/2012 9
1. 2. 3. 4. 5.
Login to the E-Business Suite Home Page Be connected as sysadmin Choose the "System Administrator" from the Navigator Choose from "Security: User" Define option Enter the information for this user and add some responsibilities to the user if you want to do it now
Creation of User Navigation System Administrator ->Security -> User -> Define
Creation of Responsibility
6/19/2012
10
Creation of User
6/19/2012
11
6/19/2012
12
6/19/2012
13
Fields
UserName Password
Give the username in this field. Enter desired password twice in this field. You would be required to change the password when you login first time with this username. Provide brief description of the user in this field. Days No. Accesses No. None You can attach employee to this user. This is used for HRMS applications To attach customer to this user. To attach supplier to this user. Provide email address for the user. Its use to send notifications to the user through oracle applications. Fax number for the user. From and To dates between which the user would be active. List of responsibilities assigned to the user.
Author : Amit R Tiwari 6/19/2012 14
Person
6/19/2012
15
6/19/2012
16
Attribute : Select an attribute you want used to determine which records this user can access. You can select from any of the attributes assigned to the user's responsibility. Value : Enter the value for the attribute you want used to determine which records this user can access. Securing attributes are used by Oracle HTML-based applications to allow rows (records) of data to be visible to specified users or responsibilities based on the specific data (attribute values) contained in the row. You may assign one or more values for any of the securing attributes assigned to the user. If a securing attribute is assigned to both a responsibility and to a user, but the user does not have a value for that securing attribute, no information is returned for that attribute. For example, to allow a user in the ADMIN responsibility to see rows containing a CUSTOMER_ID value of 1000, assign the securing attribute of CUSTOMER_ID to the ADMIN responsibility. Then give the user a security attribute CUSTOMER_ID value of 1000. When the user logs into the Admin responsibility, the only customer data they have access to has a CUSTOMER_ID value of 1000.
Creation of Responsibility
6/19/2012
18
6/19/2012
19
6/19/2012
20
Responsibility Name - If you have multiple responsibilities, a pop-up window includes this name after you sign on.
Application - This application name does not prevent the user of this responsibility from accessing other applications' forms and functions if you define the menu to access other applications.
Responsibility Key - This is a unique name for a responsibility that is used by loader programs. Loaders are concurrent programs used to "load" such information as messages, user profiles and user profile values into your Oracle Applications tables. To help ensure that your responsibility key is unique throughout your system, begin each Responsibility Key name with the application short name associated with this responsibility. Effective Dates From/To - Enter the start/end dates on which the responsibility becomes active/inactive. The default value for the start date is the current date, and if you do not enter an end date, the responsibility is valid indefinitely. You cannot delete a responsibility because its information helps to provide an audit trail. You can deactivate a responsibility at any time by setting the end date to the current date. If you wish to reactivate the responsibility, change the end date to a date after the current date, or clear the end date. Available From - A responsibility may be associated with only one applications system. Select between Oracle Self-Service Web Applications or Oracle Applications. Data Group - Name/Application The data group defines the pairing of application and ORACLE username. Select the application whose ORACLE username forms connect to when you choose this responsibility. The ORACLE username determines the database tables and table privileges accessible by your responsibility. Transaction managers can only process requests from responsibilities assigned the same data group as the transaction manager.
Menu - The menu whose name you enter must already be defined with Oracle Applications.
Web Host Name - If your Web Server resides on a different machine from your database, you must designate the host name (URL) here. Otherwise, the Web Host Name defaults to the current database host server. Web Agent Name - Enter the PL/SQL Agent Name for the database used by this responsibility. If you do not specify an Agent Name, the responsibility defaults to the agent name current at log-on. Request Group Name/Application - If you do not assign a request security group to this responsibility, a user with this responsibility cannot run requests, request sets, or concurrent programs from the Submit Requests window, except for request sets owned by the user. The user can access requests from a Submit Requests window you customize with a request group code through menu parameters.
6/19/2012
22
6/19/2012
23
API is fnd_user_pkg.createuser()
6/19/2012
24
DECLARE v_session_id INTEGER := userenv('sessionid'); v_user_name VARCHAR2(30) := upper('&Enter_User_Name'); BEGIN --Note, can be executed only when you have apps password. -- Call the procedure to Create FND User fnd_user_pkg.createuser(x_user_name => v_user_name ,x_owner => '' ,x_unencrypted_password => 'oracle' ,x_session_number => v_session_id ,x_start_date => SYSDATE - 10 ,x_end_date => SYSDATE + 100 ,x_last_logon_date => SYSDATE - 10 ,x_description => 'appstechnical.blogspot.com' ,x_password_date => SYSDATE - 10 ,x_password_accesses_left => 10000 ,x_password_lifespan_accesses => 10000 ,x_password_lifespan_days => 10000 ,x_employee_id => 30 /*Change this id by running below SQL*/ /* SELECT person_id ,full_name FROM per_all_people_f WHERE upper(full_name) LIKE '%' || upper('<ampersand>full_name') || '%' GROUP BY person_id ,full_name */ ,x_email_address => 'appstechnical.blogspot@gmail.com' ,x_fax => '' ,x_customer_id => '' ,x_supplier_id => ''); fnd_user_pkg.addresp(username => v_user_name ,resp_app => 'SYSADMIN' ,resp_key => 'SYSTEM_ADMINISTRATOR' ,security_group => 'STANDARD' ,description => 'Auto Assignment' ,start_date => SYSDATE - 10 ,end_date => SYSDATE + 1000); END; /
Author : Amit R Tiwari
6/19/2012
25
6/19/2012
26
6/19/2012
27
API is
fnd_user_resp_groups_api.insert_assignment
How Do we use this API : we create a script. Why Needed ? use script file. When Multiple User is need to be Assigned responsibility we
6/19/2012
28
DECLARE CURSOR user_csr(v_user_name VARCHAR2) IS SELECT user_id FROM FND_USER WHERE user_name = v_user_name; CURSOR resp_csr(v_resp_name VARCHAR2) IS SELECT responsibility_id, application_id FROM fnd_responsibility_tl WHERE responsibility_name = v_resp_name; error_excp EXCEPTION; l_user_id NUMBER; l_responsibility_id NUMBER; l_application_id NUMBER; BEGIN OPEN user_csr('XXX901'); ----Pass the user name here FETCH user_csr INTO l_user_id; IF (user_csr%NOTFOUND) THEN DBMS_OUTPUT.PUT_LINE('Invalid User'); CLOSE user_csr; RAISE error_excp; END IF; CLOSE user_csr; DBMS_OUTPUT.PUT_LINE('User ID is ' || l_user_id); OPEN resp_csr('System Administrator'); ----Pass the responsibility name here FETCH resp_csr INTO l_responsibility_id, l_application_id; IF (resp_csr%NOTFOUND) THEN DBMS_OUTPUT.PUT_LINE('Invalid Responsibility'); CLOSE resp_csr; RAISE error_excp; END IF; CLOSE resp_csr; DBMS_OUTPUT.PUT_LINE('Responsibility ID is ' || l_responsibility_id); FND_USER_RESP_GROUPS_API.INSERT_ASSIGNMENT(user_id => l_user_id ,responsibility_id => l_responsibility_id ,responsibility_application_id => l_application_id ,security_group_id => 0 ,start_date => SYSDATE - 1 ,end_date => NULL ,description => NULL); COMMIT; DBMS_OUTPUT.PUT_LINE('Successfully Assigned Responsibility'); EXCEPTION WHEN error_excp THEN NULL; WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE(SQLERRM); END; /
6/19/2012
29
6/19/2012
30
FND_RESPONSIBILITY
6/19/2012
31
FND_RESPONSIBILITY_TL
6/19/2012
32
Definition:
Profiles are the changeable options which affect the way Oracle Application runs.
6/19/2012
33
6/19/2012
34
The Profile values will be set in different levels those are given below.
1. 2. 3. 4. 5. 6.
6/19/2012
35
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.
6/19/2012
36
6/19/2012
37
6/19/2012
38
6/19/2012
39
6/19/2012
40
6/19/2012
41
6/19/2012
42
FND_PROFILE_OPTIONS
6/19/2012
43
6/19/2012
44
6/19/2012
45
Form : Enter the file name of your form (the name of the .fmx file) without extension. Your form filename must be all uppercase, and its .fmx file must be located in your application directory structure. Application : Enter the name of the application which will own this form. User Form Name : This is the form name you see when selecting a form using the Functions window. Description : Enter a suitable description for your form.
6/19/2012
47
6/19/2012
48
Click on the form tab and you will see next screen
6/19/2012
49
Fields Function : Enter a unique function name for your function. This function name can be used while calling this program programmatically. This name is not visible to the user through other forms. Form : Select the form name which you have registered. Application : Select the application name for your form. Parameters : Enter the parameters that you want to pass to your form function. E.g. Query_only.
6/19/2012
50
Fields Menu : Enter the descriptive name for the menu. This name is not visible to the user. User Menu Name : The user menu name is used when a responsibility calls a menu. Menu Type : The options in menu type include: Standard - for menus that would be used in the Navigator form Tab - for menus used in self-service applications tabs Security - for menus that are used to aggregate functions for data security or specific function security purposes, but would not be used in the Navigator form Seq : Enter a sequence number. Prompt : Enter the prompt that the users will see for the menu. Submenu : If you want another menu to be called from this menu, then enter this menu name in this field. Function : Enter the form function name in this field. Description : Enter a suitable description for the menu. Grant :The Grant check box should usually be checked. Checking this box indicates that this function is automatically enabled for the user. If this is not checked then the function must be enabled using additional data security rules. View Tree :Click on View Tree Button and you will see following screen with the full hierarchy of the menu.
Author : Amit R Tiwari 6/19/2012 52
6/19/2012
54
6/19/2012
55
6/19/2012
56
Fields Responsibility Name : Enter the responsibility name for the new responsibility. Application : Enter the application name you want to associate the new responsibility to. Responsibility Key : The responsibility key is a unique identification for the responsibility. This is used in the loader programs for internal purposes. Description : Enter a suitable description for the new responsibility. Effective Dates : Enter the date range in which the responsibility will be active in the From and To fields. Available From : In the available from field box, select whether you want this responsibility to be available from Oracle applications or from Oracle Self Service Web Applications or from Oracle mobile Applications. Data Group : The data group defines the database user name that oracle applications use to connect to the database when you connect to applications using this responsibility. Menu Name : Enter the menu name that you want to associate with this responsibility. Web Host Name : If your Web Server resides on a different machine from your database, you must designate the host name (URL) here. Otherwise, the Web Host Name defaults to the current database host server. Web Agent Name : Enter the PL/SQL Agent Name for the database used by this responsibility. If you do not specify an Agent Name, the responsibility defaults to the agent name current at log-on. Request Group : The request group would define which requests the users with this responsibility can run. If no request group is assigned to this responsibility then the users with this responsibility will not be able to run requests for which he is not the owner. Enter the Request group name and Application name for the request group that you want to assign to this responsibility.
6/19/2012
57
User
Responsibility Profile
Creation Of User
Creation of Responsibility Assigning Responsibility To User
Form Registration
Menu Function Responsibility
Assigning Profile
6/19/2012
58
6/19/2012
59
A concurrent program is an instance of an execution file, along with parameter definitions and incompatibilities.
6/19/2012
60
Oracle Reports used for the RDF reports Host used for shell scripts, basically the language of the host operating system PL/SQL Stored procedure used to run the stored procedure through oracle applications SQL*Loader used to run the sql loader programs SQL*Plus - used to run the anonymous PL/SQL blocks. It will get executed in the same fashion as you are running on SQL Plus. Java Stored Procedure The execution file is a Java stored procedure. Java Concurrent Program Used for program written in Java. Spawned used for c or pro*c Program. Mainly used by standard oracle interfaces. Perl Concurrent Program used for programs written in CGI Perl. Request Set Stage Function PL/SQL stored function that can be used to calculate the completion statuses of request set stages. Immediate execution file is a program written to run as subroutine of the concurrent manager. Oracle doesnt recommend use of this executable type. Multi-Language function execution file is an MLS function that supports running concurrent program in multiple languages.
6/19/2012
61
Answer: Broadly speaking there are three steps when developing a concurrent program in Oracle Apps
6/19/2012
62
Step 1. Make Oracle Apps identify the executable In Oracle Apps we have something called as concurrent program executable. Concurrent program executable is defined to register a script or a procedure for its usage within oracle apps.
We need to define a concurrent program and attach that to the executable defined in above step.
Step 3. Make this concurrent program accesible to selected users via their responsibility. We do this by adding the concurrent program to something called as request group. The request group is either associated with a responsibility or is passed in as a parameter to the function request form function.
6/19/2012
63
Creating Executable: Navigation: Login into Oracle Applications >Go to Application Developer >Responsibility > Concurrent >Executable
6/19/2012
64
6/19/2012
65
6/19/2012
66
Executable: This is User Understandable Name Short Name: This is Unique and for system reference Application: Under which application you want to register this Conc. Program Description: Description
Execution Method: Based on this field, your file has to be placed in respective directory or database.
Execution File Name: This is the actual Report file name. If you register a PL/SQL Procedure in a package you have to give the packagename.procedure. You dont need to specify any parameters in procedure here.
Action: Save
6/19/2012
67
6/19/2012
68
6/19/2012
69
6/19/2012
70
Program: User Understandable Program Name Short Name: This should be unique name and for system reference Application: Enter the application under which you want to register this conc.prog Executable Name: Enter the User Understandable Executable Name
Printer: You can default any printer or you can enter while submitting concurrent program.
6/19/2012
71
6/19/2012
73
Seq: Its always better to enter sequences in multiple of 5 or 10. So that you can insert any additional parameters if you want later in middle.
Action: Save
6/19/2012
74
6/19/2012
75
6/19/2012
76
6/19/2012
77
Action: CTRL+F11
6/19/2012
78
Action: Select the First record in the Requests and then File > New
6/19/2012
79
6/19/2012
80
Action: Save
6/19/2012
81
Now our Concurrent Program is ready to use from the responsibilities having Purchasing Reports as Request Group.
6/19/2012
82
The concurrent managers in the Oracle eBusiness suite serve several important administrative functions. Foremost, the concurrent managers ensure that the applications are not overwhelmed with requests, and the second areas of functions are the management of batch processing and report generation.
6/19/2012
83
The Oracle e-Business suite has three important master Concurrent Managers: Concurrent Manager: Concurrent Managers start concurrent programs running. Internal Monitor: Internal Monitors monitor the Internal concurrent manager in a parallel concurrent processing environment. If the Internal Concurrent Manager exits abnormally (for example, because its node or its database instance goes down), an Internal Monitor restarts it on another node. Transaction Manager: Transaction managers handle synchronous requests from client machines.
6/19/2012
84
A concurrent request proceeds through three, possibly four, life cycle stages or phases:
Pending Request is waiting to be run Running Request is running Completed Request has finished Inactive Request cannot be run Within each phase, a request's condition or status may change
6/19/2012
85
Stores information relating a document to an application entity. FND_CONCURRENT_PROCESSES: Stores information about concurrent managers. FND_CONCURRENT_PROCESSORS: Stores information about immediate (subroutine) concurrent program libraries. FND_CONCURRENT_PROGRAMS: Stores information about concurrent programs. Each row includes a name and description of the concurrent program. FND_CONCURRENT_PROGRAMS_TL:Stores translated information about concurrent programs in each of the installed languages. FND_CONCURRENT_QUEUES: Stores information about concurrent managers. FND_CONCURRENT_QUEUE_SIZE: Stores information about the number of requests a concurrent manager can process at once, according to its work shift. FND_CONCURRENT_REQUESTS: Stores information about individual concurrent requests. FND_CONCURRENT_REQUEST_CLASS: Stores information about concurrent request types. FND_CONC_REQ_OUTPUTS: This table stores output files created by Concurrent Request.
6/19/2012
86
6/19/2012
87
6/19/2012
88
TABLE: FND_CONCURRENT_PROGRAMS
PTO
Author : Amit R Tiwari 6/19/2012 89
6/19/2012
90
6/19/2012
91
Name
Datatype
APPLICATION_ID NUMBER CONCURRENT_QUEUE_ID NUMBER CONCURRENT_QUEUE_NAM VARCHAR2 E LAST_UPDATE_DATE DATE LAST_UPDATED_BY CREATION_DATE NUMBER DATE
Manda Comments tory Yes Application identifier Yes Concurrent manager identifier Yes Concurrent manager name Yes Standard Who column Standard Who column Standard Who column Standard Who column Standard Who column Application identifier of the program library Program library identifier The maximum number of concurrent requests the manager can run at a time The number of currently active manager processes Buffer size of the concurrent manager Not currently used Not currently used Target machine Reserved for future use The number of seconds the concurrent manager waits between checking the list of pending requests Concurrent manager control code For internal use only Type of concurrent manager Machine name Secondary machine name Platform-specific operating system queue name Author : Amit R Tiwari 6/19/2012 Secondary platform-specific operating system queue name 92
(15)
CREATED_BY NUMBER LAST_UPDATE_LOGIN NUMBER PROCESSOR_APPLICATION_ NUMBER ID CONCURRENT_PROCESSOR NUMBER _ID MAX_PROCESSES NUMBER RUNNING_PROCESSES NUMBER CACHE_SIZE NUMBER MIN_PROCESSES TARGET_PROCESSES TARGET_NODE TARGET_QUEUE SLEEP_SECONDS CONTROL_CODE DIAGNOSTIC_LEVEL MANAGER_TYPE NODE_NAME NODE_NAME2 OS_QUEUE OS_QUEUE2 NUMBER NUMBER VARCHAR2 VARCHAR2 NUMBER VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2
(15) (15) (15) (15) (4) (4) (3) (4) (4) (30) (30) (4) (1) (1) (30) (30) (30) (30) (30)
Name QUEUE_APPLICATION_ID
Datatype NUMBER
Comments Application identifier of the concurrent manager Concurrent manager identifier Application identifier of the concurrent manager work shift Concurrent manager work shift identifier Standard Who column Standard Who column Standard Who column Standard Who column
CONCURRENT_QUEUE_ID NUMBER PERIOD_APPLICATION_ID NUMBER CONCURRENT_TIME_PERI NUMBER OD_ID LAST_UPDATE_DATE DATE LAST_UPDATED_BY CREATION_DATE CREATED_BY NUMBER DATE NUMBER
(15)
Yes Yes
(15)
Yes
LAST_UPDATE_LOGIN
MIN_PROCESSES
NUMBER
NUMBER
(15)
(4)
Yes
Yes
MAX_PROCESSES SLEEP_SECONDS
NUMBER NUMBER
(4) (4)
SERVICE_PARAMETERS
FAILOVER_MIN FAILOVER_MAX
VARCHAR2 (2000)
NUMBER NUMBER (5) (4)
6/19/2012
93
6/19/2012
94
6/19/2012
95
Columns
Name
Datatype
Length
CONCURRENT_REQUEST_ID NUMBER OUTPUT_ID FILE_TYPE FILE_NAME FILE_NODE_NAME FILE_SIZE ACTION_TYPE FILE_CREATION_DATE NUMBER VARCHAR2 (30) VARCHAR2 (255) VARCHAR2 (255) NUMBER NUMBER DATE
Mandator Comments y Yes Concurrent Request_ID Yes Yes Yes Yes Sequence number generated for this output file Represents the output file type File name with full path File Node Name File Size PP_ACTION type will store 6 for XML Publisher output. File Creation date
Yes
6/19/2012
96
1)
Below is the PL/SQL code to create an executable from back-end. BEGIN FND_PROGRAM.executable('XXMZ_EMPLOYEE' -- executable , 'XXMZ Custom' -- application , 'XXMZ_EMPLOYEE' -- short_name , 'Executable for Employee INFORMATION' --description , 'PL/SQL Stored Procedure' -- execution_method , 'XXMZ_EMPLOYEE' -- execution_file_name , '' -- subroutine_name , '' -- Execution File Path , 'US' -- language_code , ''); COMMIT; END;
6/19/2012
97
2)
Registering the Concurrent program from back end Below is the program to create a Concurrent program from back-end. BEGIN FND_PROGRAM.register('Concurrent program for Employee Information' -- program , 'XXMZ Custom' -- application , 'Y' -- enabled , 'XXMZ_EMPLOYEE' -- short_name , Employee Information' -- description , 'XXMZ_EMPLOYEE' -- executable_short_name , 'XXMZ Custom' -- executable_application , '' -- execution_options , '' -- priority , 'Y' -- save_output , 'Y' -- print , '' -- cols , '' -- rows
, '' -- style
, 'N' -- style_required , '' -- printer , '' -- request_type , '' -- request_type_application , 'Y' -- use_in_srs , 'N' -- allow_disabled_values , 'N' -- run_alone
, 'TEXT' output_type
, 'N' -- enable_trace , 'Y' -- restart , 'Y' -- nls_compliant , '' -- icon_name , 'US'); -- language_code COMMIT; END;
6/19/2012
98
3)
Attaching the concurrent program to the request group Below is the program to Attach Concurrent program to the request group from back-end.
BEGIN FND_PROGRAM.add_to_group('XXMZ_EMPLOYEE' -- program_short_name , 'XXMZ Custom' -- application , 'xxmz Request Group' -- Report Group Name
6/19/2012
99
4)
Submitting Concurrent Program from Back-end fnd_global.apps_initialize(user_id,responsibility_id,application_responsibility_id) and then run fnd_request.submit_request DECLARE l_request_id NUMBER(30); Begin FND_GLOBAL.APPS_INITIALIZE (user_id => 1318, resp_id => 59966, resp_appl_id => 20064);
6/19/2012
10 0
Once the concurrent program is submitted from back-end, status of the concurrent program can be checked using below query. SELECT * FROM FND_CONCURRENT_REQUESTS WHERE REQUEST_ID= l_request_id;
6/19/2012
10 1
We use following code to wait for the request. It will return Boolean value.
FND_CONCURRENT.WAIT_FOR_REQUEST (request_id IN number default NULL, interval IN number default 60, max_wait IN number default 0, phase OUT varchar2, status OUT varchar2, dev_phase OUT varchar2, dev_status OUT varchar2, message OUT varchar2);
6/19/2012
10 2
6/19/2012
10 3
Question: What is value set? Answer: It is a set of values Question: Why do we need value sets? Answer: We always want a user to enter junk free text into all the fields. Hence, Oracle Apps uses value set to validate that correct data is being entered in the fields in screen.
Question: Is value set attached to all the fields that require validations? Answer : NO
Question: Then where lies the usage of value sets? Answer: Broadly speaking, value sets are attached to segments in Flexfields.
6/19/2012
10 4
Answer: For the namesake, lets add a Parameter to the concurrent program that we defined in Concurrent Program Training Lesson link. Lets add a parameter named cost centre, the values to this parameter must be restricted to one of the three values, i.e. HR, SEC, IT.
At the time of submission of the concurrent program the user should be able to pick a cost centre from a list. This is where value set gets used. Lets now define a simple value set as described above.
6/19/2012
10 5
6/19/2012
10 6
6/19/2012
10 7
6/19/2012
10 8
6/19/2012
10 9
6/19/2012
11 0
6/19/2012
11 1
Click on Request,
Author : Amit R Tiwari 6/19/2012 11 2
6/19/2012
11 3
6/19/2012
11 4
1. 2. 3. 4. 5. 6. 7. 8.
Independent Dependent None Special Table Pair Translatable Independent Translatable dependent
6/19/2012
11 5
The API has seperate procedures for creating different types of value sets e.g. FND_FLEX_VAL_API.CREATE_VALUESET_TABLE for table value set and Fnd_flex_val_api.create_valueset_independent for independent value set. FND_FLEX_VAL_API.VALUESET_EXISTS can be used to check if value set already exists.
6/19/2012
11 6
Scenario
You are an employee in the College of Science. You want to create a Request Set for your monthly department and project statements, and detail reports. This will reduce the amount of time it takes for you to run your departments reports each month.
6/19/2012
11 7
Objective:
we will create a Request Set to run all monthly statements and detail reports at one time.
6/19/2012
11 8
6/19/2012
11 9
6/19/2012
12 0
6/19/2012
12 1
The first step of setting up a Request Set through the Request Set Wizard is to determine if you want your group of reports to run sequentially or parallel. Sequentially To run one after another. This is generally used for programs and not reports. One program can be dependant upon another, but your reports will not depend on each other for their values. In Parallel Since your reports are not dependant upon one another it is possible to run them all at the same time.
6/19/2012
12 2
6/19/2012
12 3
6/19/2012
12 4
In the Application field type General and hit the tab key. The Application name General Ledger will fill in the field. Enter a description of the Request Set in the Description field and click the Next button.
12 5
6/19/2012
We can choose whether you want the reports to print as each one completes or after all of them have completed. Choose As Each Request in the Set Completes, and click the Next button.
6/19/2012
12 6
In the last step of the Request Set Wizard you will select the reports you want to include in your Request Set. o Type RIT in the first row and hit the tab key. The field will fill in with the RIT Account Analysis-(180 Char) report for your operating accounts detail. Repeat this process in the second row for your project accounts detail.
6/19/2012
12 7
6/19/2012
12 8
o For your FSG reports, such as your Department or Project statements, select the Program Run Financial Statement Generator for each report you want to run.
6/19/2012
12 9
6/19/2012
13 0
A Note window will open letting you know that your Request Set has been saved, click on the OK button.
6/19/2012
13 1
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.
6/19/2012
13 2
System Administrators:
Assign a request security group to a responsibility when defining that responsibility. A responsibility without a request security group cannot run any requests using the Submit Requests window.
Can add any request set to a request security group. Adding a private request set to a request security group allows other users to run that request set using the Submit Requests window.
6/19/2012
13 3
Users:
Can create their own private request sets using the Request Sets window. In a private request set, users can include only the requests you assign to their request security group. Cannot update another user's private request set using the Request Sets window. Cannot delete a private request set if it is assigned to a request security group.
6/19/2012
13 4
Navigation
6/19/2012
13 5
Group Use the request group's name to assign the request group to a responsibility on the Responsibilities window. An application name and request group name uniquely identify a request group. Application Select the name of the application you wish to associate with your request group. An application name and a request security group name uniquely identify a request security group. This application name does not prevent you from assigning requests and request sets from other applications to this request group. Code Assign a code to this request group. Some products use the request group code as a parameter that identifies the requests a customized standard submission form can select. See: Customizing the Submit Requests Window using Codes. Specify the requests and request sets in the request group. Type Choose program or set to add one item, or choose application to include all requests in an application 13
Author : Amit R Tiwari 6/19/2012 6
Request Groups and Request Sets in Concurrent Programs Grouping concurrent programs and other requests together allows us to control access and streamline processing. In Oracle Applications, we group programs and requests into request groups and request sets.
Request Groups A request group is a collection of reports and other concurrent programs. You use request groups to implement security at the responsibility level. Request groups are normally associated with a responsibility, in which case they are referred to as request security groups. Any user of a responsibility has access to the reports in that responsibilitys request security group. Additionally, you can define a request group to have an access code. You can then define the form so that it allows users to select only those reports or concurrent programs belonging to a request group with an assigned code.
Request Sets A request set is a collection of concurrent programs set up to run in a specified sequence from a single transaction. Request sets can also have run and/or print options, which apply to everymember of the set. Programs in a request set can share parameters; therefore a parameter value needs to be entered only once for multiple programs. Any user can create a request set.
6/19/2012
13 7
fnd_program.add_to_group.
fnd_set.add_set_to_group .
6/19/2012
13 8
BEGIN -- Add Request Set to request group. BEGIN fnd_set.add_set_to_group (request_set => 'XXX_TEST_REQUEST_SET', set_application => 'XXX', --REQUEST SET APPLICATION SHORT NAME request_group => 'KNOWORACLE',---REQUEST GROUP NAME group_application => 'XXX'--REQUEST GROUP APPLICATION SHORT NAME ); DBMS_OUTPUT.PUT_LINE ('"XXX_TEST_REQUEST_SET" attached to request group Succesfully '); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE ('Error in attaching "XXX_TEST_REQUEST_SET" to Request Group ' || SQLERRM); END;
6/19/2012
13 9
6/19/2012
14 0
6/19/2012
14 1
6/19/2012
14 2
6/19/2012
14 3
These Alerts are fired/triggered based on some change in data in the database. Ex: If you want to notify your manager when you create an item in the inventory you can use Event based alerts. When you create an item in the inventory it will create a new record in mtl_system_items_b, here inserting a record in the table is an event so whenever a new record is inserted it will send the alert. In same alert you can also send the information related to that particular item.
6/19/2012
14 4
These Alerts are triggered hourly, daily, weekly, monthly or yearly based on your input. Ex: If you want to know list of all items created on that day at the end of day you can use periodic alerts repeating periodically by single day. This alert is not based on any changes to database. This alert will notify you everyday regardless of data exists or not that means even if no items are created you will get a blank notification.
6/19/2012
14 5
You can send notifications You can send log files as attachments to notifications
6/19/2012
14 6
Study your Business requirement and decide what type of alert you need either periodic alert or event based alert. If you are going for periodic alert decide the frequency If you have chosen event based alert then find out on what event (insert, update, delete) you want to fire the alert. Decide what data need to be included in the alert Based on the data you want in the alert write a SELECT SQL Statement to pull the data. Create a distribution list grouping all the people to whom you want to send the alert.
6/19/2012
14 7
6/19/2012
14 8
6/19/2012
14 9
6/19/2012
15 0
6/19/2012
15 1
6/19/2012
15 2
6/19/2012
15 3
ALR_ACTIONS ALR_ACTION_DATA ALR_ACTION_GROUPS ALR_ACTION_GROUP_MEMBERS ALR_ACTION_HISTORY ALR_ACTION_OUTPUTS ALR_ACTION_SETS ALR_ACTION_SET_CHECKS ALR_ACTION_SET_INPUTS ALR_ACTION_SET_MEMBERS ALR_ACTION_SET_OUTPUTS ALR_ACTUAL_RESPONSES ALR_ALERTS ALR_ALERT_CHECKS ALR_ALERT_INPUTS
ALR_DISTRIBUTION_LISTS
ALR_ALERT_INSTALLATIONS ALR_ALERT_OUTPUTS
ALR_LOOKUPS ALR_MESSAGE_SYSTEMS ALR_ORACLE_MAIL_ACCOUNTS ALR_OUTPUT_HISTORY ALR_PERIODIC_SETS ALR_PERIODIC_SET_MEMBERS ALR_PROFILE_OPTIONS ALR_RESPONSE_ACTIONS ALR_RESPONSE_ACTION_HISTORY ALR_RESPONSE_MESSAGES ALR_RESPONSE_SETS ALR_RESPONSE_VARIABLES ALR_RESPONSE_VARIABLE_VALUES ALR_VALID_RESPONSES
Author : Amit R Tiwari 6/19/2012 15 4
6/19/2012
15 5
Question : What is a lookup in Oracle Apps Answer: It is a set of codes and their meanings. Question: Any examples? Answer: The simplest example is say a lookup type of Gender. This will have definitions as below Code Meaning -----------------M Male F Female U Unknown
6/19/2012
15 6
Question: But where is it used, any examples of its usages? Answer: Let us say that there is a table for employees, and this table named PER_PEOPLE_F & has following columns ---FIRST_NAME LAST_NAME DATE_OF_BIRTH GENDER Question: Will the gender column in above table hold the value of M or F or U? Answer: Correct, and the screen that displays people details will in reality display the meaning of those respective codes (i.e. Male, Female, Unknown etc) instead of displaying the code of M or F or U
6/19/2012
15 7
Question: hmmm...so are lookups used to save the bytes space on database machine? Answer: Noooo. Imagine a situation as below a. There are 30,000 records in people table of which 2000 records have gender value = U. In the screen, their Gender is being displayed as "Unknown". Now lets say you want this to be changed to "Undisclosed". To implement this change, all you have to do is to change the meaning of the lookup codes for lookup type GENDER. Hence it will look like Code Meaning ------ ------------M Male F Female U Undisclosed
Here lies the beauty of lookups, you do not need to modify 2000 odd records in this case.
6/19/2012
15 8
Question : Any other usage of lookups? Answer : Sure, lets take another example. In HRMS, there is a field named Ethnicity. By default Oracle ERO delivers the below values Lookup code lookup meaning -----------------------------------AS Asian EU European Now, if your client wants to track Ethnicity at a granular level, they can amend the Oracle delivered lookup definition as below Lookup code lookup meaning -----------------------------------ASI Asian-Indian ASP Asian-Pakistani EU European Hence these values will then be available in the list of values for Ethnicity field.
6/19/2012
15 9
6/19/2012
16 0
Once in the screen, you can define your lookup type and lookup codes as below.
6/19/2012
16 1
Fnd_lookup_types Fnd_lookup_values
6/19/2012
16 2
Columns
Comments Application identifier QuickCode lookup type Customization level Standard Who column Standard Who column Standard Who column Standard Who column Standard Who column
CUSTOMIZATION_LEVEL VARCHAR2 (1) CREATED_BY CREATION_DATE LAST_UPDATED_BY LAST_UPDATE_DATE LAST_UPDATE_LOGIN SECURITY_GROUP_ID VIEW_APPLICATION_ID NUMBER DATE NUMBER DATE NUMBER NUMBER NUMBER (15) (15) (15) (15) (15)
Yes Yes
Yes Yes
Security group identifier Application identifier of view (_LOOKUPS) through which the lookup type will be exposed Assign Leaf Only Flag
ASSIGN_LEAF_ONLY
VARCHAR2 (1)
Name LOOKUP_TYPE LANGUAGE LOOKUP_CODE MEANING DESCRIPTION ENABLED_FLAG START_DATE_ACTIVE END_DATE_ACTIVE CREATED_BY CREATION_DATE LAST_UPDATED_BY LAST_UPDATE_LOGIN
Datatype VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 VARCHAR2 DATE DATE NUMBER DATE NUMBER NUMBER
Comments QuickCode lookup type Language QuickCode code QuickCode meaning Description Enabled flag The date when the QuickCode becomes active The date when the QuickCode becomes inactive
Yes
(15)
Standard Who column Standard Who column Standard Who column Standard Who column
(15) (15)
LAST_UPDATE_DATE
SOURCE_LANG
DATE
VARCHAR2 (4)
Yes
Yes
Yes Yes
The Language the text will mirror. If text is not yet translated into LANGUAGE then any changes to the text in the source language row will be reflected here as well. Security group identifier Identifies which application's view will include the lookup values Territory code of territory using the language Attribute category Attribute Attribute Attribute Attribute Attribute
Author : Amit R Tiwari 6/19/2012 16 4
Attribute
6/19/2012
16 5
A flexfield is a field made up of segments. Each segment has a name you or your end users assign, and a set of valid values. There are two types of flexfields:
Key flexfields and Descriptive flexfields.
6/19/2012
16 6
A key flexfield represents an intelligent key that uniquely identifies an application entity. Each key flexfield segment has a name you assign, and a set of valid values you specify. Each value has a meaning you also specify. Oracle General Ledger's Accounting Flexfield is an example of a key flexfield used to uniquely identify a general ledger account.
6/19/2012
16 7
Oracle General Ledger uses a key flexfield called the Accounting Flexfield to uniquely identify a general ledger account. At Oracle, we have customized this Accounting Flexfield to include six segments: company code, cost center, account, product, product line, and sub- account. We have also defined valid values for each segment, as well as cross-validation rules to describe valid segment combinations. However, other companies might structure their general ledger account fields differently. By including the Accounting Flexfield key flexfield, Oracle General Ledger can accommodate the needs of different companies. One company can customize the Accounting Flexfield to include six segments, while another company includes twelve segments, all without programming.
6/19/2012
16 8
Descriptive flexfields let you satisfy different groups of users without having to reprogram your application, by letting you provide customizable "expansion space" on your forms. For example, suppose you have a retail application that keeps track of customers. Your Customers form would normally include fields such as Name, Address, State, Customer Number, and so on. However, your form might not include extra fields to keep track of customer clothing size and color preferences, or regular salesperson, since these are attributes of the customer entity that depend on how your users use your application.
Author : Amit R Tiwari 6/19/2012 16 9
If your retail application is used for a tool company, a field for clothing size would be undesirable. Even if you initially provide all the fields your users need, your users might later identify even more customer attributes that they want to keep track of. You add a descriptive flexfield to your form so that your users have the desired expansion space. Your users can also take advantage of the fact that descriptive flexfields can be context sensitive, where the information your application stores depends on other values your users enter in other parts of the form.
6/19/2012
17 0
A descriptive flexfield describes an application entity, providing form and database expansion space that you can customize. Each descriptive segment has a name you assign. You can specify valid segment values or set up criteria to validate the entry of any value. Oracle General Ledger includes a descriptive flexfield in its journal entry form to allow end users to add information of their own choosing. For example, end users might want to capture additional information about each journal entry, such as source document number or the name of the person who prepared the entry
6/19/2012
17 1
Flexfields provide you with the features you need to satisfy the following business needs: Customize your applications to conform to your current business practice for accounting codes, product codes, and other codes. Customize your applications to capture data that would not otherwise be tracked by your application. Have intelligent fields that are fields comprised of one or more segments, where each segment has both a value and a meaning. Rely upon your application to validate the values and the combination of values that you enter in intelligent fields. Have the structure of an intelligent field change depending on data in your form or application data. Customize data fields to your meet your business needs without programming. Query intelligent fields for very specific information.
6/19/2012
17 2
KFF:
The Accounting Flexfield in your Oracle Purchasing application is an example of a key flexfield that identifies a unique chart of accounts. One organization may choose to customize the Accounting Flexfield to have three segments called Company, Department, and Account, while another organization may choose to customize the flexfield to have five segments called Company, Cost Center, Account, SubAccount, and Product.
17 3
6/19/2012
6/19/2012
17 4
6/19/2012
17 5
Descriptive flexfields like the key flexfields provides further scope of customization in Oracle Applications. Descriptive flexfields provide customizable expansion space on your forms. Though the fields on an Oracle Applications form are more than enough to capture all the possible information from the user perspective, but still the users can feel the need of capturing additional information. A descriptive flexfield gives you room to expand your forms for capturing such additional information. A descriptive flexfield appears on a form as a single character, unnamed field enclosed in brackets ([ ])
6/19/2012
17 6
6/19/2012
17 7
Oracle Applications has provided space for descriptive flexfields on almost all the forms. Just like in a key flexfield, a popup window appears when you move your cursor into a customized descriptive flexfield. And like a key flexfield, the popup window has as many fields as your organization needs. Each field or segment in a descriptive flexfield has a prompt (figure 4), just like ordinary fields, and can have a set of valid values. The pop-up as shown in the figure 4 comes up when you click on the [ ] icon on the form in the figure3 above.
17 8
6/19/2012
6/19/2012
17 9
6/19/2012
18 0
1) Most important thing to know that you are not going to create new field in database. Basically You are going to configure DFFs already provided by Oracle, The descriptive flexfield columns are usually named ATTRIBUTEn where n is a number. For example, if you want to configure a descriptive flexfield on an Purchase Order (Header) form and want to associate it with Attribute1 First of all we need to know the Title of DFF which need to configure. Follow the following steps.
6/19/2012
18 1
1) Find out the Table Name used for PO Header. Navigate to Help > Record History and copy the table name as shown in image bellow.
6/19/2012
18 2
2) Now in my case PO_HEADERS_V is not a table, its a view. We need to find out underline Table Name of this view. You can use following query to find out the table name. Use Toad, Pl-SQL Developer or SPL Plus. select name , type , referenced_name , referenced_type from user_dependencies where name = PO_HEADERS_V and ( type = VIEW or referenced_type = TABLE)
6/19/2012
18 3
3) Now in this particular case PO_HEADERS_V again consists on views. You can see the PO_HEADERS View in above query result. Now query again but change PO_HEADERS_V with PO_HEADERS in where clause like following. select name , type , referenced_name , referenced_type from user_dependencies where name = PO_HEADERS and (type = VIEW or referenced_type = TABLE) Now in result you can see Table Name PO_HEADERS_ALL
6/19/2012
18 4
4) Once having noted down the table, Try to find the Title of the DFF for that Table. We go to Flexfield/Register in Application Developer Responsibility as shown in figure bellow.
18 5
5) Now navigate to Segments and Query entering Application Name = Purchasing and Title = PO Headers as shown bellow.
Before you being configure the DFF make sure to uncheck Freeze Flexfield Definition Check Box.
6/19/2012
18 6
6) Now click on the Segments, here you can define segments or cells.
7) You can attach LOV/ List by Pressing Value Set Button. 8) Once you finalize the changes, you will be prompted to Freeze the DFF definition. Click on OK
6/19/2012
18 7
9) Now navigate to Purchase Order Screen and click on [ ] in header. You can see DFF as configured.
6/19/2012
18 8
6/19/2012
18 9
FNDLOAD to transfer AOL Objects from one instance to other In simple words FNDLOAD is used to transfer entity data from one instance/database to other. For example if you want to move a concurrent program/menu/value sets developed in DEVELOPMENT instance to PRODUCTION instance you can use this command.
6/19/2012
19 0
These are the extensive list which can be done through FNDLOAD
Concurrent Programs, Executables Request Groups, Request Sets Profile Options Key and Descriptive Flexfields Menus and Responsibilities Forms and Form Functions Attachments Messages Value Sets and Values Lookup Types User Responsibilities Printer Definitions FND Dictionary Help Configuration Document Sequences Concurrent Manager Schedules
6/19/2012
19 1
Define your concurrent program and save it in first instance Connect to your UNIX box on first instance and run the following command to download the .ldt file
FNDLOAD apps/apps O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct file_name.ldt PROGRAM APPLICATION_SHORT_NAME=Concurrent program application short name
CONCURRENT_PROGRAM_NAME=concurrent program short name Move the downloaded .ldf file to new instance(Use FTP) Connect to your UNIX box on second instance and run the following command to upload the .ldt file FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct file_name.ldt
19 2
6/19/2012
Lookups
6/19/2012
19 3
Concurrent Programs
Value Sets
Profile Options
Request Groups
6/19/2012
19 4
Request Sets
Responsibilities
Menus
Forms Personalization
FNDLOAD apps/apps 0 Y DOWNLOAD $FND_TOP/patch/115/import/affrmcus.lct file_name.ldt FND_FORM_CUSTOM_RULES function_name=FUNCTION_NAME Note: UPLOAD command is same for all except replacing the .lct
FNDLOAD apps/apps 0 Y UPLOAD $FND_TOP/patch/115/import/corresponding.lct upload_file.ldt
6/19/2012
19 5
6/19/2012
19 6